Commit graph

117665 commits

Author SHA1 Message Date
Nuo Mi
b611410569 avcodec/vvc/thread: Check frame to be non NULL
Fixes: NULL pointer dereference
Fixes: 71303/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_VVC_fuzzer-4875859050168320

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reported-by: Michael Niedermayer <michael@niedermayer.cc>
2024-10-20 20:36:15 +08:00
72e5381123 avfilter/vf_subtitles: Respect YCbCr Matrix header
As specified in libass's ass_types.h, the colors or ASS_Images
should be converted to YCbCr using the matrix/range specified in
the track's YCbCrMatrix field (unless that field is set to YCBCR_NONE,
and defaulting to TV.601 if the header is missing).

This does not affect any subtitles generated or transcoded by ffmpeg,
since these contain a 'YCbCrMatrix: None' header.

Signed-off-by: arch1t3cht <arch1t3cht@gmail.com>
Signed-off-by: rcombs <rcombs@rcombs.me>
2024-10-19 11:08:34 -05:00
c98810ab47 avcodec/hw_base_encode: fix use after free on close
The way the linked list of images was freed caused a
use after free, by accessing pic->next after pic was
already freed.

Regression from 48a1a12968

Fix CID1633236
2024-10-18 11:18:41 +02:00
dfaade76db
vulkan: move buffer allocation av_log message
Its more useful when buffers are allocated, not in the
pool.
2024-10-18 11:18:35 +02:00
James Almer
1edc748eff avformat/movenc: explicitly support V30XLE and not the host native endian version
Should fix fate-vsynth*-v410 on BE targets.

Signed-off-by: James Almer <jamrial@gmail.com>
2024-10-17 21:20:27 -03:00
James Almer
6cf4186d1b fate/vcodec: update reference files for v410 vsynth tests
Forgotten in 601a347946.

Found-by: ramiro
Signed-off-by: James Almer <jamrial@gmail.com>
2024-10-17 17:04:57 -03:00
James Almer
f0e6296dde swscale/output: fix alpha endianness in XV36
Mistakenly written in native endianness in 42098f9266.

Signed-off-by: James Almer <jamrial@gmail.com>
2024-10-17 12:18:35 -03:00
James Almer
062fcacc8f avfilter/vsrc_testsrc: fill the xv30le alpha bits
As with other pixel formats, set the undefined alpha bits to opaque.

Signed-off-by: James Almer <jamrial@gmail.com>
2024-10-17 11:59:30 -03:00
James Almer
601a347946 swscale/output: fill the xv30le alpha bits
As with other pixel formats, set the undefined alpha bits to opaque.

Signed-off-by: James Almer <jamrial@gmail.com>
2024-10-17 11:59:24 -03:00
James Almer
5601c5bb2e avfilter/vsrc_testsrc: add support for XV36 and AYUV64
Signed-off-by: James Almer <jamrial@gmail.com>
2024-10-17 11:57:36 -03:00
James Almer
08c632ec0f swscale/output: add AYUV64BE output support
Signed-off-by: James Almer <jamrial@gmail.com>
2024-10-17 11:57:36 -03:00
James Almer
5a699c8db9 swscale/input: add AYUV64BE input support
Signed-off-by: James Almer <jamrial@gmail.com>
2024-10-17 11:57:36 -03:00
James Almer
42098f9266 swscale/output: add X36VBE output support
Signed-off-by: James Almer <jamrial@gmail.com>
2024-10-17 11:57:36 -03:00
James Almer
e012a7a24a swscale/input: add X36VBE input support
Signed-off-by: James Almer <jamrial@gmail.com>
2024-10-17 11:57:36 -03:00
James Almer
2137346324 swscale/output: fill all the xv36le alpha bits
The format is 10 bit per component, not 8.

