]> git.sesse.net Git - ffmpeg/log
ffmpeg
3 years agoavfilter/vf_lut3d: add pyramid interpolation
Paul B Mahol [Wed, 27 Jan 2021 13:37:10 +0000 (14:37 +0100)]
avfilter/vf_lut3d: add pyramid interpolation

3 years agoavformat/flvdec: Check for EOF in amf_skip_tag()
Michael Niedermayer [Tue, 12 Jan 2021 20:54:31 +0000 (21:54 +0100)]
avformat/flvdec: Check for EOF in amf_skip_tag()

Fixes: Timeout
Fixes: 29070/clusterfuzz-testcase-minimized-ffmpeg_dem_KUX_fuzzer-5650106766458880
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavformat/asfdec_o: Check lang_idx
Michael Niedermayer [Tue, 12 Jan 2021 20:45:38 +0000 (21:45 +0100)]
avformat/asfdec_o: Check lang_idx

Fixes: index 26981 out of bounds for type 'ASFStreamData [128]'
Fixes: 27334/clusterfuzz-testcase-minimized-ffmpeg_dem_ASF_O_fuzzer-6197611002068992
Alternatively the array could be increased in size or the cases not fitting be ignored

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavformat/aiffdec: Check size before subtraction in get_aiff_header()
Michael Niedermayer [Tue, 10 Nov 2020 22:01:12 +0000 (23:01 +0100)]
avformat/aiffdec: Check size before subtraction in get_aiff_header()

Fixes: Infinite loop
Fixes: 27235/clusterfuzz-testcase-minimized-ffmpeg_dem_AIFF_fuzzer-5761398380167168
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavformat/utils: Use av_sat_sub64() in max_analyze_duration check
Michael Niedermayer [Tue, 10 Nov 2020 21:27:47 +0000 (22:27 +0100)]
avformat/utils: Use av_sat_sub64() in max_analyze_duration check

Fixes: signed integer overflow: 9223372036854710272 - -541165944832 cannot be represented in type 'long'
Fixes: 27000/clusterfuzz-testcase-minimized-ffmpeg_dem_IVF_fuzzer-5643670608674816
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavformat/electronicarts: More chunk_size checks
Michael Niedermayer [Tue, 12 Jan 2021 21:18:59 +0000 (22:18 +0100)]
avformat/electronicarts: More chunk_size checks

Fixes: Timeout
Fixes: 26909/clusterfuzz-testcase-minimized-ffmpeg_dem_EA_fuzzer-6489496553783296
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavcodec/cfhd: check peak.offset
Michael Niedermayer [Sat, 7 Nov 2020 23:08:35 +0000 (00:08 +0100)]
avcodec/cfhd: check peak.offset

Fixes: signed integer overflow: -2147483648 - 4 cannot be represented in type 'int'
Fixes: 26907/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_CFHD_fuzzer-5746202330267648
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavformat/tedcaptionsdec: Check for overflow in parse_int()
Michael Niedermayer [Sat, 7 Nov 2020 20:11:32 +0000 (21:11 +0100)]
avformat/tedcaptionsdec: Check for overflow in parse_int()

Fixes: signed integer overflow: 1111111111111111111 * 10 cannot be represented in type 'long'
Fixes: 26892/clusterfuzz-testcase-minimized-ffmpeg_dem_TEDCAPTIONS_fuzzer-5756045055754240
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavcodec/vorbis_data: Move encoder-related table to its only user
Andreas Rheinhardt [Thu, 28 Jan 2021 23:14:09 +0000 (00:14 +0100)]
avcodec/vorbis_data: Move encoder-related table to its only user

Said table was unused in case libvorbis was disabled.

Reviewed-by: Lynne <dev@lynne.ee>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavcodec/fft_template: Avoid useless function
Andreas Rheinhardt [Thu, 28 Jan 2021 23:06:20 +0000 (00:06 +0100)]
avcodec/fft_template: Avoid useless function

ff_init_ff_cos_tabs is only used for the floating point FFT and only
if hardcoded tables are disabled.

Reviewed-by: Lynne <dev@lynne.ee>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavfilter/drawutils: Remove remnants of old API
Andreas Rheinhardt [Thu, 28 Jan 2021 22:49:13 +0000 (23:49 +0100)]
avfilter/drawutils: Remove remnants of old API

ff_fill_line_with_color and ff_draw_rectangle are unused since
19c8f2271423281c9b876b984076a6467c455904; ff_copy_rectangle
is unused since 53b7a3fe081ec56c5706228eb6431bb943ad471a.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavfilter/vf_blackdetect: add support for >8 depth formats
Paul B Mahol [Fri, 29 Jan 2021 13:34:36 +0000 (14:34 +0100)]
avfilter/vf_blackdetect: add support for >8 depth formats

