--- libavcodec/decode.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/libavcodec/decode.c b/libavcodec/decode.c index b17cfba26f..42cee77ec5 100644 --- a/libavcodec/decode.c +++ b/libavcodec/decode.c @@ -614,21 +614,21 @@ static int decode_receive_frame_internal(AVCodecContext *avctx, AVFrame *frame) if (codec->cb_type == FF_CODEC_CB_TYPE_RECEIVE_FRAME) { while (1) { - frame->pict_type = dc->initial_pict_type; - frame->flags |= dc->intra_only_flag; - ret = codec->cb.receive_frame(avctx, frame); - emms_c(); - if (!ret) { - if (avctx->codec->type == AVMEDIA_TYPE_AUDIO) { - int64_t discarded_samples = 0; - ret = discard_samples(avctx, frame, &discarded_samples); + frame->pict_type = dc->initial_pict_type; + frame->flags |= dc->intra_only_flag; + ret = codec->cb.receive_frame(avctx, frame); + emms_c(); + if (!ret) { + if (avctx->codec->type == AVMEDIA_TYPE_AUDIO) { + int64_t discarded_samples = 0; + ret = discard_samples(avctx, frame, &discarded_samples); + } + if (ret == AVERROR(EAGAIN) || (frame->flags & AV_FRAME_FLAG_DISCARD)) { + av_frame_unref(frame); + continue; + } } - if (ret == AVERROR(EAGAIN) || (frame->flags & AV_FRAME_FLAG_DISCARD)) { - av_frame_unref(frame); - continue; - } - } - break; + break; } } else ret = decode_simple_receive_frame(avctx, frame); -- 2.43.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".