diff options
author | James Almer <jamrial@gmail.com> | 2020-05-16 19:17:13 -0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2020-05-24 12:05:40 -0300 |
commit | c7c8f141ebd95b73baebf4b5013d3c6389cbe2c6 (patch) | |
tree | aac3955e246fdf9d8b657e6f58d2ecbc3cbcc9bd /libavcodec/decode.c | |
parent | 26b45096906097a73ba587bf3b98dada4e795224 (diff) |
avcodec: move avcodec_flush_buffers from decode.c to utils.c
It's not a decoding exclusive function anymore.
Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavcodec/decode.c')
-rw-r--r-- | libavcodec/decode.c | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/libavcodec/decode.c b/libavcodec/decode.c index f3327d74af..e438135b53 100644 --- a/libavcodec/decode.c +++ b/libavcodec/decode.c @@ -1961,47 +1961,3 @@ int ff_reget_buffer(AVCodecContext *avctx, AVFrame *frame, int flags) av_log(avctx, AV_LOG_ERROR, "reget_buffer() failed\n"); return ret; } - -void avcodec_flush_buffers(AVCodecContext *avctx) -{ - AVCodecInternal *avci = avctx->internal; - - if (av_codec_is_encoder(avctx->codec)) { - int caps = avctx->codec->capabilities; - - if (!(caps & AV_CODEC_CAP_ENCODER_FLUSH)) { - // Only encoders that explicitly declare support for it can be - // flushed. Otherwise, this is a no-op. - av_log(avctx, AV_LOG_WARNING, "Ignoring attempt to flush encoder " - "that doesn't support it\n"); - return; - } - - // We haven't implemented flushing for frame-threaded encoders. - av_assert0(!(caps & AV_CODEC_CAP_FRAME_THREADS)); - } - - avci->draining = 0; - avci->draining_done = 0; - avci->nb_draining_errors = 0; - av_frame_unref(avci->buffer_frame); - av_frame_unref(avci->compat_decode_frame); - av_packet_unref(avci->buffer_pkt); - avci->buffer_pkt_valid = 0; - - av_packet_unref(avci->ds.in_pkt); - - if (HAVE_THREADS && avctx->active_thread_type & FF_THREAD_FRAME) - ff_thread_flush(avctx); - else if (avctx->codec->flush) - avctx->codec->flush(avctx); - - avctx->pts_correction_last_pts = - avctx->pts_correction_last_dts = INT64_MIN; - - if (av_codec_is_decoder(avctx->codec)) - av_bsf_flush(avci->bsf); - - if (!avctx->refcounted_frames) - av_frame_unref(avci->to_free); -} |