diff options
author | James Almer <jamrial@gmail.com> | 2021-04-12 11:35:47 -0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2021-04-14 20:08:09 -0300 |
commit | 4e64c8fa29bb2777098c29887d8a0e7b8b0d514d (patch) | |
tree | 1e7dd5c12066576f92df8f499ffa0051ebd823ac | |
parent | 42551a3407b0619c97cd4365bc277682c40234c3 (diff) | |
download | ffmpeg-4e64c8fa29bb2777098c29887d8a0e7b8b0d514d.tar.gz |
avcodec/mpeg4videodec: update exported AVOptions in the user-facing context
This prevents bogus values being reported on frame multithreaded decoding
scenarios.
Signed-off-by: James Almer <jamrial@gmail.com>
-rw-r--r-- | libavcodec/mpeg4videodec.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c index 2c440a5026..de66fe8b83 100644 --- a/libavcodec/mpeg4videodec.c +++ b/libavcodec/mpeg4videodec.c @@ -3495,6 +3495,18 @@ static int mpeg4_update_thread_context(AVCodecContext *dst, return 0; } + +static int mpeg4_update_thread_context_for_user(AVCodecContext *dst, + const AVCodecContext *src) +{ + MpegEncContext *m = dst->priv_data; + const MpegEncContext *m1 = src->priv_data; + + m->quarter_sample = m1->quarter_sample; + m->divx_packed = m1->divx_packed; + + return 0; +} #endif static av_cold void mpeg4_init_static(void) @@ -3585,6 +3597,7 @@ AVCodec ff_mpeg4_decoder = { .pix_fmts = ff_h263_hwaccel_pixfmt_list_420, .profiles = NULL_IF_CONFIG_SMALL(ff_mpeg4_video_profiles), .update_thread_context = ONLY_IF_THREADS_ENABLED(mpeg4_update_thread_context), + .update_thread_context_for_user = ONLY_IF_THREADS_ENABLED(mpeg4_update_thread_context_for_user), .priv_class = &mpeg4_class, .hw_configs = (const AVCodecHWConfigInternal *const []) { #if CONFIG_MPEG4_NVDEC_HWACCEL |