Commit graph

40845 commits

Author SHA1 Message Date
Derek Buitenhuis
b1504e7796 h264_slice: Copy the value of x264_build before calling h264_slice_header_init during thread init
If we don't copy this value first, it is seen as 0 by h264_slice_header_init,
due to zero-allocation of the new context, triggering an old hack that
multiplied the denominator by 2 for files produced by old x264 versions, but
only if more than one thread was used.

Fixes #7475 and #7083.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2018-10-09 15:05:44 +01:00
Michael Niedermayer
fd3eda4030 avcodec/speedhq: Make speedhq_vlc const
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-10-07 03:03:09 +02:00
Michael Niedermayer
1fc3d8ee00 avcodec/vc1_loopfilter: Fix colums typos
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-10-07 03:03:09 +02:00
Michael Niedermayer
1a7a17fb75 libavcodec/v4l2_buffers.h: fix cant typos
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-10-07 03:03:09 +02:00
Michael Niedermayer
ad89e203bf avcodec/unary: Improve get_unary() docs
Found-by: kierank
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-10-07 03:03:09 +02:00
Mark Thompson
6ff4473012 av1_metadata: Fix constraint on setting chroma_sample_position
It can't be set for 4:2:2 streams.
2018-10-06 12:51:46 +01:00
James Almer
e08a876e67 avcodec/libaomdec: remove bogus comment
It's a remnant from libvpx that's not valid for libaom.

Signed-off-by: James Almer <jamrial@gmail.com>
2018-10-04 15:44:15 -03:00
James Almer
ebc3d04b8d avcodec: add an AV1 parser
Simple parser to set keyframes, frame type, structure, width, height, and pixel
format, plus stream profile and level.

Reviewed-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: James Almer <jamrial@gmail.com>
2018-10-03 20:48:49 -03:00
James Almer
af2acbd23f avcodec/av1_metadata: add an option to insert and remove Temporal Delimiter OBUs
Reviewed-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: James Almer <jamrial@gmail.com>
2018-10-03 20:17:14 -03:00
Michael Niedermayer
f515c978f6 avcodec/rasc: unref both frames on reinit
Fixes: integer overflow
Fixes: inconsistent frame dimensions
Fixes: 10454/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_RASC_fuzzer-5656301162463232

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>
2018-10-03 11:14:40 +02:00
Michael Niedermayer
9a9034958a avcodec/rasc: Fix off by 1 error in vertical coordinate
Fixes: out of array read
Fixes: 10311/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_RASC_fuzzer-4856330905452544

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>
2018-10-03 11:14:17 +02:00
Michael Niedermayer
c905840e8c avcodec/tiff: check remaining packet size for strips
Fixes: Timeout
Fixes: 10280/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_TIFF_fuzzer-5676217211027456

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>
2018-10-03 11:13:38 +02:00
Michael Niedermayer
d702769213 avcodec/scpr: Skip frames which change nothing
Fixes: Timeout
Fixes: 10292/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_SCPR_fuzzer-5687943864254464

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-09-30 22:23:02 +02:00
Michael Niedermayer
a8a98ba9ee avcodec/wcmv: Fix integer overflows
Fixes: signed integer overflow: 262140 * 65535 cannot be represented in type 'int'
Fixes: 10090/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WCMV_fuzzer-5691269368512512

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-09-30 22:23:02 +02:00
Michael Niedermayer
2076e11839 avcodec/gdv: Remove unused variable
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-09-30 22:23:02 +02:00
Michael Niedermayer
449b1dcd7d avcodec/hevc_parser: very minor simplification in hevc_parse()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-09-30 20:08:21 +02:00
Haihao Xiang
4c14a25281 lavc/hevc: Don't parse NAL unit for a dummy buffer
hevc parser mistakenly reports the following message if a dummy buffer
is padded for EOF

   [hevc @ 0x559b63848610] missing picture in access unit

Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
Reviewed-by: Steven Liu <lq@chinaffmpeg.org>
Reviewed-by: "Li, Zhong" <zhong.li@intel.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-09-30 20:08:21 +02:00
Marton Balint
b577153231 avcodec/libzvbi-teletextdec: add formatted ass output
Inspired by the VideoLAN text decoder and its port to FFmpeg made by Aman
Gupta.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-09-30 01:10:23 +02:00
Michael Niedermayer
179ed2d2e0 avcodec/diracdec: check that GetBitContext has not ended in codeblock()
Fixes: Timeout (part 2 of 2)
Fixes: 9774/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DIRAC_fuzzer-5748957085958144

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-09-28 01:35:12 +02:00
Michael Niedermayer
7274d849cc avcodec/diracdec: Propagate errors from codeblock()
Consider a component to be damaged if more than 50% of its subbands are damaged

