summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2020-05-16 19:17:13 -0300
committerJames Almer <jamrial@gmail.com>2020-05-24 12:05:40 -0300
commitc7c8f141ebd95b73baebf4b5013d3c6389cbe2c6 (patch)
treeaac3955e246fdf9d8b657e6f58d2ecbc3cbcc9bd /libavcodec
parent26b45096906097a73ba587bf3b98dada4e795224 (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')
-rw-r--r--libavcodec/decode.c44
-rw-r--r--libavcodec/utils.c44
2 files changed, 44 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);
-}
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index 3255679550..3899a13b99 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -1055,6 +1055,50 @@ FF_ENABLE_DEPRECATION_WARNINGS
goto end;
}
+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);
+}
+
void avsubtitle_free(AVSubtitle *sub)
{
int i;