summaryrefslogtreecommitdiff
path: root/libavcodec/mpegaudio_parser.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec/mpegaudio_parser.c')
-rw-r--r--libavcodec/mpegaudio_parser.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/libavcodec/mpegaudio_parser.c b/libavcodec/mpegaudio_parser.c
index c904873a18..58ea452773 100644
--- a/libavcodec/mpegaudio_parser.c
+++ b/libavcodec/mpegaudio_parser.c
@@ -30,6 +30,7 @@ typedef struct MpegAudioParseContext {
int frame_size;
uint32_t header;
int header_count;
+ int no_bitrate;
} MpegAudioParseContext;
#define MPA_HEADER_SIZE 4
@@ -80,7 +81,10 @@ static int mpegaudio_parse(AVCodecParserContext *s1,
avctx->sample_rate= sr;
avctx->channels = channels;
s1->duration = frame_size;
- avctx->bit_rate = bit_rate;
+ if (s->no_bitrate || !avctx->bit_rate) {
+ s->no_bitrate = 1;
+ avctx->bit_rate += (bit_rate - avctx->bit_rate) / s->header_count;
+ }
}
break;
}