diff options
Diffstat (limited to 'chromium/third_party/ffmpeg/libavcodec/libspeexdec.c')
-rw-r--r-- | chromium/third_party/ffmpeg/libavcodec/libspeexdec.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/chromium/third_party/ffmpeg/libavcodec/libspeexdec.c b/chromium/third_party/ffmpeg/libavcodec/libspeexdec.c index afe11761985..53e06d9b9e0 100644 --- a/chromium/third_party/ffmpeg/libavcodec/libspeexdec.c +++ b/chromium/third_party/ffmpeg/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; } |