Commit Graph

109752 Commits

Author SHA1 Message Date
Paul B Mahol c5a545cff8 avcodec: add WADY DPCM decoder 2023-01-24 16:58:01 +01:00
Leo Izen 9d5e66942c avcodec/libjxldec: fix gamma22 and gamma28 recognition
Gamma 2.2 and Gamma 2.8 are tagged in the file as 0.45455 and 0.35714,
respectively (i.e. 1/2.2 and 1/2.8). Trying to identify them as 2.2 and
2.8 instead of these values will cause the transfer function to not
properly be recognized. This patch fixes this.
2023-01-22 17:00:57 +02:00
Paul B Mahol ab8cde6efa avfilter/vf_dblur: also filter last scanline 2023-01-19 12:33:55 +01:00
Paul B Mahol 31c15a0880 avfilter/vf_dblur: allow radius < 1.0 2023-01-19 12:33:55 +01:00
Anton Khirnov ba36e6ed52 lavc/tests/bitstream: test bits_*_signed_nz and bits_peek_signed* 2023-01-18 09:41:32 +01:00
Anton Khirnov 0b33310cd0 lavc/bitstream: avoid UB in bits_{read,peek}_signed(0)
bits_*_signed(0) will currently invoke an undefined shift by
8 * sizeof(int).

Add bits_*_signed_nz() that only works for n>0, analogous to
bits_read_nz(). Add an explicit check for n=0 in bits_*_signed().

Found-by: James Almer
2023-01-18 09:41:32 +01:00
Paul B Mahol bf23d530d2 avfilter/vf_histogram: call av_frame_copy_props() 2023-01-17 23:20:00 +01:00
OvchinnikovDmitrii c13d959343 lavc/libvpx: increase thread limit to 64
This change improves the performance and multicore scalability of the vp9
codec for streaming single-pass encoded videos by taking advantage of up
to 64 cores in the system. The current thread limit for ffmpeg codecs is 16
(MAX_AUTO_THREADS in pthread_internal.h) due to a limitation in H.264 codec
that prevents more than 16 threads being used.

Experiments show that increasing the thread limit to 64 for vp9 improves
the performance for encoding 4K raw videos for streaming by up to 47%
compared to 16 threads, and from 20-30% for 32 threads, with the same quality
as measured by the VMAF score.

Rationale for this change:
Vp9 uses tiling to split the video frame into multiple columns; tiles must
be at least 256 pixels wide, so there is a limit to how many tiles can be
used. The tiles can be processed in parallel, and more tiles mean more CPU
threads can be used. 4K videos can make use of 16 threads, and 8K videos
can use 32. Row-mt can double the number of threads so 64 threads can be used.

Signed-off-by: James Zern <jzern@google.com>
2023-01-17 14:02:55 -08:00
Paul B Mahol 6ce51e5ee1 avfilter/vf_lagfun: call av_frame_copy_props() 2023-01-17 22:55:14 +01:00
Paul B Mahol 3cc08688e3 avfilter/vf_elbg: call av_frame_copy_props() 2023-01-17 22:43:39 +01:00
Paul B Mahol ceb52d47a3 avfilter/avf_showvolume: set output video frame duration 2023-01-17 19:02:35 +01:00
Paul B Mahol 04bbf5f70d avfilter/vsrc_gradients: set output video frame duration 2023-01-17 18:49:31 +01:00
Paul B Mahol a13931843e avfilter/avf_abitscope: set output time_base and output frame duration 2023-01-17 18:36:37 +01:00
Paul B Mahol 2c3f211b6d avfilter/af_virtualbass: call av_frame_copy_props() 2023-01-17 18:36:37 +01:00
Paul B Mahol 07485a6975 avfilter/vf_scdet: change threshold checking
Also allow score to match threshold thus allowing ==0.0 scores.
2023-01-17 18:03:14 +01:00
Paul B Mahol 11b02fc675 avfilter/af_arnndn: unbreak filtering 2023-01-17 17:46:58 +01:00
Paul B Mahol 180a7d2d6c avfilter/af_arnndn: call av_frame_copy_props() 2023-01-17 17:46:58 +01:00
Paul B Mahol 697e0fc062 avfilter/af_afftfilt: call av_frame_copy_props() 2023-01-17 17:46:58 +01:00
Paul B Mahol 5625f0542d avfilter/af_afftdn: call av_frame_copy_props() 2023-01-17 17:46:58 +01:00
Paul B Mahol 6d2b57fd31 avfilter/vsrc_cellauto: set video frame duration 2023-01-17 17:46:58 +01:00
Paul B Mahol e845c3e00a avfilter/vsrc_life: set video frame duration 2023-01-17 17:46:58 +01:00
Paul B Mahol 45910b2504 avfilter/vsrc_mandelbrot: set video frame duration 2023-01-17 17:46:58 +01:00
Paul B Mahol 96d4f74548 avfilter/vsrc_mptestsrc: set video frame duration 2023-01-17 17:46:58 +01:00
Paul B Mahol 218278b11d avfilter/vsrc_testsrc: set video frame duration 2023-01-17 17:46:57 +01:00
Paul B Mahol aa24719843 avfilter/vsrc_sierpinski: set video frame duration 2023-01-17 17:46:57 +01:00
Paul B Mahol d590fbf306 avfilter/vf_ciescope: fix black-point position 2023-01-17 17:46:57 +01:00
Paul B Mahol e6b9191e92 avfilter/vf_ciescope: switch to anti-aliased lines 2023-01-17 17:46:57 +01:00
Paul B Mahol 6b8adbfe03 avfilter/avf_a3dscope,avf_showcwt: set video frame duration 2023-01-17 14:50:08 +01:00
Paul B Mahol 2cee62295f avfilter/af_dialoguenhance: call av_frame_copy_props() 2023-01-17 14:50:08 +01:00
Paul B Mahol 8885d5dc7a avfilter/af_surround: call av_frame_copy_props() 2023-01-17 14:50:08 +01:00
Paul B Mahol 6a205d244a avfilter/af_afir: call av_frame_copy_props() 2023-01-17 14:50:08 +01:00
Michael Niedermayer cc7e984a05
avcodec/scpr3: Check bx
Fixes: Out of array access
Fixes: 55102/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_SCPR_fuzzer-4877396618903552

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2023-01-17 12:54:54 +01:00
Michael Niedermayer 4d42d82563
avcodec/012v: Order operations for odd size handling
Fixes: out of array access
Fixes: 48567/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_ZERO12V_fuzzer-6714182078955520.fuzz
Fixes: 48567/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_ZERO12V_fuzzer-6698145212137472.fuzz

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>
2023-01-17 12:54:29 +01:00
Haihao Xiang faf0afb5d9 lavfi/overlay_vaapi: remove unnecessary code
VA-API filter is not required.

Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
2023-01-17 10:10:52 +08:00
Haihao Xiang f1a8d3b0b6 lavfi/vaapi: remove duplicated code
Add a ff_ function to handle mulitple pipeline parameters. No functional
changes.

Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
2023-01-17 10:10:52 +08:00
Aman Karmani f5f1c1fd6b avcodec/vaapi_encode_h26x: passthrough A53 CC data as H264/HEVC SEI
Signed-off-by: Aman Karmani <aman@tmm1.net>
2023-01-17 10:10:52 +08:00
Haihao Xiang 7491545320 lavfi/qsv: use QSVVPPContext as base context in vf_vpp_qsv/vf_overlay_qsv
The same members between QSVVPPContext and VPPContext are removed from
VPPContext, and async_depth is moved from QSVVPPParam to QSVVPPContext
so that all QSV filters using QSVVPPContext may support async depth.

