Commit Graph

117342 Commits

Author SHA1 Message Date
Anton Khirnov d18d119b8f doc/examples/transcode: stop using avfilter_graph_create_filter() incorrectly
See previous commits for details.
2024-09-28 17:04:33 +02:00
Anton Khirnov 87faa8aeba doc/examples/decode_filter_video: stop using avfilter_graph_create_filter() incorrectly
See previous commits for details.
2024-09-28 17:04:33 +02:00
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