On 14.10.2010 14.48, Vesa wrote:
I did some testing and debugging. First note is that VDR do not do sanity
check for STC on delay loop. Now there is on dvbsubtitle.c

if (STC>= 0) {

It should be

if (LimitTo32Bit(STC)>= 0) {

After this delay loop start to work with reelbox-3 plugin. With out that STC
int64_t value includes garbage and get most of time negative value. Because
same filtering is in use other places for this value, it should be also on
if-statement..

This do not fix delay issue on eHD completely, but now subtitles are in sync
with AV.

Next step is to add delay for subtitles. This is "dirty trick", it is only
for eHD users. Simply add some value to Delta (add second line):

Code:
      Delta = LimitTo32Bit(sb->Pts()) - LimitTo32Bit(STC);
      Delta += 500000;

With that 50000 you will get 5.56s delay. With that eHD now works correctly
with recording play. Live shows subtitles will be too late with this, but it
is minor issue. I mostly watch recordings :)

The root cause is still there, somehow eHD delivers around 500000 too low
STC for recording play. For live shows STC value is correct..


Thank you! I've tried these kind of hacks myself, but because of "ultimate" coding skills, couldn't produce anything useful...

Too bad, that this is not waf solution yet...
I guess, that I'll have to increase the level of the "dirty tricks" and compile couple of vdr instances (one with the delay and one without) and create a command for switching between the instances :D

...hanu

p.s. My 3rd eHD card could be available for testing purposes in Helsinki metropolitan area ...

--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.


_______________________________________________
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr

Reply via email to