Michael Niedermayer
28c618355c
avcodec/webp: Fix null pointer dereference
...
Fixes: 1369/clusterfuzz-testcase-minimized-5048908029886464
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 9bf4523e40
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Michael Niedermayer
88a3e4c34e
avcodec/dfa: Fix signed integer overflow: -2147483648 - 1 cannot be represented in type 'int'
...
Fixes: 1368/clusterfuzz-testcase-minimized-4507293276176384
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 12936a4585
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Michael Niedermayer
e2462c8828
avcodec/g723_1: Fix multiple runtime error: left shift of negative value
...
Fixes: 1367/clusterfuzz-testcase-minimized-571496882346393
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 4ace2d2219
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Michael Niedermayer
139d881273
avcodec/mimic: Fix runtime error: left shift of negative value -1
...
Fixes: 1365/clusterfuzz-testcase-minimized-5624158450876416
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit fc2c420b82
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Michael Niedermayer
6f590bf05f
avcodec/clearvideo: Fix multiple runtime error: left shift of negative value -1024
...
Fixes: 1360/clusterfuzz-testcase-minimized-5606472043986944
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit c0ffcb34c7
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Michael Niedermayer
cab8d31804
avcodec/fic: Fix multiple left shift of negative value -15
...
Fixes: 1356/clusterfuzz-testcase-minimized-6008489086287872
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit b20c71409b
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Michael Niedermayer
3585986a00
avcodec/mlpdec: Fix runtime error: left shift of negative value -22
...
Fixes: 1355/clusterfuzz-testcase-minimized-6662205472768000
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit c535436cbe
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Michael Niedermayer
645b36ce64
avcodec/snowdec: Check qbias
...
Fixes: signed integer overflow: -1094995529 * 131 cannot be represented in type 'int'
Fixes: 1353/clusterfuzz-testcase-minimized-5208180449607680
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 523205ce1e
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Michael Niedermayer
67835afd79
avutil/softfloat: Fix multiple runtime error: left shift of negative value -8
...
Fixes: 1352/clusterfuzz-testcase-minimized-5757565017260032
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 35f3df0d76
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Michael Niedermayer
955b97704f
avcodec/aacsbr_template: Do not leave bs_num_env invalid
...
Fixes out of array read
Fixes: 1349/clusterfuzz-testcase-minimized-5370707196248064
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit a8ad83b793
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Michael Niedermayer
28b6588b48
avcodec/mdec: Fix signed integer overflow: 28835400 * 83 cannot be represented in type 'int'
...
Fixes: 1346/clusterfuzz-testcase-minimized-5776732600664064
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit a234b5ade3
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Michael Niedermayer
7617b90f07
avcodec/dfa: Fix off by 1 error
...
Fixes out of array access
Fixes: 1345/clusterfuzz-testcase-minimized-6062963045695488
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit f52fbf4f3e
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Michael Niedermayer
2adf20b3da
avcodec/nellymoser: Fix multiple left shift of negative value -8591
...
Fixes: 1342/clusterfuzz-testcase-minimized-5490842129137664
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 0953736b7e
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Michael Niedermayer
b80d4f58d8
avcodec/cdxl: Fix signed integer overflow: 14243456 * 164 cannot be represented in type 'int'
...
Fixes: 1341/clusterfuzz-testcase-minimized-5441502618583040
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 1002932a3b
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Michael Niedermayer
85bf84c96c
avcodec/g722: Fix multiple runtime error: left shift of negative value -1
...
Fixes: 1340/clusterfuzz-testcase-minimized-4669892148068352
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit f55df62998
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Michael Niedermayer
5520e00a49
avcodec/dss_sp: Fix multiple left shift of negative value -466
...
Fixes: 1339/clusterfuzz-testcase-minimized-4614671485108224
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 38152d9368
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Michael Niedermayer
671530ccb4
avcodec/wnv1: Fix runtime error: left shift of negative value -1
...
Fixes: 1338/clusterfuzz-testcase-minimized-6485546354343936
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 9fac508ca4
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Michael Niedermayer
1e8212798c
avcodec/tiertexseqv: set the fixed dimenasions, do not depend on the demuxer doing so
...
Fixes: out of array access
Fixes: 1348/clusterfuzz-testcase-minimized-6195673642827776
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit ce551a3925
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Michael Niedermayer
484ce1af75
avcodec/mjpegdec: Fix runtime error: signed integer overflow: -24543 * 2031616 cannot be represented in type 'int'
...
Fixes: 943/clusterfuzz-testcase-5114865297391616
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit a78ae465fd
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Michael Niedermayer
175a569f5b
avcodec/cavsdec: Fix undefined behavior from integer overflow
...
Fixes: 1335/clusterfuzz-testcase-minimized-5566961566089216
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit a0e5f7f363
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Michael Niedermayer
dd3a5f04b9
avcodec/dvdsubdec: Fix runtime error: left shift of 242 by 24 places cannot be represented in type 'int'
...
Fixes: 1080/clusterfuzz-testcase-5353236754071552
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit ce7098b8f2
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Michael Niedermayer
a5bcb36874
libavcodec/mpeg4videodec: Convert sprite_offset to 64bit
...
This avoids intermediates from overflowing (the final values are checked)
Fixes: runtime error: signed integer overflow: -167712 + -2147352576 cannot be represented in type 'int'
Fixes: 1298/clusterfuzz-testcase-minimized-5955580877340672
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit c1c3a14073
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Michael Niedermayer
142c65ba9c
avcodec/pngdec: Use ff_set_dimensions()
...
Fixes OOM
Fixes: 1314/clusterfuzz-testcase-minimized-4621997222920192
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit a0296fc056
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Michael Niedermayer
dfda395b2f
avcodec/msvideo1: Check buffer size before re-getting the frame
...
Fixes timeout
Fixes: 1306/clusterfuzz-testcase-minimized-6152296217968640
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit cabfed6895
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Michael Niedermayer
927ff67ab4
avcodec/h264_cavlc: Fix undefined behavior on qscale overflow
...
Fixes: 1214/clusterfuzz-testcase-minimized-6130606599569408
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit fc8cff96ed
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Michael Niedermayer
44eabc5d5d
avcodec/dcadsp: Fix runtime error: signed integer overflow
...
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 9244b839b7
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Michael Niedermayer
78fd652af4
avcodec/svq3: Reject dx/dy beyond 16bit
...
The code does use 16bit sized arrays later so larger deltas would not work
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 48b3117844
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Michael Niedermayer
65a9d0c66c
avcodec/svq3: Increase offsets to prevent integer overflows
...
Fixes: 1280/clusterfuzz-testcase-minimized-6102353767825408
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 382b4fc9b5
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Michael Niedermayer
b1fc2c5c25
avcodec/indeo2: Check remaining bits in ir2_decode_plane()
...
Fixes: 1290/clusterfuzz-testcase-minimized-5815578902134784
Fixes: timeout
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit b29feec982
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Michael Niedermayer
b6a4aeb2f6
avcodec/vp3: Check remaining bits in unpack_dct_coeffs()
...
Decreases the time spend decoding junk.
May fix: 1283/clusterfuzz-testcase-minimized-6221126759874560
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 2f00300b77
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Michael Niedermayer
0875b2651d
doc/developer: Add terse documentation of assumed C implementation defined behavior
...
Suggested-by: "Ronald S. Bultje" <rsbultje@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit b706ddbae3
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Michael Niedermayer
681ca7ecd0
avcodec/bmp: Use ff_set_dimensions()
...
Fixes out of memory
Fixes: 1282/clusterfuzz-testcase-minimized-5400131681648640
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 63b8d4146d
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Michael Niedermayer
51f24cb3f5
avcodec/mdec: Fix runtime error: left shift of negative value -127
...
Fixes undefined behavior
Fixes: 1275/clusterfuzz-testcase-minimized-6718162017976320
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 6ca82975b7
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Michael Niedermayer
87dcc7502d
avcodec/x86/vc1dsp_init: Fix build failure with --disable-optimizations and clang
...
compilers doing DCE at -O0 do not necessarily understand "complex" boolean expressions
Build succeeds with this change, this was the only failure
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit fa8fd0808f
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Martin Vignali
3ffde707df
libavcodec/exr : fix float to uint16 conversion for negative float value
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit e46d637452
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Derek Buitenhuis
2ff9e21f7f
avformat/webmdashenc: Validate the 'streams' adaptation sets parameter
...
It should not be a value larger than the number of streams we have,
or it will cause invalid reads and/or SIGSEGV.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit ec07efa700
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Derek Buitenhuis
9eb0d76e25
avformat/webmdashenc: Require the 'adaptation_sets' option to be set
...
This seems to be non-optional, and if the muxer is run without it,
strlen() is run on NULL, causing a segfault.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit cbd3a68f3e
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-14 00:21:49 +02:00
Marton Balint
508e410d34
lavfi/avfiltergraph: only return EOF in avfilter_graph_request_oldest if all sinks EOFed
...
Fixes a regression introduced in 32c59a115d
,
becoming effective in 912969a33e
.
Fixes trimmed output of
ffmpeg -f lavfi -i "sine=d=0.01" -f lavfi -i "sine=d=1" -filter_complex "[0:a]anull[a1];[1:a]anull[a2]" -map "[a1]" -f null none -map "[a2]" -f framecrc -
Reviewed-by: Nicolas George <george@nsup.org >
Signed-off-by: Marton Balint <cus@passwd.hu >
(cherry picked from commit c0443c1af1
)
2017-05-07 19:53:46 +02:00
wm4
059db22040
ffmpeg: check for unconnected outputs
...
Fixes e.g.:
ffmpeg -f lavfi -i testsrc -f lavfi -i testsrc -filter_complex "[0:v][1:v]psnr[out]" -f null none
Fixes ticket #6323 .
(cherry picked from commit 974ee16d6a
)
2017-05-07 19:52:00 +02:00
Aaron Levinson
329176adc5
avformat/utils: free AVStream.codec properly in free_stream()
...
Fixes memory leaks.
Signed-off-by: James Almer <jamrial@gmail.com >
(cherry picked from commit b9d2005ea5
)
2017-05-06 17:30:18 -03:00
James Almer
8119efdbec
avcodec/options: do a more thorough clean up in avcodec_copy_context()
...
Free coded_frame, coded_side_data and unref hw_device_ctx to prevent
potential leaks.
Reviewed-by: Aaron Levinson <alevinsn@aracnet.com >
Tested-by: Michael Niedermayer <michael@niedermayer.cc >
Signed-off-by: James Almer <jamrial@gmail.com >
(cherry picked from commit cac8de2da5
)
2017-05-06 17:30:07 -03:00
James Almer
4f19268eee
avcodec/options: factorize avcodec_copy_context() cleanup code
...
Reviewed-by: Aaron Levinson <alevinsn@aracnet.com >
Tested-by: Michael Niedermayer <michael@niedermayer.cc >
Signed-off-by: James Almer <jamrial@gmail.com >
(cherry picked from commit 54a4c9b4e9
)
2017-05-06 17:29:59 -03:00
Muhammad Faiz
58a8e4733a
ffmpeg: count packets when queued
...
Because write_packet() fakely writes packets to muxer by queueing
them when muxer hasn't been initialized, it should also increment
frame_number fakely.
This is required because code in do_streamcopy() rely on
frame_number.
Should fix Ticket6227
Reviewed-by: James Almer <jamrial@gmail.com >
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc >
Signed-off-by: Muhammad Faiz <mfcc64@gmail.com >
(cherry picked from commit c4be288fdb
)
2017-05-02 16:42:36 -03:00
James Almer
cfca0b9139
avformat/concatdec: fix the h264 annexb extradata check
...
The start code can be either in the first three or four bytes.
(cherry picked from commit b4330a0e02
)
2017-04-26 21:50:02 -03:00
Paul B Mahol
da693f8daa
avcodec/dnxhd_parser: fix parsing interlaced video, simplify code
...
There appears to be no need to treat interlaced videos differently,
also that code is flawed, as for at least one input cur_field would
be always 0.
Fixes ticket #6344 .
Signed-off-by: Paul B Mahol <onemda@gmail.com >
(cherry picked from commit ac30754a14
)
2017-04-25 00:29:37 +02:00
Marton Balint
ed2ed4ac0f
ffmpeg; check return code of avcodec_send_frame when flushing encoders
...
Fixes Coverity CID 1404841.
Signed-off-by: Marton Balint <cus@passwd.hu >
(cherry picked from commit c037f2f1ba
)
2017-04-22 23:17:22 +02:00
Ronald S. Bultje
1968a1eef1
pthread_frame: make accesses to debug field be protected by owner lock.
...
The av_log() is done outside the lock, but this way the accesses to the
field (reads and writes) are always protected by a mutex. The av_log()
is not run inside the lock context because it may involve user callbacks
and doing that in performance-sensitive code is probably not a good idea.
This should fix occasional tsan warnings when running fate-h264, like:
WARNING: ThreadSanitizer: data race (pid=10916)
Write of size 4 at 0x7d64000174fc by main thread (mutexes: write M2313):
#0 update_context_from_user src/libavcodec/pthread_frame.c:335 (ffmpeg+0x000000df7b06)
[..]
Previous read of size 4 at 0x7d64000174fc by thread T1 (mutexes: write M2311):
#0 ff_thread_await_progress src/libavcodec/pthread_frame.c:592 (ffmpeg+0x000000df8b3e)
(cherry picked from commit 2e664b9c1e
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
n3.3
2017-04-13 02:29:26 +02:00
Ronald S. Bultje
f4f3bf3c94
pthread_frame: allow per-field ThreadFrame owners.
...
This tries to handle cases where separate invocations of decode_frame()
(each running in separate threads) write to respective fields in the
same AVFrame->data[]. Having per-field owners makes interaction between
readers (the referencing thread) and writers (the decoding thread)
slightly more optimal if both accesses are field-based, since they will
use the respective producer's thread objects (mutex/cond) instead of
sharing the thread objects of the first field's producer.
In practice, this fixes the following tsan-warning in fate-h264:
WARNING: ThreadSanitizer: data race (pid=21615)
Read of size 4 at 0x7d640000d9fc by thread T2 (mutexes: write M1006):
#0 ff_thread_report_progress pthread_frame.c:569 (ffmpeg:x86_64+0x100f7cf54)
[..]
Previous write of size 4 at 0x7d640000d9fc by main thread (mutexes: write M1004):
#0 update_context_from_user pthread_frame.c:335 (ffmpeg:x86_64+0x100f81abb)
(cherry picked from commit 083300bea9
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-04-13 02:29:26 +02:00
Ronald S. Bultje
6557ea8e2b
vp8: make mv_min/max thread-local if using partition threading.
...
Fixes tsan warnings like this in fate-vp8-test-vector-007:
WARNING: ThreadSanitizer: data race (pid=65909)
Write of size 4 at 0x7d8c0000e088 by thread T1:
#0 vp8_decode_mb_row_sliced vp8.c:2519 (ffmpeg:x86_64+0x100995ede)
[..]
Previous write of size 4 at 0x7d8c0000e088 by thread T2:
#0 vp8_decode_mb_row_sliced vp8.c:2519 (ffmpeg:x86_64+0x100995ede)
(cherry picked from commit fed92adbb3
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-04-13 02:29:26 +02:00
Ronald S. Bultje
9d742f774a
vp8: make wait/thread_mb_pos atomic.
...
Fixes tsan warnings like this in fate-vp8-test-vector-007:
WARNING: ThreadSanitizer: data race (pid=3590)
Write of size 4 at 0x7d8c0000e07c by thread T2:
#0 decode_mb_row_no_filter src/libavcodec/vp8.c:2330 (ffmpeg+0x000000ffb59e)
[..]
Previous write of size 4 at 0x7d8c0000e07c by thread T1:
#0 decode_mb_row_no_filter src/libavcodec/vp8.c:2330 (ffmpeg+0x000000ffb59e)
(cherry picked from commit 9a54c6f243
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-04-13 02:29:26 +02:00