Commit 40176fc3 authored by Michael Niedermayer's avatar Michael Niedermayer

mp3enc: Try to use a matching bitrate in the xing header.

Might Fix Ticket431
Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 1fea432b
......@@ -156,7 +156,9 @@ static int mp3_write_xing(AVFormatContext *s)
{
AVCodecContext *codec = s->streams[0]->codec;
MP3Context *mp3 = s->priv_data;
int bitrate_idx = 3;
int bitrate_idx;
int best_bitrate_idx;
int best_bitrate_error= INT_MAX;
int64_t xing_offset;
int32_t mask, header;
MPADecodeHeader c;
......@@ -185,7 +187,17 @@ static int mp3_write_xing(AVFormatContext *s)
header |= (srate_idx << 2) << 8;
header |= channels << 6;
for (;; bitrate_idx++) {
for (bitrate_idx=1; bitrate_idx<15; bitrate_idx++) {
int error;
avpriv_mpegaudio_decode_header(&c, header | (bitrate_idx << (4+8)));
error= FFABS(c.bit_rate - codec->bit_rate);
if(error < best_bitrate_error){
best_bitrate_error= error;
best_bitrate_idx = bitrate_idx;
}
}
for (bitrate_idx= best_bitrate_idx;; bitrate_idx++) {
if (15 == bitrate_idx)
return -1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment