From 0b1e94c50a6e69ba5d01c1c2371a29358e6ca3c0 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Fri, 1 Jan 2016 16:26:24 +0100 Subject: Revert "Merge commit '9f1eccb97bf8894cb18b14f642500686505ef186'" This unbreaks muxing-encoding Example: ffmpeg -i matrixbench_mpeg2.mpg new.avi -rw-r----- 1 michael michael 226035354 Jan 1 16:27 new.avi -rw-r----- 1 michael michael 10016802 Jan 1 16:28 ref.avi Also av_get_audio_frame_duration() itself uses frame_size This reverts commit 29e6606e9b42aa811be995e2fcdea4806911bc9f, reversing changes made to 53448461a7720afab0d1f1234af79573fd2e020d. --- libavformat/riffenc.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'libavformat') diff --git a/libavformat/riffenc.c b/libavformat/riffenc.c index 250cf41ae7..ceb27f272c 100644 --- a/libavformat/riffenc.c +++ b/libavformat/riffenc.c @@ -242,7 +242,12 @@ void ff_parse_specific_params(AVStream *st, int *au_rate, int gcd; int audio_frame_size; + /* We use the known constant frame size for the codec if known, otherwise + * fall back on using AVCodecContext.frame_size, which is not as reliable + * for indicating packet duration. */ audio_frame_size = av_get_audio_frame_duration(codec, 0); + if (!audio_frame_size) + audio_frame_size = codec->frame_size; *au_ssize = codec->block_align; if (audio_frame_size && codec->sample_rate) { -- cgit v1.2.3