Commit graph

40562 commits

Author SHA1 Message Date
James Almer
692e323d89 avcodec/av1_parse: return size of the parsed OBU in parse_obu_header()
Signed-off-by: James Almer <jamrial@gmail.com>
2018-08-02 12:41:54 -03:00
James Almer
4e937b1a60 avcodec/av1_parse: check for OBU header overread
Signed-off-by: James Almer <jamrial@gmail.com>
2018-08-02 12:41:53 -03:00
James Almer
e45ed15594 avcodec/libaomdec: auto insert dump_extra bitstream filter
Some containers, like Matroska, may propagate key frames with no Sequence
Header OBU since it's provided in extradata instead.
With this change, the Sequence Header will be appended to the packet data
before calling aom_codec_decode().

Signed-off-by: James Almer <jamrial@gmail.com>
2018-08-02 12:41:05 -03:00
James Almer
b98bd60bfa avcodec/dump_extradata_bsf: don't allocate a new AVPacket per filtered packet
~4x speedup in dump_extradata()

Signed-off-by: James Almer <jamrial@gmail.com>
2018-08-02 12:41:04 -03:00
James Almer
a9a433564d avcodec/h264_mp4toannexb_bsf: use enum constants for the NAL unit type values
Signed-off-by: James Almer <jamrial@gmail.com>
2018-07-30 17:51:50 -03:00
James Almer
3258cc6507 avcodec/bitstream_filters: check the input argument of av_bsf_get_by_name() for NULL
Fixes crashes like "ffmpeg -h bsf" caused by passing NULL to strcmp()

Signed-off-by: James Almer <jamrial@gmail.com>
2018-07-28 11:14:19 -03:00
Michael Niedermayer
bed125b710 avcodec/diracdec: Check bytes count in else branch in decode_lowdelay() too
Fixes: signed integer overflow: 8 * 340018243 cannot be represented in type 'int'
Fixes: 9441/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DIRAC_fuzzer-5194665207791616

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-07-28 14:35:51 +02:00
Michael Niedermayer
f457c0ad7f avcodec/diracdec: Check slice numbers for overflows in relation to picture dimensions
Fixes: signed integer overflow: 88 * 33685506 cannot be represented in type 'int'
Fixes: 9433/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DIRAC_fuzzer-5725943535501312

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-07-28 14:35:50 +02:00
Michael Niedermayer
462d1be6de avcodec/diracdec: Change frame_number to 64bit as its a 32bit from the bitstream and we also have a -1 special case
Fixes: signed integer overflow: 2147483647 + 1 cannot be represented in type 'int'
Fixes: 9291/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DIRAC_fuzzer-6324345860259840

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-07-28 14:35:50 +02:00
Michael Niedermayer
69cac9e130 avcodec/dirac_dwt_template: Fix several integer overflows in horizontal_compose_daub97i()
Fixes: signed integer overflow: 2147483647 + 1 cannot be represented in type 'int'
Fixes: 8926/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DIRAC_fuzzer-6047609228623872

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-07-28 14:35:50 +02:00
Michael Niedermayer
5129040646 avcodec/diracdec: Prevent integer overflow in intermediate in global_mv()
Fixes: signed integer overflow: -393471 * 5460 cannot be represented in type 'int'
Fixes: 8890/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DIRAC_fuzzer-6299775379963904

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-07-28 14:35:50 +02:00
James Almer
536bcc30e0 avcodec: add missing files missed in previous commits
Fixes compilation.

Signed-off-by: James Almer <jamrial@gmail.com>
2018-07-27 11:15:59 -03:00
hwren
5985a1bf72 lavc, doc, configure: add avs2 video decoder wrapper
Tested-by: Steven Liu <lq@chinaffmpeg.org>
Signed-off-by: hwren <hwrenx@126.com>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2018-07-27 20:07:56 +08:00
hwren
d645e0d6c1 lavc: add AVS2/IEEE 1857.4 parser
Tested-by: Steven Liu <lq@chinaffmpeg.org>
Signed-off-by: hwren <hwrenx@126.com>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2018-07-27 20:07:45 +08:00
Michael Niedermayer
d134b8d85f avcodec/cdgraphics: Clear first frame only once
frame_number will not increase if nothing is output

