Commit graph

41604 commits

Author SHA1 Message Date
James Almer
f78172b29a avcodec/libdav1d: add support for RGB streams
Signed-off-by: James Almer <jamrial@gmail.com>
2019-05-27 13:21:52 -03:00
James Almer
254da41531 avcodec/libdav1d: assert Dav1dPicture allocator_data is set before referencing its data
To ensure the custom allocator is effectively used.

Signed-off-by: James Almer <jamrial@gmail.com>
2019-05-27 12:49:01 -03:00
James Almer
0e07b767c8 avcodec/libdav1d: export level from the Sequence Header
Signed-off-by: James Almer <jamrial@gmail.com>
2019-05-27 12:47:33 -03:00
Shiyou Yin
6b67daa326 avcodec/mips: [loongson] fix mpeg4 decoding error on loongson platform.
In function ff_dct_unquantize_mpeg2_intra_mmi,
addr0 shoudn't be changed before storage operation.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-05-26 21:04:18 +02:00
Derek Buitenhuis
80757bed89 avcodec/libx265: Support full range videos
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2019-05-26 12:04:46 +01:00
Michael Niedermayer
4fd74a2b10 avcodec/pngdec: Check nb_blocks
Fixes: Timeout (23sec -> 0.5sec)
Fixes: 14329/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_LSCR_fuzzer-5679252923482112

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-05-25 02:04:43 +02:00
Marton Balint
f811ac5228 avcodec/scpr3: fix checking ret value of decode_run_i
Fixes Coverity CID 1441461.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-05-24 21:39:07 +02:00
Marton Balint
1b4f74ffe2 avcodec/scpr: fix checking ret value of decode_run_i
Fixes Coverity CID 1441460.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-05-24 21:39:07 +02:00
Linjie Fu
8f6e651833 lavc/qsvenc: Fix the memory leak for enc_ctrl.Payload
frame->enc_ctrl.Payload is malloced in get_free_frame, directly memset
the whole structure of enc_ctrl to zero will cause the memory leak for
enc_ctrl.Payload.

frame->enc_ctrl as a structure will be malloc and init to zero by calling
frame = av_mallocz(sizeof(*frame)), so the memset is redundant and can
be removed.

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
Signed-off-by: Zhong Li <zhong.li@intel.com>
2019-05-22 22:16:21 +08:00
Fu Linjie
154a730bdc lavc/vp9_superframe_bsf: avoid error messages in one line
Add "\n" to avoid continuous error messages in one line.

Signed-off-by: Fu Linjie <linjie.fu@intel.com>
2019-05-21 00:07:13 +01:00
James Almer
fbc5a27694 avcodec/libdav1d: fine tune thread distribution
As suggested by Ronald, don't map auto threads to frame threads only, and
instead distribute them between frame and tile more efficiently.
Add a new framethreads override option, similar to the tilethreads one.

Signed-off-by: James Almer <jamrial@gmail.com>
2019-05-20 16:20:04 -03:00
Michael Niedermayer
3c0bfa7d1a avcodec/cpia: Check input size also against linesizes and EOL
Fixes: Timeout (14sec -> 29ms)
Fixes: 14733/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_CPIA_fuzzer-5707022445576192

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Carl Eugen Hoyos <ceffmpeg@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-05-20 18:10:54 +02:00
Michael Niedermayer
fbdb3aa179 avcodec/v210dec: Fix alignment check for AVX2
Fixes: "null pointer dereference" (actually misaligned access but the tools seem not to support this)
Fixes: 14551/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_V210_fuzzer-5088609952071680

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-05-19 10:47:09 +02:00
James Almer
3f31726994 avcodec/options: remove dead test code
It's been unused since 5d48e4eafa.

Signed-off-by: James Almer <jamrial@gmail.com>
2019-05-17 12:48:24 -03:00
Lynne
f62ee527cb aarch64/asm-offsets: remove old CELT offsets
They're not used and they're incorrect.
2019-05-14 23:41:24 +01:00
James Almer
58d167bcd5 avcodec/Makefile: add missing pngdsp dependency to the lscr decoder
Signed-off-by: James Almer <jamrial@gmail.com>
2019-05-14 16:47:56 -03:00
Michael Niedermayer
87a54e150e avcodec/cinepak: Check available input against encoded buffer size
Fixes: Timeout (12sec -> 2sec)
Fixes: 14606/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_CINEPAK_fuzzer-5738687561728000

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-05-14 12:06:26 +02:00
Rick Kern
98478c05ed lavc/videotoolboxenc: Add support for 10-bit HEVC encoding.
Hardware-accelerated encoding may not support 10-bit encoding. Use
'-require_sw 1' in this case.