3 years agoavfilter/vf_blackdetect: fix bug when no final log would be displayed
Paul B Mahol [Fri, 29 Jan 2021 13:20:12 +0000 (14:20 +0100)]
avfilter/vf_blackdetect: fix bug when no final log would be displayed

3 years agoavfilter/vf_blackdetect: use the name 's' for the pointer to the private context
Paul B Mahol [Fri, 29 Jan 2021 13:14:14 +0000 (14:14 +0100)]
avfilter/vf_blackdetect: use the name 's' for the pointer to the private context

This is consistent across filters and also is less typing.

3 years agoavcodec/msmpeg4: Inline number of motion vectors
Andreas Rheinhardt [Tue, 26 Jan 2021 21:19:19 +0000 (22:19 +0100)]
avcodec/msmpeg4: Inline number of motion vectors

Both motion vector tables have the same number of elements, hence one
can inline said number and remove the field containing the number of
elements from the structure.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavcodec/msmpeg4dec: Don't check for errors for complete VLCs
Andreas Rheinhardt [Tue, 26 Jan 2021 00:14:45 +0000 (01:14 +0100)]
avcodec/msmpeg4dec: Don't check for errors for complete VLCs

This also affected other users of VLCs from msmpeg4dec, namely vc1_block
and wmv2dec.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavformat: Change avpriv_new_chapter() from O(n) to (1) in the common case
Michael Niedermayer [Wed, 6 Jan 2021 22:24:49 +0000 (23:24 +0100)]
avformat: Change avpriv_new_chapter() from O(n) to (1) in the common case

Fixes: timeout (slow -> 300ms)
Fixes: 28876/clusterfuzz-testcase-minimized-ffmpeg_dem_MOV_fuzzer-5664824587583488
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavformat/nuv: Check channels
Michael Niedermayer [Wed, 6 Jan 2021 22:42:39 +0000 (23:42 +0100)]
avformat/nuv: Check channels

Fixes: signed integer overflow: -3468545475927866368 * 4 cannot be represented in type 'long'
Fixes: 28879/clusterfuzz-testcase-minimized-ffmpeg_dem_NUV_fuzzer-6303367307591680
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavcodec/siren: Increase noise category 5 and 6
Michael Niedermayer [Thu, 24 Dec 2020 21:16:48 +0000 (22:16 +0100)]
avcodec/siren: Increase noise category 5 and 6

The entry read is not used in subsequent computation, thus its
value is not important.

Fixes: out of array read
Fixes: 28578/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_SIREN_fuzzer-6332019122503680
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavcodec/siren: Factorize category 5 and 6 noise computation
Michael Niedermayer [Thu, 24 Dec 2020 21:13:56 +0000 (22:13 +0100)]
avcodec/siren: Factorize category 5 and 6 noise computation

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavcodec/siren: remove constant region_size
Michael Niedermayer [Thu, 24 Dec 2020 20:32:41 +0000 (21:32 +0100)]
avcodec/siren: remove constant region_size

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavformat/mpc8: Check size before implicitly converting to int
Michael Niedermayer [Thu, 24 Dec 2020 19:42:27 +0000 (20:42 +0100)]
avformat/mpc8: Check size before implicitly converting to int

Fixes: Timeout
Fixes: 28551/clusterfuzz-testcase-minimized-ffmpeg_dem_MPC8_fuzzer-6229183210586112
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agodoc/filters: mention commands support for pseudocolor
Paul B Mahol [Thu, 28 Jan 2021 19:54:58 +0000 (20:54 +0100)]
doc/filters: mention commands support for pseudocolor

3 years agoavfilter/vf_pseudocolor: add support for commands
Paul B Mahol [Thu, 28 Jan 2021 14:39:16 +0000 (15:39 +0100)]
avfilter/vf_pseudocolor: add support for commands

3 years agoavfilter/vf_pseudocolor: use macro for code that repeats
Paul B Mahol [Thu, 28 Jan 2021 14:30:57 +0000 (15:30 +0100)]
avfilter/vf_pseudocolor: use macro for code that repeats

3 years agoavfilter/vf_pseudocolor: add presets
Paul B Mahol [Thu, 28 Jan 2021 14:13:58 +0000 (15:13 +0100)]
avfilter/vf_pseudocolor: add presets

3 years agoavcodec/xbmenc: Allow for making UW images
Jose Da Silva [Tue, 19 Jan 2021 05:43:13 +0000 (21:43 -0800)]
avcodec/xbmenc: Allow for making UW images

I've run into some bugs where I was downloading a bunch of data and began
seeing weird hiccups. For example, javascript promises to allow you to push
some very long lines of data, but the hiccups I saw was with data larger
than 2k in length (windows) pushed out of a child process stdout piped into
the stdin of the calling parent program.
Soo much for smooth promises, this was broken and would run into similar
problems on a linux PC with 32k line limits.
The solution was to break the data into smaller chunks than 2k - and then
these data hiccups disappeared (windows PC).

