[DVDnav-discuss] Fwd: [PATCH] Make sure we get nav packets for all cells in multi angle

Joakim Plate elupus at ecce.se
Thu Nov 3 01:04:17 CET 2011


Seems i forgot to cc this to list, might be interesting for someone.

---------- Forwarded message ----------
From: Joakim Plate <elupus at ecce.se>
Date: Wed, Nov 2, 2011 at 6:23 PM
Subject: Re: [DVDnav-discuss] [PATCH] Make sure we get nav packets for
all cells in multi angle
To: Roger Pack <rogerdpack2 at gmail.com>

>
> I've noticed the discrepancy in MPEG pts times and the NAV packets,
> too.  Do you have any more information on this? Could you point me to
> how your code coordinates using the NAV packets at all?
> Thanks!
> -r
>

It's quite simple actually and removes all discontinuties during playback:

In input stream for libdvdnav:
 if(nav[n].start != nav[n-1].end) {
    diff = nav[n-1].end - nav[n].start;
    * return 0 bytes read to demuxer to EOF it and it flushes all mpeg packets.
 }

After demuxer EOF
 global_diff += diff;
 diff = 0;

Normally during reading from demuxer:
 packet = read from demuxer
 packet.pts += global_diff;

The main files doing this would be:
xbmc/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.cpp
xbmc/xbmc/cores/dvdplayer/DVDPlayer.cpp


More information about the DVDnav-discuss mailing list