[FFmpeg-devel] tsan warning about a data race in libavcodec/h264_direct.c

Ronald S. Bultje rsbultje at gmail.com
Wed Jul 19 18:56:30 EEST 2017


Hi,

On Wed, Jul 19, 2017 at 12:26 AM, Wan-Teh Chang <
wtc-at-google.com at ffmpeg.org> wrote:

> WARNING: ThreadSanitizer: data race (pid=116081)
>   Read of size 4 at 0x7b7000020118 by thread T3 (mutexes: write M2239):
>     #0 pred_temp_direct_motion ffmpeg/libavcodec/h264_direct.c:505:9
> (ffmpeg+0x1159c60)
>
[..]

>   Previous write of size 4 at 0x7b7000020118 by thread T1 (mutexes:
> write M2234):
>     #0 ff_h264_decode_mb_cabac ffmpeg/libavcodec/h264_cabac.c:2386:31
> (ffmpeg+0x1475e0a)


I believe this is temporal motion vector prediction (so MV from frame 1 is
used as a MV predictor in frame 2). The easy solution here is to wait for
the frame to have completed reconstruction of that block (which fills in
that mb_type) before accessing the predictor.

Ronald


More information about the ffmpeg-devel mailing list