Fixes: Timeout
Fixes: 9057/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_CDGRAPHICS_fuzzer-4844661498707968

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-07-23 02:58:38 +02:00
Michael Niedermayer
d2015e6b86 avcodec/tscc: Do not duplicate images
This improves speed

Fixes: Timeout
Fixes: 9010/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_TSCC_fuzzer-6042614817095680

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-07-23 02:58:38 +02:00
Michael Niedermayer
679bfa453f avcodec/tscc: Move reading the side data palette before other checks
We do not want to loose the side data in case of errors

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-07-23 02:58:38 +02:00
Paul B Mahol
3237f018fd avcodec/bink: set color range 2018-07-22 10:19:03 +02:00
Paul B Mahol
1b0922584e avcodec/bink: add 'k' version support 2018-07-22 10:03:56 +02:00
James Almer
3735d55af3 avcodec/parser: move parsers list and related API to its own file
And add it to the CONFIGURABLE_COMPONENTS list in Makefile. This way, changes
to the new file will be tracked and the usual warning to suggest re-running
configure will be shown.

Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2018-07-21 16:08:29 -03:00
Carl Eugen Hoyos
9617178800 lavc/fft_template: Do not define unneded functions with --enable-small.
Fixes the following warnings:
In file included from libavcodec/fft_fixed.c:21:0:
libavcodec/fft_template.c:528:6: warning: ‘pass_big’ defined but not used [-Wunused-function]
 PASS(pass_big)
      ^
libavcodec/fft_template.c:505:13: note: in definition of macro ‘PASS’
 static void name(FFTComplex *z, const FFTSample *wre, unsigned int n)\
             ^~~~
CC      libavcodec/ffv1.o
In file included from libavcodec/fft_float.c:21:0:
libavcodec/fft_template.c:528:6: warning: ‘pass_big’ defined but not used [-Wunused-function]
 PASS(pass_big)
      ^
libavcodec/fft_template.c:505:13: note: in definition of macro ‘PASS’
 static void name(FFTComplex *z, const FFTSample *wre, unsigned int n)\
             ^~~~
2018-07-21 14:05:41 +02:00
A. Wilcox
153fcd6de6 libavcodec/ppc: Fix HEVC AltiVec routines with --enable-small
GCC requires the argument to vec_splat_u32 to be a literal.  The easiest
way to accomplish this is to change 'shift' to be const in scale (as it
is in the transform routine above), and convert both routines to be
inline.  This way, GCC can coerce the values to literals.

Tested on a 970 (Apple G5) and POWER9 (Talos II); passed fate and played
a clip of Big Buck Bunny correctly.

Fixes ticket #7048

Signed-off-by: A. Wilcox <AWilcox@Wilcox-Tech.com>
2018-07-21 13:36:24 +02:00
James Almer
3870ed7ab3 avcodec/extract_extradata_bsf: make sure a Sequence Header was found for av1
A packet may have Metadata OBUs but no Sequence Header OBU, which is
useless as extradata.

Signed-off-by: James Almer <jamrial@gmail.com>
2018-07-20 20:43:40 -03:00
James Almer
5abbb1430d avcodec: bump micro version after previous changes
Signed-off-by: James Almer <jamrial@gmail.com>
2018-07-20 15:49:36 -03:00
James Almer
a754af942a avcodec/libaomenc: export Sequence Header and Metadata OBUs as extradata
aom_codec_get_global_headers() is not implemented as of libaom 1.0.0 for AV1, so
we're forced to extract the relevant header OBUs from the first packet and propagate
them as packet side data.

