diff mbox series

[FFmpeg-devel,2/2] avcodec/mpeg4videodec: Keep data_partitioning in sync between threads

Message ID DB6PR0101MB2214DA4993D763D04B80BF008F6A9@DB6PR0101MB2214.eurprd01.prod.exchangelabs.com
State Accepted
Commit d0de80ee44ae6b041776e82b502a8071b5584bdf
Headers show
Series [FFmpeg-devel] avcodec/mpegvideo_dec: Don't sync AVCodecContext fields manually | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Andreas Rheinhardt Aug. 17, 2022, 1:29 p.m. UTC
Fixes frame-threaded decoding of samples created by concatting
a video with data partitioning and a video not using it.
(Only the MPEG-4 decoder sets this, so it is synced in
mpeg4_update_thread_context() despite being a MpegEncContext-field.)

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
 libavcodec/mpeg4videodec.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Andreas Rheinhardt Aug. 19, 2022, 8:16 p.m. UTC | #1
Andreas Rheinhardt:
> Fixes frame-threaded decoding of samples created by concatting
> a video with data partitioning and a video not using it.
> (Only the MPEG-4 decoder sets this, so it is synced in
> mpeg4_update_thread_context() despite being a MpegEncContext-field.)
> 
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
> ---
>  libavcodec/mpeg4videodec.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c
> index bfebc3806c..d89adf8d63 100644
> --- a/libavcodec/mpeg4videodec.c
> +++ b/libavcodec/mpeg4videodec.c
> @@ -3534,6 +3534,7 @@ static int mpeg4_update_thread_context(AVCodecContext *dst,
>      s->vol_sprite_usage          = s1->vol_sprite_usage;
>      s->sprite_brightness_change  = s1->sprite_brightness_change;
>      s->num_sprite_warping_points = s1->num_sprite_warping_points;
> +    s->m.data_partitioning       = s1->m.data_partitioning;
>      s->rvlc                      = s1->rvlc;
>      s->resync_marker             = s1->resync_marker;
>      s->t_frame                   = s1->t_frame;

Will apply the remaining two patches of this patchset tomorrow unless
there are exceptions.

- Andreas
diff mbox series

Patch

diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c
index bfebc3806c..d89adf8d63 100644
--- a/libavcodec/mpeg4videodec.c
+++ b/libavcodec/mpeg4videodec.c
@@ -3534,6 +3534,7 @@  static int mpeg4_update_thread_context(AVCodecContext *dst,
     s->vol_sprite_usage          = s1->vol_sprite_usage;
     s->sprite_brightness_change  = s1->sprite_brightness_change;
     s->num_sprite_warping_points = s1->num_sprite_warping_points;
+    s->m.data_partitioning       = s1->m.data_partitioning;
     s->rvlc                      = s1->rvlc;
     s->resync_marker             = s1->resync_marker;
     s->t_frame                   = s1->t_frame;