diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 5bd0012a4772923c10d0be261b065b61d86ba75f..0a0971fc3e9b3b8179ae139197ae8a68d7981489 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -642,9 +642,12 @@ int avcodec_decode_audio(AVCodecContext *avctx, int16_t *samples, int ret; *frame_size_ptr= 0; - ret = avctx->codec->decode(avctx, samples, frame_size_ptr, - buf, buf_size); - avctx->frame_number++; + if((avctx->codec->capabilities & CODEC_CAP_DELAY) || buf_size){ + ret = avctx->codec->decode(avctx, samples, frame_size_ptr, + buf, buf_size); + avctx->frame_number++; + }else + ret= 0; return ret; }