diff options
author | Andrew de Quincey <adq_dvb@lidskialf.net> | 2007-06-03 17:47:19 +0100 |
---|---|---|
committer | Andrew de Quincey <adq_dvb@lidskialf.net> | 2007-06-03 17:47:19 +0100 |
commit | 3e2ed6d0263c021644041ad3928ba4e7074360d7 (patch) | |
tree | a92c77d77e516a04bc93197a0dd590db3f6de244 /m4 | |
parent | e9864c1735402533e4ff7bdf3dca675b6d80bbef (diff) | |
download | xine-lib-3e2ed6d0263c021644041ad3928ba4e7074360d7.tar.gz xine-lib-3e2ed6d0263c021644041ad3928ba4e7074360d7.tar.bz2 |
[patch] Fix video pid misdetection
Hi, the next bug that has been annoying me is as follows.
I have some streams recorded from BBC4 on UK DVB-T. BBC4 only actually
starts transmitting at about 7pm; prior to that there is a static
picture saying it is not playing just now. With these streams and
xine, I would get audio, but no picture.
Looking at the PMT table during the static picture, all the streams
have type 0x0b. However there IS a video stream in there, but there
are also several streams of binary data.
Xine's current video PID auto-detection code was locking on to one of
these streams of binary data because it contained the magic sequence
00 00 01 e0 at one of the PUS. *HOWEVER* it is NOT a PES stream; this
sequence is just an accident. The other problem is that xine can only
handle one video stream; so once it was misdetected once, it was stuck
at that PID.
The attached patch changes the corrupted_pes flag into a counter. If a
video stream has more than CORRUPT_PES_THRESHOLD corrupt PES packets
in a row, then it is deselected as the video stream, and
auto-detection is kicked off again. Auto-detection will now also
ignore any streams seen previously which have a nonzero corrupted_pes
count. This works very well; I can now see the video fine.
One possible issue might be that if you get a lot of corrupt PES in a
stream which really IS the video stream, it will be deselected.
However, this is not actually a problem: once the corruption goes
away, the corrupted_pes counter will be reset to 0, and the stream
will once again be autodetected as the video stream (and playback will
continue from there).
Diffstat (limited to 'm4')
0 files changed, 0 insertions, 0 deletions