Merge commit '56dc46a1893251e74be1ad63e54fb38d754bb1fe'

* commit '56dc46a1893251e74be1ad63e54fb38d754bb1fe':
  riffenc: do not fall back on AVCodecContext.frame_size for MP3

Merged-by: Michael Niedermayer <michaelni@gmx.at>
pull/94/head
Michael Niedermayer 10 years ago
commit a51eb6d34c
  1. 10
      libavformat/riffenc.c

@ -68,8 +68,6 @@ int ff_put_wav_header(AVIOContext *pb, AVCodecContext *enc, int flags)
* fall back on using AVCodecContext.frame_size, which is not as reliable
* for indicating packet duration. */
frame_size = av_get_audio_frame_duration(enc, enc->block_align);
if (!frame_size)
frame_size = enc->frame_size;
waveformatextensible = (enc->channels > 2 && enc->channel_layout) ||
enc->sample_rate > 48000 ||
@ -104,12 +102,10 @@ int ff_put_wav_header(AVIOContext *pb, AVCodecContext *enc, int flags)
enc->bits_per_coded_sample, bps);
}
if (enc->codec_id == AV_CODEC_ID_MP2 ||
enc->codec_id == AV_CODEC_ID_MP3) {
/* This is wrong, but it seems many demuxers do not work if this
* is set correctly. */
if (enc->codec_id == AV_CODEC_ID_MP2) {
blkalign = frame_size;
// blkalign = 144 * enc->bit_rate/enc->sample_rate;
} else if (enc->codec_id == AV_CODEC_ID_MP3) {
blkalign = 576 * (enc->sample_rate <= 24000 ? 1 : 2);
} else if (enc->codec_id == AV_CODEC_ID_AC3) {
blkalign = 3840; /* maximum bytes per frame */
} else if (enc->codec_id == AV_CODEC_ID_AAC) {

Loading…
Cancel
Save