Commit graph

41364 commits

Author SHA1 Message Date
Michael Niedermayer
0be0197f49 avcodec/imm4: Unreference previous frame on frame size change
Fixes: Out of array access
Fixes: 13552/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_IMM4_fuzzer-5767949648920576

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-03-10 20:42:59 +01:00
Timo Rothenpieler
1144d5c96d avcodec/nvenc: add minimum driver version for SDK 8.2 and 9.0
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2019-03-10 00:25:31 +01:00
Martin Vignali
26cf50404d avcodec/proresenc_aw : fix interlace encoding for unsafe height
fix the call of the unsafe version of slice encoding in interlace mode
fix padding line count in sub image with fill in interlace mode
2019-03-09 20:46:50 +01:00
Michael Niedermayer
6e0b5d3a20 avcodec/dxv: Correct integer overflow in get_opcodes()
Fixes: 13099/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DXV_fuzzer-5665598896340992
Fixes: signed integer overflow: 2147483647 + 7 cannot be represented in type 'int'

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-03-09 15:33:53 +01:00
Paul B Mahol
0ce759defd avcodec/g723_1dec: actually decode second channel 2019-03-07 01:58:43 +01:00
Paul B Mahol
7b966af930 avcodec/imm4: fix artifacts on some files with special coding mode 2019-03-07 01:41:36 +01:00
Michael Niedermayer
53248acfb3 avcodec/scpr: Fix use of uninitialized variable
Fixes: Undefined shift
Fixes: 12911/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_SCPR_fuzzer-5677102915911680

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-03-06 23:40:47 +01:00
Paul B Mahol
93402561fd avcodec/imm4: add support for mid-stream size changes 2019-03-06 20:31:34 +01:00
Martin Vignali
88d0be1c0e avcodec/qtrle : improve 24bbp decoding speed
benchmark on x86_64 :
mainly raw data : 20 -> 39 fps
mainly rle data : 97 -> 119fps
2019-03-04 13:03:47 +01:00
Martin Vignali
3278ea67c8 avcodec/qtrle : 32bpp dec copy two raw argb value at the same time
benchmark on x86_64 :
38 fps -> 40 fps
2019-03-04 13:03:42 +01:00
Martin Vignali
5496a73488 avcodec/qtrle : avoid swap in 32bpp decoding on little endian
improve speed on little endian

benchmark on x86_64 :
mainly raw : 33fps -> 38fps
mainly rle : 128fps -> 153 fps
2019-03-04 13:03:39 +01:00
Jan Ekström
4635f64953 lavc/libx265: signal CPB properties through side data
This way values such as maxrate/bufsize can be utilized
further down the chain.
2019-03-03 23:42:27 +02:00
Paul B Mahol
17008a0107 avcodec/hcom: check that index into array is valid 2019-03-03 20:21:20 +01:00
Paul B Mahol
a367a932d3 avcodec/utils: remove commented out obsolete code 2019-03-03 18:43:22 +01:00
Michael Niedermayer
b819472995 avcodec/qpeg: Limit copy in qpeg_decode_intra() to the available bytes
Fixes: Timeout (27 sec -> 39 milli sec)
Fixes: 13151/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_QPEG_fuzzer-5717536023248896

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-03-03 13:17:02 +01:00
Michael Niedermayer
951bb7632f avcodec/aic: Check remaining bits in aic_decode_coeffs()
Fixes: Timeout (78 seconds -> 2 seconds)
Fixes: 13186/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_AIC_fuzzer-5639516533030912

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-03-03 13:17:02 +01:00
Michael Niedermayer
5cf42f65b6 avcodec/gdv: Check for truncated tags in decompress_5()
Testcase: 13169/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_GDV_fuzzer-5666354038833152

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-03-03 13:17:02 +01:00
Michael Niedermayer
b8ecadec05 avcodec/bethsoftvideo: Check block_type
Fixes: Timeout (17 seconds -> 1 second)
Fixes: 13184/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_BETHSOFTVID_fuzzer-5711446296494080

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-03-03 13:17:02 +01:00
Michael Niedermayer
1eb35eb50e avcodec/diracdec: Correct max pixels check
Dirac internally allocates 5 images per plane and frame currently. One being the actual
image the other 4 being filtered for motion compensation.

