1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-26 19:01:44 +02:00
Commit Graph

104420 Commits

Author SHA1 Message Date
Paul B Mahol
2148934ce3 avfilter/vf_dblur: use lrintf() 2021-10-23 23:38:39 +02:00
Paul B Mahol
a586ce0a21 avfilter/vf_dblur: fix artifacts 2021-10-23 23:38:39 +02:00
Paul B Mahol
6c45d34e50 avfilter/vf_convolution: improve runtime support for convolution filter 2021-10-23 14:51:42 +02:00
Paul B Mahol
9e8bb9efd9 avfilter/vf_convolution: unbreak runtime planes option functionality
For non-convolution filters like sobel.
2021-10-23 14:51:42 +02:00
Michael Niedermayer
70024b6b47 avcodec/flac_parser: Consider AV_INPUT_BUFFER_PADDING_SIZE
Fixes: out if array read
Fixes: 40109/clusterfuzz-testcase-minimized-ffmpeg_dem_FLAC_fuzzer-4805686811295744

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Mattias Wadman <mattias.wadman@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2021-10-22 17:34:05 +02:00
Paul B Mahol
eda2a50c8e avfilter/vf_selectivecolor: no need to use doubles 2021-10-22 13:57:42 +02:00
Paul B Mahol
7d463be590 avfilter/vf_bilateral: add slice threading support 2021-10-22 12:20:40 +02:00
Paul B Mahol
444cf3fca8 avfilter/vf_bilateral: add direct aka writable frame support 2021-10-22 09:36:54 +02:00
Paul B Mahol
cf0881bcfc avfilter/vf_bilateral: properly round float result 2021-10-21 22:02:58 +02:00
Paul B Mahol
4e4057e437 avfilter/vf_bilateral: remove unused arguments 2021-10-21 22:02:58 +02:00
Paul B Mahol
f0ad40b525 avfilter/vf_bilateral: remove unneeded multiplications 2021-10-21 22:02:58 +02:00
Derek Buitenhuis
7216458c96 avformat/mov: Do not hard fail if bit rate calculation overflows unless in explode mode
bit_rate is not a critical field, and we shouln't hard fail if we
can't caluclate it due to a large timebase - it needlessly breaks
valid files.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2021-10-21 14:34:36 +01:00
Derek Buitenhuis
a987b5c9ee avformat/mov: Use av_rescale when calculating bit rate
It is less susceptible to overflows.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2021-10-21 14:34:36 +01:00
Michael Niedermayer
f24028c798 avcodec/ttadsp: Fix integer overflows in tta_filter_process_c()
Fixes: signed integer overflow: 822841647 + 1647055738 cannot be represented in type 'int'
Fixes: 39935/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_TTA_fuzzer-4592657142251520

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2021-10-21 14:17:12 +02:00
Michael Niedermayer
6bba9d960b tools/target_dec_fuzzer: Adjust threshold for MXPEG
Fixes: Timeout
Fixes: 39813/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MXPEG_fuzzer-6010298067189760

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2021-10-21 14:17:12 +02:00
Michael Niedermayer
e154353fdb avutil/mathematics: Document av_rescale_rnd() behavior on non int64 results
Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2021-10-21 14:13:03 +02:00
the.real.laplace@gmail.com
c13a2f701d avfilter/vf_eq: add support for alpha channel
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2021-10-21 14:13:03 +02:00
Gyan Doshi
2aa343bb6f doc/filters: add notes for varblur 2021-10-21 16:13:54 +05:30
Limin Wang
cd38fbf4f7 avcodec/atsc_a53: use AVERROR_INVALIDDATA
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2021-10-20 22:47:53 +08:00
Limin Wang
0feb7c8601 avcodec/hevc_sei: remove the duplicate check
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2021-10-20 22:47:47 +08:00
Limin Wang
b22b8e5489 avfilter/vf_showinfo: small adjustments for the HDR10+ dump
summary for the adjustments:
1, remove the extra "," in the ,}
...{0.2004,0.3001,0.4008,0.5005,0.6002,0.7009,0.8006,0.9013,}
to
...{0.2004,0.3001,0.4008,0.5005,0.6002,0.7009,0.8006,0.9013}