It would be expected to be similar for linux PCs (32k I think) and other
OSes with different sizes.

If the ANSI required minimum needs to be 509 chars or larger (assuming
509+<CR>+<LF>+<0>=512), then 509 was chosen as the shortest worst-case
scenario) in this patch.
Most small pictures will go output looking pretty much the same data out
until you get to about 84bytes (672 pixels wide), where lines out begin to
be split. For example a UW 4K will exceed a 2k readln and a UW 10K picture
approaches an 8k readln

The purpose for this patch is to ensure that data remains below the
readline limits (of 509 chars), so that programs (like javascript) can push
data in large chunks without breaking into hiccups because the data length
is too long to be pushed cleanly in one go.
Subject: [PATCH 3/3] avcodec/xbmenc: Allow for making UW images

Worst-case ANSI must allow for 509 chars, while Windows allows for 2048
and Linux for 32K line length. This allows an OS with a small readline
access limitation to fetch very wide images (created from ffmpeg).

3 years agoavcodec/xbmenc: xbm Lower memory use
Jose Da Silva [Tue, 19 Jan 2021 05:43:05 +0000 (21:43 -0800)]
avcodec/xbmenc: xbm Lower memory use

Two minor memory improvements.

First bug reduces memory needed to about 6/7 the needed amount, which
allows you to host almost 7 pictures in the same memory needed for 6
Second is a recalculation of the total additional memory for headers etc.

size = avctx->height x (linesize * 6 + 1) + (31+32+38+4+1)
Subject: [PATCH 2/3] avcodec/xbmenc: xbm Lower memory use

Small 6/7th size memory reduction.
size = avctx->height x (linesize * 6 + 1) + (31+32+38+4+1)

Signed-off-by: Joe Da Silva <digital@joescat.com>
3 years agoavcodec/xbmenc: Do not add last comma into output
Jose Da Silva [Tue, 19 Jan 2021 05:42:57 +0000 (21:42 -0800)]
avcodec/xbmenc: Do not add last comma into output

There is a minor bug in xbm encode which adds a trailing comma at the end
of data. This isn't a big problem, but it would be nicer to be more
technically true to an array of data (by not including the last comma).

This bug fixes the output from something like this (having 4 values):
static unsigned char image_bits[] = { 0x00, 0x11, 0x22, }
to C code that looks like this instead (having 3 values):
static unsigned char image_bits[] = { 0x00, 0x11, 0x22 }
which is the intended results.
Subject: [PATCH 1/3] avcodec/xbmenc: Do not add last comma into output array

xbm outputs c arrays of data.
Including a comma at the end means there is another value to be added.
This bug fix changes something like this:
static unsigned char image_bits[] = { 0x00, 0x11, 0x22, }
to C code like this:
static unsigned char image_bits[] = { 0x00, 0x11, 0x22 }

Signed-off-by: Joe Da Silva <digital@joescat.com>
3 years agoavcodec/flashsv2enc: Fix use of uninitialized value
Andreas Rheinhardt [Wed, 27 Jan 2021 11:24:33 +0000 (12:24 +0100)]
avcodec/flashsv2enc: Fix use of uninitialized value

Before 257a83b969157eb76c18158a4e503e908d8b1125, certain buffers were
zero-allocated in the init function and only reallocated lateron if they
turned out to be too small; now they are only allocated during init,
leading to use-of-uninitialized values lateron. The same could happen
before if the dimensions are big enough so that the buffers would be
reallocated, as the new part of the reallocated buffer would not be
zeroed (happened for 960x960). So always zero the buffers in the
function designed to init them.

Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agodnn_backend_openvino.c: remove extra semicolon
Guo, Yejun [Tue, 26 Jan 2021 00:22:27 +0000 (08:22 +0800)]
dnn_backend_openvino.c: remove extra semicolon

3 years agodnn: remove type cast which is not necessary
Guo, Yejun [Fri, 22 Jan 2021 14:20:15 +0000 (22:20 +0800)]
dnn: remove type cast which is not necessary

3 years agotests/dnn: enable unit test dense
Guo, Yejun [Fri, 22 Jan 2021 13:44:14 +0000 (21:44 +0800)]
tests/dnn: enable unit test dense

3 years agoavfilter/vf_pseudocolor: add slice threading
Paul B Mahol [Wed, 27 Jan 2021 23:54:51 +0000 (00:54 +0100)]
avfilter/vf_pseudocolor: add slice threading

3 years agoavformat/mxfenc: add Coding Equations and Color Primaries to local tags
Marton Balint [Mon, 25 Jan 2021 21:04:05 +0000 (22:04 +0100)]
avformat/mxfenc: add Coding Equations and Color Primaries to local tags

