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

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):

     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..


vdr mailing list

Reply via email to