[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