Fixes ticket #9079.

Signed-off-by: Marton Balint <cus@passwd.hu>
3 years agoavcodec/h261dec: Make VLC smaller
Andreas Rheinhardt [Tue, 29 Dec 2020 21:09:10 +0000 (22:09 +0100)]
avcodec/h261dec: Make VLC smaller

The VLC for the macroblock address increment uses nine bits;
yet there is no code with this length: All codes are either shorter or
longer. So one can make the table smaller without changing the amount of
codes that need more than one round of parsing.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoRevert "mpeg4videodec: raise an error if sprite_trajectory.table is NULL"
Andreas Rheinhardt [Sat, 23 Jan 2021 16:52:52 +0000 (17:52 +0100)]
Revert "mpeg4videodec: raise an error if sprite_trajectory.table is NULL"

This reverts commit 6ac0e7818399a57e4684202bac79f35b3561ad1e.

The mpeg4video parser can reach code that presumes that a certain VLC
has been initialized; yet Libav did not ensure this and Libav bug #1012
[1] is about an ensuing crash.

Instead of fixing the root cause a simple check for whether said VLC
has already been initialized was added; said check is inherently racy.

The proper fix is of course to ensure that the VLC is initialized and
commit 7c76eaeca2791261d3f4f5c98c95f44abdbd879a already ensured this,
so there was no need to merge 6ac0e7818399a57e4684202bac79f35b3561ad1e
at all. This commit therefore reverts said commit.

[1]: https://bugzilla.libav.org/show_bug.cgi?id=1012

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavformat/url: Reorder elements of URLProtocol to make it smaller
Andreas Rheinhardt [Sun, 24 Jan 2021 11:19:03 +0000 (12:19 +0100)]
avformat/url: Reorder elements of URLProtocol to make it smaller

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavformat/avidec: Simplify compile-time check for DV demuxer
Andreas Rheinhardt [Tue, 26 Jan 2021 13:18:11 +0000 (14:18 +0100)]
avformat/avidec: Simplify compile-time check for DV demuxer

1b373b41d940e3058cdfb3d17703e23ed665353c made it a bit harder to find
out that a call to avpriv_dv_produce_packet is dead when the DV demuxer
is disabled; too hard for GCC on -O0. So simplify the check a bit.

Reviewed-by: Peter Ross <pross@xvid.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavfilter: add colortemperature filter
Paul B Mahol [Mon, 25 Jan 2021 19:22:14 +0000 (20:22 +0100)]
avfilter: add colortemperature filter

3 years agoavfilter: add kirsch video filter
Paul B Mahol [Sat, 23 Jan 2021 13:54:51 +0000 (14:54 +0100)]
avfilter: add kirsch video filter

3 years agodoc/filters: mention that shear filter supports commands
Paul B Mahol [Wed, 27 Jan 2021 10:40:05 +0000 (11:40 +0100)]
doc/filters: mention that shear filter supports commands

3 years agolibavutil/frame.h: correct typo for AVFilmGrainParams in comment
Guo, Yejun [Wed, 27 Jan 2021 05:13:12 +0000 (13:13 +0800)]
libavutil/frame.h: correct typo for AVFilmGrainParams in comment

3 years agoavcodec/sei: add Parameter Sets Inclusion Indication enum value
James Almer [Fri, 22 Jan 2021 19:30:51 +0000 (16:30 -0300)]
avcodec/sei: add Parameter Sets Inclusion Indication enum value

Defined in H.274, it shares the same value as Active Parameter Sets from the
H.265 spec.

Signed-off-by: James Almer <jamrial@gmail.com>
3 years agoavfilter/vf_colorchannelmixer: extend pl option functionality
Paul B Mahol [Tue, 26 Jan 2021 23:33:56 +0000 (00:33 +0100)]
avfilter/vf_colorchannelmixer: extend pl option functionality

3 years agoavfilter/vf_lenscorrection: remove unused elements
Paul B Mahol [Tue, 26 Jan 2021 19:05:01 +0000 (20:05 +0100)]
avfilter/vf_lenscorrection: remove unused elements

3 years agoavfilter/vf_lenscorrection: reduce overhead calling execute for every plane
Paul B Mahol [Tue, 26 Jan 2021 19:02:41 +0000 (20:02 +0100)]
avfilter/vf_lenscorrection: reduce overhead calling execute for every plane

3 years agoavfilter/vf_lenscorrection: add support for commands
Paul B Mahol [Tue, 26 Jan 2021 18:43:03 +0000 (19:43 +0100)]
avfilter/vf_lenscorrection: add support for commands

