1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-08-04 22:03:09 +02:00
Commit Graph

119848 Commits

Author SHA1 Message Date
0c12265b05 MAINTAINERS: Add myself for graph printing
..and resources

Signed-off-by: softworkz <softworkz@hotmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2025-06-07 14:32:25 +02:00
81370fd796 lavc/vvc: Fix unchecked return code and shadowing
Signed-off-by: Frank Plowman <post@frankplowman.com>
2025-06-07 19:26:11 +08:00
1998879868 MAINTAINERS: Add myself as vvc maintainer
My OpenPGP key is available at

https://keys.openpgp.org/vks/v1/by-fingerprint/34E248D6B7DF476970C7330403A84C6A098F2C6B

and

https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x34e248d6b7df476970c7330403a84c6a098f2c6b
Signed-off-by: Frank Plowman <post@frankplowman.com>
2025-06-07 19:20:12 +08:00
a0118d6d07 MAINTAINERS: add myself as vvc maintainer
Signed-off-by: Wu Jianhua <toqsxw@outlook.com>
2025-06-07 19:20:12 +08:00
a5dc56fcd6 avformat/format: make experimental flag works for muxer
Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
2025-06-07 15:59:06 +08:00
153cdf3142 avformat/whip: Constify arguments in is_rtp_rtcp/is_rtcp
Fix warning of -Wincompatible-pointer-types-discards-qualifiers.

Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
2025-06-07 15:58:21 +08:00
1af6881ba1 avformat/tls: Fix integer overflow with option mtu
Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
2025-06-07 15:58:21 +08:00
d9797544b4 avcodec/sanm: codec31/32 support
codec31/32 are similar to codec1/3 (RLE coding) but with two 4-bit pixels
per byte; they are only used in the Sega-CD release of Rebel Assault 1.

Signed-off-by: Manuel Lauss <manuel.lauss@gmail.com>
2025-06-06 22:07:15 +02:00
b7662ddd15 avcodec/sanm: fix codec33/34 tile generator
Some of the calculated values were wrong and/or assigned
to the wrong pixel of the 4x4 block.
Found during testing with Rebel Assault Sega-CD release.

Signed-off-by: Manuel Lauss <manuel.lauss@gmail.com>
2025-06-06 22:07:11 +02:00
c064390736 avcodec/sanm: remove codec4 block smoothing
it has a bug and its effects aren't that noticeable, esp. with
the smoothing applied to the whole picture by modern video display
engines.