In addition, we may use QSVVPPContext as base context in other QSV
filters in the future so that we may re-use functions defined in
qsvvpp.c for other QSV filters.

This commit shouldn't change the functionality of vpp_qsv / overlay_qsv.

Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
2023-01-17 10:10:52 +08:00
Haihao Xiang 3763635ef4 lavfi/qsvvpp: set output frame durations
Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
2023-01-17 10:10:52 +08:00
Haihao Xiang 6ce23ebaac lavfi/vf_vpp_qsv: check output format string against NULL pointer
This is in preparation for reusing the code for other QSV filters. E.g.
deinterlacing_qsv may have an option array without format option

Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
2023-01-17 10:10:52 +08:00
Haihao Xiang dc5369144b lavfi/vf_vpp_qsv: add has_passthrough flag in VPPContext
QSV filters may set this flag in preinit callback to turn on / off pass
through mode

This is in preparation for reusing the code for other QSV filters. E.g.
scale_qsv filter doesn't support pass through mode.

Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
2023-01-17 10:10:52 +08:00
Haihao Xiang a1b3e8f2d7 lavfi/vf_vpp_qsv: add vpp_preinit callback
Set the expected default value for options in this callback, hence we
have the right values even if these options are not included in the
option arrray.

This is in preparation for reusing the code for other QSV filters.

Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
2023-01-17 10:10:52 +08:00
Haihao Xiang eb71c67dcc lavfi/vf_vpp_qsv: allow special values for the output video dimensions
Special values are:
0 = original width/height
-1 = keep original aspect

This is in preparation for reusing the code for other QSV filters.

Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
2023-01-17 10:10:52 +08:00
Haihao Xiang 129530e917 lavfi/vf_vpp_qsv: handle NULL pointer when evaluating an expression
This patch provides default value if the expression is NULL.

This is in preparation for reusing the code for other QSV filters.

Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
2023-01-17 10:10:52 +08:00
Haihao Xiang 24a8e1e126 lavfi/vf_vpp_qsv: add "a", "dar" and "sar" variables
Also fix the naming style in enum var_name.

This is in preparation for reusing the code for other QSV filters.

Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
2023-01-17 10:10:52 +08:00
Haihao Xiang 1f88fb80d5 lavc/qsvenc_jpeg: accept YUYV422 and BGRA in system memory
Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
2023-01-17 10:10:52 +08:00
Gyan Doshi 01f46f18db avformat/segment: calculate segment durations correctly.
segment_time and segment_times are defined as duration specifications, not
timestamps, so calculation of segment duration must account for initial
timestamp. Fixed.

FATE ref for segment-mp4-to-ts changed on account of avoiding premature
segment cut at the end of the first segment.
2023-01-16 15:37:59 +05:30
Paul B Mahol 2524d0b33b avformat/dtshddec: also read trailing padding in samples 2023-01-16 09:59:31 +01:00
Paul B Mahol ac7d21284b avfilter: add fractional delay IR source filter 2023-01-16 09:59:31 +01:00
Michael Niedermayer 1ab0f83b0a
avcodec/wbmpdec: use remaining size not whole size
Fixes: out of array access
Fixes: 48567/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WBMP_fuzzer-6652634692190208
Fixes: 48567/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WBMP_fuzzer-6653703453278208
Fixes: 48567/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WBMP_fuzzer-6668020758216704
Fixes: 48567/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WBMP_fuzzer-6684749875249152

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>
2023-01-15 19:34:39 +01:00
Michael Niedermayer e7755b433e
avcodec/eatgq: : Check index increments in tgq_decode_block()
Fixes: out of array access
Fixes: 48567/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_EATGQ_fuzzer-6743211456724992

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2023-01-15 19:34:39 +01:00