3 years agoavcodec/cri: Fix whitespace issue in unpack_10bit()
Michael Niedermayer [Tue, 26 Jan 2021 18:52:10 +0000 (19:52 +0100)]
avcodec/cri: Fix whitespace issue in unpack_10bit()

Found-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavformat/realtextdec: Avoid undefined overflow in the end of read_ts()
Michael Niedermayer [Sat, 16 Jan 2021 22:37:41 +0000 (23:37 +0100)]
avformat/realtextdec: Avoid undefined overflow in the end of read_ts()

Fixes: signed integer overflow: 234080282628234040 * 100 cannot be represented in type 'long long'
Fixes: 26910/clusterfuzz-testcase-minimized-ffmpeg_dem_REALTEXT_fuzzer-6649867065753600
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavformat/nutdec: Fix integer overflow in count computation
Michael Niedermayer [Sat, 16 Jan 2021 21:44:33 +0000 (22:44 +0100)]
avformat/nutdec: Fix integer overflow in count computation

Note, the value is checked a few lines later already

Fixes: signed integer overflow: -440402016 - 1879048064 cannot be represented in type 'int'
Fixes: 26910/clusterfuzz-testcase-minimized-ffmpeg_dem_NUT_fuzzer-6603876618469376
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavformat/mvi: Use 64bit for testing dimensions
Michael Niedermayer [Sat, 16 Jan 2021 21:20:37 +0000 (22:20 +0100)]
avformat/mvi: Use 64bit for testing dimensions

Fixes: signed integer overflow: 65535 * 65535 cannot be represented in type 'int'
Fixes: 26910/clusterfuzz-testcase-minimized-ffmpeg_dem_MVI_fuzzer-6649291124899840
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavformat/utils: Check dts in update_initial_timestamps() more
Michael Niedermayer [Sat, 16 Jan 2021 21:05:53 +0000 (22:05 +0100)]
avformat/utils: Check dts in update_initial_timestamps() more

Fixes: signed integer overflow: -9223372036853488158 - 90000000 cannot be represented in type 'long long'
Fixes: 26910/clusterfuzz-testcase-minimized-ffmpeg_dem_MPSUB_fuzzer-6696625298866176
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavformat/mpsubdec: Use av_sat_add/sub64() in fracval handling
Michael Niedermayer [Sat, 16 Jan 2021 20:48:57 +0000 (21:48 +0100)]
avformat/mpsubdec: Use av_sat_add/sub64() in fracval handling

Fixes: signed integer overflow: 9223372036850000000 + 9000000 cannot be represented in type 'long long'
Fixes: 26910/clusterfuzz-testcase-minimized-ffmpeg_dem_MPSUB_fuzzer-665448017480908
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavformat/flvdec: Check for avio_read() failure in amf_get_string()
Michael Niedermayer [Tue, 26 Jan 2021 16:41:28 +0000 (17:41 +0100)]
avformat/flvdec: Check for avio_read() failure in amf_get_string()

Suggested-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavformat/flvdec: Check for nesting depth in amf_skip_tag()
Michael Niedermayer [Sat, 23 Jan 2021 21:00:40 +0000 (22:00 +0100)]
avformat/flvdec: Check for nesting depth in amf_skip_tag()

Fixes: out of array access
Fixes: 29440/clusterfuzz-testcase-minimized-ffmpeg_dem_KUX_fuzzer-5985279812960256.fuzz
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavformat/flvdec: Check for nesting depth in amf_parse_object()
Michael Niedermayer [Sat, 23 Jan 2021 20:20:57 +0000 (21:20 +0100)]
avformat/flvdec: Check for nesting depth in amf_parse_object()

Fixes: out of array access
Fixes: 29202/clusterfuzz-testcase-minimized-ffmpeg_dem_KUX_fuzzer-5112845840809984
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavcodec/apedec: Use FFABSU() in do_apply_filter()
Michael Niedermayer [Wed, 20 Jan 2021 23:07:46 +0000 (00:07 +0100)]
avcodec/apedec: Use FFABSU() in do_apply_filter()

Fixes: negation of -2147483648 cannot be represented in type 'int'; cast to an unsigned type to negate this value to itself
Fixes: 29053/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_APE_fuzzer-4814432697974784
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavutil/common: Add FFABSU() for a signed -> unsigned ABS
Michael Niedermayer [Sat, 23 Jan 2021 15:22:33 +0000 (16:22 +0100)]
avutil/common: Add FFABSU() for a signed -> unsigned ABS

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 years agoavfilter/vf_unsharp: Remove unnecessary ;
Andreas Rheinhardt [Sun, 24 Jan 2021 21:26:06 +0000 (22:26 +0100)]
avfilter/vf_unsharp: Remove unnecessary ;

