diff options
author | Carl Eugen Hoyos <cehoyos@ag.or.at> | 2014-04-14 15:36:01 +0200 |
---|---|---|
committer | Carl Eugen Hoyos <cehoyos@ag.or.at> | 2014-04-14 15:36:01 +0200 |
commit | ef48ac6523c738d77636456afaef18be92c694f8 (patch) | |
tree | 43b8da66e41ea73c299fd72cfc7861ad22e9e097 /libavcodec/libspeexdec.c | |
parent | 63c03ea98d90210886b818e503a39bb7e79e2be0 (diff) | |
download | ffmpeg-ef48ac6523c738d77636456afaef18be92c694f8.tar.gz |
Set the bitrate when decoding speex.
The bitrate of the first frame is used as bitrate for the speex stream.
Diffstat (limited to 'libavcodec/libspeexdec.c')
-rw-r--r-- | libavcodec/libspeexdec.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/libavcodec/libspeexdec.c b/libavcodec/libspeexdec.c index afe1176198..53e06d9b9e 100644 --- a/libavcodec/libspeexdec.c +++ b/libavcodec/libspeexdec.c @@ -43,7 +43,7 @@ static av_cold int libspeex_decode_init(AVCodecContext *avctx) SpeexHeader *header = NULL; int spx_mode; - avctx->sample_fmt = AV_SAMPLE_FMT_S16; + avctx->sample_fmt = AV_SAMPLE_FMT_NONE; if (avctx->extradata && avctx->extradata_size >= 80) { header = speex_packet_to_header(avctx->extradata, avctx->extradata_size); @@ -125,6 +125,7 @@ static int libspeex_decode_frame(AVCodecContext *avctx, void *data, AVFrame *frame = data; int16_t *output; int ret, consumed = 0; + avctx->sample_fmt = AV_SAMPLE_FMT_S16; /* get output buffer */ frame->nb_samples = s->frame_size; @@ -159,6 +160,8 @@ static int libspeex_decode_frame(AVCodecContext *avctx, void *data, *got_frame_ptr = 1; + if (!avctx->bit_rate) + speex_decoder_ctl(s->dec_state, SPEEX_GET_BITRATE, &avctx->bit_rate); return consumed; } |