Signed-off-by: James Almer <jamrial@gmail.com>
2024-10-17 11:57:36 -03:00
James Almer
e1d1ba4cbc tests/checkasm/sw_rgb: don't write random data past the end of the buffer
Should fix fate-checkasm-sw_rgb under gcc-ubsan.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Ramiro Polla <ramiro.polla@gmail.com>
2024-10-17 13:08:39 +02:00
Ramiro Polla
d2ed52dc02 avdevice/dshow: fix unused variable warning
The acaps variable was used outside of the #if DSHOWDEBUG block with
a1c4929f, but it is no longer used outside of the block since f125c504.
2024-10-17 13:04:17 +02:00
Anton Khirnov
c034213083 lavfi/vsrc_perlin: convert to query_func2() 2024-10-17 11:00:35 +02:00
Anton Khirnov
e0aa644978 lavfi/vsrc_life: convert to query_func2() 2024-10-17 11:00:35 +02:00
Anton Khirnov
2094a7256c lavfi/vsrc_life: avoid modifying the context in query_formats()
It is supposed to be free of side effects. Do it in init instead.
2024-10-17 11:00:35 +02:00
Anton Khirnov
d08feb9003 lavfi/vf_zscale: convert to query_func2() 2024-10-17 11:00:35 +02:00
Anton Khirnov
6bff95be03 lavfi/vf_weave: convert to query_func2() 2024-10-17 11:00:35 +02:00
Anton Khirnov
ab01f0522b lavfi/vf_vpp_qsv: convert to query_func2() 2024-10-17 11:00:35 +02:00
Anton Khirnov
e5b530f137 lavfi/vf_vmafmotion: convert to query_func2() 2024-10-17 11:00:35 +02:00
Anton Khirnov
73c863fad8 lavfi/vf_v360: convert to query_func2() 2024-10-17 11:00:35 +02:00
Anton Khirnov
223327d51a lavfi/vf_untile: convert to query_func2() 2024-10-17 11:00:35 +02:00
Anton Khirnov
5d0fbd7145 lavfi/vf_transpose: convert to query_func2() 2024-10-17 11:00:35 +02:00
Anton Khirnov
ef4913e30d lavfi/vf_tpad: convert to query_func2() 2024-10-17 11:00:35 +02:00
Anton Khirnov
ce5aa74045 lavfi/vf_tile: convert to query_func2() 2024-10-17 11:00:35 +02:00
Anton Khirnov
14ece0bf58 lavfi/vf_telecine: convert to query_func2() 2024-10-17 11:00:35 +02:00
Anton Khirnov
a18418f39d lavfi/vf_swapuv: convert to query_func2() 2024-10-17 11:00:35 +02:00
Anton Khirnov
06292d34de lavfi/vf_swaprect: convert to query_func2() 2024-10-17 11:00:35 +02:00
Anton Khirnov
05aad90c69 lavfi/vf_subtitles: convert to query_func2() 2024-10-17 11:00:35 +02:00
Anton Khirnov
6ed357ce77 lavfi/vf_stereo3d: convert to query_func2() 2024-10-17 11:00:35 +02:00
Anton Khirnov
bdaaddb65c lavfi/vf_stack: convert to query_func2() 2024-10-17 11:00:35 +02:00
Anton Khirnov
e2f4c69779 lavfi/vf_shuffleplanes: convert to query_func2() 2024-10-17 11:00:35 +02:00
Anton Khirnov
965e9b646e lavfi/vf_showpalette: convert to query_func2() 2024-10-17 11:00:35 +02:00
Anton Khirnov
a96244df77 lavfi/vf_setparams: convert to query_func2() 2024-10-17 11:00:35 +02:00
Anton Khirnov
242ee7b0a2 fftools/ffmpeg_sched: be smarter about flushing the pre-muxing queues
These per-stream FIFOs hold the packets before every stream is
initialized and the header can be written. Once that happens, current
code will flush each stream's queue one after the other. However, in
case we buffered a lot of data for multiple streams, this may cause the
muxer to overflow max_interleave_delta, resulting in worse interleaving
than necessary.

Change the code to interleave packets from all the queues by DTS.
2024-10-17 10:57:18 +02:00
Anton Khirnov
6d6bd86f2b fftools/opt_common: stop accessing a private field
Stops printing the 'C' flag in -filters output, but it carries no
actionable information anyway.
2024-10-17 10:56:33 +02:00
Anton Khirnov
e79ac9312f fftools/ffmpeg_filter: use proper logging contexts 2024-10-17 10:56:30 +02:00
Anton Khirnov
ad50254ee1 fftools/ffmpeg_demux: use proper logging contexts everywhere 2024-10-17 10:52:02 +02:00
James Almer
e206e72b83 Revert "tests/fate: disable compression for zlib-based codecs"
This made the output non binary reproducible across different versions of
zlib.
This reverts commit bce5855afb.

Signed-off-by: James Almer <jamrial@gmail.com>
2024-10-16 17:38:57 -03:00
d0927ed0a8
libavcodec/ffv1enc: Add option to select the quantization table
Sponsored-by: Sovereign Tech Fund
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2024-10-16 21:41:19 +02:00
81a360a5ed
avcodec/ffv1: add a named constant for the quant table size
Sponsored-by: Sovereign Tech Fund
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2024-10-16 21:41:19 +02:00
2542e9296c
avcodec/ffv1: RCT is only possible with RGB
Sponsored-by: Sovereign Tech Fund
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2024-10-16 21:41:18 +02:00
Anton Khirnov
31b5b3badc lavu/opt: deprecate av_opt_ptr()
It has no more internal callers, and we do not want to support direct
pointer access via AVOptions, as that constrains AVOption API
extensions.
2024-10-16 16:46:29 +02:00
Anton Khirnov
86460a0342 lavf/flvdec: replace a private option with a field in FFFormatContext
The demuxer's 'missing_streams' private option is used to communicate
information from the demuxer to avformat_find_stream_info(). However,
that is not only unnecessarily complicated, it also leaks internal
information to users, e.g. this option appears in the results of the
fate-flv-demux test.

Use a new field in FFFormatContext to communicate this information
instead.
2024-10-16 16:46:29 +02:00
Anton Khirnov
31da5222a4 lavf: replace FFFormatContext.prefer_codec_framerate with FF_INFMT_FLAG
There is no reason for this to be a dynamic property, as the only
demuxer using this sets it unconditionally.
2024-10-16 16:46:29 +02:00
Anton Khirnov
12e5116872 lavf: deprecate av_format_inject_global_side_data()
This function would otherwise fail to build on the next major bump, as
inject_global_side_data is marked for removal.

It should also never be needed, as there is now a mechanism for
supplying global side data to decoders directly.
2024-10-16 16:46:25 +02:00