View Full Version : what does discontinuity actually *mean* in a NAV packet
rogerdpack
9th November 2011, 17:39
Hello all. Wasn't sure if this was the best forum, but maybe you can point me in the right direction.
I'm aware that PTS "timestamps" reset sometimes in the middle of a DVD title.
Is this related at all to the PGC "discontinuity" flag? What is the discontinuity flag, anyway?
See also:
http://betterlogic.com/roger/2011/10/dvd-pgc-discontinuity-flag/
"Whenever the start PTS of the current NAV does not match the end PTS of the previous NAV, a PTS discontinuity has occured."
Thanks.!
-roger-
r0lZ
10th November 2011, 11:45
Yes, the discontinuity flag of the cells list in the IFOs is set when the PTS is reset (or changes abruptly) in the nav packs.
That flag should be set on the first cell of the PGC and when the VOB ID changes, since a VOB change implies a PTS reset.
rogerdpack
11th November 2011, 17:39
Thanks!
Ok, to review, for my sake--a title can have several PGC's, a PGC may have several VOB's
When it starts any PGC, it should set the "discontinuity" flag, and if/when it switches VOB's, within a PGC, it should also set the "discontinuity" flag.
And also it appears that this flag may or "may not" have anything to do with MPEG PTS timestamp resets. I.e. when it goes from one VOB to the next, or one PGC to the next, it should always set the discontinuity flag, but may or may not reset the MPEG PTS timestamps. At least as far as I can tell :)
Anybody know if resetting the MPEG PTS timestamps is "against" DVD spec, or part of it? Any hints?
I guess my next question would be...how does a DVD video player know how long to play the "last MPEG video frame" within a VOB? How does it know how long that frame should be displayed? (maybe it just infers from the NAV packets' c_eltm [1] that 25 fps implies 24.967 and displays it for that long?)
Thanks for the help!
-roger-
[1]http://www.mpucoder.com/DVD/dsi_pkt.html
f 29.97 frames per second
r0lZ
11th November 2011, 18:13
I don't know if resetting the MPEG PTS timestamps is "against" DVD spec, but I know that some programs (perhaps badly written for "pure MPEG" only) have trouble with the PTS "jumps" in the VOB files. For example, they may display a wrong total playback time. Also, VOB means "Video OBject", and by definition an "object" is independent (self contained). A VOB may have several cells. A new cell does not imply a PTS reset, so I suppose that it's the main difference with VOBs. IMO, the timestamps must be reset when a new VOB starts, but I'm not a specialist of the VOB format, so I'm not sure. For the same reason, I can't reply to your last question.
Ghitulescu
11th November 2011, 19:15
It is not against specs, at least there's nothing to prevent it.
The general idea during drafting the specs was that CID should be used mainly for chapters, while VID delimited the original video sources within a title, a sort of hardcuts (which have been separately encoded and thus would have different TCs). One can see even today that most DVDs (at least most of those I've seen) have different VIDs for logos at the beginning and ending (1/1, 2/1, 2/2 etc. 2/13, 3/1) than the movie itself.
bigotti5
12th November 2011, 07:44
how does a DVD video player know how long to play the "last MPEG video frame" within a VOB? How does it know how long that frame should be displayed?
PCI, 0x3d in NAV pack, Vobu End Presentation Time (PTM)
rogerdpack
17th November 2011, 01:42
In retrospect, I think the NAV packets basically "only serve for seeking/timestamp purposes" whereas the MPEG streams themselves control the playback. So the NAV packets basically help "guide" you through the MPEG stream, to get to the right spot.
Also one thing in our favor is that hopefully the MPEG streams only reset on VOB boundaries.
Thanks for the feedback everyone.
-roger-
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.