[Ffmpeg-devel] [Patch] DV in AVI fixes
Mon Jan 8 14:43:19 CET 2007
On Mon, Dec 18, 2006 at 11:28:12PM -0500, Jeff Downs wrote:
> This patch fixes two issues with AVI files that contain "Type 1" DV.
> Searching the mailing list indicates a number of people have seen at
> least the first problem below. The others become more apparent after
> the first problem is fixed.
> 1. Seeking with DV-AVI files would cause a null pointer dereference in
> avi_read_seek because the "logical" streams (all streams but the primary
> video stream) have no backing AVIStream structure stored in AVStream
> priv_data. This patch fixes this by limiting seek index lookups to the
> first stream (with DV there is only one possible stream that could have
> indexes anyway).
> 2. The DV demux was only partially informed of the seek having occurred.
> Thus, while a seek would give you data starting at the right place in
> the file, the synthesized timestamps would continue as though the seek
> never happened. This is fixed by restructuring the way that DV is
> informed about, and handles, the seek. Briefly, it brings the DV
> demux's seek handling for DV-AVI more in line that of raw DV.
> 3. The duration for DV-in-AVI ended up being computed at a high level
> (utils.c), estimated based on bit rate. This turned out an incorrect
> duration, probably because the computation used the file size (which, of
> course, includes more than just the DV data). This was significantly off
> for some samples we tested. This patch fixes this by setting the
> AVFormatContext's duration parameter to the correct duration
> during header parsing, based on values in the AVI header.
the avidec.c change looks ok
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
I have never wished to cater to the crowd; for what I know they do not
approve, and what they approve I do not know. -- Epicurus
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 189 bytes
Desc: not available
More information about the ffmpeg-devel