Commit Graph

117240 Commits

Author SHA1 Message Date
Anton Khirnov
27564f9020 doc/examples/decode_filter_audio: stop using avfilter_graph_create_filter() incorrectly
See previous commit for details.
2024-09-28 17:04:33 +02:00
Anton Khirnov
53c71777e1 fftools/ffmpeg_filter: stop using avfilter_graph_create_filter() incorrectly
This function creates AND initializes a filter, so setting any filter
options after it is wrong. It happens to work when the filter's init
function does not touch the options in question, but is forbidden by the
API and is not guaranteed to remain functional.

Instead, use avfilter_graph_alloc_filter(), followed by setting the
options, and avfilter_init_dict().
2024-09-28 17:04:33 +02:00
Cameron Gutman
4ffd586e34 avcodec/amfenc: Add support for on-demand key frames
v2: Use forced_idr option instead of AV_FRAME_FLAG_KEY
Signed-off-by: Cameron Gutman <aicommander@gmail.com>
2024-09-28 16:01:39 +02:00
Cameron Gutman
e3ae57b0de avcodec/amfenc: Update supported HEVC color ranges
We properly set AMF_VIDEO_ENCODER_HEVC_NOMINAL_RANGE since fb4dd4b6f4.

Signed-off-by: Cameron Gutman <aicommander@gmail.com>
2024-09-28 16:01:18 +02:00
Cameron Gutman
4cbb997e15 avcodec/amfenc: Fix inverted loop filter option
The AMF HEVC encoder takes a bool option for whether deblocking filter
should be _disabled_ instead of whether it should _enabled_ like the
AMF H.264 encoder does. The logic was accidentally copied from H.264 to
HEVC without negating the bool value, so the deblocking filter was
actually disabled when AV_CODEC_FLAG_LOOP_FILTER was set.

Before this patch:
------------------
no flags set => deblocking filter on
flags +loop  => deblocking filter off
flags -loop  => deblocking filter on

After this patch:
-----------------
no flags set => deblocking filter on
flags +loop  => deblocking filter on
flags -loop  => deblocking filter off

