Fwd: [PATCH] Make sure we get nav packets for all cells in multi angle
Seems i forgot to cc this to list, might be interesting for someone. ---------- Forwarded message ---------- From: Joakim Plate <elupus@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@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
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;
Cool thanks. So it appears that it basically tracks the time via the timestamps in the NAV packets, i.e. its EDL's should be synchronized with the NAV packets to be accurate? -r
participants (2)
-
Joakim Plate -
Roger Pack