[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