Michael Niedermayer
ec3adb45b5
avcodec/pnm: Optimize reading loop in pnm_get()
...
Fixes: Timeout 13149 (5sec -> 3sec), 13166 (11sec -> 7sec), 13430 (5sec -> 3sec)
Fixes: 13149/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_PGM_fuzzer-5760833622114304
Fixes: 13166/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_PGMYUV_fuzzer-5763216322330624
Fixes: 13430/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_PPM_fuzzer-5758658334425088
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-17 11:35:00 +01:00
Michael Niedermayer
5de8ca0c67
avcodec/dfa: Check the chunk header is not truncated
...
Fixes: Timeout (11sec -> 3sec)
Fixes: 13218/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DFA_fuzzer-5661074316066816
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-17 11:35:00 +01:00
Michael Niedermayer
39dcd93733
avcodec/clearvideo: Check remaining data in P frames
...
Fixes: Timeout (19sec -> 419msec)
Fixes: 13411/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_CLEARVIDEO_fuzzer-5733153811988480
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-17 11:35:00 +01:00
Michael Niedermayer
3477bbb041
avcodec/diracdec: Count truncated parts as errors in decode_component()
...
Fixes: Timeout (29sec -> 4sec)
Fixes: 13150/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DIRAC_fuzzer-5690185671507968
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-17 11:35:00 +01:00
Michael Niedermayer
4301081165
avcodec/ffv1dec_template: Optimize golomb run mode
...
Fixes: Timeout (34sec -> 12sec)
Fixes: 13398/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_FFV1_fuzzer-5664106709778432
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-17 11:35:00 +01:00
Mathieu Duponchelle
d8b6620eb5
mpeg12enc: Use Closed Captions if available
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-03-16 00:02:23 +01:00
Carl Eugen Hoyos
47b182e59a
lavc/qtrle: Do not use aligned writes for 24bit frames.
...
pixel_ptr is 3 and leads to aligned access on odd memory addresses.
Fixes crashes on systems that do not allow unaligned access like sparc32.
2019-03-15 01:09:02 +01:00
James Almer
f04b4d0914
Merge commit '6876741588f5d44001b58de21d7ea4870298f9a7'
...
* commit '6876741588f5d44001b58de21d7ea4870298f9a7':
h264/arm64: implement missing 4:2:2 chroma loop filter neon functions
Merged-by: James Almer <jamrial@gmail.com >
2019-03-14 16:29:41 -03:00
James Almer
8c6bf15b78
Merge commit '4e1ad744b38e545d408efb33a666df51b23f9eb8'
...
* commit '4e1ad744b38e545d408efb33a666df51b23f9eb8':
aarch64: vp8: Optimize vp8_idct_add_neon for aarch64
Merged-by: James Almer <jamrial@gmail.com >
2019-03-14 16:22:29 -03:00
James Almer
71ed643345
Merge commit 'b222fa04c5a75793b7d9747e5cac52b50b2a6b84'
...
* commit 'b222fa04c5a75793b7d9747e5cac52b50b2a6b84':
aarch64: vp8: Skip saturating in shrn in ff_vp8_idct_add_neon
Merged-by: James Almer <jamrial@gmail.com >
2019-03-14 16:21:46 -03:00
James Almer
34ba2e89de
Merge commit 'c2b765b295c7e26bd60df2787753a7063e117e2a'
...
* commit 'c2b765b295c7e26bd60df2787753a7063e117e2a':
aarch64: vp8: Optimize put_epel16_h6v6 with vp8_epel8_v6_y2
Merged-by: James Almer <jamrial@gmail.com >
2019-03-14 16:20:05 -03:00
James Almer
ca5df1b6dc
Merge commit '75387f58390d7e223fe96b69cd9c5b964705132a'
...
* commit '75387f58390d7e223fe96b69cd9c5b964705132a':
arm: vp8: Optimize put_epel16_h6v6 with vp8_epel8_v6_y2
Merged-by: James Almer <jamrial@gmail.com >
2019-03-14 16:19:41 -03:00
James Almer
15271157f3
Merge commit 'd6fd6b78fcf3578c444012541d6db3c8660d1029'
...
* commit 'd6fd6b78fcf3578c444012541d6db3c8660d1029':
aarch64: vp8: Port bilin functions from arm version
Merged-by: James Almer <jamrial@gmail.com >
2019-03-14 16:18:42 -03:00
James Almer
166bfa7eda
Merge commit '7bebf58e1b1ee5f48e88a7d688b33f84e2b93007'
...
* commit '7bebf58e1b1ee5f48e88a7d688b33f84e2b93007':
aarch64: vp8: Port epel4 functions from arm version
Merged-by: James Almer <jamrial@gmail.com >
2019-03-14 16:17:33 -03:00
James Almer
3a9b96634b
Merge commit 'fc07dba659c5773b69d37040d200684aa6e1843e'
...
* commit 'fc07dba659c5773b69d37040d200684aa6e1843e':
aarch64: vp8: Port missing epel8 functions from arm version
Merged-by: James Almer <jamrial@gmail.com >
2019-03-14 16:16:43 -03:00
James Almer
d6c731faf7
Merge commit '63ad711e0d4c09bd7b8a623275f6ec961586d5a1'
...
* commit '63ad711e0d4c09bd7b8a623275f6ec961586d5a1':
aarch64: vp8: Port vp8_luma_dc_wht and vp8_idct_dc_add4uv from arm version
Merged-by: James Almer <jamrial@gmail.com >
2019-03-14 16:14:40 -03:00
James Almer
4784a50db5
Merge commit 'e883d2a1a86af23a4ff61ea0fdf3100a9489be6d'
...
* commit 'e883d2a1a86af23a4ff61ea0fdf3100a9489be6d':
aarch64: vp8: Fix a typo in a comment
Merged-by: James Almer <jamrial@gmail.com >
2019-03-14 16:13:32 -03:00
James Almer
eae18ef8ce
Merge commit '89c0f3d874a0bb104ffe11773c3da3ebec99e101'
...
* commit '89c0f3d874a0bb104ffe11773c3da3ebec99e101':
aarch64: vp8: Reorder the function pointer inits to match the arm original
Merged-by: James Almer <jamrial@gmail.com >
2019-03-14 16:09:11 -03:00
James Almer
3e6d475d16
Merge commit 'c210fa96c6744cb7373835a723ac86ab0cce1d12'
...
* commit 'c210fa96c6744cb7373835a723ac86ab0cce1d12':
aarch64: vp8: Use the proper aarch64 form for conditional branches
Merged-by: James Almer <jamrial@gmail.com >
2019-03-14 16:06:43 -03:00
James Almer
e13fc2068d
Merge commit 'b635499632d8ea1f4a6eb51bf37b4f2316882611'
...
* commit 'b635499632d8ea1f4a6eb51bf37b4f2316882611':
libavcodec: vp8 neon optimizations for aarch64
See b56d83f182
Merged-by: James Almer <jamrial@gmail.com >
2019-03-14 16:05:52 -03:00
Michael Niedermayer
bc3ad25cd4
avcodec/dvbsubdec: Check object position
...
Reference: ETSI EN 300 743 V1.2.1 7.2.2 Region composition segment
Fixes: Timeout
Fixes: 13325/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DVBSUB_fuzzer-5143979392237568
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-14 16:24:35 +01:00
Michael Niedermayer
aa3775117a
avcodec/cdgraphics: Use ff_set_dimensions()
...
Fixes: Timeout (17 sec -> 65 milli sec)
Fixes: 13264/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_CDGRAPHICS_fuzzer-5711167941509120
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-14 16:24:35 +01:00
Matthew Fearnley
2a4beef939
libavcodec/zmbvenc: Add support for RGB formats
...
This consists mostly of the following changes:
- add newly supported pixel formats (RGB555LE, RGB565LE, BGR0)
- select the ZMBV format (c->fmt) and bytes per pixel (c->bypp) based on
avctx->pix_fmt
- multiply widths/x-values by c->bypp, in places where bytes, not pixels, are
expected
- disable palette-writing code for non-palette pix_fmts
- make a note about histogram[]'s datatype (it could need increasing if
ZMBV_BLOCK is increased)
- adjust the c->score_tab length to take up to (and including) 4 times the
number of pixels in a block
- initialise c->score_tab up to c->bypp * the number of pixels
Note: the ZmbvFormat enum allows for additional bit depths:
- 1,2,4-bit (palette)
- 24-bit (RGB)
At time of writing the specifics of these (e.g. channel order, bit alignment)
are not currently defined, and DOSBox only implements support for 8/15/16/32
bpp.
One might expect the 24-bit format - if implemented - to be BGR24, to have the
same channel order as BGR0.
However, the decoder in zmbv.c has been guessed to use RGB24, so I have chosen
to not contradict this, and omitted specific support for this format.
2019-03-14 11:04:47 +01:00
James Almer
3fd13fe405
avcodec/libdav1d: unref the frame on failure
...
Signed-off-by: James Almer <jamrial@gmail.com >
2019-03-12 19:45:10 -03:00
Vittorio Giovara
9338082744
libdav1d: Add support for reading hdr10 metadata
...
Signed-off-by: James Almer <jamrial@gmail.com >
2019-03-12 19:36:30 -03:00
James Almer
4c2011b906
avcodec/libdav1d: consistently use AVERROR return values
...
Signed-off-by: James Almer <jamrial@gmail.com >
2019-03-12 19:18:14 -03:00
James Almer
381e678b91
avcodec/libdav1d: use a custom picture allocator
...
Replaces the libdav1d internal allocator. It uses an AVBufferPool to reduce the
amount of allocated buffers.
About 5% speed up when decoding 720p or higher streams.
Reviewed-by: "Vittorio Giovara <vittorio.giovara@gmail.com >"
Signed-off-by: James Almer <jamrial@gmail.com >
2019-03-12 19:17:45 -03:00
James Almer
dad5d48b9f
avcodec/libdav1d: move the pix_fmt enum array up in the file
...
This is in preparation for the following commit.
Signed-off-by: James Almer <jamrial@gmail.com >
2019-03-12 19:09:43 -03:00
James Almer
241ac63bc5
avcodec/libdav1d: route dav1d internal logs through av_log()
...
Bump the minimum required version to the first one with the logger API callback.
Reviewed-by: Vittorio Giovara <vittorio.giovara@gmail.com >
Signed-off-by: James Almer <jamrial@gmail.com >
2019-03-12 19:07:50 -03:00
Michael Niedermayer
92b0e993a8
avcodec/mpeg4videodec: Check idx in mpeg4_decode_studio_block()
...
Fixes: Out of array access
Fixes: 13500/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MPEG4_fuzzer-5769760178962432
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Kieran Kunhya <kierank@obe.tv >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-03-12 00:48:56 +01:00
Andreas Rheinhardt
5453341eb3
avcodec/mpeg4videodec: Fix nonsense warning
...
Since 8cccf95860 parsing of
mpeg4-extradata lead to a "Failed to parse extradata" warning, because
ff_mpeg4_decode_picture_header returns AVERROR_INVALIDDATA in case that
no VOP was found. This patch adds a parameter to signify whether a
header (where the absence of a VOP does not raise an error) or not is
parsed. The first mode is of course used for parsing headers.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@googlemail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-03-12 00:48:56 +01:00
Michael Niedermayer
4c547fd5e8
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
9329850a59
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
df0c7c2d97
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
adcf21886c
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
d615d11e73
avcodec/g723_1dec: actually decode second channel
2019-03-07 01:58:43 +01:00
Paul B Mahol
7aa0246e96
avcodec/imm4: fix artifacts on some files with special coding mode
2019-03-07 01:41:36 +01:00
Michael Niedermayer
f8df472d40
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
eb5fd1fb16
avcodec/imm4: add support for mid-stream size changes
2019-03-06 20:31:34 +01:00
Martin Vignali
3713454184
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
43e4cbf90c
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
fd2bfcf419
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
6ff3ef1d2c
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
5a2216bbe0
avcodec/hcom: check that index into array is valid
2019-03-03 20:21:20 +01:00
Paul B Mahol
769ed7c34f
avcodec/utils: remove commented out obsolete code
2019-03-03 18:43:22 +01:00
Michael Niedermayer
0fedbf1739
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
809f4617e8
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
f982ae4337
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
9756893965
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
c0b62acbcc
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