Fixes: Timeout (part 1 of 2)
Fixes: 9774/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DIRAC_fuzzer-5748957085958144

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-09-28 01:35:09 +02:00
Michael Niedermayer
db6af88cd0 avcodec/bintext: Use ff_get_buffer instead of ff_reget_buffer and simplify
reget seems unneeded and it is slower

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-09-28 01:33:48 +02:00
Michael Niedermayer
8db9097308 avcodec/bintext: Check input size before allocating the input image
Fixes: Timeout
Fixes: 9795/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_XBIN_fuzzer-5768631928487936

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-09-28 01:33:42 +02:00
Michael Niedermayer
35517e3ca7 avcodec/gdv: Error out if we had insufficent input for the output frame in decompress_2()
Fixes: Timeout (with the previous commits to gdv.c)
Fixes: 9422/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_GDV_fuzzer-5143490001371136

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-09-28 01:25:17 +02:00
Michael Niedermayer
510bd61941 avcodec/gdv: Optimize 2x scaling loop a little in gdv_decode_frame()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-09-28 01:25:17 +02:00
Michael Niedermayer
6a4788e7b3 avcodec/gdv: Replace loop in gdv_decode_frame() by memcpy()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-09-28 01:25:17 +02:00
Michael Niedermayer
5f84fbce08 avcodec/gdv: Eliminate 50% of the reads in the first inner loop in rescale()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-09-28 01:25:17 +02:00
Michael Niedermayer
d021729efc avcodec/gdv: Simplify first inner loop in rescale()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-09-28 01:25:17 +02:00
Michael Niedermayer
6228ce0a33 avcodec/gdv: Combine first and 3rd case in rescale()
Simplifies code

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-09-28 01:25:17 +02:00
Michael Niedermayer
a423970511 avcodec/gdv: Factor terms out of inner loops in rescale()
This also replaces some loops by memcpy()

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-09-28 01:25:17 +02:00
Michael Niedermayer
b90d8cc746 avcodec/gdv: Replace divisions by shifts in rescale()
Divisions tend to be slower than shifts unless the compiler optimizes them out.
And some of these are in inner loops.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-09-28 01:25:17 +02:00
Mark Thompson
476a77128a lavc: Add AV1 metadata bitstream filter
Can adjust colour and timing information.
2018-09-26 23:41:34 +01:00
Mark Thompson
c8c81ac502 lavc: Add coded bitstream read/write support for AV1 2018-09-26 23:27:53 +01:00
Mark Thompson
74b4134d2f vaapi_encode_h265: Add missing error return
Fixes CID #1439657.
2018-09-24 23:09:45 +01:00
Mark Thompson
1215fbad96 lavc/h265_profile_level: Fix level guessing with no PTL structure
Fixes CID #1439661.
2018-09-24 23:09:45 +01:00
Mark Thompson
feb1cf08ab lavc/h265_profile_level: Avoid integer overflow in bitrate
Fixes CIDs #1439659 and #1439660.
2018-09-24 23:09:45 +01:00
Mark Thompson
321294adb7 h264_metadata: Avoid integer overflow in bitrate
Fixes CID #1439664.
2018-09-24 23:09:32 +01:00
Mark Thompson
581b4125aa lavc/h264_levels: Avoid integer overflow in bitrate
Fixes CID #1439656.
2018-09-24 23:08:45 +01:00
Paul B Mahol
8d29930767 avcodec/ilbcdec: fix typo, fixes CID 1439653 2018-09-24 09:20:31 +02:00
Michael Niedermayer
0f36ad514c avcodec/prosumer: Check remaining space in put byte context
Fixes: Timeout
Fixes: 10053/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_PROSUMER_fuzzer-5636993883570176

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>
2018-09-24 00:49:30 +02:00
Michael Niedermayer
3b5945b146 avcodec/prosumer: Remove unused table element
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-09-24 00:49:30 +02:00
Michael Niedermayer
52b909b5c1 avcodec/prosumer: remove unneeded variable from vertical_predict
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-09-24 00:49:30 +02:00
Michael Niedermayer
093607f0cd avcodec/prosumer: Rename do_shift() to vertical_predict()
It seems what this function does is a vertical prediction filter, thus
the new name should improve understanding.

rename the related table_b too

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-09-24 00:49:30 +02:00
Michael Niedermayer
0cd22fd752 avcodec/prosumer: mark src as const
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-09-24 00:49:30 +02:00
Michael Niedermayer
3c9ebcbc4d avcodec/prosumer: Only scan as many elements as matter in fill_elements()
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-09-24 00:49:30 +02:00
Michael Niedermayer
fa1d3caef0 avcodec/prosumer: factorize e0 setting out
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-09-24 00:49:30 +02:00
Michael Niedermayer
e97951f458 avcodec/prosumer: Use 16bit instead of 32 for table
Simplifies code and reduces needed memory

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-09-24 00:49:30 +02:00
Michael Niedermayer
d3a9cb6bc8 avcodec/prosumer: Factorize the 2 loops in fill_elements()
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-09-24 00:49:30 +02:00
Michael Niedermayer
f24701b073 avcodec/prosumer: clean up loop end code in fill_elements()
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-09-24 00:49:30 +02:00
Michael Niedermayer
674727291b avcodec/prosumer: Remove dead code
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-09-24 00:49:30 +02:00
Linjie Fu
0f9b298242 avcodec/vaapi: free slice_buffers when decoding failed
If vaEndPicture() failed in ff_vaapi_decode_issue(), free
the pic->slice_buffers.

Fixes the memory leak issue in ticket #7385

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
2018-09-23 17:46:37 +01:00