Fixes: Out of memory
Fixes: 12870/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DIRAC_fuzzer-5684825871089664

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-03-03 13:17:02 +01:00
Michael Niedermayer
4801eea0d4 avcodec/jpeg2000dwt: Fix integer overflow in dwt_decode97_int()
Fixes: runtime error: signed integer overflow: 2147483598 + 128 cannot be represented in type 'int'
Fixes: 12926/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_JPEG2000_fuzzer-5705100733972480

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-03-01 23:25:08 +01:00
Marton Balint
694d9d5368 avcodec/get_bits: add assertion to limit ouptut value of get_bits
Should fix the following Coverity false positives:

Coverity CID #1415651.
Coverity CID #1420392.
Coverity CID #1420473.
Coverity CID #1433770.
Coverity CID #1435320.
Coverity CID #1439573.
Coverity CID #1439580.
Coverity CID #1439588.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-03-01 22:33:58 +01:00
Marton Balint
902e9334aa avcodec/get_bits: use unsigned integers in show_bits and get_bits
The return value is also unsigned.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-03-01 22:33:55 +01:00
Marton Balint
9f8854cb5a avcodec/avpacket: add some assertions to ensure pkt->data is not null if pkt->size > 0
This should fix the following Coverity false positives:

Coverity CID #1405450.
Coverity CID #1430930.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-03-01 22:32:32 +01:00
Martin Vignali
a3f65f5e9f avcodec/proresenc_aw : fix sub_image_with_fill for interlaced encoding
used when width and/or height, not multiple of sclice dim
2019-02-27 17:59:48 +01:00
gxw
4571c7c05d avcodec/mips: [loongson] mmi optimizations for VP9 put and avg functions
VP9 decoding speed improved about 60.5%(from 38fps to 61fps, tested on loongson 3A3000).

Reviewed-by: Shiyou Yin <yinshiyou-hf@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-02-27 01:51:40 +01:00
Mark Thompson
f948082e5f vaapi_encode_mpeg2: Add missing marker bit in time_code
We don't have anything useful to put in this field, but there is still
meant to be a marker bit in the middle of it.
2019-02-25 23:34:14 +00:00
Mark Thompson
fda6dcd0b0 vaapi_encode_mjpeg: Use common quality option
Doesn't change anything, but makes the behaviour better match that of the
other codecs (the CONSTANT_QUALITY_ONLY flag already ensures that CQP is
the only RC mode selectable for MJPEG).
2019-02-25 23:34:14 +00:00
Mark Thompson
c4c2c4df76 vaapi_encode_vp9: Fix whitespace after previous patch 2019-02-25 23:34:14 +00:00
Mark Thompson
28e619e268 vaapi_encode_vp9: Enable support for more RC modes 2019-02-25 23:34:14 +00:00
Mark Thompson
2efd63a315 vaapi_encode_vp8: Enable support for more RC modes 2019-02-25 23:34:14 +00:00
Mark Thompson
1e0fac7663 vaapi_encode_mpeg2: Enable support for more RC modes
Fixes #7650.
2019-02-25 23:33:59 +00:00
Mark Thompson
d237b6b549 vaapi_encode_h265: Enable support for more RC modes
Also fixes QP going out of range when modified by the quant factor/offset
values, and clarifies the QP behaviour for >8-bit modes.
2019-02-25 23:32:23 +00:00
Mark Thompson
f5eb08937e vaapi_encode_h264: Enable support for more RC modes
Also fixes QP going out of range when modified by the quant factor/offset
values.
2019-02-25 23:32:23 +00:00
Mark Thompson
f4d7bd6cdb vaapi_encode: Support more RC modes
Allow setting the mode explicitly, and try to make a sensible choice
given the available parameters if not.
2019-02-25 23:32:23 +00:00
Mark Thompson
9d5ca71ec2 vaapi_encode: Do not zero access unit structures
Following b8c45bbcbc they contain allocated
unit arrays which will get leaked.  These operations were inconsistently
applied and never actually needed (the old uninit left them in the correct
state), so just drop them entirely.
2019-02-25 23:27:11 +00:00
Andreas Rheinhardt
b8c45bbcbc libavcodec/cbs: Stop needlessly reallocating the units array
Currently, a fragment's unit array is constantly reallocated during
splitting of a packet. This commit changes this: One can keep the units
array by distinguishing between the number of allocated and the number
of valid units in the units array.