Fixes: #7581

Signed-off-by: Rick Kern <kernrj@gmail.com>
2019-05-12 16:30:11 -04:00
Rick Kern
714c8b0766 lavc/videotoolboxenc: simplify frame creation logic between OS X and iOS.
Signed-off-by: Rick Kern <kernrj@gmail.com>
2019-05-12 16:22:51 -04:00
Rick Kern
247bda442f lavc/videotoolboxenc: add require_sw option to force software encoding.
Signed-off-by: Rick Kern <kernrj@gmail.com>
2019-05-12 16:22:51 -04:00
Michael Niedermayer
7c6f2bfdb2 avcodec/h264_ps: Check offset_for_non_ref_pic, offset_for_top_to_bottom_field and offset_for_ref_frame
Fixes: signed integer overflow: -2147483648 + -1 cannot be represented in type 'int'
Fixes: 14444/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_H264_fuzzer-5675880333967360

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-05-12 16:32:16 +02:00
Michael Niedermayer
407e7c34ca avcodec/hq_hqa: Check available space before reading slice offsets
Fixes: Timeout (43sec -> 18sec)
Fixes: 14556/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_HQ_HQA_fuzzer-5673543024508928

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-05-12 16:31:39 +02:00
Michael Niedermayer
e5ce105149 avcodec/wmv2dec: Check input bits vs. coded MBs
Fixes: Timeout (94sec ->8sec)
Fixes: 14387/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WMV2_fuzzer-5723546887651328

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-05-12 16:31:39 +02:00
Jun Zhao
1cc7e2630f lavc/pngenc: check malloc fail before using the pointer
Need to check malloc fail before using the pointer

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-05-12 14:18:25 +08:00
Jun Zhao
64e610b5f4 lavc/mlpenc: remove the redundant condition check
remove the redundant condition check for 'frame'

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-05-12 14:18:08 +08:00
Jun Zhao
f82a02aa89 lavc/libvpxenc: remove redundant condition check
Redundant condition: '!A || B' is equivalent to '!A || (A && B)' but
more clearly.

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-05-12 14:17:52 +08:00
Jun Zhao
3af73f2c85 lavc/bink: Remove the dead code block
Remove the dead code block

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-05-12 14:17:35 +08:00
Jun Zhao
00555f4b8b lavc/avpacket: check NULL before using the pointer
Need to check NULL before using the pointer

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-05-12 14:17:22 +08:00
Jun Zhao
014b0e5092 lavc/aacenc_ltp: remove unnecessary condition check.
Condition 'sum==2' is always true, so remove the check logic to
make the code clean.

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-05-12 14:17:10 +08:00
Paul B Mahol
c81ec19817 avcodec/gif: remove flags from gifimage option
It does not belong there.
2019-05-11 16:42:13 +02:00
Jacob Graff
0158dd14a3 avcodec/gif: fix issues with transparent crop
Resolves issues with some transparent gifs.
2019-05-11 16:42:13 +02:00
Jun Zhao
68bac50604 lavc/libx265: Use avctx->framerate first for frame rate setting
perfer avctx->framerate first than use avctx->time_base when setting
the frame rate to encoder. 1/time_base is not the average frame rate
if the frame rate is not constant, so use avctx->framerate if the
value is not zero.

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-05-11 00:10:55 +08:00
Jun Zhao
1e6338c2da lavc/libx264: Use avctx->framerate first for frame rate setting
perfer avctx->framerate first than use avctx->time_base when setting
the frame rate to encoder. 1/time_base is not the average frame rate
if the frame rate is not constant. In this case, we need to setting
avctx->framerate and avctx->time_base both, but avctx->framerate not
equal to 1/(avctx->time_base).

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-05-11 00:10:44 +08:00
Michael Niedermayer
17f91c07ef avcodec/prosumer: Only memset(0) what is needed.
Fixes: Timeout (11sec -> 0.08sec)
Fixes: 14406/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_PROSUMER_fuzzer-5151210148986880

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-05-09 22:07:26 +02:00
Michael Niedermayer
c7f95d2bd9 avcodec/fic: Check input size against minimal frame size
Fixes: Timeout (22sec ->54ms)
Fixes: 14439/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_FIC_fuzzer-5660988231122944

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-05-09 22:07:26 +02:00
Michael Niedermayer
8d77debf7d avcodec/pafvideo: Check input space for decode_0() before slow operations
Fixes: Timeout (11sec -> 2sec)
Fixes: 14403/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_PAF_VIDEO_fuzzer-5697465698746368

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-05-09 22:04:14 +02:00
Michael Niedermayer
6dd8420290 avcodec/scpr: check remaining data after decode
Fixes Timeout (29sec -> 14sec)
Fixes: 13713/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_SCPR_fuzzer-5756778069884928

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-05-09 22:03:53 +02:00
Ruta Gadkari
80155795bb avcodec/cuviddec: add capability check for maximum macroblock count
Cuvid supports clips with a limit on maximum number of macroblocks.
This check was missing after cuvidGetDecoderCaps API call allowing
unsupported clips to proceed.
Added the missing check, same as the one in hwaccel nvdec implementation.

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2019-05-08 11:40:06 +02:00
James Almer
109b0d7c0f avcodec/mlp_parser: split off shared code to its own file
Signed-off-by: James Almer <jamrial@gmail.com>
2019-05-07 17:30:19 -03:00
Zhong Li
5b318ce68d lavc/qsv: extactly map profile
Currently profile mapping is hard-coded, and not flexible to do extactly
map (E.g: libmfx treats H264 constrained baseline to be baseline profile).