2, add "," between the } and new field
} fraction_bright_pixels
to
}, fraction_bright_pixels

3, remove the extra space between "} }"
...{0.2004,0.3001,0.4008,0.5005,0.6002,0.7009,0.8006,0.9013,} }
to
...{0.2004,0.3001,0.4008,0.5005,0.6002,0.7009,0.8006,0.9013,}}

Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2021-10-20 22:47:42 +08:00
Limin Wang
3253133382 avfilter/af_replaygain: use fabsf() instead of fabs()
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2021-10-20 22:47:36 +08:00
Limin Wang
44fe572371 avformat/mpegtsenc: add AVSV format_identifier for AVS standard
Listing of Registered Identifiers:
https://smpte-ra.org/registered-mpeg-ts-ids

Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2021-10-20 22:47:17 +08:00
Limin Wang
5779bd5b2a avformat/mpegts: add support for stream_type 0xd4, which is AVS3
GB/T 17975.1
Information technology-Generic coding of moving pictures and associated audio
information-Part 1:Systems

Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2021-10-20 22:40:13 +08:00
Paul B Mahol
960efa94ff avfilter/vf_v360: make reset_rot option not lose its value
Unless -1 value is provided then rotation is reset single time.
2021-10-20 14:49:13 +02:00
James Almer
1e22ad2ada avcodec/libx264: move sei_data_size out of the for loop
Otherwise its value will be reset on each iteration.

Signed-off-by: James Almer <jamrial@gmail.com>
2021-10-20 00:21:44 -03:00
Limin Wang
a59f8ea2a9 avformat/mpegts: add support for stream_type 0xd2, which is AVS2
GB/T 17975.1
Information technology-Generic coding of moving pictures and associated audio
information-Part 1:Systems

Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2021-10-19 20:15:48 +08:00
Limin Wang
ff7ed0b006 avcodec/extract_extradata_bsf: add support for AVS3
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2021-10-19 20:15:48 +08:00
Limin Wang
38052757f5 avformat: add raw avs3 muxer
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2021-10-19 20:15:47 +08:00
Paul B Mahol
407acc0747 avfilter: add varblur video filter 2021-10-19 08:53:56 +02:00
James Almer
66f8055c89 avcodec/libx264: copy unregistered data SEI messages to the input x264 picture
Fixes undefined behavior.

Signed-off-by: James Almer <jamrial@gmail.com>
2021-10-18 21:07:11 -03:00
Paul B Mahol
f7ddf4fc57 avfilter/af_alimiter: add timeline and commands support 2021-10-18 22:46:36 +02:00
Mattias Wadman
49597300e8 libavcodec/flac_parser: Validate subframe zero bit and type
Reduces the risk of finding false frames that happens to have valid values and CRC.

Fixes ticket #9185 ffmpeg flac decoder incorrectly finds junk frame
https://trac.ffmpeg.org/ticket/9185
2021-10-18 22:01:11 +02:00
Paul B Mahol
374d646930 avfilter/vf_fftdnoiz: fix missing funcionality 2021-10-18 21:34:08 +02:00
Paul B Mahol
025ae145de avfilter/vf_fftdnoiz: add command options support 2021-10-18 21:34:08 +02:00
Paul B Mahol
374f2ac370 avfilter/vf_fftdnoiz: add slice threading support 2021-10-18 18:05:31 +02:00
James Almer
762e18da3f avcodec/h264_picture: don't assume Film Grain Params side data will be present
If a decoding error happens before frame side data is allocated, this assert may be
triggered. And since applying film grain is not enforced (we just warn it wasn't
applied and move on), we can just do that in such scenarios.

Fixes: Assertion failure
Fixes: clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_H264_fuzzer-5528650032742400