Signed-off-by: James Almer <jamrial@gmail.com>
2018-07-20 11:43:25 -03:00
James Almer
f9af3929c0 avcodec/extract_extradata: add support for AV1
Signed-off-by: James Almer <jamrial@gmail.com>
2018-07-20 11:43:24 -03:00
James Almer
45f52d19b9 avcodec: add AV1 packet split API
Signed-off-by: James Almer <jamrial@gmail.com>
2018-07-20 11:43:24 -03:00
Thomas Guillem
93e157f40f avcodec/videotoolboxenc: fix undefined behavior with rc_max_rate=0
On macOS, a zero rc_max_rate cause an error from
VTSessionSetProperty(kVTCompressionPropertyKey_DataRateLimits).

on iOS (depending on device/version), a zero rc_max_rate cause invalid
arguments from the vtenc_output_callback after few frames and then a crash
within the VideoToolbox library.

Signed-off-by: Aman Gupta <aman@tmm1.net>
2018-07-19 09:26:01 -07:00
Aman Gupta
37644f0477 avcodec: parse options from AVCodec.bsfs
Fixes a bug that would prevent using multiple comma-separated filters,
and allows options to be passed to each filter.

Based on similar loop in ffmpeg_opt.c's new_output_stream().

Signed-off-by: Aman Gupta <aman@tmm1.net>
2018-07-19 09:15:13 -07:00
Michael Niedermayer
1809f1cda9 avcodec/dvbsub_parser: Do not discard data
May fix: oss fuzz issue 9220

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-07-18 13:59:25 +02:00
Michael Niedermayer
4a657acaef avcodec/cfhd: Use bytestream2 for peaks
This fixes out of array accesses
No testcase known

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-07-18 13:59:25 +02:00
Michael Niedermayer
91578f5798 avcodec/tscc: Move reget buffer to after decoding
reget buffer can be time consuming, theres no need to do it if failures
occur

Testcase: 9010/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_TSCC_fuzzer-6042614817095680

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-07-18 13:59:25 +02:00
Michael Niedermayer
706c9beaea avcodec/lagarith: Remove redundant varianble init
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-07-18 13:59:25 +02:00
Michael Niedermayer
cd86b5cfe2 avcodec/dvdsub_parser: Allocate input padding
Fixes: out of array read
Fixes: 9350/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DVDSUB_fuzzer-5746777750765568

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-07-15 19:42:25 +02:00
Michael Niedermayer
2e6ea39386 avcodec/vp8_parser: Remove redundant output initialization
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-07-15 19:42:25 +02:00
Michael Niedermayer
9e6c843776 avcodec/dvdsub_parser: Init output buf/size
No testcase

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-07-15 19:42:25 +02:00
Michael Niedermayer
8d21ab4d12 avcodec/lagarith: Check that the range coded data stream is consistent when the probabilities indicate no data could have been coded.
Fixes: Timeout
Fixes: 8638/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_LAGARITH_fuzzer-5132046098759680
Fixes: 8943/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_LAGARITH_fuzzer-4883030219948032

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-07-15 19:42:25 +02:00
Michael Niedermayer
7334985ffa libavcodec/cfhd: Fix signed overflow in shift
Fixes: 8695/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_CFHD_fuzzer-4906172426485760

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-07-15 19:42:25 +02:00
Michael Niedermayer
181435a4de avcodec/dirac_dwt_template: Fix signedness regression in interleave()
Found-by: <jdarnley>
Tested-by: James Darnley <james.darnley@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-07-14 18:02:26 +02:00
Shiyou Yin
c0b42987a2 avcodec/mips: fix conflicting types error of ff_vc1_h_s_overlap_mmi.
In commit 975a1a8,function ff_vc1_h_s_overlap_mmi was refactored,
but the declaration in libavcodec/mips/vc1dsp_mips.h was unchanged.

Change-Id: I90beae683511622a0cc1130ab1660ac8669ec3ef
Signed-off-by: Shiyou Yin <yinshiyou-hf@loongson.cn>
Reviewed-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-07-14 18:02:26 +02:00
Marton Balint
3e0f3be2b0 avcodec/internal: increase FF_SANE_NB_CHANNELS to 256
This was reduced from 128 in libav commit
192f1984b1, but since we support unknown channel
layouts, we can increase this limit.