A macro that expands to a function definition might look like a
declaration, but it isn't and therefore an extra ';' at the end is
unnecessary and actually invalid (both GCC and Clang warn about this
when using -pedantic).

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agolavc: shedule old encoding/decoding API for removal
Anton Khirnov [Mon, 25 Jan 2021 11:03:44 +0000 (12:03 +0100)]
lavc: shedule old encoding/decoding API for removal

It has been deprecated for 4 years and certain new codecs do not work
with it.

Also include AVCodecContext.refcounted_frames, as it has no effect with
the new API.

3 years agolavc/decode: move unrefcount_frame() right before its only caller
Anton Khirnov [Mon, 25 Jan 2021 10:55:32 +0000 (11:55 +0100)]
lavc/decode: move unrefcount_frame() right before its only caller

Will make wrapping it in deprecation guards simpler.

3 years agotools/target_dec_fuzzer: use non-obsolete decoding API
Anton Khirnov [Sat, 12 Dec 2020 15:38:10 +0000 (16:38 +0100)]
tools/target_dec_fuzzer: use non-obsolete decoding API

3 years agoavcodec/mpeg4videodec: Fix indentation
Andreas Rheinhardt [Sat, 23 Jan 2021 16:24:33 +0000 (17:24 +0100)]
avcodec/mpeg4videodec: Fix indentation

It was wrong since e03bf251d8784f4d1df2c22381c902087e151e31.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavcodec/mpeg4videodec: Move code around to avoid forward declaration
Andreas Rheinhardt [Sat, 23 Jan 2021 16:19:00 +0000 (17:19 +0100)]
avcodec/mpeg4videodec: Move code around to avoid forward declaration

Also fix the indentation of decode_studio_vol_header while at it;
it was wrong since 177133a0f4b41b3c98b9cbc7f8f45755412c537b.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavcodec/sp5x: Remove unused quant tables
Andreas Rheinhardt [Sat, 23 Jan 2021 15:54:51 +0000 (16:54 +0100)]
avcodec/sp5x: Remove unused quant tables

Only the fifth one is used.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavcodec/exif: Avoid allocation for small buffer
Andreas Rheinhardt [Sat, 23 Jan 2021 14:44:50 +0000 (15:44 +0100)]
avcodec/exif: Avoid allocation for small buffer

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavcodec/amrnbdata: Remove unused array
Andreas Rheinhardt [Sat, 23 Jan 2021 13:45:24 +0000 (14:45 +0100)]
avcodec/amrnbdata: Remove unused array

Always unused.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavcodec/ilbcdata: Remove unused array
Andreas Rheinhardt [Sat, 23 Jan 2021 13:29:52 +0000 (14:29 +0100)]
avcodec/ilbcdata: Remove unused array

Never used.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavcodec/atrac3plus_data: Remove unused arrays
Andreas Rheinhardt [Sat, 23 Jan 2021 13:28:21 +0000 (14:28 +0100)]
avcodec/atrac3plus_data: Remove unused arrays

Forgotten in 58fc810d42fde26ed6c1f2996122e98ab7005849.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavcodec/dnxhd: Make ff_dxnhd_get_cid_table return a pointer, not index
Andreas Rheinhardt [Fri, 22 Jan 2021 21:47:27 +0000 (22:47 +0100)]
avcodec/dnxhd: Make ff_dxnhd_get_cid_table return a pointer, not index

All callers only use the index into ff_dnxhd_cid_table to get a pointer
to the desired entry.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavfilter: add shear video filter
Paul B Mahol [Sat, 23 Jan 2021 10:21:47 +0000 (11:21 +0100)]
avfilter: add shear video filter

3 years agoavdevice/dshow: Add namespace prefix to the remaining global symbols
James Almer [Thu, 21 Jan 2021 22:45:48 +0000 (19:45 -0300)]
avdevice/dshow: Add namespace prefix to the remaining global symbols

Signed-off-by: James Almer <jamrial@gmail.com>
3 years agoavcodec: deprecate AVCodecContext.debug_mv
James Almer [Sun, 24 Jan 2021 23:45:18 +0000 (20:45 -0300)]
avcodec: deprecate AVCodecContext.debug_mv

It's been unused for almost three years now.

Signed-off-by: James Almer <jamrial@gmail.com>
3 years agoavcodec: remove long dead debug_mv code
James Almer [Sun, 24 Jan 2021 22:34:56 +0000 (19:34 -0300)]
avcodec: remove long dead debug_mv code

FF_API_DEBUG_MV has been zero since ffmpeg 4.0

Signed-off-by: James Almer <jamrial@gmail.com>
3 years agoavcodec/dolby_e: split decoder and parser more thoroughly
James Almer [Mon, 25 Jan 2021 14:29:27 +0000 (11:29 -0300)]
avcodec/dolby_e: split decoder and parser more thoroughly

Neither module should depend on the other.

Move shared functions to its own file for this purpose, and ensure
source files are compiled only when the required modules are enabled.

