aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRonald S. Bultje <rsbultje@gmail.com>2017-04-03 09:25:15 -0400
committerMichael Niedermayer <michael@niedermayer.cc>2017-04-13 02:29:26 +0200
commite9fc7a90ba21f2fb2953f24375db2b81e891a6f2 (patch)
tree0763044d9dc472e3ad5e70384df95fc863fbe821
parent414d11fff6453b3d3af75734292f8d16edeba940 (diff)
downloadffmpeg-e9fc7a90ba21f2fb2953f24375db2b81e891a6f2.tar.gz
h264: don't sync pic_id between threads.
This is how the ref list manager links bitstream IDs to H264Picture/Ref objects, and is local to the producer thread. There is no need for the consumer thread to know the bitstream IDs of its references in their respective producer threads. In practice, this fixes tsan warnings when running fate-h264: WARNING: ThreadSanitizer: data race (pid=19295) Read of size 4 at 0x7dbc0000e614 by main thread (mutexes: write M1914): #0 ff_h264_ref_picture src/libavcodec/h264_picture.c:112 (ffmpeg+0x0000013b3709) [..] Previous write of size 4 at 0x7dbc0000e614 by thread T2 (mutexes: write M1917): #0 build_def_list src/libavcodec/h264_refs.c:91 (ffmpeg+0x0000013b46cf) (cherry picked from commit e72690b18da064f6c0f04f09ccde72b6636e3159) Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-rw-r--r--libavcodec/h264_picture.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/libavcodec/h264_picture.c b/libavcodec/h264_picture.c
index db9673793a..2dbe5ee40b 100644
--- a/libavcodec/h264_picture.c
+++ b/libavcodec/h264_picture.c
@@ -109,7 +109,6 @@ int ff_h264_ref_picture(H264Context *h, H264Picture *dst, H264Picture *src)
dst->poc = src->poc;
dst->frame_num = src->frame_num;
dst->mmco_reset = src->mmco_reset;
- dst->pic_id = src->pic_id;
dst->long_ref = src->long_ref;
dst->mbaff = src->mbaff;
dst->field_picture = src->field_picture;