1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-18 03:19:31 +02:00
Commit Graph

100733 Commits

Author SHA1 Message Date
James Almer
53b4550bdd avutil/film_grain_params: fix doxy for ar_coeff_* fields
Signed-off-by: James Almer <jamrial@gmail.com>
2020-12-03 13:25:21 -03:00
Andreas Rheinhardt
0639f5c294 avcodec/pthread_slice: Don't use static variable, fix race
ff_slice_thread_init() uses a static variable to hold a function
pointer, although the value of said pointer needn't be saved between
different runs of this function at all.

The reason for this being so is probably that said pointer points to
a static function (if used); but storage class specifiers like "static"
are not part of the type of an object and so including it in the pointer
declaration is wrong (anyway, "static" means different things in both
contexts: for the function declaration it affects linkage, for the
variable storage duration).

Using a static variable here can lead to races, e.g. when initializing
VP9 (for which said function pointer was added) and H.264 with slice
threading. The latter has the FF_CODEC_CAP_INIT_THREADSAFE flag set and
is therefore unaffected by the lock guarding initializations of
decoders.

Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2020-12-02 16:11:50 +01:00
Andreas Rheinhardt
4e26520039 avcodec/mpeg12enc: Disallow using MPEG-2 intra VLC table for mpeg1video
Using MPEG-2 intra VLC tables is spec-incompliant for MPEG-1 and given
that an MPEG-1 bitstream can't signal whether MPEG-2 intra VLC tables
have been used the output is broken. Therefore this option is removed
immediately without any deprecation period.

Reviewed-by: James Almer <jamrial@gmail.com>
Reviewed-by: Marton Balint <cus@passwd.hu>
Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2020-12-02 15:38:15 +01:00
Paul B Mahol
0c8a0d3a56 avfilter/af_acrossover: add per output band gain 2020-12-02 13:54:53 +01:00
Paul B Mahol
13df9bfbcb avutil/avsscanf: fix possible overreads when dealing with %c or %s 2020-12-02 13:54:53 +01:00
Paul B Mahol
b0298ad4e5 avfilter/af_acrossover: remove pointless allocation of static size 2020-12-02 13:54:53 +01:00
Paul B Mahol
0a5ff19643 avfilter/af_acrossover: document roll-off of each filter order 2020-12-02 12:30:10 +01:00
Paul B Mahol
ba6e2a2d05 avfilter/af_acrossover: move coefficients and state to simple arrays 2020-12-01 18:42:57 +01:00
Paul B Mahol
aa3566a8ee avfilter/af_anequalizer: add timeline and slice support 2020-12-01 18:42:28 +01:00
James Almer
c35cf9fe53 avcodec/cbs_h2645: remove dead code in cbs_h2645_replace_ps()
Missed in 0720e15c03. PS units are now guaranteed
to always be reference counter.

Signed-off-by: James Almer <jamrial@gmail.com>
2020-12-01 13:21:23 -03:00
James Almer
233a99e191 avcodec/cbs_av1: ensure Sequence Header unit content is always reference counted
Prevents a NULL pointer dereference.

Signed-off-by: James Almer <jamrial@gmail.com>
2020-12-01 12:31:58 -03:00
James Almer
052b4c3481 avcodec/vaapi_av1: read film grain param values from AV1Frames
Signed-off-by: James Almer <jamrial@gmail.com>
2020-11-30 19:12:39 -03:00
James Almer
6aa45a2769 avcodec/dxva2_av1: read film grain param values from AV1Frames
Signed-off-by: James Almer <jamrial@gmail.com>
2020-11-30 19:12:39 -03:00
James Almer
003aeeb3f6 avcodec/nvdec_av1: read film grain param values from AV1Frames
Signed-off-by: James Almer <jamrial@gmail.com>
2020-11-30 19:12:39 -03:00
James Almer
eee7ba8dba avcodec/av1dec: infer and store film grain param values in AV1Frame
They are not always coded in the bistream for each frame. In some cases, the
values need to be taken from a reference frame.

See section 6.8.20 from the AV1 spec.

Signed-off-by: James Almer <jamrial@gmail.com>
2020-11-30 19:12:39 -03:00
James Almer
aea80e2273 avcodec/cbs_av1: split film grain param fields into their own struct
Cosmetic change in preparation for the following patches.

Signed-off-by: James Almer <jamrial@gmail.com>
2020-11-30 19:12:39 -03:00
James Almer
e4c3ec3e00 Revert "avcodec/nvdec_av1: fix setting film grain parameters for frames with update_grain == 0"
This reverts commit f9eec62983.

This does not effectively cover all cases. The values for some frames need
to be inferred by the decoder.