Signed-off-by: Cameron Gutman <aicommander@gmail.com>
2024-09-28 16:01:00 +02:00
Anton Khirnov
8a951ef5e1 lavfi/avf_showwaves: switch to query_func2()
Also, drop redundant calls that also happen implicitly in generic code.
2024-09-28 09:53:11 +02:00
Anton Khirnov
fadd1dda8a lavfi/avf_showvolume: switch to query_func2()
Also, drop redundant calls that also happen implicitly in generic code.
2024-09-28 09:53:11 +02:00
Anton Khirnov
197a619371 lavfi/avf_showspectrum: switch to query_func2()
Also, drop redundant calls that also happen implicitly in generic code.
2024-09-28 09:53:11 +02:00
Anton Khirnov
d4efdbd029 lavfi/avf_showspatial: switch to query_func2()
Also, drop redundant calls that also happen implicitly in generic code.
2024-09-28 09:53:11 +02:00
Anton Khirnov
d7fde5694d lavfi/avf_showfreqs: switch to query_func2()
Also, drop redundant calls that also happen implicitly in generic code.
2024-09-28 09:53:11 +02:00
Anton Khirnov
423eccadd6 lavfi/avf_showcwt: switch to query_func2()
Also, drop redundant calls that also happen implicitly in generic code.
2024-09-28 09:53:11 +02:00
Anton Khirnov
70a16a18ca lavfi/avf_showcqt: switch to query_func2()
Also, drop redundant calls that also happen implicitly in generic code.
2024-09-28 09:53:11 +02:00
Anton Khirnov
d36c368bf3 lavfi/avf_concat: switch to query_func2() 2024-09-28 09:53:11 +02:00
Anton Khirnov
a36cea452f lavfi/avf_avectorscope: switch to query_func2()
Also, drop redundant calls that also happen implicitly in generic code.
2024-09-28 09:53:11 +02:00
Anton Khirnov
55c1cb847c lavfi/avf_aphasemeter: switch to query_func2()
Also, drop redundant calls that also happen implicitly in generic code.
2024-09-28 09:53:11 +02:00
Anton Khirnov
88f3893148 lavfi/avf_ahistogram: switch to query_func2()
Also, drop redundant calls that also happen implicitly in generic code.
2024-09-28 09:53:11 +02:00
Anton Khirnov
6320301182 lavfi/avf_abitscope: switch to query_func2()
Also, drop redundant calls that also happen implicitly in generic code.
2024-09-28 09:53:11 +02:00
Anton Khirnov
0c2a5890ac lavfi/avf_a3dscope: switch to query_func2()
Also, drop redundant calls that also happen implicitly in generic code.
2024-09-28 09:53:11 +02:00
Anton Khirnov
c1d7814dca lavfi/*_vaapi: switch to query_func2()
Also, drop redundant calls that also happen implicitly in generic code.
2024-09-28 09:53:11 +02:00
Anton Khirnov
194e1ca03f lavfi/asrc_sine: convert to query_func2() 2024-09-28 09:53:11 +02:00
Anton Khirnov
ec01d80f2e lavfi/asrc_sinc: convert to query_func2() 2024-09-28 09:53:11 +02:00
Anton Khirnov
66c9457387 lavfi/asrc_hilbert: convert to query_func2() 2024-09-28 09:53:11 +02:00
Anton Khirnov
21d2be1088 lavfi/asrc_flite: convert to query_func2() 2024-09-28 09:53:11 +02:00
Anton Khirnov
9335af9acc lavfi/asrc_anullsrc: convert to query_func2()
Also, drop a redundant call that also happens implicitly in generic
code.
2024-09-28 09:53:11 +02:00
Anton Khirnov
5b3212e5f7 lavfi/asrc_anoisesrc: convert to query_func2() 2024-09-28 09:53:11 +02:00
Anton Khirnov
242dab2ccd lavfi/asrc_afirsrc: convert to query_func2() 2024-09-28 09:53:11 +02:00
Anton Khirnov
47f87409e3 lavfi/asrc_afdelaysrc: convert to query_func2() 2024-09-28 09:53:11 +02:00
James Almer
01c47dd235 avformat/dump: don't print streams withing a group twice
Signed-off-by: James Almer <jamrial@gmail.com>
2024-09-27 19:44:18 -03:00
James Almer
9d265a9677 avformat/dump: reduce indentation when printing streams within a group
Signed-off-by: James Almer <jamrial@gmail.com>
2024-09-27 19:43:47 -03:00
James Almer
545de54e3e avformat/dump: always print non-tile streams in tile grid groups
This ensures streams in the group that don't belong in the grid are printed with
the default log level.

Signed-off-by: James Almer <jamrial@gmail.com>
2024-09-27 14:36:10 -03:00
Gyan Doshi
2b689261c5 MAINTAINERS: remove libopenjpeg decoder entry
The decoder wrapper was removed in 60ccb3fe78
2024-09-27 18:56:01 +05:30
Martin Storsjö
bd22d7e601 configure: Silence Xcode warnings about duplicate libraries
Since Xcode 15, macOS developer tools use a new linker. The new
linker by default warns for duplicate -l options. As this is a
known and expected thing, not to be considered an issue, ask for
the warning to be silenced.

This silences linker warnings like this:

    ld: warning: ignoring duplicate libraries: '-lc++', '-lcrypto', '-lm', '-logg', '-lpthread', '-lssl', '-lvorbis', '-lvpx', '-lz'

The linker can also warn about duplicate -rpath options, and there's
currently no option to silence those warnings.

Signed-off-by: Martin Storsjö <martin@martin.st>
2024-09-27 13:42:42 +03:00
Lynne
81c6e6c9ee
vulkan_encode_h265: fix rate control VBV values
The values written were placeholder values.
2024-09-27 09:55:44 +02:00
Lynne
934be0ff50
vulkan_encode_h264: fix rate control VBV values
The values must be in milliseconds, not bytes.
2024-09-27 09:55:39 +02:00
Martin Storsjö
fd1ea75c93 libavutil: Fix building libavutil/tests/cpu for aarch64 without SVE
This adds a condition that was missed in
b1ee2af843, fixing compilation on
toolchains that don't support SVE.

Signed-off-by: Martin Storsjö <martin@martin.st>
2024-09-27 09:02:10 +03:00
Martin Storsjö
c65a294f79 checkasm: Print the SVE vector length at startup
Signed-off-by: Martin Storsjö <martin@martin.st>
2024-09-27 00:06:55 +03:00
Martin Storsjö
b1ee2af843 aarch64: Print the SVE vector length in libavutil/tests/cpu.c
This makes this aspect more visible in test logs.

Signed-off-by: Martin Storsjö <martin@martin.st>
2024-09-27 00:06:30 +03:00
Martin Storsjö
e6eabb7ce7 aarch64: Add CPU feature flags for SVE and SVE2
Add code for detecting the feature on Linux and Windows.

Signed-off-by: Martin Storsjö <martin@martin.st>
2024-09-27 00:04:30 +03:00
Martin Storsjö
e6e56fd7a7 configure: Add detection of assembler support for SVE/SVE2
Signed-off-by: Martin Storsjö <martin@martin.st>
2024-09-27 00:03:04 +03:00
Martin Storsjö
067abbfe9d aarch64: Detect I8MM on Windows via SVE-I8MM
There's no direct processor feature constant for I8MM alone, but
there is a flag for SVE-I8MM (added in WinSDK 10.0.26100 and
recent versions of mingw-w64). If SVE-I8MM is available, we can
assume that I8MM is available.

While HW supporting these features isn't yet commonly running
Windows, this at least allows detecting and running the I8MM codepaths
in Windows builds in Wine (possibly running in QEMU).

Signed-off-by: Martin Storsjö <martin@martin.st>
2024-09-27 00:02:48 +03:00
James Almer
d55ab2ba9b avutil/iamf: fix doxygen
Signed-off-by: James Almer <jamrial@gmail.com>
2024-09-26 16:42:45 -03:00
Anton Khirnov
d103b61cd8 fftools/ffmpeg_filter: remove remaining OutputStream usage in init_simple_filtergraph()
With this, nothing in ffmpeg_filter acesses OutputStream anymore, thus
there are no more direct ties between filtering and muxing.

Rename init_simple_filtergraph() to fg_create_simple() for consistency.
2024-09-26 18:29:40 +02:00
Anton Khirnov
72cd0c20da fftools/ffmpeg_filter: drop the OutputStream parameter to ofilter_bind_ost()
It is no longer used for anything besides a sanity-checking assert.
Rename the function to ofilter_bind_enc(), as it no longer has any
assumptions about the target being an output stream.
2024-09-26 18:29:40 +02:00
Anton Khirnov
addc29f67a fftools/ffmpeg_filter: stop accessing OutputStream.[max_]frame_rate
Pass them to ofilter_bind_ost() via OutputFilterOptions, as is done for
most other data it needs. OutputStream.[max_]frame_rate/force_fps are no
longer used outside of ffmpeg_mux*, and so can be made private.

This is a step toward decoupling encoders from muxers.
2024-09-26 18:29:40 +02:00
Anton Khirnov
ac578ccb8e fftools/ffmpeg_filter: drop a redundant check
OutputFilterOptions.frame_rates are always NULL if the conditional is
true.
2024-09-26 18:29:40 +02:00
Anton Khirnov
cefc7d1ff4 fftools/ffmpeg_filter: clarify error message 2024-09-26 18:29:38 +02:00
Anton Khirnov
e3e66b14af fftools/ffmpeg_enc: don't write frame rate/SAR to AVStream directly
Have the muxer code read them out of the encoder context in
of_stream_init() instead.

This is a step towards decoupling encoders from muxers.
2024-09-26 18:25:21 +02:00
Anton Khirnov
7f7fe2a10b fftools/ffmpeg_enc: move set_encoder_id() to ffmpeg_mux_init
This code uses no encoder properties or state besides its name, and is
mostly muxer logic, and thus belongs more properly into the muxer.

The results of several test change due to different metadata tag order
(the "encoder" tag is now set first).
2024-09-26 18:25:21 +02:00
Anton Khirnov
6525fe4e77 fftools/ffmpeg_enc: remove unnecessary pointer references from enc_open() 2024-09-26 18:25:21 +02:00
Anton Khirnov
78038d51c5 fftools/ffmpeg_enc: do not set output stream codec parameters directly
Have the muxer code read them out of the encoder context in
of_stream_init() instead.

OutputStream.par_in no longer needs to be public, so can be moved to
MuxStream.

This is a step towards decoupling encoders from muxers.
2024-09-26 18:25:21 +02:00