Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: John-Paul Stewart <jpstewart-at-personalprojects.net@ffmpeg.org>
To: ffmpeg-devel@ffmpeg.org
Subject: Re: [FFmpeg-devel] [PATCH 0/2] avformat/mvdec: make audio stream conditional
Date: Fri, 31 Dec 2021 19:17:42 -0500
Message-ID: <80d511a7-846b-6803-171e-98e07eccb227@personalprojects.net> (raw)
In-Reply-To: <AM7PR03MB6660CC3156F775D0DE67B28B8F469@AM7PR03MB6660.eurprd03.prod.outlook.com>

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.

> 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.

Actually, I think it can be simpler than that.  The framerate is the
only piece of metadata for the video stream that is stored before the
audio/silent flag.  Since that's read into a local variable anyway, I
can just hold onto that one value until after creating the audio stream.
Then create the video stream in the same order as the original code and
minimize the changes.

I'll get to work on a v2 of the patch.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

  reply	other threads:[~2022-01-01  0:17 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-31 19:50 John-Paul Stewart
2021-12-31 19:50 ` [FFmpeg-devel] [PATCH 1/2] " John-Paul Stewart
2021-12-31 19:50 ` [FFmpeg-devel] [PATCH 2/2] avformat/mvdec: re-indent after last commit John-Paul Stewart
2021-12-31 22:19 ` [FFmpeg-devel] [PATCH 0/2] avformat/mvdec: make audio stream conditional Andreas Rheinhardt
2022-01-01  0:17   ` John-Paul Stewart [this message]
2022-01-01  0:33     ` Andreas Rheinhardt
2022-01-01  0:41       ` John-Paul Stewart

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=80d511a7-846b-6803-171e-98e07eccb227@personalprojects.net \
    --to=jpstewart-at-personalprojects.net@ffmpeg.org \
    --cc=ffmpeg-devel@ffmpeg.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git