Fixes ticket #6332.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-07-13 22:24:33 +02:00
Marton Balint
5982078e8d avcodec/utils: report insane channel count errors
More than 64 is not *that* insane, so let's report the error at least.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-07-13 22:24:33 +02:00
Carl Eugen Hoyos
0576ef466d lavc/aarch64/h264dsp_init_aarch64: Fix weight function prototypes.
Fixes the following warnings:
libavcodec/aarch64/h264dsp_init_aarch64.c: In function ‘ff_h264dsp_init_aarch64’:
libavcodec/aarch64/h264dsp_init_aarch64.c:84:38: warning: assignment from incompatible pointer type [enabled by default]
         c->weight_h264_pixels_tab[0] = ff_weight_h264_pixels_16_neon;
                                      ^
libavcodec/aarch64/h264dsp_init_aarch64.c:85:38: warning: assignment from incompatible pointer type [enabled by default]
         c->weight_h264_pixels_tab[1] = ff_weight_h264_pixels_8_neon;
                                      ^
libavcodec/aarch64/h264dsp_init_aarch64.c:86:38: warning: assignment from incompatible pointer type [enabled by default]
         c->weight_h264_pixels_tab[2] = ff_weight_h264_pixels_4_neon;
                                      ^
libavcodec/aarch64/h264dsp_init_aarch64.c:88:40: warning: assignment from incompatible pointer type [enabled by default]
         c->biweight_h264_pixels_tab[0] = ff_biweight_h264_pixels_16_neon;
                                        ^
libavcodec/aarch64/h264dsp_init_aarch64.c:89:40: warning: assignment from incompatible pointer type [enabled by default]
         c->biweight_h264_pixels_tab[1] = ff_biweight_h264_pixels_8_neon;
                                        ^
libavcodec/aarch64/h264dsp_init_aarch64.c:90:40: warning: assignment from incompatible pointer type [enabled by default]
         c->biweight_h264_pixels_tab[2] = ff_biweight_h264_pixels_4_neon;
                                        ^
2018-07-13 21:28:04 +02:00
Jun Zhao
d746a2e3cf lavc/hevc_ps: use skip_bits instead of get_bits when skip bits.
use skip_bits when want to skip some bits.

Signed-off-by: Jun Zhao <mypopydev@gmail.com>
2018-07-13 20:18:40 +08:00
Jun Zhao
896854b233 lavc/hevc_ps: Refine sps_range_extension parse.
Signed-off-by: Jun Zhao <mypopydev@gmail.com>
2018-07-13 20:15:15 +08:00
Karsten Otto
ce372bc278 libavcodec/mpegaudiodecheader.h: fix version check pattern
This fixes the check for the reserved MPEG audio version ID,
used to detect an invalid frame header.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-07-13 02:19:50 +02:00
Carl Eugen Hoyos
5545a6df87 lavc/h263dec: Remove a variable declaration that can lead to a warning. 2018-07-13 01:01:06 +02:00
Zhong Li
3c26ce4644 lavc/qsv: handle MFX_FRAMETYPE_UNKNOWN case
Signed-off-by: Zhong Li <zhong.li@intel.com>
2018-07-12 15:29:55 +08:00
Karsten Otto
3bf39f2aef libavcodec/mpegaudiodecheader.h : detect reserved mpeg id
Check the MPEG version ID for the reserved bit pattern 01, and abort the
header check in that case. This reduces the chance of misinterpreting
arbitrary data as a valid header, and prevents resulting audio artifacts.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-07-09 03:25:53 +02:00
Michael Niedermayer
ee1e3ca5eb avcodec/mjpegdec: Check for odd progressive RGB
Fixes: out of array access
Fixes: 9225/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_JPEGLS_fuzzer-5684770334834688

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-07-08 00:55:49 +02:00