Signed-off-by: James Almer <jamrial@gmail.com>
3 years agofate/hlsenc: rework the ffprobe dependency of hls-fmp4_ac3
James Almer [Sun, 24 Jan 2021 21:33:23 +0000 (18:33 -0300)]
fate/hlsenc: rework the ffprobe dependency of hls-fmp4_ac3

Add it to the existing FATE_SAMPLES_FFMPEG_FFPROBE list of ffprobe dependant
tests instead.

Signed-off-by: James Almer <jamrial@gmail.com>
3 years agoavcodec/h263data, ituh263*: Make initializing RL inter table thread-safe
Andreas Rheinhardt [Wed, 2 Dec 2020 02:26:41 +0000 (03:26 +0100)]
avcodec/h263data, ituh263*: Make initializing RL inter table thread-safe

Up until now, ff_h263_rl_inter was initialized by both ituh263dec and
ituh263enc; this is an obstacle in making the codecs that use this code
init-threadsafe.

This obstacle is eliminated by only initializing this RLTable from
a single place that is guarded by a dedicated AVOnce.

Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavcodec/ituh263enc: Remove unused function parameter
Andreas Rheinhardt [Wed, 2 Dec 2020 00:08:32 +0000 (01:08 +0100)]
avcodec/ituh263enc: Remove unused function parameter

Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavcodec/ituh263dec: Don't initialize unused parts of RLTable
Andreas Rheinhardt [Wed, 9 Dec 2020 17:09:00 +0000 (18:09 +0100)]
avcodec/ituh263dec: Don't initialize unused parts of RLTable

The RLTable ff_rl_intra_aic is only used by ituh263dec and ituh263enc;
the former only uses the RLTable's VLC, the latter only index_run,
max_level and max_run. Yet ituh263dec also initializes the latter.
This commit stops doing so.

Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavcodec/h261enc: Make encoder init-threadsafe
Andreas Rheinhardt [Wed, 9 Dec 2020 12:13:33 +0000 (13:13 +0100)]
avcodec/h261enc: Make encoder init-threadsafe

This is easy now that the H.261 encoder is the only user that
initializes the non-VLC parts of ff_h261_rl_tcoeff.

Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavcodec/h261dec: Reindentation
Andreas Rheinhardt [Mon, 23 Nov 2020 02:34:49 +0000 (03:34 +0100)]
avcodec/h261dec: Reindentation

Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavcodec/h261dec: Make decoder init-threadsafe
Andreas Rheinhardt [Mon, 23 Nov 2020 02:34:23 +0000 (03:34 +0100)]
avcodec/h261dec: Make decoder init-threadsafe

Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavcodec/h261dec: Don't initialize unused part of RLTable
Andreas Rheinhardt [Wed, 9 Dec 2020 11:54:12 +0000 (12:54 +0100)]
avcodec/h261dec: Don't initialize unused part of RLTable

The H.261 decoder only uses an RLTable's VLC table, yet it also
initializes its index_run, max_level and max_run. This commit stops
doing so; it will also simplify making this decoder init-threadsafe,
as the H.261 decoder and encoder now initialize disjoint parts of their
common RLTable.

Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavcodec/mpegvideo_enc: Make mpv_encode_defaults thread-safe
Andreas Rheinhardt [Wed, 9 Dec 2020 03:24:44 +0000 (04:24 +0100)]
avcodec/mpegvideo_enc: Make mpv_encode_defaults thread-safe

This is a prerequisite for making any encoder that uses
ff_mpv_encode_init() init-threadsafe; it already makes the AMV,
the MJPEG and the MPEG-1/2 encoders init-threadsafe.

Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavcodec/msmpeg4dec: Reuse identical MV VLC
Andreas Rheinhardt [Wed, 9 Dec 2020 01:47:48 +0000 (02:47 +0100)]
avcodec/msmpeg4dec: Reuse identical MV VLC

msmpeg4dec and ituh263dec both create VLCs with identical parameters out
of ff_mvtab. Given that ff_msmpeg4_decode_init() always (indirectly) calls
ff_h263_decode_init_vlc(), the VLC initialized by the latter can be
directly used by msmpeg4dec. Doing so saves a bit more than 2KB from the
.bss segment as well as the code to initialize a VLC.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavcodec/msmpeg4dec: Reuse identical RL VLCs
Andreas Rheinhardt [Wed, 9 Dec 2020 00:41:31 +0000 (01:41 +0100)]
avcodec/msmpeg4dec: Reuse identical RL VLCs

