Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vdr] [PATCH] (DVB-T) statmux fix vbr tagging for pic header



At 07:41 14/05/2003, I wrote:
Just to say - it cristallized that this "blank screen" bug is down to statistical multiplexing and corresponding headers in the PES stream.
I've posted about this over on the linux-dvb list:
http://www.linuxtv.org/mailinglists/linux-dvb/2003/05-2003/msg00191.html
After a lot of talking and speculation and testing out I've come up with an experimental, dirty patch for vdr-1.1.31 to work around problems with either the firmware, the drivers or the way some mux encoders send the headers for variable bitrate streams.

It's intended for people who get black screens on switching to a channel / recording a channel in transfer mode. This applies mostly to DVB-T in the UK with the BBC mux . It possibly fixes problems with recordings on full featured DVB-T cards - would be interesting if people could test this. It should pretty much apply against at least the last 10 developer versions.

As I said the patch is dirty - it shouldn't break anything but it could be done a lot nicer. Namely to only actually modify the I-Frame picture header on a VBR channel (or when set in channels.conf) rather than on any channel. Furthermore integration with existing code could probably be neater. My reasoning is though, it can't hurt to have this out to the public to get some feedback and to help other DVB-T users getting rid of the annoying blank screen bug that sometimes hangs the decoder so bad it introduces delays or needs drivers reloading.

Basically I looked at what pvastrumento does to set the so called "VBR headers" in the picture header which I noticed fixed the new drivers / firmware from stopping the replay after a second. In fact to do this pvastrumento sets the so called "vbv delay" right up to the maximum. It thus, if I understand correctly, defines the longest time possible for the decoder to keep the files in the buffer before reassembling them.

I should have looked at the pvastrumento help file earlier. It seems to back up my results. Thanks Wiljo Heinen for a great program and a decent helpfile!):

[quote]
For convenience (and cheaper equipment... probably) most TV stations flag their video stream as being a fixed bitrate stream. The nominal bitrate, that is the bitrate contained in the video headers, is set to a value that is higher than the highest bitrate they will transfer.
[/quote]

Unfortunately that doesn't appear the case with the BBC mux. Nominal bitrate in the sequence header is set to 6.2 Mbit, but it does go up to 12 or more Mbit in transmission.

[quote]
Though in reality their transmission is a variable bitrate the digital receivers have no problem to cope with this situation: they simply set their buffers so that the nominal bitrate can be processed -- et voilá.
[/quote]

OK this might be where the root of the problem lies. The buffers either in the firmware, the drivers or both seem to be too small for dealing with the stream. Setting the vbv delay higher seems to increase them or change the handling. This might possibly also fix future problems with RTL (if this happened to be similar) and other statmuxed channels too.

Here's the patch
http://www.mpex.net/riovolt/vdr-statmux-vbr_vbv_delay.patch
comments from testers appreciated.

and here are some references:

statmux / sync / PTS demux handling in new head?:
http://www.linuxtv.org/mailinglists/linux-dvb/2003/05-2003/msg00191.html
and http://www.linuxtv.org/mailinglists/linux-dvb/2003/05-2003/msg00197.html

mpeg-2 header reference:
http://members.aol.com/mpucoder/DVD/mpeghdrs.html

info about vbv delay:
http://www.broadcastpapers.com/sigdis/TandbergPortDigitalLinksMobile04.htm
and http://www.nhk.or.jp/strl/publica/bt/en/le0011.pdf

- Gregor


--
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe vdr" as subject.



Home | Main Index | Thread Index