[FFmpeg-devel] [PATCH] huffyuv: assign correct per-thread avctx pointer to HYuvContext::avctx.

Michael Niedermayer michael at niedermayer.cc
Wed Apr 5 22:29:02 EEST 2017


On Mon, Apr 03, 2017 at 10:28:33PM -0400, Ronald S. Bultje wrote:
> Fixes the following tsan warning when running fate-vsynth_lena-ffvhuff:
> 
> WARNING: ThreadSanitizer: data race (pid=6484)
>   Write of size 8 at 0x7d64000154b8 by main thread (mutexes: write M1331):
>     #0 update_context_from_user src/libavcodec/pthread_frame.c:331 (ffmpeg+0x000000dca887)
> [..]
>   Previous read of size 8 at 0x7d64000154b8 by thread T2 (mutexes: write M1334):
>     #0 draw_slice src/libavcodec/huffyuvdec.c:857 (ffmpeg+0x000000bcc86f)
> ---
>  libavcodec/huffyuvdec.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/libavcodec/huffyuvdec.c b/libavcodec/huffyuvdec.c
> index 5572b98..979c4b9 100644
> --- a/libavcodec/huffyuvdec.c
> +++ b/libavcodec/huffyuvdec.c
> @@ -579,6 +579,8 @@ static av_cold int decode_init_thread_copy(AVCodecContext *avctx)
>      HYuvContext *s = avctx->priv_data;
>      int i, ret;
>  
> +    s->avctx = avctx;

LGTM

do you think its better in decode_init_thread_copy() or decode_frame() ?
I think i would have instinctivly put it in decode_frame() but i dont
see a issue with decode_init_thread_copy()


thx


[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Dictatorship: All citizens are under surveillance, all their steps and
actions recorded, for the politicians to enforce control.
Democracy: All politicians are under surveillance, all their steps and
actions recorded, for the citizens to enforce control.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20170405/5e44e3c1/attachment.sig>


More information about the ffmpeg-devel mailing list