Some of the RLTables used by msmpeg4dec actually coincide with other
RLTables: ff_rl_table[5] coincides with ff_h263_rl_inter (and
ff_rl_table[2] with ff_mpeg4_rl_intra). Given that ff_h263_rl_inter is
always initialized before msmpeg4dec's RLTables are initialized, one can
just reuse the VLC tables by copying the pointers; after all, there are
no ownership issues for static data. This saves 70912B from the .bss
segment, translating into actual memory savings when this decoder is
actually used.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavcodec/ituh263dec: Don't initialize unused RL VLCs
Andreas Rheinhardt [Wed, 9 Dec 2020 00:11:40 +0000 (01:11 +0100)]
avcodec/ituh263dec: Don't initialize unused RL VLCs

The ff_rl_intra_aic RLTable is only used by ituh263dec and ituh263enc;
the former is the only user of its RL VLC tables. It uses only the very
first one of these VLC tables, but up until now all 32 are initialized,
wasting 68696B from the .bss segment (or that amount of memory if this
decoder has actually been used). This commit changes this.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavcodec/mpeg4videodec: Don't initialize unused RL VLCs
Andreas Rheinhardt [Tue, 8 Dec 2020 22:32:35 +0000 (23:32 +0100)]
avcodec/mpeg4videodec: Don't initialize unused RL VLCs

The RLTables whose VLC tables are only used for intra blocks only use
the very first VLC table; yet all 32 have been initialized. This commit
stops this by switching to INIT_FIRST_VLC_RL. This saves 201624B from
the .bss segment; in case the decoder is actually used, this translates
into less memory used.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavcodec/msmpeg4dec: Don't initialize unused RL VLCs
Andreas Rheinhardt [Tue, 8 Dec 2020 22:08:56 +0000 (23:08 +0100)]
avcodec/msmpeg4dec: Don't initialize unused RL VLCs

For the RLTables ff_rl_table[0..2] only the very first VLC is only ever
used, so it makes no sense to create 32 of them. This saves 285200B from
the .bss segment; this amount of memory is actually saved when this
decoder is used.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavcodec/h261dec: Don't initialize unused VLCs
Andreas Rheinhardt [Tue, 8 Dec 2020 21:51:25 +0000 (22:51 +0100)]
avcodec/h261dec: Don't initialize unused VLCs

The H.261 decoder uses only the very first VLC of ff_h261_rl_tcoeff,
so only initialize this one. Saves 68448B from the .bss segment; in case
the decoder is actually used, this amount of memory is saved.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavcodec/rl: Allow to create only a few VLC tables
Andreas Rheinhardt [Tue, 8 Dec 2020 21:38:05 +0000 (22:38 +0100)]
avcodec/rl: Allow to create only a few VLC tables

It is not uncommon that only the first one is used; this is similar to
ff_init_2d_vlc_rl().

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavcodec/mpeg12enc, speedhqenc: Avoid redundant copies of tables
Andreas Rheinhardt [Tue, 8 Dec 2020 20:28:25 +0000 (21:28 +0100)]
avcodec/mpeg12enc, speedhqenc: Avoid redundant copies of tables

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
3 years agoavcodec/dolby_e: Split decoder/parser files
Nicolas Gaullier [Mon, 25 Jan 2021 12:11:37 +0000 (13:11 +0100)]
avcodec/dolby_e: Split decoder/parser files

3 years agoavcodec/dolby_e: Add a parser
Nicolas Gaullier [Mon, 25 Jan 2021 12:11:36 +0000 (13:11 +0100)]
avcodec/dolby_e: Add a parser

3 years agoavfilter/vf_lenscorrection: allow to change colors of unmapped pixels
Paul B Mahol [Mon, 25 Jan 2021 11:28:28 +0000 (12:28 +0100)]
avfilter/vf_lenscorrection: allow to change colors of unmapped pixels

3 years agoavfilter/vf_lenscorrection: add >8 depth support
Paul B Mahol [Mon, 25 Jan 2021 11:01:49 +0000 (12:01 +0100)]
avfilter/vf_lenscorrection: add >8 depth support

3 years agoavfilter/vf_lenscorrection: fix far edges with nearest interpolation
Paul B Mahol [Mon, 25 Jan 2021 10:38:58 +0000 (11:38 +0100)]
avfilter/vf_lenscorrection: fix far edges with nearest interpolation

3 years agolavf/http: treat 308 as 301
Robin Cooksey [Wed, 13 Jan 2021 15:27:50 +0000 (15:27 +0000)]
lavf/http: treat 308 as 301

FFmpeg does not support POST, so there is no difference between a
308 and 301 request (see [RFC7538] section 3).

Signed-off-by: Josh Dekker <josh@itanimul.li>
3 years agocheckasm: add hevc_pel tests
Josh Dekker [Thu, 7 Jan 2021 12:10:20 +0000 (13:10 +0100)]
checkasm: add hevc_pel tests

Co-authored-by: Niklas Haas <git@haasn.xyz>
Signed-off-by: Josh Dekker <josh@itanimul.li>