vaapi profile mapping funtion provides a better soultion than current
qsv mapping.

Signed-off-by: Zhong Li <zhong.li@intel.com>
2019-05-07 11:00:19 +08:00
Zhong Li
94ab39ec78 lavc/qsvdec: fix hevc level incorrectly map
libmfx hevc level defination is same as h264, not level_idc of SPEC.

Signed-off-by: Zhong Li <zhong.li@intel.com>
2019-05-07 11:00:14 +08:00
Zhong Li
48627aaf64 lavc/qsvdec: add query function and provide error message
It is helpful to know why some clips decoding failed.
Ticket#7330 is a good example, with this patch it is easily to
know bitstream codec level is out of support range.

Signed-off-by: Zhong Li <zhong.li@intel.com>
2019-05-07 11:00:05 +08:00
Michael Niedermayer
0b5c93b276 avcodec/fits: Check bitpix
Reference: Table 8: Interpretation of valid BITPIX value from FITS standard 4.0
Fixes: runtime error: division by zero
Fixes: 14581/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_FITS_fuzzer-5652382425284608

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-05-06 23:58:34 +02:00
James Almer
fec4212d8e avcodec/vp9_raw_reorder: reset state when flushing
Signed-off-by: James Almer <jamrial@gmail.com>
2019-05-06 00:22:32 -03:00
ManojGuptaBonda
d7d82cfcd4 avcodec/hevcdec: Declare that VDPAU can handle HEVC 4:4:4 content
The latest generation video decoder on the Turing chips supports
decoding HEVC 4:4:4. This change adds AV_PIX_FMT_VDPAU as a valid format
for HEVC 4:4:4 8 bit.
2019-05-05 11:35:35 -07:00
ManojGuptaBonda
fc8fb88f10 avcodec/vdpau_hevc: Pass sps and pps range extension flags to VDPAU
Pass SPS, PPS range extensions to VDPAU layer via
VdpPictureInfoHEVC444. Added VdpPictureInfoHEVC444 struct to
VdpPictureInfo union to populate the range extension params. Mapped
FF_PROFILE_HEVC_REXT to VDP_DECODER_PROFILE_HEVC_MAIN_444.
2019-05-05 11:35:35 -07:00
James Almer
fcc01ba36a avcodec/truehd_core: reset state when flushing
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2019-05-05 12:30:18 -03:00
fumoboy007
e384f6f2f9 avcodec/h263dec: Fixed VA API, VDPAU, and VideoToolbox hardware acceleration due to missing hw_configs property.
Bug originally introduced in commit 758fbc54fe.
2019-05-05 02:51:23 +02:00
Michael Niedermayer
09edcd3572 avcodec/jvdec: Use ff_get_buffer() when the content is not reused
Fixes: Timeout (11sec -> 5sec)
Fixes: 14473/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_JV_fuzzer-5761630857592832

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-05-04 20:22:29 +02:00
Michael Niedermayer
3afdd3e11a avcodec/pnm_parser: clear state if buffer is discarded
Fixes: Assertion failure
Fixes: 14484/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_PGMYUV_fuzzer-5150016408125440

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-05-04 20:22:29 +02:00