Signed-off-by: James Almer <jamrial@gmail.com>
2021-10-18 10:18:18 -03:00
Brad Hards
7c08cad280 libavcodec/libx264: add user data unregistered SEI encoding
MISB ST 0604 and ST 2101 require user data unregistered SEI messages
(precision timestamps and sensor identifiers) to be included. That
currently isn't supported for libx264. This patch adds support
for user data unregistered SEI messages in accordance with ISO/IEC
14496-10:2020(E) section D.1.7 (syntax) and D.2.7 (semantics).

This code is based on a similar change for libx265 (commit
1f58503013).

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2021-10-18 13:13:53 +01:00
Martin Storsjö
ab79263419 seek: Fix crashes in ff_seek_frame_binary if built with latest Clang 14
Passing an uninitialized variable as argument to a function is
undefined behaviour (UB). The compiler can assume that UB does not
happen.

Hence, the compiler can assume that the variables are never
uninitialized when passed as argument, which means that the codepaths
that initializes them must be taken.

In ff_seek_frame_binary, this means that the compiler can assume
that the codepaths that initialize pos_min and pos_max are taken,
which means that the conditions "if (sti->index_entries)" and
"if (index >= 0)" can be optimized out.

Current Clang git versions (upcoming Clang 14) enabled an optimization
that does this, which broke the current version of this function
(which intentionally left the variables uninitialized, but silencing
warnings about being uninitialized). See [1] for discussion on
the matter.

[1] https://reviews.llvm.org/D105169#3069555

Signed-off-by: Martin Storsjö <martin@martin.st>
2021-10-18 14:34:30 +03:00
Martin Storsjö
fd3bd5c492 aarch64: h264qpel: Do vertical filtering without transposing
This gives rather big speedups on these functions:

Before:
put_h264_qpel_8_mc01_8_neon:     241.0   131.5   138.7
put_h264_qpel_8_mc02_8_neon:     214.7   121.2   127.5
put_h264_qpel_8_mc03_8_neon:     242.5   131.2   135.7
put_h264_qpel_8_mc11_8_neon:     421.2   218.7   251.0
put_h264_qpel_8_mc12_8_neon:     878.0   509.5   537.5
put_h264_qpel_8_mc13_8_neon:     423.7   217.0   252.0
put_h264_qpel_8_mc21_8_neon:     858.2   479.5   514.0
put_h264_qpel_8_mc22_8_neon:     649.7   385.2   403.0
put_h264_qpel_8_mc23_8_neon:     860.2   476.5   517.7
put_h264_qpel_8_mc31_8_neon:     437.2   219.5   252.5
put_h264_qpel_8_mc32_8_neon:     892.5   510.5   546.0
put_h264_qpel_8_mc33_8_neon:     438.2   218.5   257.0
put_h264_qpel_16_mc01_8_neon:    944.2   509.7   546.7
put_h264_qpel_16_mc02_8_neon:    878.7   469.5   509.7
put_h264_qpel_16_mc03_8_neon:    945.7   510.7   557.0
put_h264_qpel_16_mc11_8_neon:   1663.2   858.5   979.5
put_h264_qpel_16_mc12_8_neon:   3510.2  2027.7  2112.7
put_h264_qpel_16_mc13_8_neon:   1664.7   857.5   980.5
put_h264_qpel_16_mc21_8_neon:   3366.2  1928.5  2030.5
put_h264_qpel_16_mc22_8_neon:   2584.7  1514.7  1590.2
put_h264_qpel_16_mc23_8_neon:   3367.7  1927.7  2035.0
put_h264_qpel_16_mc31_8_neon:   1716.7   849.7   997.0
put_h264_qpel_16_mc32_8_neon:   3564.0  2044.2  3835.2
put_h264_qpel_16_mc33_8_neon:   1717.7   863.0   989.5

