James Almer
d151c904df
avformat/cafdec: take into account priming samples in timestamps
...
Signed-off-by: James Almer <jamrial@gmail.com >
2026-02-02 12:52:02 -03:00
stevxiao
7e9fe341df
avfilter: version bump for filter mestimate_d3d12
...
Bump library version for filter 'mestimate_d3d12'.
This is the follow-up for commit https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21217/commits
Signed-off-by: younengxiao <steven.xiao@amd.com >
2026-02-02 04:16:50 +00:00
stevxiao
8fbd31e715
doc/filters: add entry for mestimate_d3d12
...
Add documentation for the filter "mestimate_d3d12" to the filters documentation.
This is the follow-up for commit https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21217/commits
Signed-off-by: younengxiao <steven.xiao@amd.com >
2026-02-01 09:53:35 -05:00
Frank Plowman
364d5dda91
lavc/vvc: Fix unchecked error codes from add_reconstructed_area
2026-01-31 13:46:13 +00:00
Frank Plowman
f9740eb969
lavc/vvc: Fix unchecked error codes from set_qp_y
...
Fixes: clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_VVC_fuzzer-4957602162475008
2026-01-31 13:46:13 +00:00
Gyan Doshi
50bcc96a75
avformat/cafdec: parse non-intra streams
...
Needed to set KF flags so that they can be streamcopied using CLI.
2026-01-30 16:59:53 +00:00
Andreas Rheinhardt
39661f9295
fftools/ffmpeg_{filter,mux_init}: Improve type-safety
...
Reviewed-by: Niklas Haas <ffmpeg@haasn.dev >
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2026-01-30 15:20:08 +01:00
Andreas Rheinhardt
67c87cde99
avfilter/formats,vsrc_testsrc: use type-safe formats functions
...
Reviewed-by: Niklas Haas <ffmpeg@haasn.dev >
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2026-01-30 15:20:08 +01:00
Andreas Rheinhardt
de3f99d74b
avformat/cafenc: Truncate values for avio_w8()
...
Fixes triggering av_assert2() in avio_w8().
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2026-01-30 13:24:06 +01:00
Andreas Rheinhardt
4367c055b6
avformat/cafenc: Fix segfault upon error, avoid indirection
...
caf_write_deinit() would segfault if the CAFStreamContext
couldn't be allocated. Fix this by moving everything from
CAFStreamContext to the ordinary CAFContext; the separation
doesn't make sense for a format with only one stream anyway
and removing it also avoids an indirection.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2026-01-30 11:30:30 +01:00
Martin Storsjö
7ebb6c54eb
tools: Lowercase more patterns in aarch64 assembly
...
Match more SVE/SME specific details.
Also lowercase all register names. As this matches many cases
of code comments that refer to variables elsewhere, not specific
registers, we only apply this tranformation on the part of lines
before a potential comment.
2026-01-30 05:21:27 +00:00
Martin Storsjö
f74c551eaa
aarch64: Fix indentation of a few instructions
...
This file is excempt from the indent checker script, as there
are a few other bits in it that the script wants to reformat
into slightly worse form, or which might not warrant being
reformatted.
But these instructions should indeed be indented this way.
2026-01-30 05:21:27 +00:00
James Almer
277f9cb5d8
avformat/cafenc: add init and deinit callbacks
...
Signed-off-by: James Almer <jamrial@gmail.com >
2026-01-29 21:09:03 -03:00
James Almer
2d5556b082
avformat/cafenc: reindent after the previous changes
...
Signed-off-by: James Almer <jamrial@gmail.com >
2026-01-29 21:09:03 -03:00
James Almer
7581abdcb1
avformat/cafenc: support writing Packet Table Chunk Header if there are priming or remainder frames
...
If a codec has fixed block_align and frame_size but a given sample has either
priming or remainder frames, a pakt chunk can be written declaring zero packets
and no table, reporting only the samples to be discarded.
Signed-off-by: James Almer <jamrial@gmail.com >
2026-01-29 21:09:02 -03:00
James Almer
6ff12c4f6c
avformat/cafenc: add support for variable frame size codecs
...
Signed-off-by: James Almer <jamrial@gmail.com >
2026-01-29 21:09:02 -03:00
James Almer
7600d12383
avformat/cafenc: define a structure to store stream private fields
...
Will be useful in the following commit.
Signed-off-by: James Almer <jamrial@gmail.com >
2026-01-29 21:09:02 -03:00
James Almer
8d1f247ec1
avformat/cafenc: fix setting frame count fields in Packet Table Description
...
st->duration is not guaranteed to be set, so store the sum of packet durations instead.
Also, set mPrimingFrames and mRemainderFrames to correct values.
Based on a patch by Jun Zhao.
Signed-off-by: James Almer <jamrial@gmail.com >
2026-01-29 21:09:02 -03:00
James Almer
f5ea09afe8
avformat/cafdec: export frame size when present
...
Signed-off-by: James Almer <jamrial@gmail.com >
2026-01-29 21:09:02 -03:00
James Almer
c52b287ba9
avformat/cafdec: fix setting stream and packet durations
...
Take into account priming frames, exported as start time, and remainder frames,
substracted from the stream duration as well as exported as discard padding
side data in the last packet.
Signed-off-by: James Almer <jamrial@gmail.com >
2026-01-29 21:09:02 -03:00
James Almer
041d108958
avcodec/opus/enc: don't remove more samples than needed from the last packet
...
The hardcoded extra 120 samples results in the side data reporting the need to
discard the entire packet rather than the padding samples.
This is in line with the behavior of the libopus encoder.
Signed-off-by: James Almer <jamrial@gmail.com >
2026-01-29 21:09:02 -03:00
James Almer
c3aea7628c
avcodec/opus/enc: set avctx->frame_size to a better guess based on encoder configuration
...
Signed-off-by: James Almer <jamrial@gmail.com >
2026-01-29 21:09:02 -03:00
Andreas Rheinhardt
5b4ba2e1ac
avfilter/vsrc_amf: Remove unused-but-set variable
...
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc >
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2026-01-29 22:33:33 +01:00
Andreas Rheinhardt
ca5504fb5c
avcodec/liblc3dec: Simplify sample fmt selection
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2026-01-29 14:08:15 +01:00
Andreas Rheinhardt
ba1aea762b
avcodec/liblc3{dec,enc}: Simplify sample_size, is_planar check
...
Sample size is always sizeof(float), is planar is a simple if
given that these codecs only support float and planar float.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2026-01-29 14:08:15 +01:00
Jack Lau
3c902f68d7
configure: update whip dependences
...
The dtls_protocol is ffmpeg component, should
be included by whip_muxer_select
Signed-off-by: Jack Lau <jacklau1222gm@gmail.com >
2026-01-29 12:19:17 +00:00
Jack Lau
2a0a32c42b
avformat/whip: remove the confused option buffer_size
...
See https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20965#issuecomment-22815
The buffer_size isn't inlcuded in release/8.0,
directly use new option ts_buffer_size to replace
buffer_size shoule be okay.
Signed-off-by: Jack Lau <jacklau1222gm@gmail.com >
2026-01-29 12:18:22 +00:00
Andreas Rheinhardt
fc0e0ef022
tests/checkasm/hevc_dequant: Only init buffer when needed
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2026-01-29 12:25:33 +01:00
Andreas Rheinhardt
436b74b725
avcodec/x86/hevc/dequant: Add SSSE3 dequant ASM function
...
hevc_dequant_4x4_8_c (GCC): 20.2 ( 1.00x)
hevc_dequant_4x4_8_c (Clang): 21.7 ( 1.00x)
hevc_dequant_4x4_8_ssse3: 5.8 ( 3.51x)
hevc_dequant_8x8_8_c (GCC): 32.9 ( 1.00x)
hevc_dequant_8x8_8_c (Clang): 78.7 ( 1.00x)
hevc_dequant_8x8_8_ssse3: 6.8 ( 4.83x)
hevc_dequant_16x16_8_c (GCC): 105.1 ( 1.00x)
hevc_dequant_16x16_8_c (Clang): 151.1 ( 1.00x)
hevc_dequant_16x16_8_ssse3: 19.3 ( 5.45x)
hevc_dequant_32x32_8_c (GCC): 415.7 ( 1.00x)
hevc_dequant_32x32_8_c (Clang): 602.3 ( 1.00x)
hevc_dequant_32x32_8_ssse3: 78.2 ( 5.32x)
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2026-01-29 12:25:33 +01:00
Andreas Rheinhardt
cf359a7907
avcodec/hevc/dsp: Add alignment for dequant
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2026-01-29 12:25:33 +01:00
Andreas Rheinhardt
0c7f87b136
avcodec/hevc/dsp_template: Optimize impossible branches away
...
Saves 1856B of .text here.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2026-01-29 12:25:33 +01:00
Andreas Rheinhardt
2729c52988
avcodec/x86/hevc/deblock: Reduce usage of GPRs
...
Don't use two GPRs to store two words from xmm registers;
shuffle these words so that they are fit into one GPR.
This reduces the amount of GPRs used and leads to tiny speedups
here. Also avoid rex prefixes whenever possible (for lines
that needed to be modified anyway).
Old benchmarks:
hevc_h_loop_filter_luma8_skip_c: 23.8 ( 1.00x)
hevc_h_loop_filter_luma8_skip_sse2: 8.5 ( 2.80x)
hevc_h_loop_filter_luma8_skip_ssse3: 7.2 ( 3.29x)
hevc_h_loop_filter_luma8_skip_avx: 6.4 ( 3.71x)
hevc_h_loop_filter_luma8_strong_c: 150.4 ( 1.00x)
hevc_h_loop_filter_luma8_strong_sse2: 34.4 ( 4.37x)
hevc_h_loop_filter_luma8_strong_ssse3: 34.5 ( 4.36x)
hevc_h_loop_filter_luma8_strong_avx: 32.3 ( 4.65x)
hevc_h_loop_filter_luma8_weak_c: 103.2 ( 1.00x)
hevc_h_loop_filter_luma8_weak_sse2: 34.5 ( 2.99x)
hevc_h_loop_filter_luma8_weak_ssse3: 7.3 (14.22x)
hevc_h_loop_filter_luma8_weak_avx: 32.4 ( 3.18x)
hevc_h_loop_filter_luma10_skip_c: 23.5 ( 1.00x)
hevc_h_loop_filter_luma10_skip_sse2: 6.6 ( 3.58x)
hevc_h_loop_filter_luma10_skip_ssse3: 6.1 ( 3.86x)
hevc_h_loop_filter_luma10_skip_avx: 5.4 ( 4.34x)
hevc_h_loop_filter_luma10_strong_c: 161.8 ( 1.00x)
hevc_h_loop_filter_luma10_strong_sse2: 32.2 ( 5.03x)
hevc_h_loop_filter_luma10_strong_ssse3: 30.4 ( 5.33x)
hevc_h_loop_filter_luma10_strong_avx: 30.3 ( 5.33x)
hevc_h_loop_filter_luma10_weak_c: 23.5 ( 1.00x)
hevc_h_loop_filter_luma10_weak_sse2: 6.6 ( 3.58x)
hevc_h_loop_filter_luma10_weak_ssse3: 6.1 ( 3.85x)
hevc_h_loop_filter_luma10_weak_avx: 5.4 ( 4.35x)
hevc_h_loop_filter_luma12_skip_c: 18.8 ( 1.00x)
hevc_h_loop_filter_luma12_skip_sse2: 6.6 ( 2.87x)
hevc_h_loop_filter_luma12_skip_ssse3: 6.1 ( 3.08x)
hevc_h_loop_filter_luma12_skip_avx: 6.2 ( 3.06x)
hevc_h_loop_filter_luma12_strong_c: 159.0 ( 1.00x)
hevc_h_loop_filter_luma12_strong_sse2: 36.3 ( 4.38x)
hevc_h_loop_filter_luma12_strong_ssse3: 36.1 ( 4.40x)
hevc_h_loop_filter_luma12_strong_avx: 33.5 ( 4.75x)
hevc_h_loop_filter_luma12_weak_c: 40.1 ( 1.00x)
hevc_h_loop_filter_luma12_weak_sse2: 35.5 ( 1.13x)
hevc_h_loop_filter_luma12_weak_ssse3: 36.1 ( 1.11x)
hevc_h_loop_filter_luma12_weak_avx: 6.2 ( 6.52x)
hevc_v_loop_filter_luma8_skip_c: 25.5 ( 1.00x)
hevc_v_loop_filter_luma8_skip_sse2: 10.6 ( 2.40x)
hevc_v_loop_filter_luma8_skip_ssse3: 11.4 ( 2.24x)
hevc_v_loop_filter_luma8_skip_avx: 8.3 ( 3.07x)
hevc_v_loop_filter_luma8_strong_c: 146.8 ( 1.00x)
hevc_v_loop_filter_luma8_strong_sse2: 43.9 ( 3.35x)
hevc_v_loop_filter_luma8_strong_ssse3: 43.7 ( 3.36x)
hevc_v_loop_filter_luma8_strong_avx: 42.3 ( 3.47x)
hevc_v_loop_filter_luma8_weak_c: 25.5 ( 1.00x)
hevc_v_loop_filter_luma8_weak_sse2: 10.6 ( 2.40x)
hevc_v_loop_filter_luma8_weak_ssse3: 44.0 ( 0.58x)
hevc_v_loop_filter_luma8_weak_avx: 8.3 ( 3.09x)
hevc_v_loop_filter_luma10_skip_c: 20.0 ( 1.00x)
hevc_v_loop_filter_luma10_skip_sse2: 11.3 ( 1.77x)
hevc_v_loop_filter_luma10_skip_ssse3: 11.0 ( 1.82x)
hevc_v_loop_filter_luma10_skip_avx: 9.3 ( 2.15x)
hevc_v_loop_filter_luma10_strong_c: 193.5 ( 1.00x)
hevc_v_loop_filter_luma10_strong_sse2: 46.1 ( 4.19x)
hevc_v_loop_filter_luma10_strong_ssse3: 44.2 ( 4.38x)
hevc_v_loop_filter_luma10_strong_avx: 44.4 ( 4.35x)
hevc_v_loop_filter_luma10_weak_c: 90.3 ( 1.00x)
hevc_v_loop_filter_luma10_weak_sse2: 46.3 ( 1.95x)
hevc_v_loop_filter_luma10_weak_ssse3: 10.8 ( 8.37x)
hevc_v_loop_filter_luma10_weak_avx: 44.4 ( 2.03x)
hevc_v_loop_filter_luma12_skip_c: 16.8 ( 1.00x)
hevc_v_loop_filter_luma12_skip_sse2: 11.8 ( 1.42x)
hevc_v_loop_filter_luma12_skip_ssse3: 11.7 ( 1.43x)
hevc_v_loop_filter_luma12_skip_avx: 8.7 ( 1.93x)
hevc_v_loop_filter_luma12_strong_c: 159.3 ( 1.00x)
hevc_v_loop_filter_luma12_strong_sse2: 45.3 ( 3.52x)
hevc_v_loop_filter_luma12_strong_ssse3: 60.3 ( 2.64x)
hevc_v_loop_filter_luma12_strong_avx: 44.1 ( 3.61x)
hevc_v_loop_filter_luma12_weak_c: 63.6 ( 1.00x)
hevc_v_loop_filter_luma12_weak_sse2: 45.3 ( 1.40x)
hevc_v_loop_filter_luma12_weak_ssse3: 11.7 ( 5.41x)
hevc_v_loop_filter_luma12_weak_avx: 43.9 ( 1.45x)
New benchmarks:
hevc_h_loop_filter_luma8_skip_c: 24.2 ( 1.00x)
hevc_h_loop_filter_luma8_skip_sse2: 8.6 ( 2.82x)
hevc_h_loop_filter_luma8_skip_ssse3: 7.0 ( 3.46x)
hevc_h_loop_filter_luma8_skip_avx: 6.8 ( 3.54x)
hevc_h_loop_filter_luma8_strong_c: 150.4 ( 1.00x)
hevc_h_loop_filter_luma8_strong_sse2: 33.3 ( 4.52x)
hevc_h_loop_filter_luma8_strong_ssse3: 32.7 ( 4.61x)
hevc_h_loop_filter_luma8_strong_avx: 32.7 ( 4.60x)
hevc_h_loop_filter_luma8_weak_c: 104.0 ( 1.00x)
hevc_h_loop_filter_luma8_weak_sse2: 33.2 ( 3.13x)
hevc_h_loop_filter_luma8_weak_ssse3: 7.0 (14.91x)
hevc_h_loop_filter_luma8_weak_avx: 31.3 ( 3.32x)
hevc_h_loop_filter_luma10_skip_c: 19.2 ( 1.00x)
hevc_h_loop_filter_luma10_skip_sse2: 6.2 ( 3.08x)
hevc_h_loop_filter_luma10_skip_ssse3: 6.2 ( 3.08x)
hevc_h_loop_filter_luma10_skip_avx: 5.0 ( 3.85x)
hevc_h_loop_filter_luma10_strong_c: 159.8 ( 1.00x)
hevc_h_loop_filter_luma10_strong_sse2: 30.0 ( 5.32x)
hevc_h_loop_filter_luma10_strong_ssse3: 29.2 ( 5.48x)
hevc_h_loop_filter_luma10_strong_avx: 28.6 ( 5.58x)
hevc_h_loop_filter_luma10_weak_c: 19.2 ( 1.00x)
hevc_h_loop_filter_luma10_weak_sse2: 6.2 ( 3.09x)
hevc_h_loop_filter_luma10_weak_ssse3: 6.2 ( 3.09x)
hevc_h_loop_filter_luma10_weak_avx: 5.0 ( 3.88x)
hevc_h_loop_filter_luma12_skip_c: 18.7 ( 1.00x)
hevc_h_loop_filter_luma12_skip_sse2: 6.2 ( 3.00x)
hevc_h_loop_filter_luma12_skip_ssse3: 5.7 ( 3.27x)
hevc_h_loop_filter_luma12_skip_avx: 5.2 ( 3.61x)
hevc_h_loop_filter_luma12_strong_c: 160.2 ( 1.00x)
hevc_h_loop_filter_luma12_strong_sse2: 34.2 ( 4.68x)
hevc_h_loop_filter_luma12_strong_ssse3: 29.3 ( 5.48x)
hevc_h_loop_filter_luma12_strong_avx: 31.4 ( 5.10x)
hevc_h_loop_filter_luma12_weak_c: 40.2 ( 1.00x)
hevc_h_loop_filter_luma12_weak_sse2: 35.2 ( 1.14x)
hevc_h_loop_filter_luma12_weak_ssse3: 29.3 ( 1.37x)
hevc_h_loop_filter_luma12_weak_avx: 5.0 ( 8.09x)
hevc_v_loop_filter_luma8_skip_c: 25.6 ( 1.00x)
hevc_v_loop_filter_luma8_skip_sse2: 10.2 ( 2.52x)
hevc_v_loop_filter_luma8_skip_ssse3: 10.5 ( 2.45x)
hevc_v_loop_filter_luma8_skip_avx: 8.2 ( 3.11x)
hevc_v_loop_filter_luma8_strong_c: 147.1 ( 1.00x)
hevc_v_loop_filter_luma8_strong_sse2: 42.6 ( 3.45x)
hevc_v_loop_filter_luma8_strong_ssse3: 42.4 ( 3.47x)
hevc_v_loop_filter_luma8_strong_avx: 40.1 ( 3.67x)
hevc_v_loop_filter_luma8_weak_c: 25.6 ( 1.00x)
hevc_v_loop_filter_luma8_weak_sse2: 10.6 ( 2.42x)
hevc_v_loop_filter_luma8_weak_ssse3: 42.7 ( 0.60x)
hevc_v_loop_filter_luma8_weak_avx: 8.2 ( 3.11x)
hevc_v_loop_filter_luma10_skip_c: 16.7 ( 1.00x)
hevc_v_loop_filter_luma10_skip_sse2: 11.0 ( 1.52x)
hevc_v_loop_filter_luma10_skip_ssse3: 10.5 ( 1.59x)
hevc_v_loop_filter_luma10_skip_avx: 9.6 ( 1.74x)
hevc_v_loop_filter_luma10_strong_c: 190.0 ( 1.00x)
hevc_v_loop_filter_luma10_strong_sse2: 44.8 ( 4.24x)
hevc_v_loop_filter_luma10_strong_ssse3: 42.3 ( 4.49x)
hevc_v_loop_filter_luma10_strong_avx: 42.5 ( 4.47x)
hevc_v_loop_filter_luma10_weak_c: 88.3 ( 1.00x)
hevc_v_loop_filter_luma10_weak_sse2: 45.7 ( 1.93x)
hevc_v_loop_filter_luma10_weak_ssse3: 10.5 ( 8.40x)
hevc_v_loop_filter_luma10_weak_avx: 42.4 ( 2.09x)
hevc_v_loop_filter_luma12_skip_c: 16.7 ( 1.00x)
hevc_v_loop_filter_luma12_skip_sse2: 11.7 ( 1.42x)
hevc_v_loop_filter_luma12_skip_ssse3: 10.5 ( 1.59x)
hevc_v_loop_filter_luma12_skip_avx: 8.8 ( 1.90x)
hevc_v_loop_filter_luma12_strong_c: 159.4 ( 1.00x)
hevc_v_loop_filter_luma12_strong_sse2: 45.2 ( 3.53x)
hevc_v_loop_filter_luma12_strong_ssse3: 59.3 ( 2.69x)
hevc_v_loop_filter_luma12_strong_avx: 41.7 ( 3.82x)
hevc_v_loop_filter_luma12_weak_c: 63.3 ( 1.00x)
hevc_v_loop_filter_luma12_weak_sse2: 44.9 ( 1.41x)
hevc_v_loop_filter_luma12_weak_ssse3: 10.5 ( 6.02x)
hevc_v_loop_filter_luma12_weak_avx: 41.7 ( 1.52x)
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2026-01-29 11:54:57 +01:00
Andreas Rheinhardt
0843252229
avcodec/x86/hevc/deblock: avoid unused GPR
...
r12 is unused, so use it instead of r13 to reduce
the amount of push/pops.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2026-01-29 11:54:57 +01:00
Andreas Rheinhardt
0aad8b860a
avcodec/x86/hevc/deblock: Avoid vmovdqa
...
(It would even be possible to avoid a clobbering m10 in
MASKED_COPY and the mask register (%3) in MASKED_COPY2
when VEX encoding is in use.)
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2026-01-29 11:54:57 +01:00
Andreas Rheinhardt
c940128fff
avcodec/x86/vp9lpf: Avoid vmovdqa
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2026-01-29 11:54:57 +01:00
Andreas Rheinhardt
c898ddb8fe
avcodec/x86/cfhddsp: Reduce number of xmm registers used
...
Reviewed-by: James Almer <jamrial@gmail.com >
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2026-01-29 01:33:40 +01:00
Andreas Rheinhardt
848c3ca772
avcodec/x86/cfhddsp: Avoid pmaddwd
...
The result of using pmaddwd with the coefficients 1,-1,...,1,-1
is just the negative of using pmaddwd with the coefficients
-1,1,...,-1,1, so avoid one pmaddwd.
Reviewed-by: James Almer <jamrial@gmail.com >
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2026-01-29 01:33:37 +01:00
Andreas Rheinhardt
6224445753
avcodec/x86/cfhdencdsp: Avoid += x, -= x
...
Avoid incrementing lowq and highq inside the loop by using
complex addressing modes, avoiding to undo said modification
at the end of the horizontal loop.
For inputq, modify istrideq outside of the loop so that
it is only modified once at the end of the horizontal loop.
Reviewed-by: James Almer <jamrial@gmail.com >
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2026-01-29 01:33:34 +01:00
Andreas Rheinhardt
7dd6487800
avcodec/x86/cfhdencdsp: Don't load twice
...
Sign extend the integer arguments directly from the stack
instead of loading qwords, followed by sign-extending the
lower half.
Reviewed-by: James Almer <jamrial@gmail.com >
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2026-01-29 01:33:30 +01:00
Andreas Rheinhardt
91c7710412
avcodec/x86/cfhdencdsp: Avoid unnecessary constants
...
Up until now, cfhdencdsp used constants consisting
of -1, 1, ...,-1,1 words and 1, -1,...,1,-1 words
for use as constants in pmaddwd. But one can use
the same constants if one shuffles the words in
a dword the opposite order. Similarly for some other
constants. This also allowed to avoid a register in
chfdenc_vert_filter.
Reviewed-by: James Almer <jamrial@gmail.com >
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2026-01-29 01:33:23 +01:00
Andreas Rheinhardt
cd3d8116fb
avcodec/x86/cfhdencdsp: Avoid load of -1
...
It can be easily generated at runtime.
Reviewed-by: James Almer <jamrial@gmail.com >
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2026-01-29 01:32:57 +01:00
Jack Lau
4ad20a2c09
avformat/tls_gnutls: set key and cert when they're PEM string
...
Signed-off-by: Jack Lau <jacklau1222gm@gmail.com >
2026-01-28 10:47:07 +00:00
Jack Lau
28fb3f5e9e
avformat/tls_gnutls: set srtp profile when it is enabled
...
Signed-off-by: Jack Lau <jacklau1222gm@gmail.com >
2026-01-28 10:47:07 +00:00
Jack Lau
8f9825cf41
avformat/tls_gnutls: add check for s->external_sock
...
When s->external_sock is enabled, the underlying sock
will be set after tls_open(), so it should not open a
sock and handshake.
Signed-off-by: Jack Lau <jacklau1222gm@gmail.com >
2026-01-28 10:47:07 +00:00
Jack Lau
7f9d8b0c16
avformat/tls_gnutls: enable dtls build
...
Implement ff_ssl_*_key_cert()
Generate self-signed cert and key in server
mode if there're no key and cert input.
Implement ff_tls_set_external_socket() and
ff_dtls_export_materials()
Add gnutls as dtls protocol deps.
Signed-off-by: Jack Lau <jacklau1222gm@gmail.com >
2026-01-28 10:47:07 +00:00
Zhao Zhili
f4ca7950d8
avfilter/vf_mestimate_d3d12: remove redundant mb_size constants
...
A constant named 8 has value 8 is redundant. These constants cannot
prevent user from setting other vaues. Just describe valid values
in the help message.
Signed-off-by: Zhao Zhili <zhilizhao@tencent.com >
2026-01-27 17:05:27 +00:00
Kasidis Arunruangsirilert
e9e8a32b29
avcodec/nvenc: add 4-way multi nvenc split frame encoding support
2026-01-27 12:58:46 +00:00
Diego de Souza
499b5f5f92
avcodec/nvenc: add b_adapt option for HEVC encoder
...
The b_adapt option allows users to control adaptive B-frame decision
when lookahead is enabled in HEVC encoding. This feature was already
available for H.264 and AV1 encoders, but was missing from HEVC.
Signed-off-by: Diego de Souza <ddesouza@nvidia.com >
2026-01-27 12:58:08 +00:00
Steven Liu
a97632827d
avformat/dashdec: check value valid after read value from mpd xml
...
before this commit ffmpeg get Heap Buffer Overflow in DASH Demuxer
via Negative Start Number.
Check the value from mpd xml, set the value to 0 if get negative value.
Fixes: heap buffer overflow
Found-by: Zhenpeng (Leo) Lin from depthfirst
2026-01-27 08:28:43 +00:00
Andreas Rheinhardt
d9e8c85617
swscale/x86/ops_int: Check for cpuflag instead of avx_enabled
...
This would make this code compatible with forcing VEX encodings
for the SSE4 codepath and is also more correct, because avx_enabled
would be enabled for AVX, although the instructions used in these
codepaths require AVX2.
Reviewed-by: Niklas Haas <ffmpeg@haasn.dev >
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2026-01-26 13:10:15 +01:00