The more units a packet is split into, the bigger the benefit.
So MPEG-2 benefits the most; for a video coming from an NTSC-DVD
(usually 32 units per frame) the average cost of cbs_insert_unit (for a
single unit) went down from 6717 decicycles to 450 decicycles (based
upon 10 runs with 4194304 runs each); if each packet consists of only
one unit, it went down from 2425 to 448; for a H.264 video where most
packets contain nine units, it went from 4431 to 450.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@googlemail.com>
2019-02-25 21:40:13 +00:00
Andreas Rheinhardt
c5b452ed2f filter_units, trace_headers: Always use fragment from context
This is in preparation for another patch that will stop needless
reallocations of the unit array.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@googlemail.com>
2019-02-25 20:38:57 +00:00
Michael Niedermayer
976dae8b32 avcodec/wcmv: Avoid copying frames if they are unchanged
Improves speed of the testcase by about a factor of 10

Fixes: Timeout
Fixes: 13132/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WCMV_fuzzer-5664190616829952

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-02-25 18:03:24 +01:00
Michael Niedermayer
286a33e429 avcodec/wcmv: Copy/Init frame later
Speeds up error cases
Fixes: 13132/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WCMV_fuzzer-5664190616829952

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-02-25 18:03:24 +01:00
Michael Niedermayer
e4289cb253 avcodec/error_resilience: Use a symmetric check for skipping MV estimation
This speeds up the testcase by a factor of 4

Fixes: Timeout
Fixes: 13100/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WMV2_fuzzer-5767533905313792

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-02-25 18:03:24 +01:00
Michael Niedermayer
32d022d26d avcodec/mjpegdec: Fix stereo3d memleak
Fixes: 12937/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_THP_fuzzer-5714945346371584

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-02-25 18:03:24 +01:00
Michael Niedermayer
160851bcee avcodec/arbc: Check nb_tiles against dimensions
Fixes: Timeout
Fixes: 12967/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_ARBC_fuzzer-5639021454163968

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-02-25 18:03:24 +01:00
Michael Niedermayer
fc32e08941 avcodec/mlpdec: Insuffient typo
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-02-23 22:48:35 +01:00
Michael Niedermayer
3f68948cb3 avcodec/pnm: Avoid structure pointer dereferences in inner loop in pnm_get()
Improves speed from 5.4 to 4.2 seconds
Fixes: 13149/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_PGM_fuzzer-5760833622114304
Fixes: 13166/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_PGMYUV_fuzzer-5763216322330624

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Lauri Kasanen <cand@gmx.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-02-23 22:48:35 +01:00
Michael Niedermayer
177b40890c avcodec/zmbv: obtain frame later
The frame is not needed that early so obtaining it later avoids
the costly operation in case other checks fail.

Fixes: Timeout (14sec -> 4sec)
Fixes: 13140/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_ZMBV_fuzzer-5738330308739072

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Tomas Härdin <tjoppen@acc.umu.se>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-02-23 22:48:35 +01:00
Michael Niedermayer
61523683c5 avcodec/jvdec: Check available input space before decode8x8()
Fixes: Timeout (78 sec -> 15 millisec)
Fixes: 13147/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_JV_fuzzer-5727107827630080

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-02-23 22:48:35 +01:00
Martin Vignali
37e4c226c0 avcodec/proresenc_aw : indent after prev commit 2019-02-23 13:21:38 +01:00
Martin Vignali
132ed206d6 avcodec/proresenc_aw : add interlace encoding 2019-02-23 13:21:33 +01:00
Martin Vignali
e7cbbb7374 avcodec/proresenc_aw : merge funcs subimage_with_fill and subimage_alpha_with_fill 2019-02-23 13:21:29 +01:00
Martin Vignali
8a4a952e45 avcodec/proresenc_aw : move scantable to prores context 2019-02-23 13:21:25 +01:00