Bug #4895
dvbapi and picture freeze
100%
Description
When watching differentchannels from same mux and using dvbapi with PowerVU decoding, picture freezes if stopping stream in one client.
Steps to reproduce:
1. Start channel on first client
2. Start different channel on second client
3. Stop stream in first client
4. Second stream will freeze after 3 seconds.
Order is important, if stopping second client first then there is no such issue.
I decided to create separate issue for this, same problem is also described here: https://tvheadend.org/issues/3360#note-75
Today I tested it again with latest tvheadend (4.3-1006~gd381d71e3) and r11397 oscam
Logs attached, also there are comments in tvh.log when stream started and when stream stopped.
Files
History
Updated by Jaroslav Kysela almost 7 years ago
It's a bit suspicious that there is no log between 11:32:01 and 11:32:15 (tvh). If you do a cut, please, do not cut anything. Add also --trace mpegts,linuxdvb traces.
Updated by p k almost 7 years ago
I haven't cut anything, only added comment. Will create new traces with mpegts,linuxdvb when that mux comes back, at the moment it is down (or something).
Updated by Jaroslav Kysela almost 7 years ago
Ok, thanks. It looks that the problem is not at the descrambling at all. It appears that some closed PIDs during the streaming causes that other PIDs are not received, too. It might be a fault somewhere in tvh or in the driver.
Updated by Petar Ivanov almost 7 years ago
- File tvheadend.log tvheadend.log added
Same bug here:
1. Start channel Discovery Showcase HD Europe
2. Start Science Europe HD on second client
3. Stop stream in Discovery Showcase HD Europe first channel
4. Second stream with Science Europe HD freeze after 3 seconds.
After stop
after this line when stop second channel(Discovery Showcase HD)
here start line:
2018-01-28 05:26:22.423 [ INFO]:subscription: 0004: "HTTP" unsubscribing, hostname="192.168.1.104", client="VLC/2.2.6 LibVLC/2.2.6" 2018-01-28 05:26:22.423 [ TRACE]:mpegts: table: mux 0x564d10db09a0 destroy pmt 02/FF (2) pid 0CDA (3290)
My logs
Updated by Jaroslav Kysela almost 7 years ago
Could you comment those two lines for a test?
diff --git a/src/input/mpegts/linuxdvb/linuxdvb_frontend.c b/src/input/mpegts/linuxdvb/linuxdvb_frontend.c index 0e75259c6..23bb8e7e3 100644 --- a/src/input/mpegts/linuxdvb/linuxdvb_frontend.c +++ b/src/input/mpegts/linuxdvb/linuxdvb_frontend.c @@ -1339,8 +1339,8 @@ linuxdvb_update_pids ( linuxdvb_frontend_t *lfe, const char *name, if (all && !linuxdvb_pid_exists(pids, pids_size, MPEGTS_FULLMUX_PID)) linuxdvb_frontend_open_pid0(lfe, name, pids, pids_size, MPEGTS_FULLMUX_PID); - else if (!all && linuxdvb_pid_exists(pids, pids_size, MPEGTS_FULLMUX_PID)) - linuxdvb_frontend_close_pid0(lfe, name, pids, pids_size, MPEGTS_FULLMUX_PID); +// else if (!all && linuxdvb_pid_exists(pids, pids_size, MPEGTS_FULLMUX_PID)) +// linuxdvb_frontend_close_pid0(lfe, name, pids, pids_size, MPEGTS_FULLMUX_PID); mpegts_pid_done(tuned); mpegts_pid_weighted(tuned, &lfe->lfe_pids, max);
Updated by Petar Ivanov almost 7 years ago
After comment this two lines fixed this bug with both powervu channels, but i dont from when is, but now i can't open more than 5 powervu channels simultaneously, i not updated from many times revision of TVH and after test now can't open more then 5, before i open 8-10 channels same time and not problem.
Updated by p k almost 7 years ago
Commenting out these lines fixed this issue for me, I only tried with 2 clients.
Updated by Jaroslav Kysela almost 7 years ago
- Status changed from New to Fixed
- % Done changed from 0 to 100
Applied in changeset commit:tvheadend|9c01ff64ab6190ad397f7ecd105eefefad671d88.
Updated by Petar Ivanov almost 7 years ago
Jaroslav Kysela wrote:
Applied in changeset commit:tvheadend|9c01ff64ab6190ad397f7ecd105eefefad671d88.
@Jaroslav
this fix partial for me, because when have channels with same Vpid where share same Pids again freeze after stopping firstly started channel, but when comment:
+// else if (!all && linuxdvb_pid_exists(pids, pids_size, MPEGTS_FULLMUX_PID)) +// linuxdvb_frontend_close_pid0(lfe, name, pids, pids_size, MPEGTS_FULLMUX_PID);
this line fix also channels with shared same Pids