[FFmpeg-devel] pts/dts generation and index for mpegts (vob)
Erik Van Grunderbeeck
Sat Apr 25 14:18:13 CEST 2009
I have a couple of DVD's with wrapped around (2^31) pts in the streams.
Wrapping occurs at various places in the vob files.
I first noticed this when working on a video-time length problem with the
vobs. Short I found following 2 issues:
1) Timelength (length of movie) generation when a wrap around in the streams
occurs is wrong.
2) Index generation for mpegts will have problems.
Nr 1 occurs because the code searches the end of the file for a valid
timestamp (on the stream selected) and uses that to generate the length.
What is more problematic is that the index generation with timestamp
wrapping will be completely bogus, and thus searching based on timestamps is
jumpy at best, and semi-random at worst.
Example: starts dts/pts 03345, up to 2^31. Restart and end of vob 132043.
When you want to jump to the end of the movie, the current code finds 132043
and 132043 as both end and start of the stream, and searching fails.
Last; when playing (ege in ffplay) the searching and timeline will also be
wrong, since the offsets and time length are invalid.
I can probably come up with a patch for 2) but was wondering if this has
been discussed before, and any idea's came up.
More information about the ffmpeg-devel