[FFmpeg-devel] [PATCH 0/2] avformat/mvdec: make audio stream conditional
John-Paul Stewart
jpstewart at personalprojects.net
Sat Jan 1 02:41:56 EET 2022
On 2021-12-31 19:33, Andreas Rheinhardt wrote:
> John-Paul Stewart:
>> On 2021-12-31 17:19, Andreas Rheinhardt wrote:
>>> 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
>>
>> Thanks for that info. I hadn't realized that mv_read_packet relied on
>> the order of the stream numbers.
>>
>
> It is actually documented (right before creating the audio stream):
> "/* allocate audio track first to prevent unnecessary seeking
> * (audio packet always precede video packet for a given frame) */"
I saw that, but thought it referred only to seeking through the metadata
in the file header. I didn't realize that the comment meant the seeks
would happen later in processing the actual data stream in another
function. I didn't look at the code in enough detail to fully
understand the comment.
More information about the ffmpeg-devel
mailing list