summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* avcodec/gemdec: Use ff_set_dimensions()Michael Niedermayer2021-10-11
| | | | | | | | | Fixes: OOM Fixes: 39798/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_GEM_fuzzer-5611636853964800 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>
* avcodec/utils: Ensure 8x8 alignment for ARGO in avcodec_align_dimensions2()Michael Niedermayer2021-10-11
| | | | | | | | Fixes: out of array access Fixes: 39736/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_ARGO_fuzzer-4820016722214912 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/rtpdec_rfc4175: return the proper valueLimin Wang2021-10-11
| | | | Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avformat/rtpdec_rfc4175: Remove redundant initializationLimin Wang2021-10-11
| | | | Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avformat/rtpdec_rfc4175: use av_get_bits_per_pixel()Limin Wang2021-10-11
| | | | Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avcodec/bitpacked: check av_buffer_ref resultLimin Wang2021-10-11
| | | | Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* libavcodec/speexdec: fix memleak in error pathZhao Zhili2021-10-11
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* Revert "avfilter/vf_idet: reduce noisyness if the filter has been auto inserted"Andreas Rheinhardt2021-10-11
| | | | | | | | | | | This reverts commit 723c37d3b7b5555f23bfdfe3e5c3599543c06332. Said commit was in preparation for auto-inserting the idet filter. This has never happened; even if it did, the code is wrong, because it segfaults if the filter instance doesn't have a name (having one is not mandatory). Furthermore, it is documented for libavfilter to not assign any semantics to the name, which this check violates. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/libsrt: add snddropdelay parameter for srtLimin Wang2021-10-11
| | | | | Reviewed-by: "zhilizhao(赵志立)" <quinkblack@foxmail.com> Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avfilter/vsrc_testsrc: add planar formats for haldclutsrcPaul B Mahol2021-10-11
|
* avfilter/vf_lut3d: add x86-optimized tetrahedral interpolationMark Reid2021-10-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I spotted an interesting pattern that I didn't see before that leads to the implementation being faster. The bit shifting table I was using before is no longer needed, and was able to remove quite a few lines.  I also add use of FMA on the AVX2 version. f32 1920x1080 1 thread with prelut c impl 1434012700 UNITS in lut3d->interp,       1 runs,      0 skips 1434035335 UNITS in lut3d->interp,       2 runs,      0 skips 1423615347 UNITS in lut3d->interp,       4 runs,      0 skips 1426268863 UNITS in lut3d->interp,       8 runs,      0 skips sse2 905484420 UNITS in lut3d->interp,       1 runs,      0 skips 905659010 UNITS in lut3d->interp,       2 runs,      0 skips 915167140 UNITS in lut3d->interp,       4 runs,      0 skips 915834222 UNITS in lut3d->interp,       8 runs,      0 skips avx 574794860 UNITS in lut3d->interp,       1 runs,      0 skips 581035090 UNITS in lut3d->interp,       2 runs,      0 skips 584116720 UNITS in lut3d->interp,       4 runs,      0 skips 581460290 UNITS in lut3d->interp,       8 runs,      0 skips avx2 301698880 UNITS in lut3d->interp,       1 runs,      0 skips 301982880 UNITS in lut3d->interp,       2 runs,      0 skips 306962430 UNITS in lut3d->interp,       4 runs,      0 skips 305472025 UNITS in lut3d->interp,       8 runs,      0 skips gbrap16 1920x1080 1 thread with prelut c impl 1480894840 UNITS in lut3d->interp,       1 runs,      0 skips 1502922990 UNITS in lut3d->interp,       2 runs,      0 skips 1496114307 UNITS in lut3d->interp,       4 runs,      0 skips 1492554551 UNITS in lut3d->interp,       8 runs,      0 skips sse2 980777180 UNITS in lut3d->interp,       1 runs,      0 skips 986121520 UNITS in lut3d->interp,       2 runs,      0 skips 986489840 UNITS in lut3d->interp,       4 runs,      0 skips 998832248 UNITS in lut3d->interp,       8 runs,      0 skips avx 622212360 UNITS in lut3d->interp,       1 runs,      0 skips 622981160 UNITS in lut3d->interp,       2 runs,      0 skips 645396315 UNITS in lut3d->interp,       4 runs,      0 skips 641057075 UNITS in lut3d->interp,       8 runs,      0 skips avx2 321336400 UNITS in lut3d->interp,       1 runs,      0 skips 321268920 UNITS in lut3d->interp,       2 runs,      0 skips 323459895 UNITS in lut3d->interp,       4 runs,      0 skips 324949967 UNITS in lut3d->interp,       8 runs,      0 skips
* avcodec/lagarith: return early on errorPaul B Mahol2021-10-10
| | | | Also return proper error values.
* avcodec: add native Speex decoderPaul B Mahol2021-10-10
|
* avformat/librist: replace deprecated functionsGijs Peskens2021-10-10
| | | | | | | | | | | This gets rid of of rist_receiver_data_read, rist_receiver_data_block_free and rist_parse_address these functions have been deprecated since librist release v0.2.1 and are replaced with functions suffixed with 2. I added a version macro check at the top of the file to ensure ffmpeg can still be compiled against older versions. Signed-off-by: Gijs Peskens <gijs@peskens.net> Signed-off-by: Marton Balint <cus@passwd.hu>
* avformat/mpegts: fix max_packet_size in mpegts payload parsingMarton Balint2021-10-10
| | | | | | | | | | | | | | | | | The maximum allowed useful PES payload data was set to PES_packet_length, but it is in fact smaller by the length of the PES header. This changes how corrupt streams are packetized: - If PES header length is bigger than PES_packet_length then the PES packet payload will be handled as an unbound packet - PES packets with payload across multiple MPEGTS packets will always be splitted if with the next chunk of data the payload should exceed PES_packet_length, previously a PES_header_length amount of excess was allowed. Fixes ticket #9355. Signed-off-by: Marton Balint <cus@passwd.hu>
* avformat/mpegts: rename PES total_size to PES_packet_lengthMarton Balint2021-10-10
| | | | | | | | | This renames PESContext->total_size to PESContext->PES_packet_length and keeps it 0 for unbound packets, so its name and semantics will match the standard. There should be no change in functionality. Signed-off-by: Marton Balint <cus@passwd.hu>
* avformat/mpegts: delay allocation of PES bufferMarton Balint2021-10-10
| | | | | | This allows us to allocate the buffer in a single code path. Signed-off-by: Marton Balint <cus@passwd.hu>
* avformat/mpegts: use named constants for stream_id typesMarton Balint2021-10-10
| | | | Signed-off-by: Marton Balint <cus@passwd.hu>
* avfilter/asrc_flite: Remove double ';'Andreas Rheinhardt2021-10-10
| | | | | | | | | (Inside a function a stray ';' is an empty statement; outside of a function it is actually invalid, but compilers happen to accept it without complaint (unless e.g. using -pedantic).) Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter/asrc_flite: Fix races upon (un)registering voicesAndreas Rheinhardt2021-10-10
| | | | | | | | | | | | | | | | | | The voice registration system in libflite is broken: It is not thread-safe and also not based on internal counters; instead any call to unregister a voice frees said voice even if there are still many other users of said voice who have also registered said voice. While there is no way to guard against another library unregistering voices behind our back, we can at least be correct in the absence of other users of libflite. The current code already tried this by using a reference count of our own for each voice; but the implementation of this is not thread-safe at all. Fix this by using a mutex to guard all of libavfilter's libflite registration and unregistration calls, thereby being thread-safe in the absence of other libflite users. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter/asrc_flite: Fix use-after-freesAndreas Rheinhardt2021-10-10
| | | | | | | | | | | | | When an flite filter instance is uninitialized and the refcount of the corresponding voice_entry reaches zero, the voice is unregistered, yet the voice_entry's pointer to the voice is not reset. (Whereas some other pointers are needlessly reset.) Because of this a new flite filter instance will believe said voice to already be registered, leading to use-after-frees. Fix this by resetting the right pointer instead of the wrong ones. Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter/asrc_flite: Don't segfault when using list_voices optionAndreas Rheinhardt2021-10-10
| | | | | | | | | | Could also happen if initializing flite failed* or if an unknown voice has been selected or if registering the voice failed. *: which it currently can't, because it is a no-op. Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter/tests/filtfmts: Check for existence of formats/channel layoutsAndreas Rheinhardt2021-10-10
| | | | | | | | Fixes segfaults with filters that either return AVERROR(EAGAIN) (or another error) or that do not set everything and rely on filter_query_formats() to set the rest. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter/vf_scale: ReindentationAndreas Rheinhardt2021-10-10
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter/vf_scale: Remove always-true checksAndreas Rheinhardt2021-10-10
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter/vf_transpose: Don't call av_pix_fmt_desc_get() twiceAndreas Rheinhardt2021-10-10
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter/tests/filtfmts: Replace macro by ordinary functionAndreas Rheinhardt2021-10-10
| | | | | | This is possible now that AVFilterFormatsConfig exists. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/libsrt: specify base of maxbw string to 10 instead of auto-detectLimin Wang2021-10-10
| | | | | | Make all options string conversion consistent. Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avformat/libsrt: use strtoll/strtol for int64_t/intLimin Wang2021-10-10
| | | | Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avformat/matroskadec: Reset state also on failure in matroska_reset_status()Michael Niedermayer2021-10-09
| | | | | | | | | | | The calling code does not handle failures and will fail with assertion failures later. Seeking can always fail even when the position was previously read. Fixes: Assertion failure Fixes: 35253/clusterfuzz-testcase-minimized-ffmpeg_dem_MATROSKA_fuzzer-4693059982983168 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avfilter/vf_v360: fix scaling to give proper resultsPaul B Mahol2021-10-09
|
* avfilter/vf_v360: do not round second arg for rescale()Paul B Mahol2021-10-09
|
* avcodec/mpeg12dec: Fix usage of init_get_bits() and use init_get_bits8()Limin Wang2021-10-09
| | | | | Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* configure: export pkg-config includedir variableJames Almer2021-10-09
| | | | | | | | | | Some packages may not define custom cflags, in which case a simple "pkg-config --cflags" call will return an empty string. This change will be useful to get a valid include path that can be used in library checks. Reviewed-by: Haihao Xiang <haihao.xiang@intel.com> Signed-off-by: James Almer <jamrial@gmail.com>
* avdevice/caca: Don't free AVOpt-enabled string manuallyAndreas Rheinhardt2021-10-09
| | | | | Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avdevice/caca: Make deinit function out of write_trailerAndreas Rheinhardt2021-10-09
| | | | | | | Fixes memleaks in case the trailer is never written. Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter: add audio signal to distortion ratio filterPaul B Mahol2021-10-09
|
* avfilter/af_axcorrelate: add DBLP sample format supportPaul B Mahol2021-10-09
|
* doc/filters: specify more axcorrelate designPaul B Mahol2021-10-09
| | | | | The typical 1D normalized cross-correlation is not same as 1D windowed normalized cross-correlation.
* avdevice/xv: Increase array sizeAndreas Rheinhardt2021-10-09
| | | | | | | | | | | | | av_image_copy() expects an array of four pointers according to its declaration; although it currently only touches pointers that are actually in use (depending upon the pixel format) this might change at any time (as has already happened for the linesizes in d7bc52bf456deba0f32d9fe5c288ec441f1ebef5). This fixes ticket #9264 as well as a warning from GCC 11. Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter/af_atilt: Constify filterAndreas Rheinhardt2021-10-09
| | | | | | | | | (It is actually UB if a declaration and its definition differ wrt their types like they do in this case (the declaration in allfilters is const).) Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/allformats: Fix data race when accessing devices listsAndreas Rheinhardt2021-10-09
| | | | | | | | | | | | | | | | | | Up until now setting the input and output devices lists is guarded by a mutex. This prevents data races emanating from multiple concurrent calls to avpriv_register_devices() (triggered by multiple concurrent calls to avdevice_register_all()). Yet reading the lists pointers was done without any lock and with nonatomic variables. This means that there are data races in case of concurrent calls to av_(de)muxer_iterate() and avdevice_register_all() (but only if the iteration in av_(de)muxer_iterate exhausts the non-device (de)muxers). This commit fixes this by putting said pointers into atomic objects. Due to the unavailability of _Atomic the object is an atomic_uintptr, leading to ugly casts. Switching to atomics also allowed to remove the mutex currently used in avpriv_register_devices(). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/h274: Fix signed left shiftMichael Niedermayer2021-10-09
| | | | | | | Fixes: 39463/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_H264_fuzzer-5736517629247488 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/wavdec: Check smv_block_sizeMichael Niedermayer2021-10-09
| | | | | | | | Fixes: Timeout Fixes: 39554/clusterfuzz-testcase-minimized-ffmpeg_dem_WAV_fuzzer-4915221701984256 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/rmdec: Check for multiple audio_stream_infoMichael Niedermayer2021-10-09
| | | | | | | | Fixes: memleak Fixes: 39166/clusterfuzz-testcase-minimized-ffmpeg_dem_IVR_fuzzer-5153276690038784 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/h264_slice: Check idr_pic_idMichael Niedermayer2021-10-09
| | | | | | | | Fixes: left shift of negative value -1 Fixes: 39223/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_H264_fuzzer-5498831521841152 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avfilter/af_axcorrelate: fix integer overflow for huge segmentsPaul B Mahol2021-10-09
|
* avfilter/af_axcorrelate: always process all input samplesPaul B Mahol2021-10-09
|
* fftools/ffmpeg, ffmpeg_opt: Allocate (In|Out)putStream.pkt earlyAndreas Rheinhardt2021-10-08
| | | | | | | Avoids checks lateron in the hot path. Reviewed-by: James Almer <jamrial@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* fftools/ffmpeg: Remove unnecessary av_packet_unref()Andreas Rheinhardt2021-10-08
| | | | | | | avcodec_receive_packet() already unreferences the packet on its own. Reviewed-by: James Almer <jamrial@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>