[FFmpeg-devel] [PATCH 0/2] avformat/mvdec: make audio stream conditional

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Sat Jan 1 00:19:18 EET 2022


John-Paul Stewart:
> Recent discussion on the list led me to realize that libavformat was
> unconditionally creating an audio stream for all SGI movie format
> (version 2) files, even when no audio is present in the file.  
> 
> A sample of a movie file with no audio can be found at
>     http://www.personalprojects.net/ffmpeg/silent.movie
> 
> Unpatched ffmpeg will report an audio stream even though no audio is
> present.  After the following patch no audio stream is reported.  
> 
> SGI movie files with audio are slightly affected by the fact that the
> audio stream is now allocated after the video stream, changing the order
> they are listed in the output of ffprobe or ffmpeg.  I don't think this
> materially affects anything.  All existing FATE tests pass.
> 

If I am not mistaken, it actually changes it a bit more: The audio data
(if present) is stored before the video data in the file and
mv_read_packet returns the data in the order of the stream numbers. Now
that you have reversed the order in which the streams are created, there
will be seeks; in particular, the file needs to be seekable.
This can be fixed by inverting the order in which packets are read in
mv_read_packet and by also creating the video streams for the
non-version-two files before the audio streams.

> Incidentally, the silent.movie sample above is at 25fps and can also be
> used by anyone who wants to double-check the earlier patch 3c9ffbd009
> that reads and sets the framerate.  The sample file is only about 88 KB.
> 


More information about the ffmpeg-devel mailing list