diff options
author | Hendrik Leppkes <h.leppkes@gmail.com> | 2020-07-06 02:29:59 +0200 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2021-04-14 20:05:16 -0300 |
commit | 82ebe0c7968262c7e27700b93bc58be0d7228458 (patch) | |
tree | eaca397a68bc88de5cfe2f885bdc9487a99bfa49 | |
parent | 67ed3cddf1d8c663c65f5cb0d442a7cb0aa06538 (diff) | |
download | ffmpeg-82ebe0c7968262c7e27700b93bc58be0d7228458.tar.gz |
pthread_frame: introduce a codec callback to update the user-facing context
-rw-r--r-- | libavcodec/codec.h | 5 | ||||
-rw-r--r-- | libavcodec/pthread_frame.c | 2 |
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); |