aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHendrik Leppkes <h.leppkes@gmail.com>2020-07-06 02:29:59 +0200
committerJames Almer <jamrial@gmail.com>2021-04-14 20:05:16 -0300
commit82ebe0c7968262c7e27700b93bc58be0d7228458 (patch)
treeeaca397a68bc88de5cfe2f885bdc9487a99bfa49
parent67ed3cddf1d8c663c65f5cb0d442a7cb0aa06538 (diff)
downloadffmpeg-82ebe0c7968262c7e27700b93bc58be0d7228458.tar.gz
pthread_frame: introduce a codec callback to update the user-facing context
-rw-r--r--libavcodec/codec.h5
-rw-r--r--libavcodec/pthread_frame.c2
2 files changed, 7 insertions, 0 deletions
diff --git a/libavcodec/codec.h b/libavcodec/codec.h
index 50a22f6e3c..de050b2815 100644
--- a/libavcodec/codec.h
+++ b/libavcodec/codec.h
@@ -258,6 +258,11 @@ typedef struct AVCodec {
* dst and src will (rarely) point to the same context, in which case memcpy should be skipped.
*/
int (*update_thread_context)(struct AVCodecContext *dst, const struct AVCodecContext *src);
+
+ /**
+ * Copy variables back to the user-facing context
+ */
+ int (*update_thread_context_for_user)(struct AVCodecContext *dst, const struct AVCodecContext *src);
/** @} */
/**
diff --git a/libavcodec/pthread_frame.c b/libavcodec/pthread_frame.c
index 9176027f15..ae5b000d97 100644
--- a/libavcodec/pthread_frame.c
+++ b/libavcodec/pthread_frame.c
@@ -326,6 +326,8 @@ FF_DISABLE_DEPRECATION_WARNINGS
dst->coded_frame = src->coded_frame;
FF_ENABLE_DEPRECATION_WARNINGS
#endif
+ if (dst->codec->update_thread_context_for_user)
+ err = dst->codec->update_thread_context_for_user(dst, src);
} else {
if (dst->codec->update_thread_context)
err = dst->codec->update_thread_context(dst, src);