After:
put_h264_qpel_8_mc01_8_neon:     136.0    73.7    76.0
put_h264_qpel_8_mc02_8_neon:     108.7    65.0    64.0
put_h264_qpel_8_mc03_8_neon:     137.5    72.7    73.0
put_h264_qpel_8_mc11_8_neon:     316.2   159.0   188.5
put_h264_qpel_8_mc12_8_neon:     653.0   375.5   384.7
put_h264_qpel_8_mc13_8_neon:     318.7   165.5   189.5
put_h264_qpel_8_mc21_8_neon:     739.2   385.7   432.5
put_h264_qpel_8_mc22_8_neon:     530.7   295.5   309.5
put_h264_qpel_8_mc23_8_neon:     741.2   393.7   421.0
put_h264_qpel_8_mc31_8_neon:     332.2   162.5   190.0
put_h264_qpel_8_mc32_8_neon:     667.5   378.2   390.5
put_h264_qpel_8_mc33_8_neon:     332.7   166.5   195.5
put_h264_qpel_16_mc01_8_neon:    524.2   285.2   294.0
put_h264_qpel_16_mc02_8_neon:    454.7   252.2   250.2
put_h264_qpel_16_mc03_8_neon:    525.7   286.0   283.0
put_h264_qpel_16_mc11_8_neon:   1243.2   630.7   726.7
put_h264_qpel_16_mc12_8_neon:   2610.2  1479.7  1481.2
put_h264_qpel_16_mc13_8_neon:   1250.5   631.7   727.7
put_h264_qpel_16_mc21_8_neon:   2890.2  1571.2  1679.7
put_h264_qpel_16_mc22_8_neon:   2108.7  1177.5  1223.5
put_h264_qpel_16_mc23_8_neon:   2891.7  1578.7  1667.7
put_h264_qpel_16_mc31_8_neon:   1296.7   630.5   752.5
put_h264_qpel_16_mc32_8_neon:   2664.0  1483.2  1503.5
put_h264_qpel_16_mc33_8_neon:   1297.7   632.5   747.2

I.e. overall a 20%-60% reduction in runtime of these
functions.

Signed-off-by: Martin Storsjö <martin@martin.st>
2021-10-18 14:27:58 +03:00
Martin Storsjö
2d5a7f6d00 arm/aarch64: Improve scheduling in the avg form of h264_qpel
Don't use the loaded registers directly, avoiding stalls on in
order cores. Use vrhadd.u8 with q registers where easily possible.

Signed-off-by: Martin Storsjö <martin@martin.st>
2021-10-18 14:27:36 +03:00
Gyan Doshi
d04c005021 doc/filters: correct description of select filter variables 2021-10-18 14:28:04 +05:30
Paul B Mahol
bbbf95848b avfilter/vf_w3fdif: do not output extra frame at start with deint=interlaced 2021-10-18 09:29:41 +02:00
Michael Niedermayer
85c169f6a6 avcodec/speexdec: Seed should be unsigned otherwise the operations done on it are undefined
Fixes: signed integer overflow: 1664525000 + 1013904223 cannot be represented in type 'int'
Fixes: 39865/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_SPEEX_fuzzer-4979694508834816

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>
2021-10-17 22:20:07 +02:00
Limin Wang
77970abb71 avcodec/hevc_filter: Correct indention
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2021-10-17 16:57:53 +08:00
Limin Wang
5a91850b61 avcodec/hevc_filter: remove unneeded headers
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2021-10-17 16:57:47 +08:00
Limin Wang
06548e6045 avcodec/hevcdec: remove unused code
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2021-10-17 16:57:43 +08:00
Limin Wang
fb4f9a2043 avformat/rtpdec_rfc4175: add support for RANGE
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2021-10-17 16:54:03 +08:00
Limin Wang
bad48dfe9a avformat/rtpdec_rfc4175: add support for colorimetry
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2021-10-17 16:54:03 +08:00
Limin Wang
ca56fedab5 avformat/rtpdec_rfc4175: add support for TCS
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2021-10-17 16:54:03 +08:00