Signed-off-by: James Almer <jamrial@gmail.com>
2020-11-30 19:12:39 -03:00
Paul B Mahol
da83673c8b avfilter/af_agate: add support for commands and timeline 2020-11-30 21:42:09 +01:00
Paul B Mahol
62a0368fb4 avfilter/af_acrossover: remove unneeded emms_c() calls 2020-11-30 14:53:14 +01:00
Paul B Mahol
ca0900bc6e avfilter/af_acrossover: unroll biquad_process loop
Makes code significantly faster for higher orders.
2020-11-30 14:53:14 +01:00
Paul B Mahol
6100a01a7a avfilter/af_acrossover: use fdsp for inverter 2020-11-30 13:45:59 +01:00
Paul B Mahol
263b98bbbd avfilter/af_acrossover: always align nb_samples for fdsp call 2020-11-29 22:10:26 +01:00
Paul B Mahol
400b9ee731 avfilter/af_asupercut: add float sample format support 2020-11-29 21:44:37 +01:00
Michael Niedermayer
7cf852b03c avcodec/hevc_cabac: Limit value in coeff_abs_level_remaining_decode() tighter
The max depth is 16bps, the max allowed coefficient depth is depth+6
Fixes: signed integer overflow: 1074266112 + 1073725439 cannot be represented in type 'int'
Fixes: 26493/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_HEVC_fuzzer-5657763331702784

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-11-29 16:10:56 +01:00
Michael Niedermayer
9dc3301745 avformat/cafdec: Check the return code from av_add_index_entry()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-11-29 16:10:56 +01:00
Michael Niedermayer
eb46939e3a avformat/cafdec: Check for EOF in index read loop
Fixes: OOM
Fixes: 27398/clusterfuzz-testcase-minimized-ffmpeg_dem_CAF_fuzzer-541296033975500

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-11-29 16:10:55 +01:00
Michael Niedermayer
5eed718087 avformat/cafdec: Check that bytes_per_packet and frames_per_packet are non negative
These fields are not signed in the spec (1.0) so they cannot be negative
Changing bytes_per_packet to unsigned would not solve this as it is exported
as block_align which is signed

Fixes: Infinite loop
Fixes: 26492/clusterfuzz-testcase-minimized-ffmpeg_dem_CAF_fuzzer-5632087614554112

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-11-29 16:10:55 +01:00
Michael Niedermayer
4bdb7966fa avformat/mpegts: Limit iterations of get_packet_size()
This is a pathological case where the fuzzer provides only 2 bytes per iteration.

Fixes: Timeout (>30 -> 0.9sec)
Fixes: 26488/clusterfuzz-testcase-minimized-ffmpeg_dem_MPEGTS_fuzzer-5911031077142528

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-11-29 16:10:55 +01:00
Michael Niedermayer
3f6653efdb avcodec/notchlc: Check available space for luma block code and alpha code
Fixes: Timeout (too long -> 2sec)
Fixes: 25439/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_NOTCHLC_fuzzer-5688211127664640

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-11-29 16:10:55 +01:00
Paul B Mahol
bebea78755 avfilter/af_asupercut: add order option 2020-11-29 14:16:48 +01:00
Paul B Mahol
f194cedfe6 avfilter/af_acrossover: split in correct spot
Previously split was made in wrong (half of original) position.
2020-11-29 10:52:18 +01:00
Paul B Mahol
c5cdec9731 avfilter/af_acrossover: reduce memory usage
Split biquad coefficients from biquad state.
2020-11-29 10:52:18 +01:00
Andreas Rheinhardt
7eb9cf593e avcodec/pafvideo: Cleanup generically on init failure
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2020-11-29 00:38:32 +01:00
Andreas Rheinhardt
9227721ef0 avcodec/pnmenc: Mark encoders as init-threadsafe
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2020-11-29 00:38:01 +01:00
Andreas Rheinhardt
362fdc2657 avcodec/photocd: Mark decoder as init-threadsafe
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2020-11-29 00:01:53 +01:00
Andreas Rheinhardt
d12cfa17a5 avcodec/pcm-dvdenc: Mark encoder as init-threadsafe
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2020-11-29 00:01:53 +01:00
Andreas Rheinhardt
adf1ab002e avcodec/pcm-dvd: Mark decoder as init-threadsafe
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2020-11-29 00:01:53 +01:00
Andreas Rheinhardt
54135a0bd2 avcodec/pafvideo: Mark decoder as init-threadsafe
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2020-11-29 00:01:53 +01:00
Andreas Rheinhardt
ef04afa730 avcodec/pafaudio: Mark decoder as init-threadsafe
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2020-11-29 00:01:53 +01:00
Andreas Rheinhardt
a3d61e7321 avcodec/cdxl: Mark decoder as init-threadsafe
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2020-11-29 00:01:53 +01:00
Andreas Rheinhardt
da860802ad avcodec/svq1dec: Make decoder init-threadsafe
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2020-11-29 00:01:53 +01:00
Andreas Rheinhardt
5baee59301 avcodec/a64multienc: Fix memleak upon init failure
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2020-11-29 00:01:53 +01:00
Paul B Mahol
94ea760c6f avfilter/af_asubboost: make wet option apply to final output
Also changes some default values for options after this change.
This makes distinction between feedback and wet option.
Before they would produce same output if values were swapped.
2020-11-28 22:07:18 +01:00
Paul B Mahol
a01b037c90 avfilter/avf_showfreqs: add group delay data mode 2020-11-28 20:57:41 +01:00
Andriy Gelman
f3891430fc avformat/rtspdec: fix potential mem leak in listen mode
Currently a repeating setup request (with the same stream id) will
simply overwrite rtp_handle/transport_priv without freeing the
resources first. This is fixed by closing the previous setup request.

Reviewed-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Andriy Gelman <andriy.gelman@gmail.com>
2020-11-28 12:27:53 -05:00
Andriy Gelman
b0019b909b avformat/rtspdec: show method request in log
Reviewed-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Andriy Gelman <andriy.gelman@gmail.com>
2020-11-28 12:26:59 -05:00
Paul B Mahol
66d89a8070 avfilter/af_acrossover: add option to adjust input gain 2020-11-28 16:02:12 +01:00
Paul B Mahol
68adb68e96 avfilter/af_acrossover: really fix single-pole allpass coefficients
Now LR2, LR6, LR10, LR14 and LR18 have really flat sum.
2020-11-28 14:53:17 +01:00
Paul B Mahol
ea8c05a3e7 doc/filters: mention when adenorm filter should be placed in graph 2020-11-28 13:12:06 +01:00
Paul B Mahol
50e2ad41de avfilter/af_acrossover: remove unecessary allpass calls 2020-11-28 13:12:06 +01:00