[FFmpeg-cvslog] r26242 - trunk/libavformat/riff.c

cehoyos subversion
Thu Jan 6 14:30:32 CET 2011


Author: cehoyos
Date: Thu Jan  6 14:30:32 2011
New Revision: 26242

Log:
Set blkalign to 3840 (maximum bytes per frame) for AC-3 in avi.
Fixes playback for corner-cases like 32kHz 320kb.

Modified:
   trunk/libavformat/riff.c

Modified: trunk/libavformat/riff.c
==============================================================================
--- trunk/libavformat/riff.c	Thu Jan  6 12:33:06 2011	(r26241)
+++ trunk/libavformat/riff.c	Thu Jan  6 14:30:32 2011	(r26242)
@@ -370,13 +370,11 @@ int ff_put_wav_header(ByteIOContext *pb,
         av_log(enc, AV_LOG_WARNING, "requested bits_per_coded_sample (%d) and actually stored (%d) differ\n", enc->bits_per_coded_sample, bps);
     }
 
-    if (enc->codec_id == CODEC_ID_MP2 || enc->codec_id == CODEC_ID_MP3 || enc->codec_id == CODEC_ID_AC3) {
+    if (enc->codec_id == CODEC_ID_MP2 || enc->codec_id == CODEC_ID_MP3) {
         blkalign = enc->frame_size; //this is wrong, but it seems many demuxers do not work if this is set correctly
         //blkalign = 144 * enc->bit_rate/enc->sample_rate;
-        //For high bitrate AC-3, set blkalign to maximum bytes per frame value
-        //to allow playback on WMP and MPlayer
-        if (enc->bit_rate > 384000)
-            blkalign = 3840;
+    } else if (enc->codec_id == CODEC_ID_AC3) {
+            blkalign = 3840; //maximum bytes per frame
     } else if (enc->codec_id == CODEC_ID_ADPCM_G726) { //
         blkalign = 1;
     } else if (enc->block_align != 0) { /* specified by the codec */



More information about the ffmpeg-cvslog mailing list