I had a little time to track down the issue with reelbox plugin and DVB 
subtitle sync.

Subtitles works fine when using MPEG audio track, with live and recorings (i 
have set analog audio 
to soundcard from settings as suggested here earlier)

When changing to Dolby Digital audio track, subtitles don't even get displayed.

Problem seems to be how reelbox plugin returns STC. I copied line
-- CLIP --
dbgconverter("PTS: %lld  STC: %lld (%lld) timeout: %d\n", sb->Pts(), 
cDevice::PrimaryDevice()->GetSTC(), Delta, sb->Timeout());
-- CLIP -
in dvbsubtitle.c to just before if (Delta <= MAXDELTA) (because STC is wrong 
and delta is more than 
MAXDELTA, and it would never be shown).

With Dolby Digital track reelbox plugin always returns same STC:
-- CLIP --
Converter PTS: 7576263738
GET STC c0bdfd77
GET STC c0bdfd77
Before delta <= MAXDELTA: PTS: 7576263738  STC: 3233676663 (529108) timeout: 8
Converter PTS: 7576688500
GET STC c0bdfd77
GET STC c0bdfd77
Before delta <= MAXDELTA: PTS: 7576688500  STC: 3233676663 (533828) timeout: 3
Converter PTS: 7576696884
GET STC c0bdfd77
GET STC c0bdfd77
Before delta <= MAXDELTA: PTS: 7576696884  STC: 3233676663 (533921) timeout: 6
Converter PTS: 7581177356
GET STC c0bdfd77
GET STC c0bdfd77
Before delta <= MAXDELTA: PTS: 7581177356  STC: 3233676663 (583704) timeout: 7
Converter PTS: 7581486822
GET STC c0bdfd77
GET STC c0bdfd77
Before delta <= MAXDELTA: PTS: 7581486822  STC: 3233676663 (587142) timeout: 3
-- CLIP --

With PCM audio everything is working fine (note that "GET STC" doesn't appear 
here):
-- CLIP --
Converter PTS: 7591193232
Before delta <= MAXDELTA: PTS: 7591193232  STC: 3296037783 (2090) timeout: 6
Before delta <= MAXDELTA: PTS: 7591193232  STC: 3296045463 (2005) timeout: 6
Before delta <= MAXDELTA: PTS: 7591193232  STC: 3296056983 (1877) timeout: 6
Before delta <= MAXDELTA: PTS: 7591193232  STC: 3296064663 (1791) timeout: 6
Before delta <= MAXDELTA: PTS: 7591193232  STC: 3296076183 (1663) timeout: 6
Before delta <= MAXDELTA: PTS: 7591193232  STC: 3296080023 (1621) timeout: 6
Before delta <= MAXDELTA: PTS: 7591193232  STC: 3296091543 (1493) timeout: 6
Before delta <= MAXDELTA: PTS: 7591193232  STC: 3296103063 (1365) timeout: 6
Before delta <= MAXDELTA: PTS: 7591193232  STC: 3296106903 (1322) timeout: 6
Before delta <= MAXDELTA: PTS: 7591193232  STC: 3296118423 (1194) timeout: 6
Before delta <= MAXDELTA: PTS: 7591193232  STC: 3296129943 (1066) timeout: 6
Before delta <= MAXDELTA: PTS: 7591193232  STC: 3296133783 (1023) timeout: 6
Before delta <= MAXDELTA: PTS: 7591193232  STC: 3296141463 (938) timeout: 6 
Before delta <= MAXDELTA: PTS: 7591193232  STC: 3296149143 (853) timeout: 6 
Before delta <= MAXDELTA: PTS: 7591193232  STC: 3296160663 (725) timeout: 6 
Before delta <= MAXDELTA: PTS: 7591193232  STC: 3296168343 (639) timeout: 6
Before delta <= MAXDELTA: PTS: 7591193232  STC: 3296176023 (554) timeout: 6
Before delta <= MAXDELTA: PTS: 7591193232  STC: 3296187543 (426) timeout: 6
Before delta <= MAXDELTA: PTS: 7591193232  STC: 3296195223 (341) timeout: 6
Before delta <= MAXDELTA: PTS: 7591193232  STC: 3296206743 (213) timeout: 6
Before delta <= MAXDELTA: PTS: 7591193232  STC: 3296214423 (127) timeout: 6
Before delta <= MAXDELTA: PTS: 7591193232  STC: 3296222103 (42) timeout: 6
Before delta <= MAXDELTA: PTS: 7591193232  STC: 3296225943 (0) timeout: 6
Got 1 bitmaps, showing #1
PTS: 7591193232  STC: 3296225943 (0) timeout: 6
-- CLIP --

So next i checked out from where this "GET STC" is from. It's from reelbox 
plugin ReelBoxDevice.c:

-- CLIP --
    int64_t ReelBoxDevice::GetSTC()
    {
        UInt stc = stc_;
        if (audioPlayerHd_) {
                printf("GET STC %x\n",HdCommChannel::hda->player[0].stc+stc_);
                return HdCommChannel::hda->player[0].stc+stc_;
        }
        return (stc == 0) ? -1LL : stc;
    }
-- CLIP --

So i hope someone who has more experience with coding and with VDR can continue 
from here and try 
to find cure for this.I tried to comment whole "if (audioPlayerHd_)" statement 
but it 
didn't help, wrong STC will be returned always anyway.

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

Reply via email to