Revert "Merge commit '9f1eccb97bf8894cb18b14f642500686505ef186'"
authorMichael Niedermayer <michael@niedermayer.cc>
Fri, 1 Jan 2016 15:26:24 +0000 (16:26 +0100)
committerMichael Niedermayer <michael@niedermayer.cc>
Fri, 1 Jan 2016 16:05:46 +0000 (17:05 +0100)
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

index 250cf41..ceb27f2 100644 (file)
@@ -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) {