Signed-off-by: Manuel Lauss <manuel.lauss@gmail.com>
2025-06-06 22:07:04 +02:00
834bedf312 avutil/frame: Fix av_realloc_array() argument order
This is not a real bug, but mostly cosmetic. Fixes ticket #11620.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-06-06 17:21:37 +02:00
81adbd2d3d avcodec/huffman: Combine allocations
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-06-06 17:21:37 +02:00
d0a27e01a6 avcodec/aacpsy: Remove always-true checks
Possible since 03cf101645.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-06-06 17:21:37 +02:00
f0e1a315a1 avcodec/iirfilter: Remove iirfilter, psy-preprocessing
The iirfilter is only used in its test tool since
01ecb7172b which
stopped using it in AAC, its only user.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-06-06 17:21:31 +02:00
28c0a189b6 avcodec/psymodel: Use av_memdup() where appropriate
Also "fixes" the inverted order of arguments in the av_malloc_array()
calls and therefore part of ticket #11620.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-06-06 16:27:12 +02:00
2f5f2c013c avutil/frame: Use av_memdup() for duplicating extended data array
Just do it like av_frame_replace().
Also "fixes" the swapped order or arguments to av_malloc_array()
(the first is supposed to be the number of elements, the second
the size of an element) and therefore part of ticket #11620.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-06-06 16:27:12 +02:00
abebdb1bdb avutil/frame: Always return error upon error
(I don't know whether this can be triggered for a file with
nonnegative channel count, given that src's extended data can't
have been allocated in this case.)

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-06-06 16:27:12 +02:00
4bd1ce31fc avcodec/libaomenc: Avoid code duplication when setting options
(Some more options could be set via this method
if the order in which the options are applied doesn't matter.)

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-06-06 16:26:35 +02:00
3cb37c0e71 tests/fate-run: Remove intermediate files from enc-external tests
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-06-06 16:21:47 +02:00
453ae55d63 tests/fate/mov: Add bitexact for fate-mov-mp4-frag-flush
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2025-06-06 15:15:08 +02:00
38379168ed avutil/hwcontext_amf: fix error logging on amf_init_from_device. 2025-06-06 13:42:18 +02:00
39ab61bd75 avutil/hwcontext_amf: add support for d3d12va initialisation 2025-06-06 13:40:01 +02:00
64b79f98ac amfenc: Update the min version to 1.4.36.0 for AMF SDK. 2025-06-06 13:39:46 +02:00
17729aa80c avformat/movenc: fix writing reserved bits in EC3SpecificBox
As described in section F.6.1 from ETSI TS 102 366.

Found-by: nyanmisaka
Reviewed-by: Baptiste Coudurier <baptiste.coudurier@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2025-06-05 21:49:11 -03:00
a4c1a5b084 lavc/dxvenc: fix big-endian issues in dxv_compress_dxt1
We were using a mix of pointers to local variables read via AV_RL32/64 and
pointers directly to the texture buffer as keys to interact with the lookback
hashtables. On big-endian systems, these produced different values. This change
makes all hashtable interactions use direct pointers to the texture buffer and
only invokves AV_RL32 in the event of a lookback hashtable miss.

Signed-off-by: Emma Worley <emma@emma.gg>
2025-06-04 09:53:37 -07:00
3be9b3f156 avcodec/hashtable: Remove null statement
Reviewed-by: Emma Worley <emma@emma.gg>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-06-04 15:32:29 +02:00
a2c3d99478 avcodec/hashtable: Only free buffer if there is buffer to free
Reviewed-by: Emma Worley <emma@emma.gg>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-06-04 15:32:11 +02:00
06958c731e avcodec/hashtable: Mark alloc,free functions as av_cold
Reviewed-by: Emma Worley <emma@emma.gg>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-06-04 15:31:51 +02:00
12a43975d1 avcodec/hashtable: Combine allocations
Reviewed-by: Emma Worley <emma@emma.gg>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-06-04 15:17:37 +02:00
2e45d2f7d3 avcodec/hashtable: Check for overflow
Reviewed-by: Emma Worley <emma@emma.gg>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-06-04 15:13:55 +02:00
1e6fdafce0 avcodec/hashtable: Only align complete entries
It is unnecessary to align both key and val, as they are only accessed
via memcpy()/memcmp(), which has no alignment requirements.
We only need to ensure that that the entries as a whole
are suitable aligned for the probe sequence length.

Reviewed-by: Emma Worley <emma@emma.gg>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-06-04 15:12:48 +02:00
140fc655f7 tests/fate/libavcodec: Run hashtable test
Reviewed-by: Emma Worley <emma@emma.gg>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-06-04 15:12:19 +02:00
2fc310b2f2 avcodec/hashtable: Zero-initialize hashtable
Otherwise ff_hashtable_freep() would try to free uninitialized
pointers upon allocation error (which happens in the corresponding
test tool).

Reviewed-by: Emma Worley <emma@emma.gg>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-06-04 15:11:48 +02:00
7927ac63ef avcodec/Makefile: Only compile hashtable.o when needed
Reviewed-by: Emma Worley <emma@emma.gg>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-06-04 14:56:54 +02:00
6ad95be306 avfilter/vf_blackdetect_vulkan: fix black region reporting
The old logic failed to take into account files that ended on ablack
region. The new logic matches the vf_blackdetect behavior.
2025-06-04 12:24:04 +02:00
167e343bbe avformat/whip: Add WHIP muxer support for subsecond latency streaming
0. WHIP Version 3.
1. The WHIP muxer has been renamed and refined,
    with improved logging context and error messages for SSL, DTLS, and RTC.
2. Magic numbers have been replaced with macros and extracted to functions,
    and log levels have been altered for better clarity.
3. DTLS curve list has been updated,
    and SRTP profile names have been refined for FFmpeg and OpenSSL.
4. ICE STUN magic number has been refined,
    and RTP payload types have been updated based on Chrome's definition.
5. Fixed frame size has been refined to rtc->audio_par->frame_size,
    and h264_mp4toannexb is now used to convert MP4/ISOM to annexb.
6. OPUS timestamp issue has been addressed,
    and marker setting has been corrected after utilizing BSF.
7. DTLS handshake and ICE handling have been optimized for improved performance,
    with a single handshake timeout and server role to prevent ARQ.
8. Consolidated ICE request/response handling and DTLS handshake into a single function,
    and fixed OpenSSL build errors to work with Pion.
9. Merge TLS & DTLS implementation, shared BIO callbacks, read, write,
    print_ssl_error, openssl_init_ca_key_cert,
    init_bio_method function and shared same data structure
10. Modify configure that whip is enabled only dtls is
    enabled(just support openssl for now) to fix build error

Co-authored-by: winlin <winlinvip@gmail.com>
Co-authored-by: yangrtc <yangrtc@aliyun.com>
Co-authored-by: cloudwebrtc <duanweiwei1982@gmail.com>
Co-authored-by: Haibo Chen <495810242@qq.com>
Co-authored-by: Steven Liu <lq@chinaffmpeg.org>
Co-authored-by: Jun Zhao <barryjzhao@tencent.com>
Signed-off-by: Jack Lau <jacklau1222@qq.com>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2025-06-04 11:17:07 +08:00
d4556c98f0 lavc/dxvenc: improve compatibility with Resolume products
Improves compatibility with Resolume products by adding an additional
hashtable for DXT color+LUT combinations, and padding the DXT texture
dimensions to the next largest multiple of 16. Produces identical
packets to Resolume Alley in manual tests.

Signed-off-by: Emma Worley <emma@emma.gg>
2025-06-02 20:51:34 -07:00
2de0d095b8 lavc/dxvenc: migrate DXT1 encoder to lavc hashtable
Offers a modest performance gain due to the switch from naive linear
probling to robin hood.

Signed-off-by: Emma Worley <emma@emma.gg>
2025-06-02 20:51:31 -07:00
6fdb54ddee lavc/hashtable: create generic robin hood hash table
Adds a generic hash table with the DXV encoder as an initial use case.

Signed-off-by: Emma Worley <emma@emma.gg>
2025-06-02 20:51:27 -07:00
854b8690a6 Add myself to MAINTAINERS for dxv/dxvenc
Signed-off-by: Emma Worley <emma@emma.gg>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2025-06-03 01:48:13 +02:00
afb91360ea fftools/Makefile: clean files from fftools/{graph,textformat}/ 2025-06-03 01:07:15 +02:00
93e53e253a avcodec/vc1dsp: Fix vc1op_pixels_func semantics
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-06-02 13:43:10 +02:00
09aeeeb663 avcodec/hpeldsp_init: Detemplatize
Since a51279bbde,
hpeldsp_rnd_template.c was only included once and
one of the two functions in rnd_template.c was
only enabled once.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-06-02 13:42:53 +02:00
83b3469142 avcodec/x86/hpeldsp_init: Use ff_avg_pixels16_mmxext
avg_pixels_tab[0][0] does the same as avg_no_rnd_pixels_tab[0].

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-06-02 13:41:51 +02:00
6d45668801 avcodec/hpeldsp: Remove duplicate pel functions
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-06-02 13:41:44 +02:00
2d5f5e8726 avcodec/ac3dec: Deduplicate tables
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-06-02 13:37:41 +02:00
dbd2ca3580 avcodec/ac3{dec,enc}: Deduplicate gain levels table
(I don't know why the encoder only uses eight of the nine values.)

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-06-02 13:37:41 +02:00
11723b3526 avcodec/ac3: Move gain value defines to ac3defs.h
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-06-02 13:37:41 +02:00
20caa5cf2d avcodec/ac3dec: Deduplicate mantissas and their init code
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-06-02 13:37:41 +02:00
9416ffd8b8 avcodec/ac3dec: Hardcode tables to save space
The code to initialize the ungrouped bap mantissa tables
(bap 3 or 5) takes more bytes of .text than the tables itself;
they have therefore been hardcoded.

For GCC (14, -O3, albeit in an av_cold function), the initialization
code takes 99B each for the fixed and floating point decoders
(the code is currently duplicated), whereas the hardcoded tables
only take 96B. For Clang 19 it were 374B each (I don't now what
Clang was doing there).

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-06-02 13:37:41 +02:00