• Wan-Teh Chang's avatar
    avcodec/h264_slice: don't sync default_ref[] between threads. · 8c3b329d
    Wan-Teh Chang authored
    default_ref[] is unconditionally initialized in h264_initialise_ref_list()
    (called from ff_h264_build_ref_list(), called from h264_slice_init()).
    
    This fixes the following tsan warning when running fate-h264:
    
    WARNING: ThreadSanitizer: data race (pid=31070)
      Write of size 8 at 0x7bbc000082a8 by thread T1 (mutexes: write M1628):
        #0 memcpy /work/release-test/final/llvm.src/projects/compiler-rt/lib/tsan/../sanitizer_common/sanitizer_common_interceptors.inc:655:5
    (ffmpeg+0x10de9d)
        #1 h264_initialise_ref_list ffmpeg/libavcodec/h264_refs.c:214:29 (ffmpeg+0x1186b3f)
        #2 ff_h264_build_ref_list ffmpeg/libavcodec/h264_refs.c:306 (ffmpeg+0x1186b3f)
        #3 h264_slice_init ffmpeg/libavcodec/h264_slice.c:1900:11 (ffmpeg+0x1191149)
    [..]
      Previous read of size 8 at 0x7bbc000082a8 by main thread (mutexes:
    write M1630):
        #0 memcpy /work/release-test/final/llvm.src/projects/compiler-rt/lib/tsan/../sanitizer_common/sanitizer_common_interceptors.inc:655:5
    (ffmpeg+0x10de9d)
        #1 ff_h264_update_thread_context ffmpeg/libavcodec/h264_slice.c:411:5 (ffmpeg+0x118b7dc)
    Signed-off-by: 's avatarWan-Teh Chang <wtc@google.com>
    Signed-off-by: 's avatarRonald S. Bultje <rsbultje@gmail.com>
    8c3b329d
h264_slice.c 105 KB