hevc: only write to max_ra and pocTid0 in the first slice.
authorRonald S. Bultje <rsbultje@gmail.com>
Mon, 3 Apr 2017 13:51:10 +0000 (09:51 -0400)
committerRonald S. Bultje <rsbultje@gmail.com>
Mon, 3 Apr 2017 13:51:10 +0000 (09:51 -0400)
commit1f50baa2b2da7fdbfccf0662883f38a763ff6619
tree58f20809c8ebbf6fbb02428e1610a9382044b1e0
parent1269cd5b6f540bef5913bf134d2f461aac50d70b
hevc: only write to max_ra and pocTid0 in the first slice.

Values from subsequent values are guaranteed to be identical (since
poc and nal_unit_type are checked to be the same between slices), so
this doesn't affect output in any way, but does resolve the remaining
reported race conditions (by tsan) in fate-hevc.

In practice, this fixes tsan warnings like this:

WARNING: ThreadSanitizer: data race (pid=25334)
  Read of size 4 at 0x7d9c0001adcc by main thread (mutexes: write M1386):
    #0 hevc_update_thread_context src/libavcodec/hevcdec.c:3310 (ffmpeg+0x000000b41c7c)
[..]
  Previous write of size 4 at 0x7d9c0001adcc by thread T1 (mutexes: write M1383):
    #0 hls_slice_header src/libavcodec/hevcdec.c:596 (ffmpeg+0x000000b43a22)
libavcodec/hevcdec.c