ffmpeg-cvslog
Threads by month
- ----- 2026 -----
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
August 2025
- 2 participants
- 290 discussions
22 Aug '25
The branch, master has been updated
via 017c1e8db360ab8912b3699ff64a281450175ddf (commit)
from 4a0ee90d25416e82804e4f9ddf0bda50f748b03c (commit)
- Log -----------------------------------------------------------------
commit 017c1e8db360ab8912b3699ff64a281450175ddf
Author: Lynne <dev(a)lynne.ee>
AuthorDate: Thu Aug 21 14:46:43 2025 +0900
Commit: Lynne <dev(a)lynne.ee>
CommitDate: Fri Aug 22 23:43:07 2025 +0900
Announce FFmpeg 8.0
diff --git a/src/index b/src/index
index 52829e1..f3afbab 100644
--- a/src/index
+++ b/src/index
@@ -35,6 +35,54 @@
News
</h1>
+ <h3 id="pr8.0">August 23nd, 2025, FFmpeg 8.0 <span title="David A. Huffman">"Huffman"</span></h3>
+ <p>
+ A new major release, <a href="download.html#release_8.0">FFmpeg 8.0 <span title="David A. Huffman">"Huffman"</span></a>,
+ is now available for download.
+ Thanks to several delays, and modernization of our entire infrastructure, this release ended up
+ being one of our largest releases to date. In short, its new features are:
+ <ul>
+ <li>Native decoders: <span title="Advanced Professional Video">APV</span>, ProRes RAW, RealVideo 6.0, Sanyo LD-ADPCM, G.728</li>
+ <li>VVC decoder improvements: <span title="Intra Block Copy">IBC</span>,
+ <span title="Adaptive Color Transform">ACT</span>,
+ Palette Mode</li>
+ <li>Vulkan compute-based codecs: FFv1 (encode and decode), ProRes RAW (decode only)</li>
+ <li>Hardware accelerated decoding: Vulkan VP9, VAAPI VVC, OpenHarmony H264/5</li>
+ <li>Hardware accelerated encoding: Vulkan AV1, OpenHarmony H264/5</li>
+ <li>Formats: MCC, G.728, Whip, APV</li>
+ <li>Filters: colordetect, pad_cuda, scale_d3d11, Whisper, and others</li>
+ </ul>
+ </p>
+
+ <p>
+ A new class of decoders and encoders based on pure Vulkan compute implementation have been added.
+ Vulkan is a cross-platform, open standard set of APIs that allows programs to use GPU hardware in various ways,
+ from drawing on screen, to doing calculations, to decoding video via custom hardware accelerators.
+ Rather than using a custom hardware accelerator present, these codecs are based on compute shaders, and work
+ on any implementation of Vulkan 1.3.<br>
+ Decoders use the same hwaccel API and commands, so users do not need to do anything special to enable them,
+ as enabling <a href="https://trac.ffmpeg.org/wiki/HWAccelIntro#Vulkan">Vulkan decoding</a> is sufficient to use them.<br>
+ Encoders, like our hardware accelerated encoders, require specifying a new encoder (ffv1_vulkan).
+ Currently, the only codecs supported are: FFv1 (encoding and decoding) and ProRes RAW (decode only).
+ ProRes (encode+decode) and VC-2 (encode+decode) implementations are complete and currently in review,
+ to be merged soon and available with the next minor release.<br>
+ Only codecs specifically designed for parallelized decoding can be implemented in such a way, with
+ more mainstream codecs not being planned for support.<br>
+ Depending on the hardware, these new codecs can provide very significant speedups, and open up
+ possibilities to work with them for situations like non-linear video editors and
+ lossless screen recording/streaming, so we are excited to learn what our downstream users can make with them.
+ </p>
+
+ <p>
+ The project has recently started to modernize its infrastructure. Our mailing list servers have been
+ fully upgraded, and we have recently started to accept contributions via a new forge, available on
+ <a href="https://code.ffmpeg.org/">code.ffmpeg.org</a>, running a Forgejo instance.
+ </p>
+
+ <p>
+ As usual, we recommend that users, distributors, and system integrators to upgrade unless they use current git master.
+ </p>
+
<h3 id="pr7.1">September 30th, 2024, FFmpeg 7.1 <span title="Rózsa Péter">"Péter"</span></h3>
<p>
<a href="download.html#release_7.1">FFmpeg 7.1 "Péter"</a>, a new
-----------------------------------------------------------------------
Summary of changes:
src/index | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+)
hooks/post-receive
--
1
0
22 Aug '25
The branch, master has been updated
via 4a0ee90d25416e82804e4f9ddf0bda50f748b03c (commit)
via 5cef01dfdd10c91beff0c244c5f858308a0c5f5c (commit)
from 840eceb7f8117d6001809f248128ae8d430d918b (commit)
- Log -----------------------------------------------------------------
commit 4a0ee90d25416e82804e4f9ddf0bda50f748b03c
Author: Michael Niedermayer <michael(a)niedermayer.cc>
AuthorDate: Fri Aug 22 12:15:16 2025 +0200
Commit: Michael Niedermayer <michael(a)niedermayer.cc>
CommitDate: Fri Aug 22 12:15:16 2025 +0200
web: Add FFmpeg 8.0
diff --git a/src/download b/src/download
index 42f958e..1e147f2 100644
--- a/src/download
+++ b/src/download
@@ -1,10 +1,10 @@
<div id="download">
<div class="btn-download-wrapper">
- <a href="https://ffmpeg.org/releases/ffmpeg-7.1.1.tar.xz" class="btn btn-success">
+ <a href="https://ffmpeg.org/releases/ffmpeg-8.0.tar.xz" class="btn btn-success">
<i class="fa fa-cloud-download"></i>
Download Source Code
- <small>ffmpeg-7.1.1.tar.xz</small>
+ <small>ffmpeg-8.0.tar.xz</small>
</a>
<br>
<a href="#releases">More releases</a>
@@ -306,6 +306,41 @@ gpg: Good signature from "FFmpeg release signing key <ffmpeg-devel(a)ffmpeg.org
and much faster bug fixes such as additional features and security patches.
</p>
+ <h3 id="release_8.0">FFmpeg 8.0 "Huffman"</h3>
+
+ <p>
+ 8.0 was released on 2025-08-22. It is the latest stable FFmpeg release
+ from the 8.0 release branch, which was cut from master on 2025-08-09.
+ </p>
+ <p>It includes the following library versions:
+ </p>
+ <pre>
+libavutil 60. 8.100
+libavcodec 62. 11.100
+libavformat 62. 3.100
+libavdevice 62. 1.100
+libavfilter 11. 4.100
+libswscale 9. 1.100
+libswresample 6. 1.100</pre>
+ <div class="row">
+ <div class="col-md-3">
+ <a class="btn btn-success" href="releases/ffmpeg-8.0.tar.xz">Download xz tarball</a>
+ <small><a href="releases/ffmpeg-8.0.tar.xz.asc">PGP signature</a></small>
+ </div> <!-- col -->
+ <div class="col-md-3">
+ <a class="btn btn-success" href="releases/ffmpeg-8.0.tar.bz2">Download bzip2 tarball</a>
+ <small><a href="releases/ffmpeg-8.0.tar.bz2.asc">PGP signature</a></small>
+ </div> <!-- col -->
+ <div class="col-md-3">
+ <a class="btn btn-success" href="releases/ffmpeg-8.0.tar.gz">Download gzip tarball</a>
+ <small><a href="releases/ffmpeg-8.0.tar.gz.asc">PGP signature</a></small>
+ </div> <!-- col -->
+ <div class="col-md-3 text-right">
+ <small><a href="https://git.ffmpeg.org/gitweb/ffmpeg.git/shortlog/n8.0">Changelog</a></small>
+ <a class="btn btn-success" href="https://git.ffmpeg.org/gitweb/ffmpeg.git/blob/refs/heads/release/8.0:/RELEA…">Release Notes</a>
+ </div> <!-- col -->
+ </div> <!-- row -->
+
<h3 id="release_7.1">FFmpeg 7.1.1 "Péter"</h3>
<p>
diff --git a/src/security b/src/security
index 6e03b9f..edb3f15 100644
--- a/src/security
+++ b/src/security
@@ -5,12 +5,25 @@
Fixes following vulnerabilities:
</p>
<pre>
-CVE-2023-6602, 91d96dc8ddaebe0b6cb393f672085e6bfaf15a31
-CVE-2023-6604, 91d96dc8ddaebe0b6cb393f672085e6bfaf15a31
-CVE-2023-6605, 4c96d6bf75357ab13808efc9f08c1b41b1bf5bdf
-CVE-2025-1373, 43be8d07281caca2e88bfd8ee2333633e1fb1a13, ticket/11460 never affected a release
-CVE-2025-22920 4bf784c0e5615c3f934e677d5de093a8be7da7ae, ticket/11389 never affected a release
-CVE-2025-25471 fd1772b7475d0d5673a5dd314ee78443d0be4cf1, ticket/11417 never affected a release
+</pre>
+
+
+<h2>FFmpeg 8.0</h2>
+
+<h3>8.0</h3>
+<p>
+Fixes following vulnerabilities:
+</p>
+<pre>
+CVE-2023-6602, 91d96dc8ddaebe0b6cb393f672085e6bfaf15a31
+CVE-2023-6604, 91d96dc8ddaebe0b6cb393f672085e6bfaf15a31
+CVE-2023-6605, 4c96d6bf75357ab13808efc9f08c1b41b1bf5bdf
+CVE-2025-0518, b5b6391d64807578ab872dc58fb8aa621dcfc38a
+CVE-2025-1373, 43be8d07281caca2e88bfd8ee2333633e1fb1a13, ticket/11460 never affected a release
+CVE-2025-1816, 0526535cd58444dd264e810b2f3348b4d96cff3b, ticket/11475,
+CVE-2025-22919, 1446e37d3d032e1452844778b3e6ba2c20f0c322, ticket/11385,
+CVE-2025-22920, 4bf784c0e5615c3f934e677d5de093a8be7da7ae, ticket/11389 never affected a release
+CVE-2025-25471, fd1772b7475d0d5673a5dd314ee78443d0be4cf1, ticket/11417 never affected a release
</pre>
commit 5cef01dfdd10c91beff0c244c5f858308a0c5f5c
Author: Michael Niedermayer <michael(a)niedermayer.cc>
AuthorDate: Fri Aug 22 12:14:36 2025 +0200
Commit: Michael Niedermayer <michael(a)niedermayer.cc>
CommitDate: Fri Aug 22 12:14:36 2025 +0200
web/documentation: Add links to 7.1 and 8.0 doxygen
diff --git a/src/documentation b/src/documentation
index e35fa71..ebd9a79 100644
--- a/src/documentation
+++ b/src/documentation
@@ -78,6 +78,8 @@
<ul>
<li><a href="doxygen/trunk/index.html">Doxygen documentation</a> for current
trunk (regenerated nightly); documentation for the
+ <a href="doxygen/8.0/index.html">8.0</a>,
+ <a href="doxygen/7.1/index.html">7.1</a>,
<a href="doxygen/7.0/index.html">7.0</a>,
<a href="doxygen/6.1/index.html">6.1</a>,
<a href="doxygen/6.0/index.html">6.0</a>,
-----------------------------------------------------------------------
Summary of changes:
src/documentation | 2 ++
src/download | 39 +++++++++++++++++++++++++++++++++++++--
src/security | 25 +++++++++++++++++++------
3 files changed, 58 insertions(+), 8 deletions(-)
hooks/post-receive
--
1
0
The annotated tag, n8.0 has been created
at a4044e04486d1136022498891088a90baf5b2775 (tag)
tagging 140fd653aed8cad774f991ba083e2d01e86420c7 (commit)
replaces n7.2-dev
tagged by Michael Niedermayer
on Fri Aug 22 11:04:27 2025 +0200
- Log -----------------------------------------------------------------
FFmpeg 8.0 release
-----BEGIN PGP SIGNATURE-----
iHUEABYKAB0WIQTdHsno3ghcYps+GEaxjokos5SNZAUCaKgypgAKCRCxjokos5SN
ZNgvAPsE/56YZSd880U0qr2dYwTACQHiBHUzxZcH0VFjIUOx2AD+I/8BLX7Ia9Hf
c907G29JteRF3MscpWt2cdUfuIVsRww=
=r5fe
-----END PGP SIGNATURE-----
Adam Lackorzynski (1):
libswscale/arm/swscale_unscaled: Fix function prototype
Alessandro Ros (1):
avformat/flvenc: fix missing sequence start with MP3 tracks
Alexander Strasser (3):
lavc/dnxuc_parser: Use av_fourcc2str instead of av_fourcc_make_string
avcodec/cbs_h266: Fix typo
configure: Fix a regression when probing link.exe
Andreas Rheinhardt (730):
avcodec/aac_ac3_parser: Remove unused variable
avcodec/sga: Silence -Wunused-but-set-variable warnings
avcodec/aac/aacdec: Fix -Wdeclaration-after-statement
swscale/cms,graph,lut3d: Use ff_-prefix, don't export internal functions
tests/ref/fate/png-icc-parse: Add lossless flag to ref file
avfilter/vf_overlay: Remove spec-incompliant ';'
avfilter/avfilter: Add FFFilter, hide internals of AVFilter
avfilter/vf_xpsnr: Fix leaks
avfilter/vf_xpsnr: Avoid array only one of whose elements is used
tests/checkasm/sw_rgb: Fix leaks
swscale/x86/swscale: Move some constants to rgb2rgb.c
swscale/x86/swscale: Make M24 variables static
avutil/cpu: Disable ff_getauxval() on x86
fftools/ffmpeg_opt: Remove audio_drift_threshold
avcodec/h261enc: Use LUT to write motion vector differences
avcodec/mpeg12dec: Move resetting last_dc to decoder
avcodec/mpeg12enc: Move resetting last_dc to encoder
avcodec/h263dec: Clean intra tables in decoder, not ff_mpv_reconstruct_mb
avcodec/mpegvideo_enc: Don't reset intra buffers in mpv_reconstruct_mb()
avcodec/mpv_reconstruct_mb_template: Merge template into its users
avcodec/mpegvideo_{dec,enc}: Reindent after the previous commit
fftools/ffprobe: Switch to AVMutex
avcodec/intrax8dsp: Constify DSP functions
avcodec/intrax8dsp: Copy several bytes at once
avcodec/flacdsp: Remove leftover encoding function pointers
avcodec/proresdec: Don't use LONG_BITSTREAM_READER
avcodec/get_bits: Remove LONG_BITSTREAM_READER
avcodec/proresdec: Deduplicate debug message
avcodec/prores{dec,dsp}: Remove always-false checks
avcodec/proresdec: Disable HWAccel at compile-time when possible
avcodec/proresdsp: Make put_pixels truely ptrdiff_t compatible
avcodec/simple_idct_template: Move function to its declaration
avcodec/simple_idct: Move ProRes-only code to proresdsp.c
avcodec/proresdec: Reuse permutation
avcodec/lcevcdec: Use proper include
avcodec/mpegvideo_enc: Don't set qscale_table value prematurely
avcodec/mpegvideo_enc: Add AV_CODEC_CAP_DR1
avcodec/motion_est: Avoid branches for put(_no_rnd) selection
avcodec/mpegvideo_dec: Use picture-dimensions in ff_print_debug_info()
avcodec/vc1dec: Reenable debug-info output for field pictures
tests/fate/vcodec: Test alternate_scan
tests/fate/vcodec: Test using mpeg2-quantizers for MPEG-4
tests/fate/vcodec: Test H.261 loop-filter
avcodec/h261dec: Remove dead check
avcodec/h261dec: Inline constant
avcodec/mpeg12dec: Remove write-only assignments
avcodec/msmpeg4dec: Don't process unnecessarily many coefficients
avcodec/msmpeg4dec: Avoid branch
avcodec/msmpeg4dec: Remove redundant check
avcodec/mips/mpegvideo_mmi: Don't check alternate_scan unnecessarily
avcodec/rv34: Don't update block_index unnecessarily
avcodec/mpegvideo_dec: Don't sync max_b_frames
avcodec/mpegvideo_dec: Move syncing DivX-stuff to mpeg4videodec.c
avcodec/vc1: Add max_b_frames field to VC1Context
avcodec/mpeg4videoenc: Remove dead FF_BUG_MS code
avcodec/h26[134]dec: Always report the buffer to be completely consumed
avcodec/mpeg12dec: Don't initialize unused parts of ScanTable
avcodec/h263dec: Don't call ff_thread_finish_setup() unnecessarily
avcodec/mpegvideo: Move bitstream_buffer to mpeg4videodec
avcodec/mpeg4videodec: Avoid copying packed bitstream data
avcodec/mpeg12dec: Really disable scratchpad allocations
avcodec/mpegvideo_enc: Don't do unnecessary work for AMV
avcodec/mpegvideo_enc: Reindent after the previous commit
avcodec/vc1dec: Don't initialize inter_scantable
avformat/rtp_av1: Add necessary headers
avcodec/mpeg12dec: Use proper logcontext
avcodec: Remove leftover alpha declarations
avutil/attributes_internal: Add EXTERN macro for extern+hidden
avformat/mpegenc, mpegts. mxfenc: Mark (de)muxers declarations as internal
avcodec/exr: Remove write-only gamma_table
avcodec/exr: Fix potential effective-type violation
avcodec/rv34: Make ff_rv34_get_start_offset() honor its name
avcodec/vc1_block, vc1dec: Don't use c_dc_scale(_table)?
avcodec/vc1_block: Inline y_dc_scale_table
avcodec/vc1dec: Don't initialize unused parts of ScanTable
avcodec/mpeg12dec: Don't count errors from first thread twice
avcodec/mpeg12dec: Mark flush as cold
avcodec/h261dec: Don't call ff_set_qscale()
avcodec/h261: Use forward-declaration for MpegEncContext
avcodec/mpegvideo_enc: Move default_mv_penalty to h261enc.c
avcodec/mpegutils: Move MAX_FCODE to mpegvideoenc.h
avcodec/ituh263enc: Move MPEG-4 fcode_tab to mpeg4videoenc.c
avcodec/ituh263enc: Remove redundant setting of dc_scale_tables
avcodec/ituh263enc: Combine branches
avcodec/ituh263enc: Make SVQ1+Snowenc stop calling ff_h263_encode_init()
avcodec/ituh263enc: Use memset where appropriate
avcodec/flvenc: Remove redundant setting of dc_scale_tables
avcodec/ituh263dec: Reorder branches
avcodec/mpeg4videodec: Bail out earlier when parsing
avcodec/mpeg4video: Split ff_mpeg4_pred_dc()
avcodec/mpeg4video: Move IS_3IV1 macro to mpeg4videodec.c
avcodec/mpegvideo_enc: Only allocate chroma intra matrices when needed
avcodec/mpegvideo_enc: Set chroma_intra_matrix for SpeedHQ
avcodec/mpegvideo_enc: Factor checks out of loop
avcodec/mpegvideo_enc: Only allocate inter matrices when needed
avcodec/mpegvideo_enc: Don't init matrices unnecessarily for MJPEG
avcodec/mpegvideo_enc: Move q_matrix init to init_matrices()
avcodec/mpegvideo_enc: Move q_scale_type check to mpeg12enc.c
avcodec/mpegvideo_enc: Move vbv_delay warning to mpeg12enc.c
avcodec/mpegvideo_enc: Move H.263 specific check to ituh263enc.c
avcodec/mpegvideo: Move ratecontrol-only options to RateControlContext
avcodec/mpegvideo: Move temp ratecontrol bufs to RateControlContext
avcodec/mpegvideo: Mark ff_mpv_common_defaults() as av_cold
avcodec/speedhqenc: Don't log to the private context
avcodec/speedhqenc: Inline ff_speedhq_mb_y_order_to_mb()
avcodec/mjpegenc: Remove nonsensical AMV options
avcodec/mjpegenc: Don't log to private context
avcodec/mpeg12enc: Simplify writing bits
avcodec/mpegvideo: Move vbv_delay to Mpeg1Context
avcodec/mpegvideo_enc, motion_est: Pre-center fcode_tab
avcodec/mjpegenc: Use forward decl for MpegEncContext, MJpegHuffmanCode
avcodec/mjpegenc: Don't use ff_ prefix for static functions
avcodec/mjpegenc_common: Constify ff_mjpeg_encode_{dc,picture_header}()
avcodec/mjpegenc: Constify parent ctx in encode_block()
avcodec/mpeg12dec: Use CHROMA_* defines
avcodec/{h263,ituh263,msmpeg4,snow}dec: Use proper logcontext
avcodec: Don't log to private context
avutil/log: Set AVClass* in av_expr_eval()
avcodec/sbcenc: Mark sbc_encode_init() as av_cold
avcodec/sbcenc: Don't use deprecated AVCodec.supported_samplerates
avcodec/snow: Remove outdated assert
avcodec/vp8: Fix wrong #endif comment
avcodec/vp8: Move codec-specific init code out of common init
avcodec/vp8: Move VPx specific functions inside #if CONFIG_VPx block
avcodec/vp8: Remove always-false hwaccel checks for VP7
avcodec/codec_internal, all: Use macros to set deprecated AVCodec fields
all: Use put_bytes_output() instead of put_bits_ptr - pb->buf
avcodec/wma: Mark ff_wma_end() as av_cold
avcodec/wmaenc: Don't unnecessarily reset AVPacket.size
avutil/refstruct: Fix documentation
avutil/vulkan: Remove unused ff_vk_create_avbuf()
avcodec/vc2enc: Simplify writing dirac golomb codes
avcodec/put_bits: Add and use put_bits63()
avcodec/dvdsubenc: Remove pointless wrapper
avcodec/vc2enc: Use LUT to assemble interleaved golomb code
avcodec/snow: Remove ff_snow_release_buffer()
fftools/ffmpeg_opt: Remove unused alt_bsf
avcodec/vc2enc: Avoid excessive inlining
all: Fix doxy comments wrongly designated as trailing ///<
avcodec/sbcdec_data: Merge data into header
avcodec/pthread*: Mark init, free, flush functions as av_cold
avcodec/decode: Move is_open check to avcodec_receive_frame()
avcodec/codec_internal: Add dedicated is_decoder flag to FFCodec
avcodec/codec_internal: Add inlined version of av_codec_is_(de|en)coder
avcodec/tests/avcodec: Silence deprecation warnings
avcodec/allcodecs: Don't wrap supported_framerates
avcodec/mjpegenc: Reconstify mjpeg encoder
avcodec/x86/constants: Move constants only used by cavsdsp to it
avcodec/aom_film_grain: Cast const away to suppress compiler warning
avcodec/x86/hevc/dsp_init: Rename ff_hevc_put_hevc->ff_hevc_put
avcodec/msmpeg4enc: Inline constant
avcodec/mpegvideo_dec: Mark init, flush, close functions as av_cold
avcodec/vc1_block: Stop setting write-only block_last_index
avcodec/intrax8: Stop setting write-only block_last_index
avcodec/mdec: Remove write-only block_last_index
avcodec/mdec: Optimize processing escape codes
avcodec/mdec: Don't update cache unnecessarily
avcodec/eamad: Optimize processing escape codes
avcodec/eamad: Don't store transient macroblock indices in context
avcodec/pcm: Remove always-false check
avcodec/pcm: Cache sample_size value
avcodec/pcm: Remove duplication from FFCodec define macros
avcodec/pcm: Don't allocate LUT when unused
avcodec/pcm: Use dedicated init function for F16LE, F24LE
avcodec/pcm: Reindent after the previous commit
avcodec/pcm: Avoid AVCodec.sample_fmts for decoders
avcodec/vlc: Merge VLCElem and RL_VLC_ELEM
avcodec/mpeg12: Avoid temporary stack VLC array during RL VLC init
avcodec/rl: Avoid temporary stack VLC array during RL VLC init
avcodec/hqxvlc: Avoid hardcoded RL VLC table
avcodec/hqxvlc: Include implicit +1 run in RL VLC tables
avcodec/hqx: Include hqxvlc directly
avcodec/hqxvlc: Make cbp_vlc static
avcodec/hqx: Cache pointer to used dc table
avcodec/hqxvlc: Make dc9, dc10 VLC tables static
avcodec/hqx: Combine memsets
avcodec/hqx: Don't zero in small chunks, don't zero twice
avcodec/hqx: Combine checks
avcodec/hqx: Simplify deriving AC table index
avcodec/cfhd: Move GetBitContext from context to stack
avcodec/cfhd: Use smaller scope where appropriate
avcodec/qdm2, vorbisdec: Use compile-time const max_depth in get_vlc2
avcodec/qdm2: Use explicit overread checks instead of implicit ones
avcodec/mpeg12dec: Use saturated addition when combining error_count
avcodec/mpeg12dec: Don't assert on thread_count
avcodec: Mark init and close functions as av_cold
avcodec/vvc/Makefile: Move VVC decoder->h2645data dep to lavc/Makefile
avcodec/Makefile: Only compile executor when VVC decoder is enabled
avcodec/Makefile: Skip ffv1_vulkan.h in checkheaders
avcodec/h261enc: Don't use (size_t)-1
avcodec/snow: Don't add to NULL
avcodec/svq1enc: Don't add to NULL
avcodec/proresenc_kostya: Don't cast const away needlessly
avcodec/hevc/hevcdec: Simplify access to luma plane
avutil/csp: Improve enum range comparisons
swscale/tests/swscale: Fix potential buffer overflow
avcodec/mathtables: Fix inaccurate macro name
avdevice/sdl2: Suppress macro redefinition warning
avutil/libm: Only include intfloat.h when needed
tests/checkasm/videodsp: Don't use declare_func_emms
configure: Add EXR decoder->bswapdsp dependency
avcodec/mpegvideo(_enc)?: Mark init, close functions as av_cold
avcodec/mpegvideoenc: Add MPVMainEncContext
avcodec/mpegvideoenc: Move tmp bframes to MPVMainEncContext
avcodec/mpegvideoenc: Move ratecontrol to MPVMainEncContext
avcodec/mpegvideo_enc: Precalculate which frames to reconstruct
avcodec/mpegvideo: Move frame_skip_* fields to MPVMainEncContext
avcodec/h261enc: Make h261_encode_init() call ff_mpv_encode_init()
avcodec/mpegvideo: Don't initialize [yc]_dc_scale_table by default
avcodec/speedhqenc: Make speedhq_encode_init() call ff_mpv_encode_init()
avcodec/speedhqenc: Avoid indirection
avcodec/mjpegenc: Make mjpeg_encode_init() call ff_mpv_encode_init()
avcodec/mjpegenc: Simplify allocating huffman table
avcodec/mpegvideo_enc: Only set fcode_tab if unset
avcodec/mpeg12enc: Move encode_init() to the end of the file
avcodec/mpeg12enc: Merge ff_mpeg1_encode_init() into ordinary init
avcodec/mpeg12enc: Don't write invalid MPEG-1 slice headers
avcodec/pthread_slice: Remove MPEG-1 height hack
avcodec/pthread_slice: Return error on error
avutil/slicethread: Remove NULL pointer check when freeing
avutil/slicethread: Mark avpriv_slicethread_{create,free} as av_cold
avcodec/mpeg4videoenc: Add Mpeg4EncContext and move time_increment_bits
avcodec/mpegvideo_enc: Move MPEG-4 specific check to mpeg4videoenc.c
avcodec/mpegvideo: Move sequence-level properties to MPVMainEncContext
avcodec/mpegvideo: Move ratecontrol-adjacent fields to MPVMainEncContext
avcodec/mpegvideoenc: Disable scenechange threshold opt for MJPEG, AMV
avcodec/mpegvideo: Move macroblock-variance stats to MPVMainEncContext
avcodec/mpegvideo: Move header_bits to MPVMainEncContext
avcodec/speedhqenc: Move speedhq_encode_init() down
avcodec/wmv2enc: Move wmv2_encode_init() down
avcodec/mpegvideo_enc: Use function ptr for encode_picture_header
avcodec/mpegvideo: Move fcode_tab to MPVMainEncContext
avcodec/speedhqenc: Remove declaration of non-existent function
avcodec/mjpegenc: Move mjpeg_encode_init() down
avcodec/mpegvideo_enc: Use func ptr for encoding macroblocks
avcodec/mjpegenc: Reindent after the previous commit
avcodec/mpegvideo: Add pointer to main context to slice contexts
avcodec/mpegvideo: Move max_b_frames to MPVMainEncContext
avcodec/mpegvideo: Move MPVPicture arrays to MPVMainEncContext
avcodec/mpegvideo: Move vbv_delay_pos to MPVMainEncContext
avcodec/mpegvideoenc: Add bit_rate to MPVMainEncContext
avcodec/mpeg12dec: Add bit_rate field to Mpeg1Context
avcodec/msmpeg4dec: Add MSMPEG4DecContext
avcodec/mpegvideo: Move bit_rate field to MSMP4DecContext
avcodec/msmpeg4enc: Use LUT to write motion vectors
avcodec/msmpeg4dec: Avoid lookups when decoding motion vector
avcodec/msmpeg4enc: Avoid using MVTable
avcodec/mpegvideo: Move MSMPEG4 fields to MSMPEG4 contexts
avcodec/mpegvideo: Move allocating encoder buffers to mpegvideoenc.c
avcodec/mpegvideo: Move encoder-only base arrays to MPVMainEncContext
avcodec/mpegvideo_enc: Don't allocate B-frame bufs without B frames
avcodec/mpegvideo_enc: Reindent after the previous commit
avcodec/mpegvideo_enc: Move allocating remaining buffers to init_buffers
avcodec/mpegvideo: Move noise_reduction to MPVMainEncContext
avcodec/mpegvideo: Support custom slice context sizes
avcodec/mpegvideo: Move last-pic information to MPVMainEncContext
avcodec/{h261,ituh263}enc: Don't set ptr_lastgob unnecessarily
avcodec/mpegvideoenc: Remove declaration of inexistent function
avcodec/mpegvideo_enc: Call ff_mpv_common_init() later
avcodec/mpeg4videoenc: Move initializations before ff_mpv_encode_init()
avcodec/mpegvideo: Move me_pre, me_penalty_compensation to MPVMainEncCtx
avcodec/mpegvideo: Move motion_est to MotionEstContext
avcodec/motion_est: Don't use MpegEncContext.avctx
avcodec/mpegvideoenc: Add MPVEncContext
avcodec/mpeg12enc, speedhqenc: Optimize writing escape codes
avcodec/mpegvideo_enc: Move lambda, lambda2 to MPVEncContext
avcodec/mpegvideo_enc: Don't reset statistics twice
avcodec/mpegvideoenc: Constify vlc length pointees
avcodec/motion_est: Move ff_h263_round_chroma() to h263.h
avcodec/mpegvideo: Move MotionEstContext to MPVEncContext
avcodec/mpegvideo_enc: Move code to initialize variables immediately
avcodec/motion_est: Reset scene_change score, MB variance stats
avcodec/mpegvideo_enc: Defer initialization of mb-pos dependent vars
avcodec/mpegvideo_enc: Use better variable name
avcodec/h261dec: Set FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM
avcodec/error_resilience: Avoid me_cmp.h inclusion
avcodec/mpegvideo: Move unquantize functions into a file of their own
avcodec/ppc/mpegvideo_altivec: Use correct inter scantable
avcodec/ppc/mpegvideo_altivec: Set unquantize functions unconditionally
avcodec/ppc/mpegvideo_altivec: Don't process unnecessarily many coeffs
avcodec/ppc/mpegvideo_altivec: Don't process coeffs as scalars
avcodec/mpegvideo: Only keep the actually used unquantize funcs
avcodec/mpeg4videodec: Actually check av_buffer_replace()
avcodec/mpegvideo_enc: Set b-frame chain length properly
avcodec/mjpegenc: Don't allocate unnecessarily much memory
avutil/frame: Port AVFrame.private_ref to RefStruct API
avutil/dict: Unavpriv avpriv_dict_set_timestamp()
avutil/float_dsp: Unavpriv avpriv_scalarproduct_float_c()
avcodec/raw: Duplicate raw_pix_fmt_tags into fourcc2pixfmt tool
avcodec/x86/mpegvideoenc_template: Remove remnants of MMX
avcodec/mpegvideo_enc: Pass data_partitioning directly
avcodec/mpegvideo_enc: Don't use unnecessarily much stack
fate/vcodec: Test non-default b_strategy
avcodec/motion_est: Put map, me_map into MotionEstContext
avcodec/snowenc: Don't allocate obmc_scratchpad separately
avcodec/mpegvideo: Don't set [bf]_code for non-MPEG-4 decoders
avcodec/rv10: Remove pointless casts
avcodec/rv10: Make logmessage endian-independent
avcodec/ituh263enc: Add necessary #if checks for FLV encoder
fftools/ffprobe: Make pix_fmt output bitexact
avcodec/dxa: Remove set-but-unused variable
avformat/rtpenc: Check dimensions during init
doc/encoders: Move FFV1 encoder to video encoder section
swscale/swscale_unscaled: Actually use X2->RGBA64 conversions
avcodec/dct: Make declarations and definitions match
avcodec/ac3dec: Read spx flags at once, not one bit at a time
avcodec/hevc/hevcdec: Use bitfield instead of array of flags
avcodec/sbcdsp_data: Make data static
fftools/ffprobe: Fix hypothetical stack buffer overflow
avutil/hwcontext_vulkan: Remove unused variable
swscale/csputils: Remove unused ff_sws_matrix3x3_rmul()
postproc/postprocess: Remove unused b02
postproc/postprocess_template: Use immediate instead of memory load
avcodec/aac/aacdec_lpd: Make ff_aac_lpd_mode_tab static
avcodec/aac/aacdec_lpd: Remove dead code
avcodec/aactab: Remove unused arrays
avcodec/vulkan_video: Remove unused ff_vk_h26[45]_profile_to_av()
avcodec/x86/h26x/h265dsp: Remove unused functions
avfilter/palette: Remove unused ff_srgb_u8_to_linear_int()
doc/{in,out}devs: Remove documentation for removed devices
avcodec/vdpau: Only include mpegvideodec.h when used
avutil/Makefile: Only include half2float, float2half when needed
avutil/tests/channel_layout: Improve enum range check
configure: Allow mixing declarations and statements
avcodec/x86/vvc/dsp_init: Make put wrappers static
avcodec/x86/vvc/dsp_init: Make ff_vvc_apply_bdof_##bd##_avx2 static
avcodec/x86/vvc/dsp_init: Make alf wrappers static
avcodec/x86/vvc/dsp_init: Make avg wrappers static
avcodec/celp_math: Reuse ff_scalarproduct_float_c()
avcodec/lsp: Make ff_acelp_lsp2lpc() static
avcodec/celp_math: Mark ff_celp_math_init() as av_cold
avcodec/x86/hevc/mc: Remove unused functions
avcodec/x86/hevc/dsp_init: Make ff_hevc_put_uni_w_* functions static
avcodec/x86/hevc/dsp_init: Make ff_hevc_put_bi_w_* functions static
avcodec/x86/hevc/dsp_init: Make ff_hevc_put_uni_[qe]?pel* funcs static
avcodec/x86/hevc/dsp_init: Make ff_hevc_put_[eq]?pel_* static
avcodec/x86/hevc/dsp_init: Make ff_hevc_put_bi_[eq]?pel* funcs static
avcodec/x86/hevc/dsp_init: Reindent after the previous commits
avcodec/x86/hevcdsp: Move macro to dsp_init.c
avcodec/x86/hevcdsp: Move to x86/hevc
avcodec/aacenc_is: Make ff_aac_is_encoding_err() static
avcodec/mjpegenc_huffman: Make ff_mjpegenc_huffman_compute_bits() static
avocdec/mjpegenc_huffman: Avoid redundant loop
tests/fate/vcodec: Test "default" Huffman tables, too
avcodec/m[jx]pegdec: Simplify freeing frame
avcodec/dovi_rpuenc: Constify dv_levels
avcodec/asvenc: Don't use FF_INPUT_BUFFER_MIN_SIZE
avcodec/asvenc: Use tighter MAX_MB_SIZE constant
avcodec/h261dec: Export key frame information
avcodec/h261dec: Set pict_type during init
avcodec/avcodec: Remove always-false check
avcodec/hq{xvlc,_hqadata}: Deduplicate and hardcode cbp table
avcodec/hq: Include alpha in cbp VLC table
avcodec/hq_hqa: Don't zero in small chunks, don't zero twice
avcodec/hq_hqadata: Avoid relocations
avcodec/hq_hqa: Use RL-VLC table
avcodec/hq_hqa: Include implicit +1 run in RL VLC table
avcodec/hq_hqa: Use ff_vlc_init_from_lengths()
avcodec/hq_hqa: Check available date before allocating frame
avcodec/hq_hqa: Remove implicit always-false checks
avcodec/hq_hqa: Check size before initializing GetByteContext
avcodec/motionpixels: Avoid av_unused
avutil/aes: Make aes_init_static() av_cold
avutil/aes: Use #if checks instead of if (ARCH_X86)
avcodec/aacenc: Remove always-false check
avcodec/aac{enc,}tab: Deduplicate swb tables
swscale/x86/rgb2rgb: Deduplicate ASM constants
avcodec/opus/tab: Deduplicate arrays
avformat/asf_tags: Deduplicate tags
avcodec/mpegaudioenc_template: Remove always-false branch
avcodec/mpegaudioenc_{fixed,float}: Merge encoders
avcodec/mpegaudioenc: Combine writing scale factors
avcodec/mpegaudioenc: Avoid intermediate buffer
avcodec/mpegaudioenc: Don't pad one bit at a time
avcodec/mpegaudioenc: Move PutBitContext to stack
avcodec/mpegaudioenc: Rename MPA_encode_* -> mpa_encode_*
avcodec/decode: Only use ff_progress_frame_get_buffer() with blank input
fftools/textformat/avtextformat: Simplify avtext_print_rational()
fftools/textformat: Use "", not <> for lavu headers
fftools/textformat/tw_avio: Remove unused private class
fftools/textformat/tw_avio: Don't flush unnecessarily
fftools/textformat/tw_avio: Use avio_closep()
textformat/tw_avio: Remove close_on_uninit param from create_file
fftools/textformat/avtextformat: Fix segfault upon allocation error
fftools/textformat/avtextformat: Fix segfault upon allocation error
fftools/textformat/avtextformat: Initialize stuff earlier
fftools/textformat/avtextformat: Add missing AVERROR()
fftools/textformat/avtextformat: Make close functions return void
fftools/textformat/avtextformat: Remove unused variable
avcodec/tests/mjpegenc_huffman: Also test length counts
avcodec/mjpegenc_huffman: Avoid AV_QSORT to sort entries by length
avcodec/magicyuvenc: Fix setting nb_slices
fate/vcodec: Add MagicYUV tests
avcodec/magicyuvenc: Restrict number of slice-planes to 256
avcodec/magicyuvenc: Fix Huffman element probabilities
avcodec/magicyuvenc: Only keep in Slice what is used
avcodec/magicyuvenc: Store slice width and height
avcodec/magicyuvenc: Check in advance whether to encode a slice raw
avcodec/magicyuvenc: Avoid intermediate buffer
avcodec/magicyuvenc: Simplify padding slice
avcodec/magicyuvenc: Avoid PutBitContext for byte-aligned writes
avcodec/magicyuvenc: Calculate proper packet size in advance
avcodec/magicyuvenc: Switch to unchecked bytestream2 API
avcodec/magicyuvenc: Avoid excessive logmessages
avcodec/magicyuvenc: Hoist check out of loop
avcodec/dvbsubenc: Sanity check num_rects
avcodec/dvbsubenc: Check nb_colors before using it
avcodec/vp8: Maintain consistency of frame pointers
avcodec/vc2enc: Improve error codes
avcodec/cri,tdsc,tiff: Use ff_mjpeg_decoder directly
tools/target_dec_fuzzer: Remove mjpeg hack
avcodec/imm5: Reference H.264/HEVC decoders directly
avcodec/ftr: Replace AVERROR_BUG that can be triggered
tools/target_dec_fuzzer: Assert on AVERROR_BUG
avcodec/huffman: Switch to ff_vlc_init_from_lengths()
avcodec/vp6: Don't initialize unused VLC tables
avcodec/vp6: Don't reload unnecessarily often in get_vlc2()
avcodec/vp6: Use fewer number of bits in run VLCs
avcodec/vp6: Forward error codes
avcodec/cbs: Use put_bits63()
avcodec/webp: Check more directly for invalid codes
avcodec/webp: Switch to ff_vlc_init_from_lengths()
avcodec/webp: Check before allocations
avcodec/webp: Combine allocations
avcodec/webp: Avoid loop
avcodec/magicyuv: Set properties via AVPixFmtDescriptor
avcodec/magicyuv: Simplify check for RGB
avformat: Use ffio_read_size() where appropriate
avformat/apvenc: Only allow APV
avformat/apvenc: Remove unused header
avformat/apvenc: Add AVFMT_NOTIMESTAMPS flag
avcodec/apv_decode: Fix shadowing
avcodec/apv_decode: Remove redundant log message
postproc/tests: Add test tools to .gitignore
avformat/apvdec: Use ffio_read_size()
avformat/apvdec: Check before access
avformat/apvdec: Fix seeking
avformat/apvdec: Remove inappropriate INIT_CLEANUP flag
avcodec/apv_dsp: Fix left-shift of negative value
tests/api/api-dump-stream-meta-test: Fix leaks
avformat/av1dec: Remove redundant avio_tell()
avformat/av1dec: Avoid branch for setting position
fftools/ffmpeg_dec: Always receive frames from decoder
avcodec/vulkan_encode_h264: Fix memleak on error
avcodec/vulkan_encode_hevc: Fix memleak on error
avcodec/apv_parser: Mark close as av_cold
avcodec/cbs: Avoid branch
avcodec/{x86,mips}/xvididct_init: Remove redundant checks
avcodec/mpeg_er: Don't zero ThreadFrame* unnecessarily
avcodec/mpeg4videodec: Set [yd]c_scale_table during init
avcodec/mpeg4videodec: Permute quant matrices directly upon IDCT reinit
avcodec/vc1: Remove write-only qs_last
avcodec/vc1: Remove unused topleft,bottomright fields
avcodec/mpeg4video: Pass parameters directly
avcodec/mpegvideo: Move [fb]_code to Mpeg4Dec and MPVEncContext
avcodec/ituh263dec: Fix indentation
avcodec/mpegvideo_dec: Notify users of reinit
avcodec/rv34: Simplify updating thread context
avcodec/mpeg12dec: Remove disabled frame-threading code
avcodec/mpeg12dec: Don't reinit upon aspect ratio change
avcodec/mpeg12dec: Reinit upon chroma_format change
avcodec/svq1enc: Remove always-false check
avcodec/svq1enc: Allocate buffers during init
avcodec/mpegvideo_dec: Move memcpy'ing ctx to mpeg4videodec.c
avcodec/mpegvideo: Move clear_context() to mpeg4videodec.c
avcodec/mpeg4videodec: Don't set chroma matrices unnecessarily
avcodec/mpeg4videodec: Keep skipped_last_frame in sync between threads
avcodec/h263dec: Always output next, not current pic when flushing
avcodec/mpeg4videodec,h263dec: Only set skipped_last_frame for !vop_coded
avcodec/mpeg4videodec: Move setting has_b_frames to mpeg4video_parser.c
avcodec/mpegvideo: Move parent to MPVEncContext
avcodec/mpeg12enc: Fix writing closed captions
avcodec/utvideoenc: Don't advertise unsupported option
tests/fate/matroska: Add container cropping test
avcodec/rv60dec: Avoid branch when decoding cbp16
avformat/avformat: Remove outdated io_close2 documentation
avcodec/tests/.gitignore: Add apv test tool
avcodec/ratecontrol: Fix wrong sizeof expression
avcodec/tests/avcodec: Check only frame-mt decoders set update_thread_ctx
avcodec/mpegvideo_dec: Move ff_mpv_report_decode_progress() to h263dec.c
avcodec/mpeg12dec: Set save_chroma_format also for VCR2
avcodec/mpeg12dec: Remove redundant save_width/height
avcodec/mpeg12dec: Remove nonsense comment
avcodec/mpeg12enc: Combine put_bits()
avcodec/svq3: Factor out decoding extradata
avcodec/svq3: Improve returned error codes
avcodec/svq3: Deduplicate allocating dummy frame
avcodec/svq3: Allocate motion_val jointly
avcodec/svq3: Allocate picture buffers during init
tests/fate/qt: Use passthrough fps_mode for svq3-watermark
avcodec/svq3: Improve returning last picture
avutil/avassert: Add av_unreachable() and av_assume() macros
avcodec/amrwbdec: Mark default switch as unreachable
avcodec/proresenc_anatoliy: Mark impossible case as unreachable
avcodec/mpeg4videodec: Mark impossible switch case as unreachable
avcodec/pcm-dvdenc: Mark unreachable default cases as unreachable
avcodec/vlc: Make code more readable with av_unreachable()
avcodec/utvideoenc: Remove always-false pixel format check
avcodec/dolby_e_parse: Use av_unreachable instead of av_assert0(0)
avcodec/put_bits: Allow to mark places where PutBitContext is flushed
avcodec/e?ac3enc: Inform compiler about PutBitContext being blank
avcodec/speedhqenc: Use av_unreachable() for unreachable condition
avcodec/wmaenc: Use av_unreachable() instead of av_assert0(0)
avcodec/mpegvideo_{dec,motion}: Mark unreachable code as unreachable
avcodec/vlc: Make assert check more strict
avcodec/mpegvideo encs: Add put_bits_assume_flushed() to encode_header
avcodec/rv20enc: Use av_assert1() instead of av_assert0()
avcodec/vp9: Replace av_assert(0) by av_unreachable()
avcodec/adpcm: Use av_unreachable() instead of av_assert0()
avcodec/mjpegenc_common: Use av_unreachable() instead of av_assert0(0)
avcodec/4xm: Use av_unreachable() instead of av_assert0(0)
avcodec/atrac3: Use av_unreachable() instead of av_assert1(0)
avutil/refstruct: Remove redundant check
tests/fate/ac3: Make ac3-fixed-encode-2 bitexact across arches
avcodec/asvenc: Don't waste bits encoding non-visible part
avcodec/asvenc: Combine writing bits
avcodec/asvenc: Simplify writing extradata
avcodec/mpegvideo_enc: Use av_unreachable() for unreachable code
avcodec/msmpeg4dec: Use av_unreachable() for unreachable code
avcodec/h263dec: Use av_unreachable() for unreachable code
avcodec/pcm: Use av_unreachable() for unreachable code
avcodec/mpegvideo_enc: Set gob_index once during init
avcodec/h263dec: Move calculating gob_index to {intel,itu}h263dec.c
avcodec/mpeg4videodec: Don't initialize unused parts of RLTables
avcodec/mpegvideo_enc: Reduce stack usage
avcodec/mpeg4videoenc: Simplify creating LUT
avcodec/mpeg4video: Nuke ff_mpeg4_init_rl_intra()
avcodec/mpeg4videoenc: Remove no-output code
avcodec/mpeg4videoenc: Split writing blocks into intra and inter
avcodec/mpeg4videoenc: Use smaller scope for variable
avcodec/mpeg4videodec: Remove unnecessary ff_xvid_idct_init()
avcodec/xvididct: Remove always-true checks
avcodec/idctdsp: Only try to initialize xvid idct if it is used
avcodec/mpegvideo_dec: Document which codecs take which codepath
avcodec/mpegvideo_dec: Simplify check for unquantizing inter blocks
avcodec/mpegvideo: Move mpeg_quant to {Mpeg4Dec,MPVEnc}Context
avcodec/mpegvideo: Check h263_aic, not h263_plus for allocating dc_val
avcodec/ituh263enc: Don't use h263_plus field
avcodec/mpegvideo: Remove h263_plus
avcodec/mpeg4videodec: Use union to save space
avcodec/ffv1enc: Fix explicitly set -slicecrc 2
avcodec/vc2enc: Use LUT to avoid repeated av_log2()
swscale/utils: Fix potential race when initializing xyz tables
avformat/matroskadec: Fix VfW extradata size
avformat/matroska: Support JPEG2000 for demuxing
avformat/matroskaenc: Use native id V_FFV1 instead of V_MS/VFW/FOURCC
avcodec/asvenc: Fix crash with unaligned pointers/linesizes
avcodec/dovi_rpuenc: Avoid intermediate codec par in ff_dovi_configure()
avcodec/dovi_rpuenc: Use av_cold for ff_dovi_configure init functions
avcodec/dovi_rpuenc: Use av_unreachable() instead of av_assert0(0)
avcodec/libaomenc: Increase code locality
avcodec/dvenc: Check for unaligned pointers, strides
avcodec/pixblockdsp: Improve 8 vs 16 bit check
avcodec/pixblockdsp: Pass bits_per_raw_sample directly
avcodec/pixblockdsp: Fix get_pixels alignment documentation
avcodec/asvenc,dvenc: Optimize unaligned checks away if possible
avfilter/x86/vf_spp: Remove permutation-specific code
fftools/graph/graphprint: Fix races when initializing graphprint
fftools/textformat/avtextformat: Avoid relocations
fftools/resources/resman: Don't alloc ResourceManager, fix race
fftools/resources/resman: Use assert for always-false condition
fftools/resources/resman: Use proper logcontext
fftools/textformat/avtextformat: Fix races when initializing formatters
fftools/ffprobe: Factor writing common side data types out
fftools/ffprobe: Fix indentation
fftools/graph/graphprint: Remove redundant avio_flush()
tests/fate/mov: Fix fate-mov-mp4-frag-flush requirements
avcodec/ac3dec: Hardcode tables to save space
avcodec/ac3dec: Deduplicate mantissas and their init code
avcodec/ac3: Move gain value defines to ac3defs.h
avcodec/ac3{dec,enc}: Deduplicate gain levels table
avcodec/ac3dec: Deduplicate tables
avcodec/hpeldsp: Remove duplicate pel functions
avcodec/x86/hpeldsp_init: Use ff_avg_pixels16_mmxext
avcodec/hpeldsp_init: Detemplatize
avcodec/vc1dsp: Fix vc1op_pixels_func semantics
avcodec/Makefile: Only compile hashtable.o when needed
avcodec/hashtable: Zero-initialize hashtable
tests/fate/libavcodec: Run hashtable test
avcodec/hashtable: Only align complete entries
avcodec/hashtable: Check for overflow
avcodec/hashtable: Combine allocations
avcodec/hashtable: Mark alloc,free functions as av_cold
avcodec/hashtable: Only free buffer if there is buffer to free
avcodec/hashtable: Remove null statement
tests/fate-run: Remove intermediate files from enc-external tests
avcodec/libaomenc: Avoid code duplication when setting options
avutil/frame: Always return error upon error
avutil/frame: Use av_memdup() for duplicating extended data array
avcodec/psymodel: Use av_memdup() where appropriate
avcodec/iirfilter: Remove iirfilter, psy-preprocessing
avcodec/aacpsy: Remove always-true checks
avcodec/huffman: Combine allocations
avutil/frame: Fix av_realloc_array() argument order
avformat/dhav: Fix check for seekability
avformat/dhav: Check reading data
avfilter/vf_overlay: Don't perform UB pointer arithmetic
avfilter/vf_overlay: Avoid converting stride to uint16_t and back
avfilter/vf_overlay: Pass variable type directly in macro
avfilter/vf_overlay: Use correct alpha when > 8 bits
avfilter/vf_overlay: Keep dst_step in bytes
avfilter/vf_overlay: Hoist calculations out of loop
Revert "avcodec/decode: Fix avcodec parameters when bsfs are enable by decoder"
avcodec/amfdec,rkmppdec: Use correct extradata with BSFs
fate/video: Add media100 test
avcodec/mpeg4videodec: Don't zero blocks twice
avcodec/rv10: Perform RV20 initialization during init
avcodec/rv10: Perform RV20 check only for RV20
avcodec/ituh263dec: Don't process unnecessarily many coefficients
avcodec/ituh263dec: Remove redundant store
avcodec/ituh263enc: Don't use array unnecessarily
avcodec/ituh263enc: Fix indentation
avcodec/mpeg12dec: Don't store block_last_index unnecessarily
avcodec/rv10: Avoid indirection when reading VLC codes
avcodec/mpeg_er: Mark ff_mpeg_er_init() as av_cold
avcodec/mpegvideo_enc: Remove always-true branch
avcodec/motion_est: Fix indentation
avcodec/svq1enc: Don't free scratchbuf upon error
avcodec/svq1enc: Allocate motion_val{8,16} during init
avcodec/svq1enc: Stop calling ff_mpv_common_init()
avcodec/svq1enc: Remove write-only c_block_{width,height}
avcodec/svq1enc: Set MpegEncContext.avctx only once
avcodec/svq1enc: Don't initialize unneeded block_index
configure: Factor mpegvideoencdsp out of mpegvideoenc
configure: Relax svq1enc->mpegvideoenc dependency
configure: Relax diracdec->mpegvideoenc dependency
configure: Relax snowenc->mpegvideoenc dependency
avcodec/mpegvideo: Don't reset thread_context ptrs unnecessarily
avcodec/mpegvideo: Don't zero unnecessarily
avcodec/mpegvideo: Defer init of enc slice ctxs in ff_mpv_common_init()
avcodec/mpegvideo_enc: Simplify allocating non-slice buffers
avcodec/ituh263dec: Simplify AIC handling
avcodec/ituh263enc: Simplify AIC handling
avcodec/flvenc: Combine writing bits
avcodec/flvenc: Move ff_flv2_encode_ac_esc() to ituh263enc.c
avcodec/mpegvideo: Redo resetting intra table entry
avcodec/mpegvideo: Avoid {a,d}c_val[{1,2}]
avcodec/mpegvideo: Provide alignment hint to compiler
avcodec/mpegvideo: Don't reset AC values of upper-left luma block
avcodec/mpegvideo: Combine stores
avcodec/mpeg4video: Don't use ac_val[1], ac_val[2] when cleaning buffers
avcodec/mpegvideo: Only use a single ac_val pointer
avcodec/mpegvideo: Allocate ac_val jointly
avcodec/mpegvideo: Zero-init mbintra_table
avcodec/mpegvideo: Only keep MpegEncContext.dc_val[0]
avcodec/vc1: Only keep mb_type[0]
avcodec/mpegvideo: Allocate dc_val for each encoder slice
avcodec/{ituh263,mpeg4video}enc: Simplify out-of-slice DC prediction
avcodec/mpeg4video: Move ff_mpeg4_pred_dc() to decoder
avcodec/ituh263enc: Simplify encoding umotion vectors
avcodec/mpegvideo: Reduce stack usage when copying MpegEncContext
avcodec/mpeg4videoenc: Fix data race when using AC prediction
avcodec/g728dec: Remove AVCodec.sample_fmts
avcodec/indeo3: Fix UB pointer arithmetic
avcodec/indeo3: Consistently use ptrdiff_t for strides
avcodec/indeo3: Constify ref_block in decode_cell_data()
avcodec/ffv1enc: Use dummies to avoid UB pointer arithmetic
swresample/rematrix: Use correct function pointer types for calls
swresample/rematrix: Constify
tests/fate/screen: Add test for skipping cursor with FIC
avcodec/fic: Avoid copying cursor unnecessarily
avcodec/fic: Avoid implicit av_frame_free()+av_frame_alloc()
avcodec/fic: Don't copy frame unnecessarily
avcodec/fic: Remove redundant logmessage
avcodec/fic: Don't prematurely claim to have decoded a frame
avcodec/fic: Ensure skip frames have up-to-date props
avcodec/fic: Postpone duplicating AVFrame buffer
avcodec/dfpwmenc: Correctly pad input
avcodec/dfpwmenc: Remove write-only context member
avcodec/avcodec: Check sample_rate generically
avcodec/wma,wmaprodec: Remove always-false checks
avcodec/wma: Remove redundant nb_channels check
avcodec/wmaprodec: Avoid branch for setting block_align
avcodec/ituh263dec: Use correct logcontext
avcodec/rl: Avoid branch in index lookup
avcodec/ituh263enc: Simplify creating LUT
avcodec/ituh263dec: Only initialize ff_h263_rl_inter when needed
avcodec/mpegvideoenc: Allocate blocks as part of MPVEncContext
avcodec/mpegvideo: Add MPVContext typedef
avcodec/mpegvideo_dec: Factor debugging dct coefficients out
avcodec/mpegvideo_dec: Reindent after the previous commit
avcodec/mpeg_er: Don't use MpegEncContext.block
avcodec/mpegvideodec: Remove size expectation from ff_mpv_reconstruct_mb
avcodec/h261dec: Stop using MpegEncContext.gb
avcodec/h261dec: Don't use MpegEncContext.block
avcodec/mpeg12dec: Put GetBitContext on the stack where advantageous
avcodec/mpeg12dec: Remove unused function parameter
avcodec/rv34: Don't use MpegEncContext.gb
avcodec/rv34: Don't use MpegEncContext.block
avcodec/intrax8: Don't pretend to need more than one int16_t[64]
avcodec/vc1: Stop using MpegEncContext.gb
avcodec/vc1: Don't use MpegEncContext.block
avcodec/mpeg12dec: Deduplicate variables
avcodec/mpegvideo: Move flipflop_rounding to {MSMPEG4Dec,MPVEnc}Context
avcodec/mpegvideo: Move unrestricted_mv to MotionEstContext
avcodec/mpeg4videodec: Avoid unnecessary indirections
avcodec/{h263,mpeg4video}dec: Pass MPVContext*, not Mpeg4DecContext*
avcodec/mpegvideo: Move dct_precision to Mpeg4DecContext
avcodec/h263dec: Add H263DecContext
avcodec/h263dec: Remove redundant block parameter from decode_mb
avcodec/h263dec: Don't use MpegEncContext.block
avcodec/h263dec: Stop using MpegEncContext.gb
avcodec/mpeg12dec: Add Mpeg12SliceContext
avcodec/mpegvideo: Add missing headers
avcodec/mpeg12dec: Move MpegEncContext.gb to Mpeg12SliceContext
avcodec/mpeg12dec: Don't use MPVContext.block
avcodec/mpegvideo: Move fields only used by H.263 decoders to H263DecCtx
avcodec/mpegvideo: Move mb_num_left to {H263,RV34}DecContext
avcodec/mpeg12dec: Put mb_skip_run on the stack
avcodec/mpegvideo: Move mb_skip_run to {RV34Dec,MPVEnc}Context
avcodec/mpegvideo: Move SLICE_* defs to h263dec.h, h261dec.c
avcodec/msmpeg4dec: Move ff_msmpeg4_decode_init() down
avcodec/h263dec: Use function ptr for decode_picture_header
avcodec/ituh263enc: Inline value of h263_flv
avcodec/flvdec: Binarize h263_flv
avcodec/mpegvideo: Move fields to {H263Dec,MPVEnc}Context when possible
avcodec/mpeg_er: Allow to skip setting partitioned_frame, p[pb]_time
avcodec/mpegvideo: Move partitioned_frame to {H263Dec,MPVEnc}Context
avcodec/mpegvideo: Move loop_filter to {H263Dec,MPVEnc,VC1}Context
avcodec/rv34: Don't report progress unnecessarily
avcodec/rv34: Fix spelling mistake
avcodec/bytestream: Add const where appropriate
avcodec/vvc/dec: Don't use GetBit-API when byte-aligned
avcodec/get_bits: Add get_bits_bytesize()
avcodec/get_bits: Remove GetBitContext.buffer_end
avcodec/opus/dec: Remove unused parameters
avcodec/opus/dec: Don't call function multiple times in FFMAX
avcodec/opus/dec: Simplify resetting AVAudioFifo
avcodec/mpegvideo_dec: Avoid implicit NULL + offset
checkasm/h264dsp: Fix stack-buffer-overflow, effective-type violations
Anton Khirnov (192):
tests/fate/hevc: use bitexact scaling flags for fate-hevc-mv-switch
doc/ffmpeg: improve wording in the description section
fftools/ffmpeg_enc: add an AVClass to Encoder
fftools/ffmpeg_enc: stop using OutputStream in hw_device_setup_for_encode()
fftools/ffmpeg_enc: do not set AVStream timebase directly
fftools/ffmpeg_enc: do not set output stream codec parameters directly
fftools/ffmpeg_enc: remove unnecessary pointer references from enc_open()
fftools/ffmpeg_enc: move set_encoder_id() to ffmpeg_mux_init
fftools/ffmpeg_enc: don't write frame rate/SAR to AVStream directly
fftools/ffmpeg_filter: clarify error message
fftools/ffmpeg_filter: drop a redundant check
fftools/ffmpeg_filter: stop accessing OutputStream.[max_]frame_rate
fftools/ffmpeg_filter: drop the OutputStream parameter to ofilter_bind_ost()
fftools/ffmpeg_filter: remove remaining OutputStream usage in init_simple_filtergraph()
lavfi/asrc_afdelaysrc: convert to query_func2()
lavfi/asrc_afirsrc: convert to query_func2()
lavfi/asrc_anoisesrc: convert to query_func2()
lavfi/asrc_anullsrc: convert to query_func2()
lavfi/asrc_flite: convert to query_func2()
lavfi/asrc_hilbert: convert to query_func2()
lavfi/asrc_sinc: convert to query_func2()
lavfi/asrc_sine: convert to query_func2()
lavfi/*_vaapi: switch to query_func2()
lavfi/avf_a3dscope: switch to query_func2()
lavfi/avf_abitscope: switch to query_func2()
lavfi/avf_ahistogram: switch to query_func2()
lavfi/avf_aphasemeter: switch to query_func2()
lavfi/avf_avectorscope: switch to query_func2()
lavfi/avf_concat: switch to query_func2()
lavfi/avf_showcqt: switch to query_func2()
lavfi/avf_showcwt: switch to query_func2()
lavfi/avf_showfreqs: switch to query_func2()
lavfi/avf_showspatial: switch to query_func2()
lavfi/avf_showspectrum: switch to query_func2()
lavfi/avf_showvolume: switch to query_func2()
lavfi/avf_showwaves: switch to query_func2()
fftools/ffmpeg_filter: stop using avfilter_graph_create_filter() incorrectly
doc/examples/decode_filter_audio: stop using avfilter_graph_create_filter() incorrectly
doc/examples/decode_filter_video: stop using avfilter_graph_create_filter() incorrectly
doc/examples/transcode: stop using avfilter_graph_create_filter() incorrectly
doc/examples/transcode: switch to avcodec_get_supported_config()
lavfi/buffersink: allow av_buffersink_set_frame_size() to be called earlier
doc/examples/transcode: handle audio encoder frame size restrictions
fftools/ffplay: stop using avfilter_graph_create_filter() incorrectly
lavd/lavfi: stop using avfilter_graph_create_filter() incorrectly
lavfi: clarify the behaviour of avfilter_graph_create_filter()
lavu/opt: add missing 'else'
lavu/opt: avoid accidentally propagating spurious errors
lavfi/buffersink: add array-type options to replace "int-list" ones
doc/examples/decode_filter_audio: switch to new buffersink options
doc/examples/decode_filter_video: switch to new buffersink options
fftools/ffplay: switch to new buffersink options
lavu: deprecate av_opt_set_int_list() and related infrastructure
fftools/ffmpeg_demux: drop InputStream.[nb_]outputs
fftools/ffmpeg_demux: drop ist_output_add()
fftools/ffmpeg_enc: split Encoder into a private and public part
fftools/ffmpeg_mux: move OutputStream.enc_ctx to Encoder
fftools/ffmpeg: drop unused OSTFinished
fftools/ffmpeg_mux_init: do not export forced_keyframes_const_names[]
fftools/ffmpeg_mux_init: move the check for filtering+streamcopy
fftools/ffmpeg_mux_init: move the ost_get_filters() call to ost_bind_filter()
fftools/ffmpeg_mux_init: consolidate connecting source to mux stream
lavu/class: improve AVClass doxy
lavu/opt: combine option type size+name into a single descriptor
lavu/opt: consolidate common prologue for av_opt_set*()
lavu/log,opt: detect setting non-runtime options post-init
lavfi/avfilter: export AVFilter initialization state
lavfi/buffersink: move the option sanity check to init
lavfi/buffersink: move channel layout parsing to init
lavfi/buffersink: switch to query_func2()
lavfi/buffersrc: validate hw context presence in video_init()
lavfi/buffersrc: switch to query_func2()
lavfi/f_drawgraph: switch to query_func2()
lavfi/f_ebur128: switch to query_func2()
lavfi/f_graphmonitor: switch to query_func2()
lavfi/f_select: switch to query_func2()
lavfi/f_streamselect: drop useless query_formats() callback
lavfi/qrencode: switch to query_func2()
lavfi/src_avsynctest: switch to query_func2()
lavfi/src_movie: switch to query_func2()
lavfi/vf_stack_{vaapi,qsv}: replace query_formats with a pixfmt list
lavfi/vaf_spectrumsynth: switch to query_func2()
lavfi/vsrc_testsrc: switch to query_func2()
doc/ffmpeg: rewrite the detailed description chapter
doc/ffmpeg.texi: add a diagram for the loopback decoder example
lavfi/vf_alphamerge: switch to query_func2()
lavfi/vf_boxblur: switch to query_func2()
lavfi/vf_ciescope: switch to query_func2()
lavfi/vf_colorspace: switch to query_func2()
lavfi/vf_copy: switch to query_func2()
lavfi/vf_crop: switch to query_func2()
lavfi/vf_datascope: switch to query_func2()
lavfi/vf_deband: switch to query_func2()
lavfi/vf_detelecine: switch to query_func2()
lavfi/vf_drawtext: switch to query_func2()
lavfi/vf_edgedetect: switch to query_func2()
lavfi/vf_elbg: switch to query_func2()
lavfi/vf_fade: switch to query_func2()
lavfi/vf_feedback: switch to query_func2()
lavfi/vf_fieldhint: switch to query_func2()
lavfi/vf_fieldmatch: switch to query_func2()
lavfi/vf_fieldorder: switch to query_func2()
lavfi/vf_format: switch to query_func2()
lavfi/vf_hwmap: switch to query_func2()
lavfi/vf_geq: switch to query_func2()
lavfi/avfilter: move AVFilterContext.ready to FFFilterContext
lavfi/avfilter: move AVFilterContext.{enable,var_values} to FFFilterContext
lavfi/avfilter: move AVFilterContext.command_queue to FFFilterContext
lavfi/avfilter: document AVFilterContext.is_disabled as private
lavfi/avfilter: make ff_inlink_evaluate_timeline_at_frame() static
lavfi/avfilter: drop ff_ prefixes from static functions
fftools/ffmpeg_filter: stop setting a no-op option
fftools/cmdutils: group related calls together
fftools/cmdutils: do not treat single '-' as an option in locate_option()
fftools/ffmpeg_opt: add a struct to be passed as opaque to global-option handlers
fftools/ffmpeg_filter: do not leak graph_desc on fg_create() failure
fftools/ffmpeg: supply hw device context to probe-filtergraphs
lavc/hevcdec: unbreak WPP/progress2 code
fftools/ffmpeg_filter: treat apad filter as a source
lavfi/vf_frei0r: switch to query_func2()
lavfi/vf_hflip: switch to query_func2()
lavfi/vf_hwdownload: switch to query_func2()
lavfi/vf_hwupload: validate the hw device in init
lavfi/vf_hwupload: switch to query_func2()
lavfi/vf_hwupload_cuda: switch to query_func2()
lavfi/vf_il: switch to query_func2()
lavfi/vf_libplacebo: move vulkan initialization to init
lavfi/vf_libplacebo: convert to query_func2()
lavfi/vf_lut: switch to query_func2()
lavfi/vf_lut2: switch to query_func2()
lavfi/vf_mix: switch to query_func2()
lavfi/vf_noise: switch to query_func2()
lavfi/vf_overlay: switch to query_func2()
lavfi/vf_overlay_qsv: switch to query_func2()
lavfi/vf_pad: switch to query_func2()
lavfi/vf_palettegen: switch to query_func2()
lavfi/vf_paletteuse: switch to query_func2()
lavfi/vf_premultiply: switch to query_func2()
lavfi/vf_quirc: use FILTER_PIXFMTS_ARRAY() instead of query_formats()
lavfi/vf_mergeplanes: remove redundant assignment
lavfi/vf_mergeplanes: switch to query_func2()
lavfi/vf_remap: switch to query_func2()
lavfi/vf_scale: switch to query_func2()
lavc/avcodec: fix global/private option precendence
lavf/internal: remove a prototype for non-existent function
lavf: add a header for generic-layer interfaces
lavf: add new struct for data private to generic layer
lavf: move muxing-specific fields from FFFormatContext to FormatContextInternal
lavf: move demuxing-specific fields from FFFormatContext to FormatContextInternal
lavf: deprecate av_format_inject_global_side_data()
lavf: replace FFFormatContext.prefer_codec_framerate with FF_INFMT_FLAG
lavf/flvdec: replace a private option with a field in FFFormatContext
lavu/opt: deprecate av_opt_ptr()
fftools/ffmpeg_demux: use proper logging contexts everywhere
fftools/ffmpeg_filter: use proper logging contexts
fftools/opt_common: stop accessing a private field
fftools/ffmpeg_sched: be smarter about flushing the pre-muxing queues
lavfi/vf_setparams: convert to query_func2()
lavfi/vf_showpalette: convert to query_func2()
lavfi/vf_shuffleplanes: convert to query_func2()
lavfi/vf_stack: convert to query_func2()
lavfi/vf_stereo3d: convert to query_func2()
lavfi/vf_subtitles: convert to query_func2()
lavfi/vf_swaprect: convert to query_func2()
lavfi/vf_swapuv: convert to query_func2()
lavfi/vf_telecine: convert to query_func2()
lavfi/vf_tile: convert to query_func2()
lavfi/vf_tpad: convert to query_func2()
lavfi/vf_transpose: convert to query_func2()
lavfi/vf_untile: convert to query_func2()
lavfi/vf_v360: convert to query_func2()
lavfi/vf_vmafmotion: convert to query_func2()
lavfi/vf_vpp_qsv: convert to query_func2()
lavfi/vf_weave: convert to query_func2()
lavfi/vf_zscale: convert to query_func2()
lavfi/vsrc_life: avoid modifying the context in query_formats()
lavfi/vsrc_life: convert to query_func2()
lavfi/vsrc_perlin: convert to query_func2()
lavfi/vf_libplacebo: eliminate LibplaceboInput.link
Document stream specifier syntax change from 46cbe4ab5c
lavc: deprecate the omx encoders
fftools/ffmpeg_sched: rename mux_done_{lock,cond} into finish_*
fftools/ffmpeg_sched: signal the main thread when a task fails
tools/general_assembly: add a mechanism for excluding people from GA list
tools/general_assembly: exclude Derek from GA emails
lavc: improve AVCodecContext.extradata/subtitle_header documentation
lavc/refstruct: move to lavu and make public
lavc/container_fifo: move to lavu and make public
lavc/packet: add API for an AVPacket-based AVContainerFifo
fftools/thread_queue: switch from AVFifo+ObjPool to AVContainerFifo
fftools/sync_queue: switch from AVFifo+ObjPool to AVContainerFifo
compat/w32pthreads: change pthread_t into pointer to malloced struct
Araz Iusubov (7):
avcodec/amfenc: Color information update
avcodec/amfenc: GOP size check
avcodec/amfenc: Fix max rate control log message
avcodec/d3d12va_decode: enable reference-only mode
avcodec/d3d12va_encode: fix l0 reference count limit
avutil/hwcontext_amf: add device cache size
amfenc: Fix for full PA queue
Artem Smorodin (1):
avformat/hlsenc: limit segments count to search duplicated segments filenames
Arthur Grillo (1):
avformat/fifo: Check for keyframe video type before stop dropping
Benjamin Cheng (5):
avcodec/hw_base_encode: restrict size of next_prev
vulkan_encode: Remove unneeded VkImageUsageFlags
vulkan_vp9: Fix frame threading
vulkan_av1: Fix frame threading
vulkan_vp9: Read segment and lf data from cbs
Bernat Arlandis (1):
libtheoraenc: Add encoding speed level option
Bin Peng (2):
lavc/aarch64: Fix ff_pred8x8_plane_neon_10
lavc/aarch64: Fix ff_pred16x16_plane_neon_10
Brad Smith (5):
ppc: Recognize the PPC VSX and Power8 CPU flags
libavutil/ppc: Include the hardware feature flags like the other archs
libavutil/riscv: Make use of elf_aux_info() on FreeBSD / OpenBSD riscv
lsws/ppc/yuv2rgb_altivec: Fix build in non-VSX environments with Clang
lsws/ppc/yuv2rgb_altivec: Fix build in non-VSX environments with Clang v2
Cameron Gutman (6):
avcodec/amfenc: Fix inverted loop filter option
avcodec/amfenc: Update supported HEVC color ranges
avcodec/amfenc: Add support for on-demand key frames
avcodec/amfenc: add support for QueryOutput wait
avcodec/amfenc: Implement async_depth option
avcodec/nvenc: unify CBR filler data insertion for all codecs
Chris Hodges (2):
avformat: add AV1 RTP depacketizer and packetizer
avformat: Fix AV1 RTP wrong log condition
Chris Warrington (1):
avcodec/vvc decode: ALF filtering without CC-ALF
Clément Péron (3):
libavformat/rtpdec: Fix RTP timestamp wraparound in Producer Reference Time
avformat/rtpdec: explicit timestamp wraparound handling
various: fix typos
Coia Prant (1):
configure: Use MSYSTEM_CARCH for default arch on msys2
Dale Curtis (4):
avcodec/h2645: allocate film grain metadata dynamically
avcodec/h264dec: make slice header parse errors fatal under AV_EF_EXPLODE
Don't attempt to parse ADTS from USAC packets.
avcodec/flacdsp: Fix integer-overflow in flac_lpc_33_c
Daniel N Pettersson (2):
avformat/rtsp: add TLS options
avformat/tls_openssl: add hostname for verification
Danil Iashchenko (2):
doc/filters: Shift CUDA-based filters to own section.
doc/filters: add thumbnail_cuda entry
Dariusz Frankiewicz (1):
avcodec/apv: align APV color format support with latest liboapv version
Darren Mo (1):
avformat/mov: Populate packet duration using stts atom instead of guessing
Dash Santosh (4):
avfilter: add scale_d3d11 filter
avcodec/mfenc: add support for D3D11 input surfaces
avfilter/scale_d3d11: cleanup return path using fail label
avcodec/mfenc: propagate error codes properly
David McElroy (1):
avformat/movenc: fix HEVC fmp4 HLS init segment for Apple playback
David Rosca (7):
hw_base_encode: Free pictures on close
lavc/vaapi_encode: Query surface alignment
lavc/vaapi_encode_h265: Use surface alignment
vulkan_encode_h264/5: Fix uninitialized return value in write_extra_headers
vulkan_encode_av1: Fix setting QP
vulkan_encode_av1: Fix uninitialized return value in write_extra_headers
lavc/vaapi_encode_av1: Fix ref_order_hint value for second slot
Dawid Kozinski (6):
avcodec: add APV encoder using liboapv
configure: Update liboapv version requirement
avcodec/liboapvenc: set the encoder output to OAPV_CFG_VAL_AU_BS_FMT_NONE format
avformat/apvdec: add framerate option
avformat/mov: add support for APV streams
avformat/mov_muxer: Extended MOV muxer to handle APV video content
Dennis Sädtler (3):
avformat/flvenc: implement support for multi-track video
avformat/flvdec: add support for demuxing multi-track FLV
lavc/videotoolboxenc: Add spatial_aq option
Derek Buitenhuis (3):
avformat/dhav: Add missed free for end_buffer
tools: Remove libav-merge-next-commit
doc: Remove libav-merge.txt
Desmond Liu (1):
doc/scaler.texi: add missing gamma option
Diego de Souza (7):
avutil/hwcontext_cuda: add 4:2:2 pixel format support
avcodec/nvdec: add 4:2:2 decoding and 10-bit support
avcodec/cuviddec: add HEVC/H.264 4:2:2 and H.264 10-bit support
avcodec/nvenc: add 4:2:2 encoding and H.264 10-bit support
avcodec/nvenc: add UHQ to AV1 for NVENC
avcodec/nvenc: add Temporal Filtering for AV1 and H.264 in NVENC
avcodec/nvenc: add MV-HEVC encoding support
Dmitrii Ovchinnikov (14):
amfenc: Update the min version to 1.4.35.0 for AMF SDK.
avcodec/amfenc: B-Frame support for av1_amf encoder.
avutil: add hwcontext_amf.
avcodec/amfenc: redesign to use hwcontext_amf.
Enable 10-bit output for RGB input in AMF HEVC and AV1
Added support for direct RGB input to AMF encoder
libavutil/hwcontext_amf: add format validation in transfer_data functions
libavcodec/amfenc: Setting the VBAQ property before the init call.
avcodec/amfenc_av1: Add B-frame QP control
avcodec/amfenc_h264: improve B-frame usability and simplify options
amfenc: Update the min version to 1.4.36.0 for AMF SDK.
avutil/hwcontext_amf: add support for d3d12va initialisation
avutil/hwcontext_amf: fix error logging on amf_init_from_device.
acvodec/amfenc: Enable use of AMF Surface in multiple encoders
Emily (1):
fate/ffmpeg: add samples dependency to fate-ffmpeg-spec-disposition
Emma Worley (5):
Add myself to MAINTAINERS for dxv/dxvenc
lavc/hashtable: create generic robin hood hash table
lavc/dxvenc: migrate DXT1 encoder to lavc hashtable
lavc/dxvenc: improve compatibility with Resolume products
lavc/dxvenc: fix big-endian issues in dxv_compress_dxt1
Eric Joyner (2):
avformat/mov: Support multiple thumbnails in HEIF
avformat/mov: Enable jpeg streams in HEIF MOVContext
Erik Linge (5):
rtpdec_mpeg4: Add fmtp parsing of bitrate value
libavformat/rtpdec_opus: add fmtp parsing of sprop-maxcapturerate
rtpdec: Set bitrate for pcm-mulaw audio
avformat/rtsp: parse framerate in sdp
avformat/rtpdec_jpeg: Set width and heigh codec parameters
Ethan Halsall (1):
avfilter/vf_mcdeint: add yuv444p support to mcdeint
Eugene Zemtsov (2):
avcodec/decode: Fix incorrect enum type used in side_data_map()
avformat/mov: fix crash when trying to get a fragment time for a non-existing fragment
Evgeny Pavlov (4):
avcodec: add amfdec.
avfilter/scale_amf: Add AMF VPP & super resolution filters
doc/filters: Add documentation for AMF filters
avcodec/amfenc: add smart access video option
Fei Wang (10):
lavc/vaapi_dec: Create VA parameters dynamically
lavc/vaapi_decode: Use a more meaningful variable name
lavc/cbs_h266: Add SliceTopLeftTileIdx to H266RawPPS
lavc/cbs_h266: Add NumSlicesInTile to H266RawPPS
lavc/vvc_refs: Define VVC_FRAME_FLAG* to h header
lavc/vvc_ps: Add alf raw syntax into VVCALF
lavc/vvc_dec: Add hardware decode API
lavc/vaapi_dec: Add VVC decoder
libavutil/hwcontext_{d3d11va, dxva2}: Support Y212/XV36 pixel format
lavfi/qsvvpp: Copy frame props before modify it
Felicia Lim (2):
avformat/iamf_writer: fix setting skip_samples and discard_padding for OPUS
avformat/movenc: fix setting elst/stss for IAMF with Opus
Frank Plowman (32):
lavc/vvc: Remove floating point logic
lavc/x86/videodsp: Drop MMX usage
lavc/vvc: Use second definition of MinQtLog2SizeIntraC if relevant
lavc/vvc: Don't check motion estimation region for IBC
lavc/vvc: Store MIP information over entire CU area
lavc/vvc: Fix derivation of LmcsMaxBinIdx
lavc/vvc: Fix overflow in MVD derivation
lavc/vvc: Use a bitfield to store MIP information
lavc/vvc: Fix scaling matrix DC coef derivation
lavc/vvc: Fix race condition for MVs cropped to subpic
fate/vvc: Add vvc-frames-with-ltr.vvc
lavc/vvc: Check slice structure
lavc/vvc: Set fc->ref to NULL at top of decode_nal_units
lavc/vvc: Fix derivation of inverse LMCS idx
lavc/vvc: Fix slice map construction for small subpics
lavc/vvc: Ensure subpictures don't overlap
tools: Add binaries to .gitignore
lavc/vvc: Fix pps_single_slice_picture
lavc/vvc: Stricter bound on pps_exp_slice_height_in_ctus_minus1
lavc/vvc: Fix NumEntryPoints derivation
fate/vvc: Add vvc-wpp-single-slice-pic
lavc/vvc: Detect subpic overlaps at CTU level
lavc/vvc: Avoid UB in DB strength derivation for PLT CUs
lavc/vvc: Fix divide-by-zero in LMCS param derivation
lavc/h2645_parse: More descriptive NALU header error
MAINTAINERS: Add myself as vvc maintainer
lavc/vvc: Fix unchecked return code and shadowing
lavc/vvc: Fix condition for using default scaling factor
lavc/vvc: Don't discard palette_subblock_data return code
lavc/vvc: Add max parameter to kth_order_egk_decode
lavc/vvc: Mark SPS used if multiple CLVSSs use it
CODEOWNERS: Add myself for VVC
Gabriel Hege (1):
avformat/movenc: fix VVC encoding with leading pictures
Gyan Doshi (26):
MAINTAINERS: remove libopenjpeg decoder entry
avcodec/libx265: unbreak build for X265_BUILD >= 213
avformat/movenc: log stream index for invalid pkt duration
ffmpeg_sched: return better error code
avfilter/setpts: add option strip_fps to decide framerate handling
ffmpeg_demux: don't print input error for AVERROR_EXIT
doc/filters: fix typo in format filter
avfilter/xpsnr: avoid division by zero
avfilter/scale*: add option reset_sar
avfilter/vpp_amf: add option reset_sar
avcodec/libsvtav1: unbreak build with latest svtav1
fftools: notify user of flags upon loglevel parse failure
ffmpeg_demux: add option readrate_catchup
ffbuild: read library linker objects from a file
ffbuild: use response files only if ar accepts them
configure: improve ar test for response files
avfilter/scale: remove duplicate block
ffmpeg_demux: set default for readrate_catchup to be 5% faster
ffmpeg: add per-stream input option drop_changed
ffmpeg-filter: check for initialized graph
configure: add option to select use of response files
doc/ffprobe: remove entry for show_format_entry
configure: correct liboapv feature support
avformat/movenc: disallow buggy flags combination
doc/bitstream_filters: correct variable use in examples
forgejo/CODEOWNERS: add myself to docs
Hendrik Leppkes (1):
avutil/tests/color_utils: reduce accuracy threshold to pass to 1e-7
Henrik Gramner (2):
avcodec/x86/vp9: Add AVX-512ICL for 16x16 and 32x32 8bpc inverse transforms
avcodec/x86/vp9: Add AVX-512ICL for 16x16 and 32x32 10bpc inverse transforms
IndecisiveTurtle (6):
libavutil/vulkan: Prevent crash on shaders with no descriptors
avcodec/vulkan: Add support for generating GLSL strings from comp shaders
vulkan/common: Fix off-by-one error in flush_put_bits
vulkan/common: Use u32vec2 buffer type instead of u64
vulkan/common: Add put_bytes_count
libavutil/vulkan: Expose ff_vk_set_descriptor_image
Ingo Brückl (1):
avcodec/vaapi_encode: fix compilation without CONFIG_VAAPI_1
J. Dekker (1):
avcodec: deprecate sonic
Jack Lau (13):
avformat/hlsenc: fix CODECS Attribute hard code in hevc EXT-X-STREAM-INF
avformat/whip: Add WHIP muxer support for subsecond latency streaming
avformat/tls_openssl: fix build error when openssl version < 3
avformat/hls: fix typo in Range header comment (chore)
avformat/tls_openssl: fix warnings when openssl is lower version
avformat/whip: mark as experimental
avformat/whip: replace AV_OPT_FLAG_DECODING_PARAM to ENCODING
avformat/tls_openssl: set tlsext host name after init ssl
avformat/whip: free udp socket after dtls free
avformat/tls_openssl: replace 1 with TLS_ST_OK to be more clear
avformat/tls_openssl: remove all redundant "TLS: " in log with AVClass
avformat/tls_openssl: make tls and dtls use one close function
avformat/whip: force NONBLOCK for rtp
Jack Lau via ffmpeg-devel (1):
avformat/rtpdec_mpeg4: add need_parsing for rtsp AAC
Jacob Lifshay (15):
lavu: add av_scanf_format() and use it on av_sscanf()
forgejo/pre-commit/ignored-words: sort words
forgejo/pre-commit/config: ensure .forgejo/pre-commit/ignored-words.txt is sorted
lavc: add AV_CODEC_ID_SMPTE_436M_ANC
lavf: mxf [de]muxer now uses AV_CODEC_ID_SMPTE_436M_ANC instead of ..._NONE
lavc: add API for manipulating SMPTE-436M VBI/ANC data
lavc: add smpte436m_to_eia608 bitstream filter
lavc: add eia608_to_smpte436m bitstream filter
lavf/mxfenc: support EIA-608/708 streams by using eia608_to_smpte436m bsf
lavf/mccdec: clean up, add support for mcc 2.0 features, and add SMPTE_436M_ANC output stream
lavf: add mcc muxer
tests/fate/subtitles: fix mcc test input file paths
lavc/bsf/eia608_to_smpte436m: fix memory leak -- forgot to free input av_packet
lavc/bsf/smpte436m_to_eia608: fix memory leak -- forgot to free input av_packet
tests/fate/subtitles: add test for smpte436m_to_eia608 bsf
James Almer (462):
avcodec/cbs_h265: fix valid range for {left,right}_view_id
avcodec/cbs_h265: num_ref_displays can be up to 32
avcodec/hevc/sei: num_ref_displays can be up to 32
avfilter/vf_showinfo: add missing break to ViewID case
tests/fate/mov: fix rules for some tests
avutil/iamf: fix doxygen
avformat/dump: always print non-tile streams in tile grid groups
avformat/dump: reduce indentation when printing streams within a group
avformat/dump: don't print streams withing a group twice
fate/vcodec: add missing scale filter dependency to ffv1-2pass10 vsynth tests
fate/hevc: add missing scale filter dependency to fate-hevc-mv-switch
fate/filter-audio: add missing aresample filter dependency to fate-filter-crazychannels
avformat/mov: don't return the latest stream when an item stream is expected
avformat/avformat: add side data to AVStreamGroupTileGrid
avformat/mov: get heif image rotation from irot box
avformat/mov: factorize getting the current item
avformat/mov: parse colr boxes that reference tile grids
avformat/mov: parse clap boxes that reference heif items
avformat/mov: get heif image mirroring from imir box
avformat/mov: don't abort on invalid clap box data
fate/mov: add a test for heic images with cropping and rotation metadata
avfilter: add missing build deps to msad filter
avcodec/hevc/ps: print the correct unsupported scalability value found
avcodec/hevc/ps: print a more accurate message when parsing an SPS for an unsupported layer
avcodec/packet: fix doxy references in AVPacketSideData
avformat/mov: split off heif item initialization to its own function
avformat/mov: split off lcevc stream group initialization to its own function
avcodec/aac/aacdec: add a missing wrapper to an AAC USAC function call
configure: include liblcevc_dec ldflags in avcodec_extralibs
avfilter/vf_xpsnr: remove duplicated DSP infranstructure
avutil/pixfmt: extend the VUY{A,X} description
avutil/pixfmt: add AYUV pixel format
avutil/pixfmt: add UYVA pixel format
avutil/pixfmt: add VYU444 pixel format
avutil/pixfmt: add V30X pixel format
swscale/input: add AYUV input support
swscale/input: add UYVA input support
swscale/input: add VYU444 input support
swscale/input: add V30X input support
avutil/pixdesc: use a bigger variable type when writing bitstream formats
avcodec/hevc/ps: return a proper error code when we don't support parsing an sps
avcodec/hevc/ps: add a range check for sps_max_sub_layers
swscale/output: add missing yuv2packed1 and yuv2packed2 support for VUY{X,A}
swscale/output: add AYUV output support
swscale/output: add UYVA output support
swscale/output: add VYU444 output support
swscale/output: add V30X output support
avformat/riff: map y408 fourcc to RAWVIDEO decoder
avformat/riff: map v408 fourcc to RAWVIDEO decoder
avformat/riff: map v308 fourcc to RAWVIDEO decoder
avformat/riff: map v410 fourcc to RAWVIDEO decoder
avutil/hwcontext_videotoolbox: add support for AYUV pixel format
avcodec/videotoolbox: choose AYUV pixel format when ideal
avformat/movenc: add support for UYVA pixel format
avformat/movenc: add support for VYU444 pixel format
avformat/movenc: add support for V30X pixel format
avcodec: deprecate v408 de/encoder
avcodec: deprecate v308 de/encoder
avcodec: deprecate v410 de/encoder
avformat/riff: map Y410 fourcc to RAWVIDEO decoder
avfilter/vsdc_testsrc: simplify yuvtest_fill_picture
avfilter/vsrc_testsrc: add support for packed YUV formats in yuvtestsrc
fate/filter-video: add tests for packed YUV in yuvtestsrc
avfilter/vsrc_testsrc: add missing alpha plane define
avutil/hwcontext_vulkan: add proper maps for XV3{0,6}
fate/vcodec: stop using the deprecated v308 codec
fate/vcodec: stop using the deprecated v408 codec
fate/vcodec: add a test for v410 pixel format raw video
avcodec/vulkan_encode_h264: use the proper printf specifier for size_t
avcodec/vulkan_encode_h265: use the proper printf specifier for size_t
Revert "tests/fate: disable compression for zlib-based codecs"
tests/checkasm/sw_rgb: don't write random data past the end of the buffer
swscale/output: fill all the xv36le alpha bits
swscale/input: add X36VBE input support
swscale/output: add X36VBE output support
swscale/input: add AYUV64BE input support
swscale/output: add AYUV64BE output support
avfilter/vsrc_testsrc: add support for XV36 and AYUV64
swscale/output: fill the xv30le alpha bits
avfilter/vsrc_testsrc: fill the xv30le alpha bits
swscale/output: fix alpha endianness in XV36
fate/vcodec: update reference files for v410 vsynth tests
avformat/movenc: explicitly support V30XLE and not the host native endian version
avutil/pixdesc: ensure the component being read or writen to is valid
avutil/pixdesc: add alpha component information to pixfmts with reserved but undefined alpha bits
avfilter/vsrc_testsrc: use the alpha component information for XV3{0,6} and V30X
avfilter/vf_pixdesctest: also take into account undefined alpha components
swscale/swscale_unscaled: clear the low bits in planar8ToP01xleWrapper
fate/filter-video: make fate-filter-pixdesc compare the hashed output with and without pixdesctest filtering
avutil/pixdesc: fix alpha offset for X2{RGB,BGR}10BE
avutil/pixfmt: add Y216 pixel format
swscale/input: add Y216LE input support
swscale/output: add Y216LE output support
avcodec/vulkan_video: add proper maps for XV3{0,6}
avutil/hwcontext_vulkan: add support for AV_PIX_FMT_Y216
avcodec/vulkan_video: add mapping for AV_PIX_FMT_Y216
avformat/riff: map Y210 and Y216 fourcc to RAWVIDEO decoder
libavutil/hwcontext_dxva2: use the Y216 pixel format
libavutil/hwcontext_d3d11va: use the Y216 pixel format
avutil/pixfmt: add XV48 pixel format
swscale/input: add XV48 input support
swscale/output: add XV48 output support
avformat/riff: map Y416 fourcc to RAWVIDEO decoder
avfilter/vsrc_testsrc: add support for XV48
libavutil/hwcontext_dxva2: use the XV48 pixel format
libavutil/hwcontext_d3d11va: use the XV48 pixel format
avutil/hwcontext_d3d11va: drop duplicate pixfmt entry
avutil/hwcontext_vulkan: add missing packed YUV444 format mappings
swscale/swscale_unscaled: add unscaled conversion for AYUV/VUYA/UYVA
swscale/x86/rgb2rgb: add optimized versions of the remaining shuffle_bytes functions
vsrc_testsrc: add support for x2rgb10le to rgbtestsrc
fate/filter-video: add more rgbtestsrc tests
swscale/output: add full chroma interpolation support for x2rgb10
swscale/swscale_unscaled: add unscaled hbd planar RGB to x2rgb10le
swscale/swscale_unscaled: add unscaled rgb to planar rgba
swscale/swscale: prevent integer overflow in chrRangeToJpeg16_c
fate/pixfmts: test conversion of high bitdepth formats
swscale/swscale_unscaled: add unscaled x2rgb10le to planar RGB
swscale/swscale_unscaled: add unscaled x2rgb10le to packed RGB
avfilter/vsrc_testsrc: add support for RGB48/RGBA64
fate/pixfmts: extend the high bit depth test
swscale/swscale_unscaled: add unscaled XV{36,48}LE <-> XV{36,48}BE
swscale/swscale_unscaled: add more unscaled planar RGB to planar RGB coverage
x86/swscale: disable AVX2 yuv2nv12cX functions if accurate_rnd is requested
fate/pixfmt: disable dithering in the scale filter
avfilter/framepool: align the frame buffers
avfilter/vf_zscale: align the frame buffers
avfilter/vf_zscale: remove unecessary argument from realign_frame
avfilter/vf_zscale: extend the configuration log message with color space info
avformat/mov: use an array of pointers for heif_item
avformat/mov: reindent after previous commit
fate/pixfmt: reintroduce scale filter dependency for some tests
avcodec/x86/vvc: add prototypes for OF functions
Revert "avcodec/h2645: allocate film grain metadata dynamically"
avcodec/h2645_sei: fix parsing AOM grain provider_oriented_code
avcodec/aom_film_grain: allocate film grain metadata dynamically
avcodec/h2645_sei: use the RefStruct API for film_grain_characteristics
Revert "avcodec/h2645_sei: fix parsing AOM grain provider_oriented_code"
avformat/mov: check that items are allocated before accessing them
avutil/channel_layout: add Binaural channels and layout
avformat/iamf: use the new Binaural channel layout
avcodec/h2645_sei: move some common SEI syncing code to ff_h2645_sei_ctx_replace()
avcodec/hevc/sei: remove unused inline function
avcodec/hevc/sei: remove unnecessary inline function
avcodec/ffv1enc: restore header writing behavior for version > 1
tests/checkasm/diracdsp: fix alignment for src and ombc_weight buffers
avutil/frame: use size_t for total_size in get_video_buffer()
avutil/frame: fix setting plane_padding
avformat/movenc: don't write PS NALUs in hvcC for codec tag hvc1
avformat/hevc: fix writing hvcC when no arrays are provided in hvcC-formatted input
avformat/movenc: don't write a calculated avgBitrate when the provided one is unset
avcodec/libfdk-aacenc: export CPB properties
avformat/mov: rename MOVCtts.duration to offset
avformat/movenc: don't disable edit lists when writing CMAF output
avformat/spdifdec: parse headers for audio codecs
avformat/movenc: write stss boxes for xHE-AAC
avformat/test/movenc: set audio packets as key frames
avformat/matroskadec: set all frames in a keyframe simple box as keyframes
avformat/mov: don't unconditionally set all audio packets in fragments as key frames
avcodec/aac_parser: set key_frame and profile
avcodec/aac/aacdec: set keyframe flag in output frames
avcodec/aacenc: set keyframe flag in output packets
avcodec/audiotoolboxdec: set set keyframe flag in output frames
avcodec/audiotoolboxnec: set set keyframe flag in output packets
avcodec/libfdk-aacdec: set keyframe flag and profile in output frames
avcodec/libfdk-aacenc: set keyframe in output packets
avcodec/mediacodecdec: set set keyframe flag in output frames
avcodec/codec_desc: remove Intra Only prop for AAC
avcodec/ac3dec: fix downmix logic for eac3
avformat/mov: add missing stts array syncing in mov_build_index
doc/filters: add an entry for vf_lcevc
doc/codecs: add missing enhancements value for export_side_data
avformat/hevc: add a log context to ff_isom_write_{hvcc,lhvc}
avformat/hevc: also print NALU ids
avutil/channel_layout: add a 9.1.6 layout
avutil/channel_layout: simplify the 22.2 layout definition
avformat/iamf_parse: add support for expanded channel layouts
avformat/iamf_writer: add support for expanded channel layouts
avformat/iamfdec: don't set individual streams as dependent
fate/iamf: add a test for expanded layouts
avformat/iamf_parse: add checks to parameter definition durations
avformat/iamf_parse: fix setting duration for the last subblock in a parameter definition
avformat/iamf_writer: fix setting num_samples_per_frame for OPUS
avformat/isom: use more of the existing channel layout bitmap defines
avutil/frame: add missing size dependent prop to LCEVC payload side data
doc/ffmpeg.texi: replace use of uncommon unicode characters
avcodec/libx265: ignore user set alpha x265-param
avcodec/cbs_h2645: revert accidental change
avformat/iamf_writer: ensure the stream groups are not empty
avcodec/libdav1d: clear the buffered Dav1dData on decoding failure
avcodec/ac3dec: set ltrt_center_mix and ltrt_surround_mix using the relevant coded values
avcodec/ac3dec_float: define the downmix related options as exported and read-only
avcodec/ac3dec_float: fix range for dmix_mode
avcodec/ac3dec: set preferred_stereo_downmix using the relevant coded value
tests/checkasm/sw_rgb: remove bogus value truncation in check_yuv2packed1()
avfilter/buffersrc: check for valid sample rate
avfilter/buffersink: don't leak the reallocated channel layouts array
avfilter/buffersrc: make channel_layout a CHLAYOUT type AVOption
avutil/channel_layout: add a 5.1.2 layout using side channels
avutil/channel_layout: fix definition of 5.1.4 layout
avformat/iamf_writer: be more verbose when reporting an input layout is invalid
avformat/iamf: use the correct layouts for Sound Systems B and C
avformat/iamf: document the expandable channel layouts
avformat/iamfdec: swap back and side streams if both are present
avformat/flvdec: set Opus sample rate
avcodec/opus/parser: set sample rate
avcodec/opus/parser: reindent after the previous commit
avformat/dump: print only the actual streams in a tile grid group
avcodec/opus/parser: set duration when complete frames are fed
avcodec/opus/parser: remove duplicate failure path code
avfilter/aeval: tighten the check for empty expression
avfilter/aeval: don't leak the strdup'd expression string
avformat/mov: fix setting tile grid stream offsets when a stream is referenced more than once
Revert "avformat/dump: print only the actual streams in a tile grid group"
avformat/flvdec: initialize ret in flv_read_packet() to AVERROR_BUG
avcodec/vvc/dec: print thread debug logs only if DEBUG is defined
avformat/mov: merge stts and ctts arrays into one
avcodec/jpeg2000dec: clear array length when freeing it
avutil/frame: add AV_FRAME_SIDE_DATA_FLAG_NEW_REF
avcodec/aom_film_grain: use av_frame_side_data_add() where useful
avcodec/hevc/hevcdec: use av_frame_side_data_add() where useful
avformat/matroska: add support for VVC streams
tests/fate/lavf-container: fix dependencies for lavf_container_fate tests
avformat/iamf_parse: add missing av_free() call on failure path
avformat/mov: fix potential unsigned underflow in loop condition
avformat/avformat: also clear FFFormatContext packet queue when closing a muxer
fate/tests/flvenc: add missing ffprobe dependency to fate-enhanced-flv-multitrack
avcodec/ac3dec: don't override existing downmix coefficient with default ones
avcodec/ac3dec: only export matrix encoding and downmix info side data when necessary
swscale/swscale: combine the input/output checks in sws_frame_setup()
swscale/swscale: don't reject scaling when color parameters are not supported but conversion is not required
avfilter/avfilter: add a side_data field to AVFilterLink
avfilter/buffersrc: add a side_data field
avfilter/buffersink: add av_buffersink_get_side_data()
fftools/ffmpeg: propagate decoded_side_data from decoded streams to the filterchain
avutil/downmix_info: zero the allocated buffer
avutil/frame: add a side data prop to signal channel layout dependent types
avfilter/af_aresample: propagate downmix metadata to swresample if present
fftools/ffmpeg_filter: reinitialize the filterchain if downmix metadata changed between frames
doc/APIChanges: fix library name for a recent entry
fftools/ffmpeg_filter: remove accidental variable shadowing
avfilter/buffersrc: remove unused variable
tests/checkasm/sw_rgb: increase plane array buffers
avutil/downmix_info: check for side data allocation success before zeroing it
avformat/mov: fix overflow in drift timestamp calculation
avdevice/alsa_dec: add a ch_layout option
avfilter/avfilter: remove accidental loop index variable reset
avfilter/vf_scale: remove global side data when it no longer applies after scaling
avcodec/speexdec: fix frame_size for mode == 2
avcodec/nvenc: add compile time check for outputRecoveryPointSEI for HEVC
doc/ffmpeg: update example command line for IAMF muxing
avcodec/nvenc: add support for writing mastering metadata SEI messages
avutil/Makefile: fix SKIPHEADERS for AMF
avfilter/Makefile: add missing SKIPHEADERS for AMF
swresample/rematrix: split filling the matrix array into its own function
libswresample/rematrix: add support for custom order channel layouts
avcodec/ffv1: split off and share frame header parsing code
avcodec: add a ffv1 parser
fate/libswresample: add a test downmixing with a custom order layout
avcodec/ffv1enc_vulkan: add missing arguent to ff_ffv1_common_init()
swscale/graph: copy scaler_params to the legacy subpass context
avformat/mov: add an offset to IAMF streams
avformat/mov: check for tts_count before deferencing tts_data
avdevice/alsa: simplify passing ff_alsa_open a channel layout
avcodec/libtheora: fix setting keyframe_mask
avcodec/ac3dec: move some fields up in AC3DecodeContext
avcodec/ac3dec: add a flush callback for the ac3 and eac3 decoders
avcodec/version: bump micro after the previous change
avcodec/hevc_mp4toannexb: prepend extradata before the leading PS for an IRAP
fftools/ffmpeg: use an int for nb_threads
avcodec/codec_internal: remove unnecessary avcodec.h include
avformat/mov: further ensure mov_build_index isn't run twice
avformat/oggenc: don't discard empty packets with no side data
avformat/demux: don't discard empty Theora packets
avformat/iamf_parse: add missing constrains for num_parameters in audio_element_oub()
avformat/iamf_parse: ensure there's at most one of each parameter types in audio elements
fate/demux: add a test for Theora in OGG
fftools/ffmpeg_dec: don't try to copy side data from the decoder if it already exists in the output frame
avutil/frame: move side data helpers to a new file
avcodec/decode: inject missing global side data to output frames
fftools/ffmpeg_dec: remove side data copy block
fftools/ffmpeg_filter: also remove display matrix side data from buffered frames
avformat/mov: fix overflow in corrected_dts calculation
avcodec/exr: use the correct step value for plane pointers
avfilter/vsrc_testsrc: add support for semi planar formats to yuvtestsrc
avutil/pixfmt: add YAF16 and YAF32 pixel formats
swscale/input: add support for YAF16 and YAF32
avcodec/exr: use luma+alpha float pixel formats
swscale/input: add support for UYYVYY411
tests/fate/pixfmt: add conversion tests with semi planar YUV formats
avfilter/vsrc_testsrc: use aligned macros for writing
swscale/swscale_unscaled: account for semi planar formats with data in the msb
swscale/swscale_unscaled: make the fast planar copy path work with more formats
avcodec/ffv1dec: set the FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM capability
avcodec/d3d12va_encode: use the correct specifier to log size_t values
avcodec/exrdec: restore applying color transfer characteristics for float16 samples
avutil: only duplicate hal2float and float2half in shared builds
swscale/input: add support for NV20
swscale/output: add support for NV20
avutil/tests/pixfmt_best: add more semi planar format tests
avfilter/vf_zscale: add support for half precision float RGB formats
avfilter/vf_zscale: add support for grayscale formats
fftools/ffmpeg_filter: ensure ifp is set before dereferencing it
avcodec/ffv1enc: reduce stack usage
avcodec/ffv1enc: update missing Unit accesses inside av_assert2
avcodec/ffv1enc: remove mixed declarations and code
avcodec/cbs_av1: also store a pointer to the start of the tile group data
avcodec/cbs: allow fine tunning selection of features
avformat/movenccenc: add support for CENC AV1 encryption
avcodec: remove deprecated FF_API_SUBFRAMES
avcodec: remove deprecated FF_API_TICKS_PER_FRAME
avcodec: remove deprecated FF_API_DROPCHANGED
avcodec: remove deprecated FF_API_AVFFT
avcodec: remove deprecated FF_API_FF_PROFILE_LEVEL
avcodec: remove deprecated FF_API_AVCODEC_CLOSE
avcodec: remove deprecated FF_API_BUFFER_MIN_SIZE
avcodec: remove deprecated FF_API_VDPAU_ALLOC_GET_SET
avcodec: remove deprecated FF_API_QUALITY_FACTOR
avcodec/version_major: postpone some deprecations until the next bump
avdevice: remove deprecated FF_API_BKTR_DEVICE
avdevice: remove deprecated FF_API_OPENGL_DEVICE
avdevice: remove deprecated FF_API_SDL2_DEVICE
avdevice/version_major: postpone some deprecations until the next bump
avformat: remove deprecated FF_API_LAVF_SHORTEST
avformat: remove deprecated FF_API_ALLOW_FLUSH
avformat: remove deprecated FF_API_AVSTREAM_SIDE_DATA
avformat: remove deprecated FF_API_GET_DUR_ESTIMATE_METHOD
avformat/version_major: postpone some deprecations until the next bump
avfilter: remove deprecated FF_API_LINK_PUBLIC
avfilter/version_major: postpone some deprecations until the next bump
avutil: remove deprecated FF_API_HDR_VIVID_THREE_SPLINE
avutil: remove deprecated FF_API_FRAME_PKT
avutil: remove deprecated FF_API_INTERLACED_FRAME
avutil: remove deprecated FF_API_FRAME_KEY
avutil: remove deprecated FF_API_PALETTE_HAS_CHANGED
avutil: remove deprecated FF_API_VULKAN_CONTIGUOUS_MEMORY
avutil: remove deprecated FF_API_H274_FILM_GRAIN_VCS
avutil/version_major: postpone some deprecations until the next bump
libs: bump major version for all libraries
avcodec/exr: deprecate gamma and apply_trc options
avfilter/vsrc_testsrc: also fill alpha planes with a test pattern in {rgb,yuv}testsrc
tests/filter-video: add yuvtestsrc tests for yuva444p
tests/filter-video: add rgbtestsrc tests for gbrap
avcodec: remove remaining references to avcodec_close()
avutil/tests/aes_ctr: test more than a single block worth of data
avutil/tests/aes_ctr: also check the encrypted buffer
avutil/tests/aes_ctr: reindent after the previous commit
avutil/tests/aes_ctr: also randomize the encryption key
avutil/aes_ctr: simplify and optimize av_aes_ctr_crypt()
avutil/aes_ctr: simplify incrementing the counter
avutil/x86/aes: ignore the upper bits in count
avutil/dict: fix memleak in av_dict_set()
avutil/aes: use pthread_once to fill the static tables
avutil/x86/aes: remove a few branches
tests/fate/checkasm: add the aes test
avutil/hwcontext_vulkan: check if expect_assume is supported by the header
avutil/hwcontext_vulkan: use the typedef'd name for the expect_assume struct
avformat/takdec.c: return proper error codes for avio_read() failures
avcodec/h264_slice: insert LCEVC side data before get_buffer() call
avcodec/x86/constants: add pd_64
avcodec/cbs_apv: don't return an error when reading empty buffers
avformat/av1dec: fix setting AVPacket->pos in Annex-B demuxer
avcodec: add an APV parser
avformat/apvdec: don't fill container level fields with codec level info
avcodec/cbs: add an AVBufferRef input argument to ff_cbs_read()
avcodec/apv_parser: use an AVBufferRef to avoid data copying
avcodec/exr: add support for half-float DWAA/B compression
avformat/apvdec: also look for an au_info PBU during probing
avcodec/hevc/hevcdec: ensure a bit was read when checking for alignment_bit_equal_to_one
avcodec/hevc/hevcdec: move the slice header buffer overread check up in the function
avcodec/apv_decode: build the lut table only once
tests/fate/cbs: add tests for APV
avcodec/liboapvenc: remove 4:4:4 support until it's properly handled
avcodec/exr: reindent after the previous change
avformat/iamf_parse: increase PutBytes buffer when writing AAC extradata
doc: add htmlxref.cnf
tests/fate/pixfmt: fix definition of 16bit tests
avcodec/lcevcdec: don't try to write to output frames directly
tests/fate/ac3: add a second ac3_fixed encoder test
fftools/ffmpeg_filter: make FilterGraphPriv private again
fftools/ffmpeg_filter: make InputFilterPriv and OutputFilterPriv private again
avformat/movenc: fix writing reserved bits in EC3SpecificBox
avutil/x86/intmath: remove inline asm implementations for clip functions
avcodec/ac3_parser: use a padded buffer in av_ac3_parse_header()
avcodec/ac3_parser: handle more header bits in ff_ac3_parse_header()
avformat/mov: set array entry count after the array is allocated in heif_add_stream()
avfilter/x86/f_ebur128: replace AVX2 instruction with AVX equivalent
avformat/mov: add more sanity checks when reading clap boxes
avcodec/mss2dsp: use FF_PTR_ADD to add offsets to a pointer
avformat/iamf_parse: prevent overreads in update_extradata
avformat/iamf_writer: ensure each layer's channel layout contains all channels from the previous one
avformat/iamf_parse: try to retype the channel layout for ambisonics_mode == 0
tests/iamf: reorder muxed streams
tests/iamf: rename BACK to SIDE filterchain labels in the 5.1.4 iamf tests
avformat/iamf: fix setting channel layout for Scalable layers
avformat/iamf_writer: factor out getting loudspeaker_layout values
avformat/iamf_writer: add extra constrains for Parameter Sets in Audio Elements
avformat/iamf_writer: reindent after previous commit
avformat/iamf_writer: use named constants in more places
avformat/iamf_writer: fix layout checks when demixing_info is not present
avformat/iamfdec: remove unused variables after recent changes
avformat/iamf_parser: remove unreachable code
avutil: add an API to handle 3D Reference Displays Information
avutil/frame: add a 3D Reference Displays Information side data type
avcodec/packet: add a 3D Reference Displays Information side data type
avformat/dump: add support for 3D Reference Displays Information side data
avfilter/vf_showinfo: add support for 3D Reference Displays Information side data
avcodec/hevc/hevcdec: export 3D Reference Displays side data
doc/APIchanges: add missing entries for the recent changes
fftools/ffmpeg_demux: don't flag timestamps as unreliable if they are generated
avformat/tls_schannel: add check for Windows 10 only types and defines
avcodec/ffv1dec: don't add offsets to NULL pointers
avfilter/x86/vf_blackdetect: don't use rax to return a 32bit integer
avfilter/x86/vf_blackdetect_init: don't enable the ASM functions on targets where it's known they will be slower
swscale/swscale_unscaled: don't add offsets to NULL pointers
avcodec/motion_est: don't add offsets to NULL pointers
fate/lavf-container: add test for APV in MP4
avformat/mov: don't assume iloc and iinf entries for each item_id will be in the same order
avfilter/x86/vf_blackdetect: add missing preprocessor check
tests/fate/mov: add a test for HEIF files with multiple thumbnails
avformat/hevc: don't print parameter_set_id for SEI NALUs
swscale/swscale_unscaled: don't add offsets to more NULL pointers
avfilter/vf_curves: don't add offsets to NULL pointers
avformat/apv: use memset to zero initialize frame_info
avfilter/x86/vf_colordetect: fix use of AVX512 instruction in AVX2 function on non Unix64 targets
avfilter/x86/vf_colordetect: don't use rax to return a 32bit integer
avfilter/x86/vf_colordetect_init: don't enable ASM functions on targets where it's known they will be slower
avfilter/version: bump version after vf_colordetect addition
Changelog: add entry for vf_colorfilter addition
avfilter/x86/vf_colordetect: make the AVX512 functions run only on ICL targets or newer
avfilter/x86/vf_colordetect: add missing preprocessor checks
avcodec/ffv1dec: don't add offsets to more NULL pointers
avformat/hevc: don't print parameter_set_id for any NALU
avfilter/f_metadata: use the return value of vsnprintf() to write the argument list
avcodec/cbs_apv: add missing READ/WRITE preprocessor checks
avutil/xga_font_data: add getters to access the shared arrays
avcodec: use the getters for xGA font data arrays
avfilter: use the getters for xGA font data arrays
avcodec/ffv1dec: don't check chroma_planes for f->colorspace > 0
avcodec/opus/silk: don't assume stereo when calling silk_decode_frame()
avfilter/af_channelmap: always set out_channel in the map
avformat/mov: export the correct initial extratada from samples with multiple stsd
avformat/movenc: allow storing more than one extradata buffer per track
avformat/movenc: support writing more than one STSD entry per track
tests/fate/mov: add a test muxing multiple stsd entries
avformat/movenc: look for the Intra profile flag before assuming a stream is AVC-Intra
avformat/mov: add extra sanity checks before setting the primary extradata
avformat/mov: free AVBPrint on error when parsing infe boxes
avformat/mov: free streams earlier on error when parsing infe boxes
avformat/mov: don't set stsc_count for item streams before the array is allocated
avformat/mov: move AVC-Intra extradata generation to earlier in the stsd parsing process
avformat/mov: item names can be NULL in infe boxes
avfilter/x86/vf_bwdif: use the correct preprocessor check
forgejo/CODEOWNERS: add myself for iamf
forgejo/CODEOWNERS: add missing handle to new entries
avformat/iff: fix EOF check
avformat/mov: set primary extradata based on the first Sample only if it's not already in place
avcodec/vulkan_encode_av1: remove unused variables
avcodec/vulkan_encode_av1: use size_t specifier in an av_log() call
avutil/hwcontext_vulkan: use uint64_t specifier in an av_log() call
avcodec/cbs_apv: store derived tile information in a per frame basis
avformat/mov: don't use an allocated array for sample_size with HEIF images
Jan Ekström (2):
avcodec/videotoolbox: add AV1 hardware acceleration
avformat/id3v2: add image/webp for WebP attached pictures
Janne Grunau (3):
aarch64: vp9mc: Load only 12 pixels in the 4 pixel wide horizontal filter
arm: vp9mc: Load only 12 pixels in the 4 pixel wide horizontal filter
vp9: recon: Use emulated edge to prevent buffer overflows
Jerome Martinez (2):
avcodec/ffv1enc: permit 1024 slices
avcodec/ffv1enc: avoid repeating the same warning forever
Jiasheng Jiang (12):
libavcodec/alsdec.c: Add check for av_malloc_array() and av_calloc()
fftools/cmdutils: Add av_freep() to avoid memory leak
avcodec/tests/avpacket: Add av_free() to avoid memory leak
avcodec/tests/avpacket: Add av_packet_free() to avoid memory leak
examples: Add av_freep to avoid potential memory leak
libavcodec/tests/motion: Add check for avcodec_alloc_context3()
libavcodec/videotoolbox_vp9: Move av_malloc() to avoid memory leak
examples: Add proper deallocations to avoid potential memory leaks
libavfilter/af_firequalizer: Add check for av_malloc_array()
libavcodec/tests/snowenc: Add av_free() to avoid memory leak
examples: Add check and replace av_free() to avoid potential memory errors
libavfilter/dnn/dnn_backend_tf: Remove redundant av_freep() to avoid double free
Jiawei (1):
configure: don't disable '-ftree-vectorize' on GCC >= 13 on major architectures
Joe Schiffler (1):
configure: Include quotes around pkg_version
Jonathan Baecker (4):
avformat/hlsenc: Fix missing EXT-X-DISCONTINUITY tag in subtitle streams
avformat/hlsenc: Respect `append_list` flag in subtitle
avformat/hlsenc: Respect `omit_endlist` flag in subtitle playlists
libavformat/hlsplaylist: add subtitle_varname for naming subtitle streams
Jonathan Baudanza (2):
avformat/rtpdec: int overflow in start_time_realtime
libavformat/rtpdec_opus: Set duration field on Opus AVPacket
Jonathan Murray (2):
libavcodec/wmadec: Return AVERROR_INVALIDDATA on decoding errors
rtmp: Set correct message stream id when writing as server
Jorge Estrada (2):
avfilter: add pad_cuda filter
avfilter/overlay_cuda: add timeline editing support
Jun Zhao (5):
ffbuild/bin2c: misc fix
lavc/ac3dsp: fix R-V HAVE_RVV scope issue
doc/ffmpeg: document videotoolbox in -hwaccel option
fftools/cmdutils: fix error message for "ffmpeg -init_hw_device list"
avutil/hwcontext_videotoolbox: fix color primaries check
Justin Ruggles (1):
avformat/dhav: fix backward scanning for get_duration and optimize seeking
Kacper Michajłow (89):
avcodec/jpegxl_parser: check entropy_decoder_read_symbol return value
avfilter/af_ashowinfo: fix scaling factor of replaygain peak values
avutil/file: fix av_file_map file mapping on Windows
avformat/vqf: fix memory leak in add_metadata()
avformat/mov: fix eof check in mov_read_iinf()
avutil/hwcontext_amf: fix crash on uninit after init failed
tools/target_swr_fuzzer: fix memory leak on av_samples_fill_arrays() error
avcodec/libaribb24: change new lines to \n in ASS header
avcodec/libaribcaption: change new lines to \n in ASS header
avcodec/libzvbi-teletextdec: change new lines to \n in ASS header
avformat/imfdec: inherit opaque from parent AVFormatContext
avformat/demux: use io_close2 when closing avfromat
tools/target_dec_fuzzer: suppress Wunused-function
tools/target_dem_fuzzer: make fuzz data pointer constant
tools/target_dem_fuzzer: remove unused fuzz_tag
avutil/intmath: use AV_HAS_BUILTIN to detect builtin availability
avformat/internal: add missing __clang__ check
configure: fix Microsoft tools detection
avcodec/opus: don't materialize buf pointer from null
fftools/cmdutils: don't try to load arguments from file if not needed
avformat/scd: ensure SCD_MIN_HEADER_SIZE bytes are read
MAINTAINERS: add myself
checkasm/swscale: fix function prototypes
configure: add -Wl when linker is called indirectly
configure: allow multiple sanitizers in --toolchain
configure: add -fno-omit-frame-pointer when sanitizers are used
configure: allow -ubsan in toolchain
configure: add -fuzz support to --toolchain
configure: remove ossfuzz sanitizer flags
avcodec/sonic: remove dead code
avcodec/sonic: move code closer to use to avoid unused warnings
avfilter/vaf_spectrumsynth: don't use uninitialized variable as scale
avutil/avstring: shrink allocation from av_get_token to fit token
avutil/hmac: avoid calling functions through pointer of invalid type
avformat/udp: avoid warning about always false comparison
swscale/lut3d: remove unused function
configure: suppress Wmicrosoft-enum-forward-reference
avformat/options_table: supress implicit conversion warnings
avformat/os_support: check invalid socket value correctly on Windows
avformat/vivo: fix sscanf specifer for double
avcodec/d3d12va_decode: remove unused variable
avcodec/d3d12va_encode: use correct none flag
avcodec/d3d12va_encode: don't write garbage when there is no header
avcodec/d3d12va_encode: don't return uninitialized value on error
avcodec/d3d12va_encode_hevc: remove unused variable
avcodec/x86/fdct: guard usage of undefined functions with preprocessor
avcodec/x86/vc1: guard usage of undefined functions with preprocessor
avformat/rtmpproto: guard usage of undefined functions with preprocessor
avformat/subfile: clip seek offset
avcodec/hevc/hevcdec: handle rpu_buf allocation failure correctly
avcodec/dovi_rpudec: parse RPU forward, don't try to find end
avcodec/dovi_rpudec: skip unknown ext blocks instead of erroring out
Revert "avformat/tls_openssl: properly get new BIO index"
forgejo/workflows: enable gpl, nonfree and memory poisoning
avcodec/ffv1: align function declaration with definition
avcodec/amfenc: remove unused variables
avutil/hwcontext_qsv: fix format specifier for HRESULT
avcodec/srtenc: don't produce SRT files with mixed line endings
forgejo/lint_commit_msg: add script for commit message linting
forgejo/workflows: run fate with assert level 2
avformat/lrcdec: support arbitrary precision timestamp
tests/fate/subtitles: add test for LRC with milliseconds timestamp
avformat/lrcenc: add precision option
tests/fate/subtitles: add test for LRC with ms -> ms conversion
forgejo/workflows: sort file list for cache hash
avformat/ffmetadec: don't compare undefined string
avcodec/dsicinaudio: set missing sample rate
avcodec/evrcdec: set missing sample rate
avcodec/qcelpdec: set missing sample rate
avcodec/qcelpdec: set missing sample rate
tools/target_fuzzer: don't spam stderr
configure: don't use dangling temp file state
configure: filter link flags separately for MSVC
configure: treat unrecognized flags as errors on MSVC
avcodec/vvc/ctu: check coeff before multiply
avcodec/cbs_h266_syntax_template: fix out of bounds access
avcodec/mpc8: init avctx->sample_rate
avutil/tx: zero whole array, not only one element
avformat/hls: fix handle_init_section_args callback type
avutil/avassert: use __builtin_assume if available
avcodec/Makefile: add missing dependency for prores raw decoder
avcodec/Makefile: add missing dependency for prores raw decoder (again)
avformat/mov: clear old name from infe
avformat/lrcdec: limit input timestamp range to avoid overflows
avcodec/g726: init missing sample rate
avcodec/libvorbisdec: avoid overflow when assinging sample rate from long to int
avcodec/d3d12va_encode: fix label followed by a declaration warning
avformat/tls_openssl: use ascii - (0x2D) instead of 0x2010 hyphen
avcodec/vulkan_encode_av1: use CODEC_PIXFMTS to define pix_fmts
Ken McGaugh (1):
avformat/mov: allowing custom udta atoms to pass through their values correctly when export_all option specified.
Kieran Kunhya (1):
checkasm/v210enc.c: Use checkasm_check()
Kimapr (1):
avformat/libopenmpt: fix seeking weirdness
Koushik Dutta (5):
avfilter/scale_cuda: frame crop support
avfilter/scale_vt: implement negative width/height aspect ratio sizing
avfilter/scale_vt: implement frame crop
avfilter/scale_vulkan: add dynamic crop region and aspect ratio match
avformat/rtpenc: Add flag AVFMT_NODIMENSIONS.
Krzysztof Pyrkosz (11):
avcodec/aarch64/aacencdsp: NEON implementation
swscale/aarch64/output.S: refactor ff_yuv2plane1_8_neon
swscale/aarch64/rgb2rgb: Implemented NEON shuf routines
avcodec/aarch64/opusdsp_neon: Simplify opus_postfilter_neon
swscale/aarch64/rgb24toyv12: skip early right shift by 2
swscale/aarch64/rgb2rgb_neon: Implemented {yuyv, uyvy}toyuv{420, 422}
swscale/aarch64: Refactor hscale_16_to_15__fs_4
avcodec/aarch64/ac3dsp_neon.S: Optimize ac3_sum_square_butterfly_int32_neon
swscale/aarch64: dotprod implementation of rgba32_to_Y
avcodec/aarch64/vvc: Optimize NEON version of vvc_dmvr
avcodec/aarch64/vvc: Optimize vvc_avg{8, 10, 12}
Krzysztof Pyrkosz via ffmpeg-devel (1):
avutil/aarch64/tx_float_neon.S: clean up FFT4_X2
Kyosuke Kawakami (5):
checkasm/diracdsp: test add_dirac_obmc
avcodec/x86/diracdsp: fix wrong register load/use count
avcodec/x86/diracdsp: cast stride argument
avcodec/x86/diracdsp: migrate last remaining MMX function to SSE2
avcodec/x86/diracdsp_init: remove unused macro
Leandro Santiago (5):
fftools/ffplay: fix crash when vk renderer is null
lavfi/vf_drawtext: fix memory management when destroying font face
avfilter/vf_dnn_detect: fix loading anchors when labels file is set
avfilter/dnn: do not manually parse anchors filter option
avfilter/dnn_detect: fail on filter if mandatory anchor option is missing
Leo Izen (13):
avcodec/jpegxl_parser: fix reading lz77-pair as initial entropy symbol
MAINTAINERS: list csp.c and csp.h maintainers
avcodec/png{dec,enc}: update mDCV and cLLI chunk capitalization
avcodec/libjxl: add animated JPEG XL encoder
avformat/jpegxl_anim_dec: use new animated JPEG XL codec ID
avutil/frame.h: improve documentation for AV_FRAME_FLAG_LOSSLESS
avutil/frame: check return value for cropping offsets
avcodec/jpegxl_parse{,r}: fix integer overflow for some malformed files
avcodec/pngdec: avoid hard failure on illegal sBIT chunks
avcodec/libjxlenc: prevent color encoding from being set twice
configure: rename POSIX ioctl check
avcodec/jpegxl_parser: add sanity check for frame size
avcodec/vp9: fix leaked cbs fragment AVBufferRef
Leon Grutters (4):
avcodec/webvttdec: update documentation
avformat/webvttdec,webvttenc: update documentation
avcodec/webvttdec: strip classes
doc/community.texi: fix spelling error
Lidong Yan (8):
avformat/rtmpproto: fix rmtp packet leak in gen_connect()
avformat/sbgdec: fix leak in sbg_read_header()
avcodec/vorbisenc: fix leak if av_mallocz failed
avfilter/vf_lut3d: fix leak if allocate_3dlut failed
avformat/rtpdec_latm: fix leak in parse_fmtp_config()
avcodec/sunrast: fix leak in sunrast_decode_frame()
avformat/rtpdec_asf: fix leak in ff_wms_parse_sdp_a_line()
avfilter/asrc_sinc: fix leak in config_input()
Lingyi Kong (1):
avcodec/h264: fix stride calculation in slice_table for multi-slice field video deblocking
Link Mauve (2):
tools: Fix deprecation warning in patcheck
avutil/hwcontext_vulkan: Query the correct format
Lynne (270):
vulkan_encode_h264: fix rate control VBV values
vulkan_encode_h265: fix rate control VBV values
vulkan: merge FFVkSPIRVShader and FFVkPipeline into FFVkShader
vulkan: move shader data execution state to execution pools
vulkan: use shader objects if supported
vulkan: check if current buffer has finished execution before picking another
vulkan: always enable GL_EXT_scalar_block_layout
vulkan_functions: change extension type to a typedef uint64_t
hwcontext_vulkan: enable VK_KHR_shader_relaxed_extended_instruction
hwcontext_vulkan: move device feature struct setup to a new function
vulkan: parse instance list and add the DEBUG_UTILS extension
lavfi/*vulkan: forward FFVulkanContext to SPIR-V compilers
vulkan_glslang: add more stages, target Vulkan 1.3 and output debug info
vulkan_shaderc: add more stages, target Vulkan 1.3 and only output debug if needed
vulkan: don't enable GL_EXT_buffer_reference by default
vulkan: add profiling debug setting
hwcontext_vulkan: guard all uses of new spec defines and fix stray bracket
lavfi/vulkan: remove redundant header
lavc/vulkan: remove redundant header
vulkan: move SPIR-V compilation code to libavutil
lavc/vulkan: add SPIR-V compilation support
vulkan_encode: do not align DPB buffer size
libavfilter/Makefile: fix tag for Vulkan .comp files
bwdif_vulkan: split off main shader code as a separate file
nlmeans_vulkan: remove unused forward declaration
configure: drop yasm support
Revert "x86/tx_float: change a condition in a preprocessor check"
Revert "x86/tx_float: add missing preprocessor wrapper for AVX2 functions"
Revert "x86/tx_float: add missing check for AVX2"
Revert "x86/tx_float: set all operands for shufps"
x86/tx_float: remove HAVE_AVX2_EXTERNAL checks
x86/lpc: remove HAVE_AVX2_EXTERNAL checks
lavu/vulkan_spirv: use correct inclusion guards
vulkan: always enable GL_EXT_shader_explicit_arithmetic_types
vulkan: always enable GL_EXT_control_flow_attributes
configure: add spirv_compiler to avfilter_suggest as well
configure: explicitly disable spirv_compiler
vulkan: add a #define when printf debugging is enabled
hwcontext_vulkan: remove redundant hostQueryReset setting
hwcontext_vulkan: set hwctx->device_features
vulkan: fix ImageView flexible array struct allocation
vulkan: extend ff_vk_shader_rep_fmt to be useful for bitexactness
vulkan: use correct signed image type for storage images
hwcontext_vulkan: add support for AV_PIX_FMT_RGBAF32
hwcontext_vulkan: add support for AV_PIX_FMT_RGBF32
hwcontext_vulkan: enable shaderBufferInt64Atomics if supported
vulkan: fix layout qualifiers for 32-bit RGBA float storage reps
lavu/pixfmt: add AV_PIX_FMT_RGBA128
lavu/pixfmt: add AV_PIX_FMT_RGB96
lavu: bump minor and add APIChanges entries for new 32bpc pixfmts
vulkan: add support for AV_PIX_FMT_RGBA128
vulkan: add support for AV_PIX_FMT_RGB96
libavcodec/Makefile: add a makefile for Vulkan shaders
libavfilter/Makefile: add a makefile for Vulkan shaders
vulkan: keep track of mapped memory in the buffer structure
hwcontext_vulkan: always enable MUTABLE creation flag
vulkan: enable selecting a compatible representation of format
vulkan: do not create imageviews with video encode/decode usage
vulkan: move buffer allocation av_log message
vulkan: move alignment of host-visible allocations outside of ff_vk_alloc_mem
hwcontext_vulkan: fix planar RGB images
vulkan: add support for 10-bit planar RGB
vulkan: fix printing descriptors to shader for shaders with no descriptors
vulkan: retrieve Vulkan 1.1 properties
vulkan: add ff_vk_exec_add_dep_sw_frame
hwcontext_vulkan: add the mapped software frame as an upload dependency
.gitignore: add exclusions for shader .c files
ffv1enc: split off encoder initialization into a separate function
ffv1enc: expose ff_ffv1_write_extradata
ffv1enc: move plane info init into a separate function
ffv1enc: move slice allocation out of generic encode init
ffv1enc: add a Vulkan encoder
lavc: bump minor version for FFv1 Vulkan encoder
ffv1enc_vulkan: restrict number of execution contexts to 1
ffv1enc_vulkan: support buffers larger than 4GiB
ffv1enc_vulkan: fix PCM encoding
ffv1enc_vulkan: increase max outstanding byte count to 16bit
lavc/vulkan/common: fix reverse4's incorrect swizzle
vulkan: fix sw_frame_deps counter
hwcontext_vulkan: add support for AV_PIX_FMT_GRAY10/12/14
hwcontext_vulkan: add support for AV_PIX_FMT_GBRP12/14/16
hwcontext_vulkan: add support for AV_PIX_FMT_GBRAP10/12/14
hwcontext_vulkan: require storage properties to claim formats as supported
hwcontext_vulkan: take disable_multiplane into account when checking for formats
vulkan: add opaque field to execution contexts
vulkan: only apply shortcut for next context selection if selection has a submission
vulkan: zero out AVBufferRef in case of failure
vulkan: only wait for fences on uninit if the context had a submission
ffv1enc_vulkan: remove arbitrary limitation of the number of slices
ffv1enc_vulkan: switch to receive_packet
ffv1enc: expose ff_ffv1_encode_buffer_size
ffv1enc_vulkan: limit parallelism based on VRAM, fallback to host memory
vulkan_decode: fix counting for parallelism
vulkan_decode: ensure there's at least one context per decode thread
vulkan: fix use of atomics for the current context index
hwcontext_vulkan: do not enable portability subset by default
hwcontext_vulkan: disable validation layer threading warnings
vulkan_decode: use a single execution pool
vulkan: remove pointless mutex locks
vulkan: do not reinvent a queue context struct
vulkan_decode: add queue_flags field to specify queue used
configure: add option to statically link to libvulkan
configure: update copyright year
hwcontext_vulkan: add VK_EXT_layer_settings to optional instance extensions
ffv1enc_vulkan: allow setting the number of slices via -slices
vulkan_decode: remove informative queries
hwcontext_vulkan: check if semaphores are exportable before enabling exporting
vulkan: enable using .elems field for buffer content definitions
ffv1dec: use dedicated pix_fmt field and call ff_get_format
ffv1dec: move slice start finding into a function
ffv1dec: move header parsing into a separate function
ffv1dec: move slice decoding into a separate function
ffv1dec: fix threaded decode failures
vulkan: fix crash in ff_vk_shader_free
vulkan_filter: use GENERAL image layout when no sampler is given
bwdif_vulkan: convert to storage images
avgblur_vulkan: port to imageLoad()
avgblur_vulkan: fix duplicated variable error when planes=0
nlmeans_vulkan: switch to imageLoad()
flip_vulkan: port to imageLoad()
gblur_vulkan: port to imageLoad()
transpose_vulkan: port to imageLoad()
blend_vulkan: port to imageLoad()
overlay_vulkan: port to imageLoad()
ffv1dec: set f->state_transition for default range coder table
ffv1enc_vulkan: support default range coder tables
vulkan: don't query video queue properties unless the extension is enabled
overlay_vulkan: remove unused variable
lavc/vulkan: add a u8vec2buf buffer type
vulkan: add .buf_elems to FFVulkanDescriptorSet
gblur_vulkan: simplify buffer content writing
aacenc: remove support for AAC Main profile
aacenc: remove support for AAC LTP profile
aacenc: remove ANMR coder
hwcontext_vulkan: enable read/write without storage
ffv1enc_vulkan: disable autodetection of async_depth
pixfmt: add AV_PIX_FMT_GRAY32
vulkan: add support for AV_PIX_FMT_GRAY32
fate-imgutils: update reference for new pixel formats
fate-sws-pixdesc-query: update ref for new pixfmts
APIChanges: add entries for new planar GBR and float gray pixfmts
APIChanges: add entry for new AMD AMF pixfmt
lavu: bump minor and add APIChanges entry for new GRAY32 pixfmts
vulkan: take refs of frames using the regular buffer ref path
hwcontext_vulkan: add support for mapping multiplane images into CUDA
pixfmt: add AV_PIX_FMT_GBRAP32
vulkan: rename ff_vk_set_descriptor_image to ff_vk_shader_update_img
vulkan: add ff_vk_create_imageview
vulkan: copy host-mapping buffer code from hwcontext
hwcontext_vulkan: fix downloads; use the common host map function to map frame data
hwcontext_vulkan: allow using concurrent access images with more than 5 queues
vulkan: workaround BGR storage image undefined behaviour
vulkan_decode: support software-defined decoders
vulkan_decode: support multiple image views
vulkan_decode: adjust number of async contexts created
hwcontext_vulkan: enable VK_KHR_video_maintenance2
vulkan_decode: use VK_KHR_video_maintenance2 if available
vulkan_av1: use VK_KHR_video_maintenance2 if available
vulkan_h264: use VK_KHR_video_maintenance2 if available
vulkan_hevc: use VK_KHR_video_maintenance2 if available
av1dec: update hwaccel decode_params on AV1_OBU_SEQUENCE_HEADER
ffv1enc_vulkan: refactor code to support sharing with decoder
ffv1enc_vulkan: clip micro_version to 3 for level 4
vulkan: unify handling of BGR and simplify ffv1_rct
vulkan: add ff_vk_exec_add_dep_wait_sem()
vulkan: add support for AV_PIX_FMT_GBRAP32
ffv1dec: add support for hwaccels
FFHWAccel: add buffer_ref argument to start_frame
ffv1: add a Vulkan-based decoder
lavu/vulkan: skip adding NULL buffers as deps in ff_vk_exec_add_dep_buf
vulkan_decode: allow using NULL sequence_params when decoding
vulkan_decode: allow using NULL offsets/nb_slices in ff_vk_decode_add_slice()
vulkan_loader: remap video_maintenance2 in ff_vk_extensions_to_mask
vulkan_functions: add note to update ff_vk_extensions_to_mask
vulkan: fix logging level when erroring upon creating shader module
vulkan_shaderc/glslang: print full shaders on TRACE rather than VERBOSE
vulkan: remove unused field from exec pools
vulkan_decode: only create sequence params in end_frame
hwcontext_vulkan: disable descriptor buffer extension on Intel
vulkan_ffv1: enable acceleration on Intel
vulkan_ffv1: remove unused define
vulkan_ffv1: slightly optimize the range decoder
vulkan_ffv1: optimize symbol reader
vulkan_ffv1: allocate just as much memory for slice state as needed
vulkan_ffv1: init overread/corrupt fields
vulkan_ffv1: fallback to upload if mapping packet fails, fix fallback
vulkan_ffv1: fix reset shader dependencies
vulkan_ffv1: improve buffer barrier correctness for slice state
vulkan_ffv1: fix left-2 sample addressing
vulkan_ffv1: cache only 2 lines when decoding RGB
ffv1/vulkan: redo context count tracking and quant_table_idx management
vulkan_ffv1: externalize extended lookup check
vulkan_ffv1: remove need for scratch data during setup
vulkan_ffv1: shortcut +-1 coeffs in symbol reading
vulkan: add support for expect/assume
vulkan_ffv1: add cached symbol reader for AMD
vulkan/rangecoder: minor cleanup
vulkan: use a single command buffer per command buffer pool
vulkan: always enable ReadWithoutFormat/WriteWithoutFormat
vulkan_decode: add STORAGE flag to output images
vulkan: drop bgr_workaround
vulkan: move feature<->usage mapping code outside of hwcontext_vulkan.c
vulkan: check that the max number of push descriptors is not exceeded
vulkan: move OPT_CHAIN out of hwcontext_vulkan
hwcontext_vulkan: enable subgroupSizeControl
vulkan: use _KHR suffix for push descriptor properties struct ID
aacdec_usac: correct Mps212 parsing location
hwcontext_vulkan: support AV_PIX_FMT_GBRP
ffv1enc_vulkan: support 8 and 16-bit 2-plane YUV formats
ffv1enc_vulkan: merge all encoder variants into one file
vulkan/ffv1: synchronize get_pred implementations between encoder and decoder
ffv1enc_vulkan: get rid of temporary data for the setup shader
ffv1enc_vulkan: unify EC code between setup and encode
ffv1enc_vulkan: minor EC optimizations
ffv1enc_vulkan: switch to 2-line cache, unify prediction code
ffv1_common: minor RGB optimization
ffv1enc_vulkan: use ff_get_encode_buffer
vulkan_ffv1: fix PCM + cached symbol reader
ffv1enc_vulkan: implement the cached EC writer from the decoder
ffv1enc_vulkan: implement RCT search for level >= 4
vulkan/ffv1: unify encode and decode get/put primitives
vulkan_ffv1: pipe through slice decoding status
vulkan: enable VK_KHR_shader_subgroup_rotate
hwcontext_vulkan: correct image transfer usage flags
hwcontext_vulkan: only try exporting DMABUF memory on !WIN32 and only for DMABUF tiling
hwcontext_vulkan: fix build with old Vulkan header versions
vulkan/ffv1: fix sync issue in cached bitstream reader/writer
aacdec_ac: fix signed overflow in ff_aac_ac_update_context()
vulkan_ffv1: small cleanup for golomb
vulkan_ffv1: fix golomb coding for non-RGB streams
ffv1enc_vulkan: allow slicecrc=2
ffv1enc: do not hardcode 1024 slices
hwcontext_vulkan: do not use optical flow queueus by default
hwcontext_vulkan: minimize queue allocation on NVIDIA
hwcontext_vulkan: add a setting to limit queues
hwcontext_vulkan: use host image copy
hwcontext_vulkan: fix image copy
vulkan: maintain compatibility with older headers
vulkan: maintain compatibility with old headers
hwcontext_vulkan: move ReBAR check into a new function and use it later
hwcontext_vulkan: add workaround for broken Nvidia drivers
hwcontext_vulkan: fix 85c0364b703
hwcontext_vulkan: fix issues with importing a device
aacenc_tns: clamp filter direction energy measurement
forgejo/CODEOWNERS: add a CODEOWNERS file to automatically add reviewers
forgejo/CODEOWNERS: fix alphabetical order
vf_libplacebo: add support for specifying a LUT for the input
hwcontext_vulkan: temporarily disable host_image_copy
hwcontext_vulkan: enable uniformBufferStandardLayout
lavc/vulkan/common: sign-ify lengths
vulkan: add support for 16-bit RGGB Bayer pixfmt
scale_vulkan: refactor shader initialization
scale_vulkan: add support for basic Debayering
lavc: add codec ID and profiles for ProRes RAW
lavc: add a ProRes RAW parser
lavc: bump minor version and add APIChanges entry for ProRes RAW
lavc/vp9dec: use cbs_vp9 to parse the frame header
vp9: add Vulkan VP9 hwaccel
lavc: add an av1_vulkan encoder
proresdsp: add idct_put_bayer
lavc: add a ProRes RAW decoder
lavc: add a ProRes RAW Vulkan hwaccel
Changelog: add entries for AV1 Vulkan encoder and Vulkan VP9 hwaccel
Changelog: add entries for ProRes RAW decoder and ProRes RAW Vulkan hwaccel
vulkan_decode: add ifdefs around VP9 definitions and privatize profile struct
configure: enable Vulkan VP9 decoding and AV1 encoding if the headers support it
vulkan_encode_av1: properly give an FPS value for ff_av1_guess_level
vulkan: temporarily disable threading for ASIC-based hwaccels
aacdec_usac: use RefStruct to track unfinished extension buffers
lavfi/bwdif_vulkan: fix typo in temp_diff assignment
Lynne via ffmpeg-devel (1):
configure: add spirv_compiler to avcodec_suggest
Malek Assaad (1):
avformat/mov: add support for pssh box
Manuel Lauss (31):
libavcodec/sanm: add codec47 interpolation table support
libavcodec/sanm: fix XPAL handling
libavcodec/sanm: clear codec47 diff buffers with specific color
libavcodec/sanm: codec47: apply top offset also to diff buffers
avformat/smush: read ANIMv2 a/v parameters
avcodec/sanm: SMUSH codec48 decoder
avcodec/sanm: implement codec37 subcodec1
avcodec/sanm: simplify codec37 subcodec 3/4 path
avcodec/sanm: codec37 buffers are private
avcodec/sanm: ignore unknown codecs in FOBJs
MAINTAINERS: add Manuel Lauss as sanm.c/smush.c Maintainer
avcodec/sanm: disable left/top for fullscreen codecs
avcodec/sanm: FOBJ left/top are signed values
avcodec/sanm: better frame size detection for old codecs
avcodec/sanm: better ANIMv1 engine support
avcodec/sanm: fix codec3
avcodec/sanm: codec2 decoder
avcodec/sanm: codec23 decoder
avcodec/sanm: codec21 decoder
avcodec/sanm: codec4/5/33/34 decoder
avcodec/sanm: codec37: reimplement comp4
avcodec/sanm: implement STOR/FTCH for ANIMv1
avcodec/sanm: ignore codec45
avcodec/sanm: codec20 decoder
avcodec/sanm: ignore codec48 compression type 6
avcodec/sanm: recognize common FOBJ sizes
avcodec/sanm: support "StarWars - Making Magic" video
avcodec/sanm: remove codec4 block smoothing
avcodec/sanm: fix codec33/34 tile generator
avcodec/sanm: codec31/32 support
avcodec/sanm: fix issues with FTCH offset hack
Marcos Del Sol Vives via ffmpeg-devel (1):
avformat/matroskadec: Accept WebVTT subtitles with empty cues
Mark Thompson (27):
lavc: APV codec ID and descriptor
lavc/cbs: APV support
lavf: APV demuxer
lavc: APV decoder
lavc/apv: AVX2 transquant for x86-64
lavc: APV metadata bitstream filter
lavf: APV muxer
Changelog, doc: Add entries for new APV features
apv_decode: Replace division with shift
fate: Add test for APV 422-10 profile
cbs_apv: Always restore tracing state on split fragment error
apv_decode: Fix memory leak on decode error
apv_decode: Improve reporting of decode errors
cbs_apv: Better constrain tile_width/height_in_mbs
apv_entropy: Improve robustness to bitstream errors
cbs_apv: Check tile component sizes
apv_decode: Multisymbol entropy decode
lavc: Add unit test for APV entropy decode
fate: Add test for APV 400-10 profile
apv_decode: Discard invalid run codes earlier
cbs_apv: Fix memory leak on metadata parse failure
fftools/graphprint: Fix leak of graphprint object
fftools/graphprint: Fix leak of graph section header string
ffmpeg: Don't print graphs if there are no outputs yet
cbs_vp9: Fix VP9 passthrough
hwcontext_vulkan: Fix build
hwcontext_vulkan: Fix build with older Vulkan headers
Marth64 (41):
MAINTAINERS: update myself for dvdvideo, rcwtdec, rcwtenc
avformat/dashdec: return ret directly in open_demux_for_component()
avformat/dashdec: check return code of avcodec_parameters_copy()
avformat/dashdec: format open_demux_for_component()
avformat/hlsenc: check return value of avcodec_parameters_copy()
avcodec/mpeg12dec: set FF_CODEC_PROPERTY_CLOSED_CAPTIONS in mpeg_set_cc_format()
doc/bitstream_filters: elaborate on h264_redundant_pps
avformat/sapdec: check return value of avcodec_parameters_copy()
avformat/dvdvideodec: remove unused headers
avformat/dvdvideodec: fix menu PGC number off-by-one in state
avformat/dvdvideodec: measure duration of the current menu VOBU in state
avformat/dvdvideodec: remove "auto" value for -pg option, default to 1
avformat/dvdvideodec: move memcpy below missed NAV packet warning
avformat/dvdvideodec: standardize the NAV packet event signal
avformat/dvdvideodec: enable chapter calculation for menus
avformat/dvdvideodec: simplify dvdvideo_read_packet()
avformat/dvdvideodec: reset the subdemuxer on discontinuity instead of flushing
avformat/dvdvideodec: check the length of a NAV packet when reading titles
avformat/dvdvideodec: default menu_vts option to 1 and clarify description
avformat/dvdvideodec: remove auto value for menu_lu option
avformat/dvdvideodec: open subdemuxer after initializing IFO headers
avformat/dvdvideodec: remove unnecessary need_parsing argument
avformat/dvdvideodec: drop packets with unset PTS or DTS
avformat/dvdvideodec: discard duplicate or partial AC3 samples
avformat/dvdvideodec: don't allow seeking beyond dvdnav reported duration
avformat/smoothstreamingenc: check return value of avcodec_parameters_copy()
avformat/libssh: fix credential variables typo
avformat/dvdvideodec: fix missing last chapter marker due to off-by-one
avformat/dvdvideodec: check return code of ff_dvdclut_yuv_to_rgb()
doc/demuxers/dvdvideo: seeking is supported, remove outdated statement
avformat/mov: use dvdclut for YUV to RGB conversion of DVD subtitle palettes
avformat/mov: don't reallocate extradata when converting dvdsub palette
fftools/ffprobe: add analyze_frames option for CC and grain detection
avcodec/cbs_av1: fix variable shadowing in cbs_av1_split_fragment()
avformat/dashdec: reformat and lowercase get_Fragment()
avcodec/mpeg12dec: fix range for cc_format option
avformat/avformat.h: elaborate documentation for avformat_open_input() on error condition
avcodec/hw_base_encode: log the readable error message on failure
avformat/dump: lowercase 'Start' prefix for start offset
avformat/dvdvideodec: remove unused has_cc field
avformat/dvdvideodec: fix seeking on multi-angle discs
Martin Schitter (8):
RELEASE: update release number after release/7.1 branch
libavcodec/: Add ID and desc for DNxUncompressed
libavformat/mxf: Add ULs for DNxUncompressed
libavcodec/dnxuc_parser: DNxUncompressed essence parser
swscale/input: add input support for RGBF32
avutil: add RGBF16 pix_fmt
swscale/input: add input support for RGBF16
doc/APIchanges: add missing entry for adding RGBF16
Martin Storsjö (50):
checkasm/sw_rgb: Revert test additions from e18b46d95fadcbaaf450bda9f1871849f2b0c586
aarch64: h26x: Fix the indentation of one function
aarch64: Detect I8MM on Windows via SVE-I8MM
configure: Add detection of assembler support for SVE/SVE2
aarch64: Add CPU feature flags for SVE and SVE2
aarch64: Print the SVE vector length in libavutil/tests/cpu.c
checkasm: Print the SVE vector length at startup
libavutil: Fix building libavutil/tests/cpu for aarch64 without SVE
configure: Silence Xcode warnings about duplicate libraries
videotoolbox: Fix indentation of old existing code
libavutil: Makefile: Fix alphabetical order for the film_grain_params files
libavcodec: Makefile: Move the librsvg entry to the right section
av1dec: Don't crash if decoding of some frames have failed
libavcodec: x86: Remove an explicit include of config.asm
configure: Enable -Wno-implicit-const-int-float-conversion if available
swscale: Fix aarch64 and i386 compilation failures
arm: Consistently use proper interworking function returns
checkasm: lls: Use relative tolerances rather than absolute ones
configure: Only try to use the -no_warn_duplicate_libraries flag on Darwin
checkasm: vvc: Use checkasm_check for printing failing output
checkasm: Print benchmarks of C-only functions
fate: Add a target for listing failed tests
fate: Add a dependency on ffprobe for fate-flcl1905
aarch64: vvc: Fix building the dmvr_hv assembly with older MSVC versions
avutil/mem_internal: Don't include stdalign.h on MSVC
configure: Improve the check for the rsync --contimeout option
rtmpproto: Avoid rare crashes in the fail: codepath in rtmp_open
x86: aacencdsp: Fix negating signed values in aac_quantize_bands
checkasm: aacencdsp: Actually test nonzero values in quant_bands
random_seed: Reorder if clauses for gathering entropy
random_seed: Improve behaviour with small timer increments with high precision timers
aarch64: Fix a few misindented lines
swscale: aarch64: Simplify the assignment of lumToYV12
videotoolbox: Fix building with older SDKs
configure: Add a dependency for the audiotoolbox outdev
libavfilter: metal: Fix the version condition for iOS
videotoolboxenc: Add an iOS version condition for VTCopySupportedPropertyDictionaryForEncoder
configure: Check for an actual function in VideoToolbox
checkasm: Make checkasm_fail_func return whether we should print verbosely
checkasm: Implement helpers for defining and checking padded rects
checkasm: vp8dsp: Use checkasm_check_padded in check_mc
avfoundation: Fix compilation for OSes other than macOS and iOS
configure: Check for AVCaptureSession as dependency to avfoundation
checkasm: hevc_pel: Use helpers for checking for writes out of bounds
configure: Enable -fno-common for Darwin targets, avoid linker warnings
avutil: Fix linking x86 asm constants with Clang in MSVC mode
configure: Make MSVC version grabbing more robust
fate: Add a missing ffprobe dependency for fate-filter-select-ffprobe
forgejo/CODEOWNERS: Add myself for arm/aarch64 assembly
fate: Fix the sub-mcc tests on Windows in eastern time zones
Marton Balint (59):
avutil/wchar_filename: re-introduce explicit cast of void* to char*
avfilter/f_loop: fix length of aloop leftover buffer
avfilter/f_loop: fix aloop activate logic
avutil/opt: do no rely on av_d2q returning higher num/den than allowed when parsing rational opts
avutil/parseutils: do no rely on av_d2q returning higher num/den than allowed in av_parse_video_rate
avutil/rational: never return greater num/den than the maximum allowed in av_d2q
avformat/framecrc: add AVFMT_NODIMENSIONS flag
avcodec/dnxuc_parser: rework DNXUC parser
fate: adjust frequencies of the sine filter
avfilter/asrc_sine: factorize sampling to a separate context
avfilter/asrc_sine: increase frequency accuracy
fate: revert previous frequency adjustments of the sine filter
tests/fate/filter-audio: add aloop test
avcodec/frame: add AV_FRAME_FLAG_LOSSLESS
avcodec: set AV_FRAME_FLAG_LOSSLESS where supported
fftools/ffprobe: print lossless frame flag
avcodec: deprecate AVCodecContext properties
avcodec/mpegvideo_enc: add checks for custom inter/intra/chroma matrices
avcodec/mpegvideo_enc: fix qmat value comments
avcodec/mpegvideo_enc: use 64bit multiplication in dct_quantize_trellis_c and dct_quantize_c
avcodec/libxvid: add check for invalid intra/inter matrix values
avformat/wavdec: increase requested probe score for codec probe
fftools/ffmpeg: move elapsed time counter to the end of the status line
Revert "fftools/textformat/avtextformat: Make close functions return void"
fftools/textformat: correctly propagate uninit error codes
tests/fate/probe: add test for pcm misdetected as mp3 in wav
tests/fate/probe: add test for dts in wav
fftools/ffmpeg_filter: simplify control flow in read_frames
avfilter/split: consume all frames before forwarding inlink status
avfilter/af_aresample: merge request_frame into activate function
avfilter/af_aresample: make aresample return FFERROR_NOT_READY when no progress can be made
avfilter/af_aresample: rework activate logic to follow the advised flow more strictly
avfilter: factorize requesting an input frame from multi output filters
avfilter/filters: simplify FF_FILTER_FORWARD_WANTED_ANY
avfilter/avfilter: fix forwarding EOF for simple API filters in filter_activate_default
fate/filter-video: add ffprobe test for dual output select filter
avfilter/avfilter: always forward request frame in filter_activate_default
avfilter/avfilter: make filter_activate_default request frames on behalf of sinks
tests/fate/filter-audio: add anullsink test
avfilter: signal an empty buffersrc with an explicit activate error code
avfilter/buffersink: keep requesting frames if one activation of the graph does not provide one
avfilter/f_select: port to activate
fftools/ffmpeg_filter: always reap all available frames before requesting new ones
avfilter/framequeue: add support for limiting and tracking buffered frames in the queues
avfilter/avfilter: add AVFilterGraph->max_buffered_frames to limit buffered frames
fftools/ffmpeg: add support for setting maximum buffered frames in a filtergraph
tests/fate: add fate test for excessive frame buffering when using filters
avfilter/trim: consume all available frames and avoid activate reschedule
avfilter/af_afade: factorize functions generating frames
avfilter/af_afade: fix check_input for empty streams
avfilter/af_afade: rework crossfade activate logic
avcodec/dvbsubenc: fix end of 8-bit/pixel-code-string
avcodec/dvbsubdec: convert dvbsub_read_8bit_string to bytestream reader
avcodec/dvbsubenc: fix 256 color rle decoding
avformat/img2enc: allocate temp and target filename dynamically
avformat/utils: add ff_bprint_get_frame_filename
avformat/img2enc: use a AVBPrint buffer for generating the filename
avformat/internal: retire ff_get_frame_filename
swscale/swscale_unscaled: use 8 line alignment for planarCopyWrapper with dithering
Marvin Scholz (70):
lavfi/metal: simplify fallback
avdevice/avfoundation: remove write-only variable
avfilter/yadif_videotoolbox: remove unused variable
avfilter/vf_coreimage: simplify list_filters code
avfilter/vf_coreimage: silence AVFrame deprecation warnings
ffbuild: add METALCC and METALLIB to BRIEF
avdevice/decklink_dec: fix leak on error
avdevice/decklink_dec: fix leaks on error
fftools: do not access out of bounds filtergraph
fftools: log unconnected filter output label
libavutil/vulkan: fix flexible array struct allocation
avfilter/af_afftdn: use av_assert0 for unreachable assert
avcodec/hw_base_encode: fix use after free on close
avfilter: fix unused variable warning
swscale/internal: fix typo in loongarch specific code
MAINTAINERS: Add myself as Darwin maintainer
doc/developer: add examples to clarify code style
doc: add styles for good/bad code examples
configure: fix passing Objective-C flags
configure: allow mixed declarations and code for Objective-C
avformat/dashdec: use av_err2str
avformat/crypto: use av_err2str
lavfi/vf_xpsnr: use av_err2str
tests: lavfi/drawutils: use av_err2str
tools/ismindex: use av_err2str
tools/sidxindex: use av_err2str
tools/aviocat: use av_err2str
avfilter/drawutils: narrow variable scopes
ffbuild: fix include path for uninstalled .pc files
avformat/apvdec: remove unused variable
doc: use av_dict_iterate in documentation example
avformat/sdp: add framerate entry
lavfi/f_sendcmd: add helper to clear Command
lavfi/f_sendcmd: clear Command on alloc failure
ffmpeg_demux: init resume_warn variable
avcodec/vvc/dec: fix possible null-pointer dereference
avcodec/vvc: parse all SEI messages
avformat/tee: fix multiple bsfs in tee
fftools/textformat: exit early in mermaid_print_value
fftools/textformat: remove leftover comments in mermaid_print_value
fftools/textformat: narrow variable scopes
fftools/textformat: remove noop free
fftools/textformat: do not return early
avcodec/vvc/refs: remove early return
fftools/textformat: remove unreachable code in tf_mermaid
avutil/hwcontext_videotoolbox: fix unused variable warning
avformat/tls: move common client options into their own define
configure: require at least OpenSSL 1.1.0
avformat: tls: drop support for OpenSSL < 1.1.0
avformat/tls_openssl: remove now unnecessary define
avformat/tls_openssl: properly get new BIO index
avformat/tls_openssl: remove leftover comment
avformat/tls_openssl: remove unnecessary checks
avformat/tls_openssl: use TLS_[client|server]_method
avformat/tls_openssl: use SSL_CTX_set_min_proto_version
lavf/rtpdec: fix RTCP SR packet length check
lavf: add and use AVRTCPSenderReport struct
avcodec: add AV_PKT_DATA_RTCP_SR side data type
avformat: rtsp: export AV_PKT_DATA_RTCP_SR
avcodec: bump minor after adding AV_PKT_DATA_RTCP_SR
APIchanges: Add entry for AV_PKT_DATA_RTCP_SR
Changelog: mention dropping OpenSSL < 1.1.0
avformat/tls: rename accidentally changed options
avformat/rtsp: fix leak of options dict on error
avformat/rtsp: fix misleading indentation
avformat/rtsp: use av_unreachable
avformat/rtsp: check copy_tls_opts_dict
avformat/tls_openssl: verify setting hostname for SNI
avformat/tls_openssl: load default verify locations
avformat/hlsproto: explicitly deprecate it
Maryla Ustarroz-Calonge (3):
avcodec/libdav1d: move itut-t35 parsing to a separate function
avcodec/itut35: always check the provider code and country code together
avcodec/itut35: rename some provider codes
Max Rudolph (1):
avformat/cinedec: add support for additional Bayer CFA patterns for Phantom CINE file format
Maxime Gervais (1):
ffv1enc_vulkan: fix array overflow
Michael Niedermayer (360):
Changelog: Add version <next>
doc/APIchanges: Add 7.1 Cut line
avcodec/ffv1dec: Blow up if user asks for explosion
avcodec/ffv1enc: Fix >8bit context size
tests/fate/vcodec: Add 10bit 2pass FFv1 test
avcodec/ffv1enc: 2Pass mode is not possible with golomb coding
avcodec/ffv1enc: Slice combination is unsupported
avcodec/ffv1: Store and reuse sx/sy
avcodec/ffv1enc: Correct error message about unsupported version
avformat/mov: Avoid overflow in dts
avformat/matroskadec: Check desc_bytes so bits fit in 64bit
avcodec/ffv1enc: Prevent generation of files with broken slices
avcodec/ffv1: Implement CRC with non zero initial and final value
avcodec/ffv1enc: allow manually specifying the crc type
avcodec/ffv1enc: Move slice termination into threads
avcodec/ffv1dec: Fix end computation with ec=2
avcodec/ffv1enc: Fix RCT with RGB64
avcodec/ffv1: RCT is only possible with RGB
avcodec/ffv1: add a named constant for the quant table size
libavcodec/ffv1enc: Add option to select the quantization table
avcodec/rangecoder: only perform renorm check/loop for callers that need it
avcodec/ffv1: Implement new slice tiling
swscale/rgb2rgb_template: Fix ff_rgb24toyv12_c() with odd height
swscale/output: used unsigned for bit accumulation
avformat/mxfdec: Fix overflow in midpoint computation
avformat/mpegts: Initialize predefined_SLConfigDescriptor_seen
avcodec/ffv1enc: Tighter maxsize
INSTALL: explain the circular dependency issue and solution
avformat/rpl: check channels
avformat/mccdec: Initialize and check rate.den
avformat/nistspheredec: Clear buffer
avformat/ilbc: Check avio_read() for failure
avformat/vividas: Check avio_read() for failure
doc/infra: Document gitolite
avcodec/ffv1: Support slice coding mode 1 with golomb rice
avcodec/ffv1: Support >8bit rice golomb
avformat/movenc: Fix ffv1 support
doc/infra: clarify domain name servers
doc/infra: Document trac backup system
doc/developer: Document relationship between git accounts and MAINTAINERS
avformat/icodec: fix integer overflow with nb_pal
avcodec/mjpegdec: Disallow progressive bayer images
MAINTAINERS: Remove Guillaume Poirier and Romain Dolbeau
MAINTAINERS: Lauri is still available but is really low on time nowadays
doc/infra: List at what companies the name servers are hosted and who provides the servers
avformat/iamf_parse: reject ambisonics mode > 1
doc/encoders: very basic FFv1 documentation
avcodec/h2645_parse: Ignore NAL with nuh_layer_id == 63
avcodec/rangecoder: Do not loop renormalization
avcodec/rangecoder: Move refill check out of refill() function
avcodec/rangecoder: Avoid checking for the first byte on every renormalization
avcodec/rangecoder: Remove unneeded outstanding byte mask
avcodec/rangecoder: eliminate main branch from renorm_encoder()
swscale/slice: clear allocated memory in alloc_lines()
avformat/dxa: check bpc
avcodec/eatgq: move array to where it is used
avcodec/eatgq: Check bytestream2_get_buffer() for failure
avformat/qcp: Check for read failure in header
avcodec/hevc/hevcdec: initialize qp_y_tab
swscale/swscale_unscaled: Fix odd height with nv24_to_yuv420p_chroma()
avcodec/ffv1enc: Add enum for qtable
avcodec/rv60dec: Check qp for intra
avcodec/ilbcdec: Initialize tempbuff2
avcodec/webp: Check ref_x/y
avcodec/aac/aacdec_usac: Clean ics2->max_sfb when first SCE fails
avcodec/aac/aacdec_usac: Dont leave type at a invalid value
avutil/timecode: Avoid fps overflow in av_timecode_get_smpte_from_framenum()
tools/target_dec_fuzzer: Adjust Threshold for indeo5
avcodec/escape130: move get_buffer down
avcodec/rv60dec: Use get_bits_long()
avcodec/rv60dec: Check NEXT/LAST availability
avformat/mov: free stream_info when the surrounding array is freed
tools/target_dec_fuzzer: Adjust threshold for MVC1
tools/target_dec_fuzzer: Adjust threshold for SGA
tools/target_dec_fuzzer: Adjust threshold for EACMV
avformat/matroskadec: Check pre_ns for overflow
avcodec/utils: Fix block align overflow for ADPCM_IMA_WAV
avformat/mov: dereference pointer after null check
avcodec/aac/aacdec: Free channel layout
avformat/mxfdec: Check llen addition for overflow
avformat/mlvdec: Check avio_read()
avformat/rpl: Fix check for negative values
avformat/mxfdec: Check that key was read sucessfull
avcodec/hapdec: Clear tex buffer
avcodec/cfhdenc: Clear dwt_tmp
avformat/rmdec: check that buf if completely filled
avformat/jpegxl_anim_dec: clear buffer padding
avcodec/get_buffer: Use av_buffer_mallocz() for audio same as its done for video
avformat/demux: Check packet duration
avfilter/vf_addroi: Add missing NULL termination to addroi_var_names[]()
avfilter/vf_grayworld: Use the correct pointer for av_log()
avfilter/af_pan: Fix sscanf() use
swscale/output: Fix undefined overflow in yuv2rgba64_full_X_c_template()
avcodec/osq: Fixes several undefined overflows in do_decode()
tools/target_dec_fuzzer: Adjust threshold for TDSC
avformat/mxfdec: Check edit_unit for being larger than signed 64bit
tools/target_dec_fuzzer: Adjust threshold for VP6
avformat/iamf_parse: Check output_channel_count
tools/target_dec_fuzzer: Adjust threshold for MSCC
avcodec/aacsbr_template: Clear n_q on error
avcodec/vc1dec: Clear block_index in vc1_decode_reset()
avformat/mov: Factorize sanity check out
avformat/mov: perform sanity checks for heif before index building
avcodec/ffv1enc: Fix handling of 32bit unsigned symbols
avcodec/mpegvideo_enc: Check FLV1 resolution limits
avfilter/vf_v360: Fix NULL pointer use
avutil/avstring: dont mess with NULL pointers in av_match_list()
avformat/dashdec: Check whitelist
libavutil/pixfmt: 16bit float support
avcodec/ffv1: simplify version checks with combined_version
avcodec/ffv1enc: dont reset version
avcodec/ffv1enc: Fix RCT for GBR colorspace
swscale: 16bit planar float input support
avformat/mpegts: Add standard extension so hls can check in extension_picky mode
avformat/vqf: Check avio_read() in add_metadata()
avformat/vqf: Propagate errors from add_metadata()
avcodec/cbs_vp9: Initialize VP9RawSuperframeIndex
avformat/wtvdec: Initialize buf
avformat/ipmovie: Check signature_buffer read
avformat/iamf_reader: Initialize padding and check read in ff_iamf_read_packet()
avcodec/huffyuvdec: Initialize whole output for decode_gray_bitstream()
tools/target_swr_fuzzer: do not use negative numbers of samples
avformat/mxfdec: Check avio_read() success in mxf_decrypt_triplet()
Revert "avformat/mpegts: Add standard extension so hls can check in extension_picky mode"
avformat/hls: Be more picky on extensions
avformat/hls: Print input format in error message
avcodec/h263dec: Check against previous dimensions instead of coded
avformat/hls: .ts is always ok even if its a mov/mp4
libavformat/hls: Be more restrictive on mpegts extensions
avcodec/vvc/refs: fix negative pps_scaling_win offsets
avformat/hls: Fix twitter
avformat/mxfdec: Check edit unit for overflow in mxf_set_current_edit_unit()
avcodec/vvc/refs: Check content_ref in set_pict_type()
avformat/wavdec: Fix overflow of intermediate in block_align check
avformat/mlvdec: fix size checks
avcodec/aac/aacdec: Clear SFO on error
avcodec/aac/aacdec_usac: Simplify decode_usac_scale_factors()
avcodec/aac/aacdec_lpd: Limit get_unary()
avformat/iff: Check that we have a stream in read_dst_frame()
avcodec/rv60dec: Initialize slice gb with actually allocated size
add tools/compare-cvelists.sh
doc/developer: Better {} style rule
avcodec/exr: do not output 32bit floats when a file stores 16bit floats
avcodec/ffv1: Basic float16 support
avcodec/ffv1: flip half of float16 and Compactify floats
avcodec/ffv1: Store remap flag per slice
avcodec/ffv1: Use dual run coder for fltmap
avcodec/ffv1enc: Fix slice coding mode 1 with rgb frames
avcodec/ffv1: Fix remap and float with golomb rice
avcodec/ffv1enc_template: Be a bit more verbose on error
avcodec/ffv1enc: Factor set_micro_version() out of ff_ffv1_write_extradata()
avcodec/ffv1enc: add space for the remap table to max_size
avcodec/ffv1: Implement jeromes idea of making remap flip optional
gitattributes: End merge conflicts in Changelog
avcodec/ffv1: implement remap for encode/decode_plane()
avcodec/ffv1: fix remap without chroma planes
avcodec/ffv1: Add YAF16 support
avcodec/ffv1: Add GRAYF16 support
avcodec/ffv1dec: Fix a YUVA issue with remaping
avcodec/ffv1: Fix remap ordering
avcodec/ffv1: 32-bit float sample support
avcodec/ffv1enc: remap allows using rice golomb with more bits
avcodec/ffv1dec: remove unused var
avcodec/ffv1: Implement 2D RLE for remap
avcodec/ffv1enc: remap mode 2 is for floats only
avcodec/ffv1enc: remap table size is 1<<bits_per_raw_sample not fixed 65536
avcodec/ffv1dec: compute end instead of hardcoding it and test for fltmap correctly
avcodec/ffv1dec: replace literal 65535 by what it is
avcodec/ffv1enc: eliminate if()
avcodec/ffv1enc: introduce step to simplify code
avcodec/ffv1enc: Simplify last_val update
avcodec/ffv1enc: Factorize s.last_val update out
avcodec/ffv1enc: Heuristic to select fixed in float multipliers
avcodec/ffv1enc: Eliminate index_stack and delta_stack
avcodec/ffv1enc: Eliminate encode_mul()
avcodec/ffv1dec: Fix end handling
avcodec/ffv1enc: Fix end handling
avcodec/ffv1enc: Fix off by 1 in assert
avcodec/ffv1enc: Store run1start_mul_index instead of computing
avformat/nut: Add GBR(A)PF16/32LE/BE
avcodec/raw: Add GBR(A)PF16/32LE/BE
avcodec/ffv1enc: Better heuristic for selecting mul values.
avcodec/ffv1enc: Eliminate copy_state
avcodec/ffv1enc: Eliminate RemapEncoderState
avcodec/ffv1enc: Add -remap_optimizer option
doc: replace http/git by https urls
avcodec/ffv1enc: replace 3 double precision log2() by 1 single precision log2()
avcodec/ffv1enc: replace the remaining log2() by magic
tests/checkasm/checkasm.c: Assert that aligned_w/h do not overflow
avcodec/ffv1enc: run1start variables should fit in 32bit
avcodec/ffv1: Allocate unit only when needed and only as large as needed
avcodec/ffv1: Only allocate fltmap* and bitmap when needed
avcodec/ffv1dec: Limit size of fltmap* to pixel number
avcodec/ffv1enc: Consider 2s x s slice configurations
avcodec/ffv1: Store slices*planes with the minimum bits needed after remap
avcodec/ffv1enc: Remove 65536 pixel per slice limit for remap
avcodec/ffv1enc: avoid slices larger than 360x288 if no value is specified
avcodec/ffv1enc: Fix remap > 0 with gbrp12, that is non float
APIChanges & version bump for AV_DICT_DEDUP
swscale/output: Fix integer overflow in yuv2gbrp_full_X_c()
swscale/swscale: Do not crash on floats
avcodec/osq: avoid undefined negation
doc/encoders: Document compression_level for PNG
avcodec/pngenc: set default prediction method to PAETH
doc/encoders: Document png pred
configure: Clearer documentation for "disable-safe-bitstream-reader"
avformat/id3v2: Print the unknown encoding
avcodec/ffv1enc: Use version 3 by default (CRCs by default)
Revert "lavf/id3v2dec: support multiple values and TIPL frames"
postproc/postprocess_template: Fix reading uninitialized pixels in dering_C()
postproc/postprocess_template: fix handling of first row of dering_C
tests: Add libpostproc blocktest
fate: add stripetest
avcodec/ffv1enc: Eliminate fabs()
avformat/hls: Add cmfv and cmfa to allowed_extensions
avformat/hls: Point user to how to easily contribute a fix for missing extensions
avformat/hls: Add ec3 to allowed_extensions
avformat/hls: add fmp4 to allowed_extensions
avformat/hls: Fix Youtube AAC
avformat/hls: Split allowed_segment_extensions off allowed_extensions
avformat/hls: Fix flash1.bogulus.cfd support
postproc/tests: Add test for temporal denoise
libpostproc: check minimum size
postproc/tests/stripetest: use dimensions
postproc/postprocess_template: fix dering with a 16x16 image
postproc/tests/blocktest: use dimensions
postproc/tests/blocktest: initialize qp array randomly to for testing
postproc/tests/blocktest: Test several filter combinations
libpostproc/tests: Factor ff_chksum() out
postproc/tests/.gitignore: Add temptest
Remove libpostproc
tests/fate/filter-video: Fix dependancy for codecview
avcodec/mmvideo: fix palette index
avformat/iff: Check nb_channels == 0 in MHDR
avcodec/rv60dec: inter also fails with qp >= 32
avcodec/hevc/ps: Fix dependant layer id check
avcodec/vorbisdec: Dont treat overread as error
avcodec/h264_mb: Fix tmp_cr for arm
avformat/iamfdec: Check side_substream_id before use
MAINTAINERS: Add entry for samples-request
avformat/avidec: Ignore duplicate GAB2
avcodec/dnxuc_parser: Use ff_parse_close()
avformat/mov: reject negative ELST durations
avformat/imf_cpl: do not continue looping forever
avformat/imf_cpl: fix indention after previous commit
avcodec/sonic: Check num_taps
avcodec/svq3: Check there are bits left before decompression
tools/target_dec_fuzzer: Adjust threshold for WEBP
avcodec/4xm: Check frame_4cc before allocation
avcodec/takdec: Check remaining space for first predictors
avformat/matroskadec: check that channels fit in signed 32bit int
swscale/output: fix integer overflow in yuv2rgba64_full_1_c_template()
Add tools/merge-all-source-plugins
tools/merge-all-source-plugins: Try merging a tag or branch matching the current version
tools/merge-all-source-plugins: Check that there are no uncommited changes
Makefile: Split ALLFFLIBS
avcodec/ffv1enc_template: Fix remaining space check
avcodec/speexdec: Pass and check remaining packets to decode functions
avcodec/hevc/hevcdec: Check num_entry_point_offsets
Revert "ogg/vorbis: implement header packet skip in chained ogg bitstreams."
tests/fate/mov: Add bitexact for fate-mov-mp4-frag-flush
avformat/dhav: Do not evaluate avio_size() multiple times
avformat/framecrcenc: List types and checksums for for side data
avcodec/osq: Fix signed integer overflow in update_stats()
avcodec/osq: Add note about update_stats() count
avcodec/osq: Switch back to av_ceil_log2()
avcodec/osq: Request a coding mode 2 sample
tools/target_dec_fuzzer: Adjust RV60 threshold
Add FUNDING.json
tools/target_dec_fuzzer: adjust threshold for VP8
avformat/iff: Check nb_channels == 0 in CHNL
avformat/mov: Check that sample_count is allocated in mov_parse_heif_items()
avcodec/speexdec: consider differing frame sizes in remaining space check
avcodec/rv60dec: Check ofs for overflows
avcodec/smacker: Move buffer allocation to later
avcodec/smacker: Check input before allocation
avcodec/apv_dsp: Avoid UB overflow in dequant
avcodec/psd: Move frame allocation after RLE processing
swscale/output: Fix integer overflows in yuv2rgba64_1_c_template()
avcodec/vvc/ctu: Check palette_escape_val
avcodec/vvc/ctu: Check ff_vvc_num_signalled_palette_entries
avcodec/cfhd: Check idwt_buf size before allocation
avcodec/ivi: Check luma/chroma mb_size
avcodec/ffv1dec: Check k in get_vlc_symbol()
avcodec/smacker: cleanup on bet buffer failure
avformat/concatdec: Clip duration in one more case in get_best_effort_duration()
avcodec/alsdec: Allow the user to set a maximum prediction order
tools/target_dec_fuzzer: Set ALS max order to 15 (ALS simple profile)
avformat/asfdec_f: Check amount of value read
avcodec/hevc/hevcdec: Clean sao_pixel_buffer_v on allocation
avformat/mov: make sure file_checksum is fully initialized
avformat/mxfdec: Ensure klv->key is initialized
avformat/vqf: Ensure that comm_chunk is fully read
avcodec/shorten: Clear the additionally allocated space on realloc
avcodec/dxvenc: Clear width to linesize not linesize to linesize
avformat/mxg: clear AV_INPUT_BUFFER_PADDING_SIZE
avcodec/sanm: Check w, h for subversion < 2
avformat/dhav: fix reference point mixup
avformat/dhav: Remove end_ prefix from variable names
avcodec/sanm: Check decoded_size for old_codec48
avformat/subfile: Initialize end on all cases
avcodec/cbs_apv_syntax_template: Check tile_data_size
avcodec/mpegvideo_dec: Fix lowres=3 field select interlaced mpeg4 frame
avcodec/sanm: Checks related to negative left/top
swscale/output: Fix integer overflow with lum/chr/alpha filter
swscale/output: Fix all bilinear integer overflows
avformat/dashdec: Allocate space for appended "/"
avcodec/fits: Clear naxis
avcodec/lzf: Check for input space
avcodec/cri: Factor read_len out
avcodec/cri: Check bytestream2_get_buffer() for end
avcodec/imc: Clear padding of buf16
avcodec/iff: Clear ham_buf
avcodec/vqavideo; Check bytestream2_get_buffer() reading next_codebook_buffer
avformat/hls: add cmfv/cmfa exceptions
avcodec/motion_est: Remove double protection from init_ref()
.forgejo/CODEOWNERS: add myself to a few things
.forgejo/CODEOWNERS: Add myself for a more libavutil bits which i know well
Revert "forgejo/lint_commit_msg: add script for commit message linting"
avcodec/exr: Check rle_raw_data and surroundings
avcodec/exr: Dont access outside xsize/ysize
avcodec/jpeg2000dec: move cdef default check into get_siz()
avcodec/jpeg2000dec: implement cdef remapping during pixel format matching
avcodec/utvideodec: Set B for the width= 1 case
avcodec/ffv1: Clear state on alloc
avcodec/utvideodec: Set B for the width= 1 case
avcodec/ffv1: Clear state on alloc
avcodec/aacsbr_template: Check ilb
avcodec/aac/aacdec_usac: Limit sfo from noise offset to be above -200
avcodec/jpeg2000dec: Make sure the 4 extra bytes allocated are initialized
doc/APIchanges: update
Changelog: Add 8.0 marker
Bump versions for release/8.0
avcodec/apv_decode: make apv_format_table consistent with the code and check it
tools/merge-all-source-plugins: set version
avcodec/ilbcdec: Clear cbvec when used with create_augmented_vector()
avcodec/scpr3: Clear clr
avcodec/exr: Check for pixel type consistency in DWA
avcodec/sanm: Check mv in codec48_block()
avcodec/dxv: Check that we initialize op_data
avcodec/dxv: Clear ctex
avcodec/dxv: Use av_fast_realloc() and clear all new space
avcodec/dxv: Use av_fast_realloc() for op_data
tools: Split the list of source plugins out of "merge-all-source-plugins"
tools/merge-all-source-plugins: Fix merge_internal() return code
fftools/ffmpeg_mux_init: Use 64bit for score computation in map_auto_video()
.forgejo/CODEOWNERS: remove reference to secret apparently uncommited code
avcodec/utvideodec: Clear plane_start array
avcodec/rv60dec: clear pu_info
avcodec/sanm: Check w,h,left,top
swscale/swscale_internal: Use more precisse gamma
avformat/lrcdec: Fix fate-sub-lrc-ms-remux on x86-32
avcodec/aac/aacdec: dont allow ff_aac_output_configure() allocating a new frame if it has no frame
avcodec/dxv: Check coded_height, to avoid invalid av_clip()
avcode: Use av_fast_realloc() in ff_lzf_uncompress()
Prepare for 8.0
avcodec/sanm: Replace impossible bitstream check by assert
avcodec/sanm: Eliminate reference into reallocated frame
RELEASE_NOTES: Based on the version from 5.1
Changelog: Remove "version <next>"
Min Chen (1):
avcodec/mfenc: add support for AV1 MF encoders
Muhammad Faiz (1):
avfilter/avf_showcqt: fix unbounded index when copying to fft_data
Nicolas Gaullier (26):
avfilter/framesync: fix forward EOF pts
avcodec/ac3dec: fix build when eac3 decoder is disabled
fftools/textformat: fix print 64 bit integers
fftools/textformat: renamings in print_unit_int for consistency (cosmetic)
libavcodec/tests: fix gitignore hashtable
tests/Makefile: make easier to check for multiple dependencies
fate/all: add missing dependencies for extradata bsf
fate/demux: fix multiple dependencies
fate/all: switch-fix mov muxer dependency to mp4 muxer dependency
fate/mov: fix multiple dependencies
fate/gapless: fix multiple dependencies
fate/lavf-container: fix multiple dependencies
fate/vorbis: fix multiple dependencies
fate/aac: fix multiple dependencies
fate/audio: fix multiple dependencies
fate/ac3: fix multiple dependencies
fate/cover-art: fix multiple dependencies
fate/hlsenc: fix multiple dependencies
fate/mpeg4: fix multiple dependencies
fate/pcm: fix multiple dependencies
fate/hevc: fix multiple dependencies
fate/all: fix multiple dependencies
fate/all: add missing file protocol dependencies
fate/all: add missing crc/framecrc/md5/framemd5/pipe dependencies
fate/all: fix missing some mov demuxer dependencies
fate/seek: fix missing mpeg4video parser dependency
Nicolas George (1):
lavfi/src_movie: set pkt_timebase
Niklas Haas (182):
avcodec/riscv: add h264 qpel
avfilter/src_movie: configure correct YUV attributes
tests/swscale: fix minor typos
swscale/internal: rename NB_SWS_DITHER for consistency
swscale/internal: expose ff_update_palette() internally
swscale/internal: turn cascaded_tmp into an array
swscale/internal: constify SwsFunc
swscale/internal: forward typedef SwsContext
swscale/internal: add typedefs for input reading functions
swscale/input: parametrize ff_sws_init_input_funcs() pointers
swscale/ppc: fix altivec build failure
swscale/rgb2xyz: minor style fixes
swscale/rgb2xyz: add explicit width parameter
swscale/rgb2xyz: follow convention on image pointers and strides
swscale/rgb2xyz: expose these functions internally
swscale/internal: constify and expose ff_swscale()
swscale: publicly typedef struct SwsContext
swscale: slightly reorder header
swscale: add sws_free_context()
swscale/utils: add SwsFormat abstraction and helpers
swscale: add new frame testing API
swscale: add sws_is_noop()
swscale/x86: use dedicated int for self-modifying MMX dstW
swscale: rename SwsContext to SwsInternal
swscale/options: cosmetic changes
swscale/internal: use static_assert for enforcing offsets
swscale/internal: group user-facing options together
swscale: expose SwsContext publicly
swscale: eliminate redundant SwsInternal accesses
swscale: organize and better document flags
swscale/internal: expose sws_init_single_context() internally
swscale/graph: add new high-level scaler dispatch mechanism
swscale: introduce new, dynamic scaling API
tests/swscale: rewrite on top of new API
tests/swscale: add a benchmarking mode
avfilter/vf_scale: switch to new swscale API
avfilter/vf_scale: fix off-by-one in loop bounds
swscale/graph: fix memleak of cascaded graphs
swscale/utils: disable full_chr_h_input optimization for odd width
avutil/csp: fix documentation of av_csp_trc_function
avutil/csp: eliminate redundant branch
avutil/tests/color_utils: clean up slightly (cosmetic)
avutil/csp: add av_csp_trc_inv_from_id()
avutil/csp: add EOTF function definitions
avutil/tests/color_utils: add tests for av_csp_itu_eotf
tests/swscale: fix sscanf return value check
swscale/slice: fix init of 32 bpc planes
swscale/utils: fix sws_getCachedContext check
swscale: fix documentation of sws_scale_frame()
tests/swscale: allow nonzero positive return codes from sws_scale_frame()
swscale/output: fix bilinear yuv2rgb chroma interpolation
checkasm/sw_scale: add assertion for hscale assumption
checkasm/sw_scale: add test for yuv2nv12cX
checkasm/sw_rgb: add tests for yuv2packed{1,2,X}
checkasm/sw_rgb: add alpToYV12 check
swscale/unscaled: correctly round yuv2yuv when not dithering
swscale/unscaled: correctly copy semiplanar formats
swscale/unscaled: allow semiplanar copies
swscale/utils: check for supported color transfers
swscale/utils: add HDR metadata to SwsFormat
swscale/utils: set static/implied HDR metadata
swscale/utils: read HDR mastering metadata from AVFrame
swscale/utils: read dynamic HDR10+ metadata from AVFrame
swscale/utils: add helper function to infer colorspace metadata
swscale/utils: fix XYZ primaries tagging
swscale: add ICC intent enum and option
avfilter/vf_scale: add colorspace and transfer property options
avfilter/vf_scale: make options alignment consistent (cosmetic)
avfilter/vf_scale: strip metadata when changing colorspace
swscale/csputils: add internal colorspace math helpers
swscale/cms: add color management subsystem
swscale/lut3d: add 3DLUT dispatch system
swscale/graph: add color mapping pass
swscale/graph: allow dynamically updating HDR metadata
swscale: remove primaries/trc change warning
swscale/options: add -sws_dither none alias
avutil/frame: add AVSideDataDescriptor for AV_FRAME_DATA_VIDEO_HINT
avutil/frame: add AV_SIDE_DATA_PROP_{SIZE,COLOR}_DEPENDENT
avutil/frame: add av_frame_side_data_remove_by_props()
avfilter/vf_scale*: strip metadata on size change
avfilter/vf_zscale: strip metadata on change
avfilter/vf_libplacebo: update metadata stripping logic
avfilter/vf_colorspace: strip color volume metadata
avfilter/vf_lut*: strip color volume metadata
swscale/unscaled: add pal8 -> gbr(a)p special converter
swscale: use 16-bit intermediate precision for RGB/XYZ conversion
swscale/utils: add return code to fill_xyztables()
swscale/utils: lazily allocate XYZ tables on CONFIG_SMALL
avfilter/interlace_vulkan: add interlace_vulkan filter
avfilter/libplacebo: use a transparent default fillcolor
avfilter/vf_libplacebo: switch to AV_OPT_TYPE_COLOR
configure: align libplacebo version check with reality
avfilter/libplacebo: add deinterlacing options
avfilter/libplacebo: only mark frame fields when deinterlacing
avfilter/libplacebo: strip interlaced flag when deinterlacing
avfilter/libplacebo: add option for outputting separate fields
avfilter/vf_libplacebo: remove deprecated options
avfilter/vf_liplacebo: properly initialize variable
avfilter/vf_libplacebo: switch to new background API
avfilter/vf_libplacebo: allow differing formats per input
avfilter/vf_libplacebo: set colorspace properties on all inputs
avfilter/vf_libplacebo: set correct alpha mode before blending
swscale/utils: split off format code into new file
swscale: fix gray -> grayf32 SIGFPE
swscale/swscale_unscaled: avoid nv12 <-> nv21 bug
tests/swscale: allow choosing specific flags and dither mode
tests/swscale: use hex format for flags values
tests/swscale: allow testing only unscaled convertors
tests/swscale: print speedup numbers in color
tests/swscale: use yuva444p as reference
tests/swscale: switch from MSE to SSIM
tests/swscale: print performance stats on exit
tests/swscale: check supported inputs for legacy swscale separately
tests/swscale: remove stray whitespace in scanf format
tests/swscale: calculate theoretical expected SSIM
tests/swscale: constrain reference SSIM for low bit depth formats
tests/swscale: allow setting log verbosity
tests/checkasm: fix wrong summation of bench time
avfilter/vf_libplacebo: don't explode on zero FPS information
doc/filters: fix "ewa_lanczos" filter description
tests/swscale: improve colorization of speedup
swscale/graph: expose ff_sws_graph_add_pass
swscale/graph: make noop loop more robust
swscale/graph: move vshift() and shift_img() to shared header
swscale/graph: prefer bools to ints
doc: add swscale rewrite design document
avfilter/vf_interlace_vulkan: fix FPS and PTS calculation
avfilter/vf_libplacebo: implement rotation option
avfilter/vf_libplacebo: add shader_cache option
avutil/vulkan: add YUVA pixel formats support
avutil/vulkan: automatically enable shader device address usage bit
avfilter/vf_gblur_vulkan: omit unnecessary buffer usage flag
avfilter/vf_blackdetect: add alpha option
avfilter/blackdetect_vulkan: add hw accelerated blackdetect filter
avutil/vf_scdet_vulkan: add new filter
avfilter/vf_blackdetect_vulkan: fix black region reporting
avfilter/vf_scale: set correct AVFrame SAR if reset_sar=1
avfilter/vf_libplacebo: list AV_PIX_FMT_VULKAN first
avfilter/vf_libplacebo: correctly update SAR to reflect scaled result
avfilter/vf_libplacebo: add `reset_sar` option
avfilter/f_ebur128: use transformed direct form II
avfilter/f_ebur128: simplify sample cache array
avfilter/f_ebur128: use structs for biquad weights
avfilter/f_ebur128: use a single packed array for the integrator cache
avfilter/f_ebur128: move weights and cache to EBUR128DSPContext
avfilter/f_ebur128: split off C implementation to separate function
avfilter/x86/f_ebur128: add x86 AVX implementation
avfilter/f_ebur128: remove pointless macro
avfilter/f_ebur128: move true peak calculation out of main loop
avfilter/f_ebur128: lift sample peak calculation out of main loop
avfilter/f_ebur128: move variable declarations to usage site
avfilter/f_ebur128: move peak detection to reusable DSP function
avfilter/x86/f_ebur128: implement AVX peak calculation
avutil/hwcontext_vulkan: disable host transfers if ReBAR is disabled
avfilter/f_ebur128: properly propagate true peak
avfilter/vf_thumbnail: support more planar formats
avfilter/vf_thumbnail: switch to query_func2
avutil/hwcontext_vulkan: don't over-map buffers with prior padding
avfilter/scene_sad: pass true depth to ff_scene_sad_get_fn()
tests/checkasm: add scene_sad checkasm test
avfilter/x86/scene_sad: add AVX512 implementation
avfilter/x86/scene_sad: add high bit depth AVX2/AVX512 version
avfilter/vf_thumbnail: unroll and use multiple histograms
avfilter/vf_blackdetect: add AVX2 SIMD version
tests/checkasm: add test for vf_blackdetect
avfilter/vf_colordetect: add new color range detection filter
avfilter/vf_colordetect: add x86 SIMD implementation
tests/checkasm: add check for vf_colordetect
avfilter/vf_premultiply: use correct premultiplication formula
avfilter/vf_libplacebo: composite multiple inputs in linear light
swscale/alphablend: don't overread alpha plane on subsampled odd size
avfilter/avfiltergraph: add logging for filter formats
vf_bwdif: add AVX512 implementation
avfilter/vf_thumbnail: fix buffer overflow for odd sized HBD inputs
avfilter/vf_libplacebo: whitelist properties on linear blend tex
avfilter/vf_libplacebo: simplify unnecessary indirection
avfilter/vf_libplacebo: skip empty inputs
avfilter/vf_libplacebo: skip rendering fully invisible planes
avfilter/vf_libplacebo: flush render cache when input is invisible
avfilter/vf_libplacebo: use the first visible input for metadata
avfilter/vf_libplaceb: use TS2T() macro
avutil/hwcontext_vulkan: also re-query dprops in device_init()
Nil Fons Miret (1):
libavfilter: guard against ff_draw_init/ff_draw_init2 failures
Nuo Mi (32):
avcodec: make a local copy of executor
avcodec/executor: remove unused ready callback
avcodec/vvc: simplify priority logical to improve performance for 4K/8K
avcodec/vvcdec: refact out deblock boundary strength stage
avcodec/vvcdec: misc, move pcmf from min_tu_tl_init to min_cb_nz_tl_init
avcodec/vvdec: refact, ff_vvc_deblock_bs use CodingUnit/TransformUnit instead of fc->tabs
avcodec/vvcdec: remove unused tb_pos_x0 and tb_pos_y0
avcodec/vvc/thread: Check frame to be non NULL
avcodec/cbs_h266: Fix regression in DVB clip introduced by 93281630a71c06642adfebebb0d4b105a4e02e91
avcodec/cbs_h266: check subpicture slices number
avcodec/vvcdec: ensure every CTU belongs to a slice
avcodec/cbs_h266: improve readability in subpicture parser
avcodec/cbs_h266: stricter validation for subpicture's max width and height
avcodec/vvcdec: inter_data, check the return value from hls_merge_data
avcodec/vvcdec: misc, reformat inter_data()
avcodec/vvcdec: schedule next stage only if the current stage reports no error
avcodec/vvcdec: return error if CTU size > 128
avcodec/vvcdec: remove vvc prefix for x86 and riscv
avcodec/hevcdec: remove hevc prefix for x86 asm files
lavc/vvc/refs: export keyframe and picture type in output frames
lavc/vvcdec: remove unneeded set_output_format
lavc/vvcdec: remove unneeded VVCContext->pix_fmt
lavc/vvcdec: ensure slices contain nonzero CTUs
lavc/vvcdec: refact, set AVCodecContext->has_b_frames in sps_export_stream_params
lavc/vvcdec: export stream level VUI information
lavc/vvcdec: fix undefined reference to ff_h2645_pixel_aspect
x86/vvcdec: misc, reordered functions in dsp_init for improved readability
checkasm: hevc sao_edge, benchmarking inside the width loop is meaningless
checkasm: hevc sao, use checkasm_check_padded
build: fix windows build issue introduced by 45bea45
lavc/vvc/plt: validate run and signalled_entries
CODEOWNERS: Add myself for VVC
NyanMaths (1):
avformat/ipfsgateway: fix capitalizaton mistake
Oliver Chang (1):
avcodec/prores_raw: Fix heap buffer overflow
Osamu Watanabe (2):
avcodec/jpeg2000: Improve FF_DWT97_INT to pass ISO/IEC 15444-4 conformance tests
avcodec/jpeg2000: Fix undefined behaviour in left shift operations
Patrice Dumas (1):
doc/t2h: Support texinfo 7.1 and 7.2 pretest
Paul B Mahol (3):
avformat/mm: fix packets pts generation and add seek support
avcodec: add ADPCM IMA XBOX decoder
avfilter/avfiltergraph: fix regression in picking channel layout
Pavel Koshevoy (6):
lavfi/vf_zscale: fix tmp buffer ptr alignment for zimg_filter_graph_process
lavfi/vf_zscale: fix call to av_pix_fmt_count_planes
avutil/frame: also align data pointers in av_frame_get_buffer()
avformat/mov: (v4) fix get_eia608_packet
avformat/mpegts: update stream info when PMT ES stream_type changes
avformat/demux: Fix segfault due to avcodec_open2 failure
Pavel Roslyy (1):
libavcodec/hcadec: fix header parsing after 'comp' section
Peter Ross (58):
avcodec/vp56: decode interlace content
fate/vp60-interlace: add test
avformat/rmdec: support RMHD file format
avcodec/rv60: RealVideo 6.0 decoder
fate/rv60: add test
avcodec/rv60: negative qp guard
avcodec/rv60: check init_get_bits8 return value
avcodec/rv60: prevent decode_cu_r segfault
avcodec/rv60: prevent decode_cu_r deadlock
avcodec/rv60: align calc_sel_qp with reference decoder
avcodec/rv60: set populate_ipred src parameter to const
avcodec/eatgq: decode motion vector macroblocks
avcodec/rv60: loosen fill_mv_skip_cand top right and bottom left criteria
avcodec/rv60: simplify fill_mv_skip_cand
avcodec/rv60: consistent indentation
configure: add rv60 decoder golomb dependency
avcodec/mm: set audio pts proportionally to audio offset
avcodec/mm: decode partial palette
avcodec/mm: don't fail if x offset exceeds frame width
avcodec/mm: decode raw chunk type and skip unknown audio chunk type
avformat/mm: add fallthrough comment
avcodec/leaddec: support format 0x6
configure: add leaddec blockdsp dependency
configure: add iso_writer golomb dependency
avformat/Makefile: add iso_writer golomb_tab from shared library dependency
avformat/iff: SndAnim decoding
avformat/Makefile: include object files for image_vbn_pipe demuxer
avcodec/Makefile: include aom_film_grain.o file for h264_sei component
avformat/riff: map 0069 twocc to ADPCM IMA XBOX decoder
avformat/iff: remove surplus if statement
avformat/mlvdec: demux LJ92 huffman comressed frames
avformat/mlvdec: process VERS block
avformat/mlvdec: skip over some other known block types
avformat/wtvenc: do not output negative 'third timestamp' field
avformat/iff: ignore FVER tag when not processing DSD/DST files
avcodec/leaddec: support format 0x1006
configure: add celp_math component
avcodec/tests/dct: add CONFIG_PRORES_DECODER guard
configure: cbs_apv depends on cbs
configure: h264_vulkan_encoder depends on atsc_a53
avcodec/mips: fix build failure when specific decoder/encoder enabled
avcodec/g728_template: do_hybrid_window() template
avcodec/g728_template: make hist parameter constant
avcodec/lpc_functions: compute_lpc_coefs: add starting lpc order and err cache parameters
avcodec/g728dec: G.728 decoder
avformat/g728dec: raw G.728 demuxer
avformat/riff: G.728 muxing and demuxing
avformat/aiff: G.728 muxing and demuxing
avformat/rtp: G.728 muxing and demuxing
avcodec/rv60dec: drop unused sum variable in read_slice_sizes
tools/pktdumper: dump extradata buffers
avcodec/adpcm: Sanyo LD-ADPCM decoder
avcodec/adpcm: squelch uninitialized variable warnings
avcodec/g728dec: align static arrays to 32-byte boundary
tests/fate/audio: G.728 test case
tests/fate/demux: IFF ANIM test case
tests/fate/video: LEAD MCMP test case
tests/fate/audio: Sanyo LD-ADPCM test case
Peter Zebühr (1):
Make mime-type award a bonus probe score
Pierre-Anthony Lemieux (1):
jpeg2000dec: fix tile-part header state reset
Pradeep Kumar Goudagunta (1):
fftools/ffmpeg_opt: Fix precedence issue in abs_start_seek calculation
Ramiro Polla (28):
avcodec/flashsvenc: add compression_level option
tests/fate: disable compression for zlib-based codecs
avdevice/dshow: fix unused variable warning
swscale/range_convert: call arch-specific init functions from main init function
swscale/range_convert: drop redundant conditionals from arch-specific init functions
swscale/range_convert: indent after previous commit
checkasm: use FF_ARRAY_ELEMS instead of hardcoding size of arrays
checkasm/sw_range_convert: use YUV pixel formats instead of YUVJ
checkasm/sw_range_convert: reduce number of input sizes tested
checkasm/sw_range_convert: only run benchmarks on largest input width
checkasm/sw_range_convert: test all supported bit depths
checkasm/sw_range_convert: indent after previous couple of commits
tests/fate/filter-video: don't convert owdenoise test to mpeg range
checkasm/sw_range_convert: test negative input values
swscale/range_convert: saturate output instead of limiting input
swscale/aarch64/range_convert: saturate output instead of limiting input
swscale/range_convert: fix mpeg ranges in yuv range conversion for non-8-bit pixel formats
swscale/x86/range_convert: update sse2 and avx2 range_convert functions to new API
swscale/aarch64/range_convert: update neon range_convert functions to new API
swscale/x86: add sse4 and avx2 {lum,chr}ConvertRange16
swscale/aarch64: add neon {lum,chr}ConvertRange16
aarch64: increase default alignment for functions and constants
build: remove unused SLIBOBJS variable
swscale/swscale_unscaled: fix planarCopyWrapper() for yuv444p => yuva444p
swscale/swscale_unscaled: fix packed30togbra10() for formats with bpc between 9-14 bits
swscale/swscale_unscaled: fix packed16togbra16() for formats with bpc between 9-14 bits
swscale/swscale_unscaled: fix planarRgbToplanarRgbWrapper() for formats with bpc between 9-14 bits
fftools/Makefile: clean files from fftools/{graph,textformat}/
Richard Mitic (1):
libaformat/mp3dec: Register the MIME type "audio/mpeg" to the mp3 decoder.
Romain Beauxis (9):
tests: Add stream dump test API util, use it to dump stream data for chained ogg/{vorbis, opus, flac} streams.
libavformat/oggdec.h: Document packet function return value.
libavformat/oggdec.{c, h}: Implement packet skip on packet return value of 1
ogg/flac: implement header packet skip in chained ogg bitstreams.
ogg/opus: implement header packet skip in chained ogg bitstreams.
libavformat/oggdec.{c, h}: Add new_extradata, use it to pass extradata to the next decoded packet.
ogg/vorbis: factor out header processing logic.
ogg/vorbis: implement header packet skip in chained ogg bitstreams.
libavformat/oggdec.h: Change paket function documentation to return 1 on header packets only.
Ronald S. Bultje (2):
enc_recon_frame_test: don't print an error on EOF.
threadprogress: reorder instructions to fix race.
Ronan Waide (1):
avcodec/dvbsubenc: add a min_bpp option to work around some decoders
Russell Greene (1):
hwcontext_vulkan: fix exporting multi-plane DRM modifiers
Rémi Bernon (1):
avformat/mov: Store trak > udta metadata on each stream
Rémi Denis-Courmont (20):
lavc/h264dsp: optimise R-V V weight for shorter heights
lavc/h264dsp: unroll R-V V weight16
lavc/h264dsp: optimise R-V V biweight for shorter heights
riscv/vvc: fix UNDEF whilst initialising DSP
lavc/h264dsp: move RISC-V fn pointers to .data.rel.ro
lavc/h264dsp: remove RISC-V table alignment
lavc/vp8dsp: remove RISC-V table alignment
tests/cpu: print the RISC-V Vector length
checkasm: add RISC-V vector width to arch info
sws/range_convert: fix RISC-V chrFromJpeg
lavc/h264idct: fix RISC-V group multiplier
lavu/riscv: fix compilation without Vector support
lavc/h264dsp: fix R-V V weight_pixels pointer arithmetic
riscv/h264dsp: remove spurious instruction
riscv: remove unnecessary #include's
lavu/float_dsp: fix compilation with RISC-V ILP32 ABI
lavc/pixblockdsp: fix compilation for RV32IMA
lavc/vp8dsp: fix compilation for RV32IMA
lavc/h264idct: fix compilation for RV32IMA
lavc/h264dsp: R-V V intra loop filter
Scott Theisen (10):
avformat/mpegts: add support for ATSC E-AC-3 streams
avformat/mpegts: add DVB descriptor_tag values already in use
libavcodec/mpeg12dec.c: support DVB CC format 0x0502 in user_data
avformat/mpegts*: reduce use of magic numbers
avformat/mpegts: is_pes_stream() use switch case
libavcodec/v4l2_buffers.c: set AVFrame interlaced flags
libavcodec/mpeg12dec: append CC data to a53_buf_ref
avcodec/mpeg12dec: rename 0x0502 CC format
avcodec: add AV_CODEC_ID_IVTV_VBI
avformat/mpeg: demux ivtv captions
Sean McGovern (8):
libavutil/ppc: defines involving bit shifts should be unsigned
libavcodec: various: remove empty directories originally for legacy DSP code
swscale/ppc: disable YUV2RGB AltiVec acceleration
avcodec/svq1enc: restrict Altivec acceleration to big-endian POWER configurations
libpostproc: deprecate the AMD 3DNow! define
libpostproc: update APIChanges and version for "deprecate the AMD 3DNow"
configure: add POWER9 & 10 cpus
CODEOWNERS: add myself for lib{avcodec,avutil,swscale}/ppc/
Shaun Loo (4):
x86/hevcdec: sao, refact out h26x macros
x86/hevcdec: refact, remove duplicate code in HEVC_SAO_{BAND, EDGE}_FILTER
x86/vvcdec: sao, add avx2 support
checkasm: add vvc_sao
Shiyou Yin (2):
avcodec: Fix fate-checkasm-hevc_pel failed on LA.
configure: identify loong64 for loongarch
Shreesh Adiga (3):
swscale/x86/rgb2rgb: add AVX512ICL versions of shuffle_bytes
swscale/x86/rgb2rgb: add AVX512ICL version of uyvytoyuv422
swscale/x86/rgb2rgb: optimize AVX2 version of uyvytoyuv422
Soma Lucz (1):
doc/ffmpeg: improve -disposition, -stats, and -progress documentation
Stefan Pöschel (1):
doc/protocols: fix/improve RTP documentation
Steven Liu (3):
avformat/whip: Remove unnecessary pkt checks
avformat/whip: check the exchange sdp url is start with http
tests/fate/hlsenc: add testcase of hls fragment mp4 named cmfa
Steven Zhou (1):
avfilter/drawtext: fix memory leak when using "reinit" runtime command
Thierry Foucu (1):
libavformat/takdec.c: Fix msan error
Thomas Guillem (1):
avcodec/decode: clean-up if get_hw_frames_parameters fails
Thomas Guillory (1):
libavfilter/vf_overlay: fix the displayed flags in CLI documentation
Timo Rothenpieler (101):
avcodec/nvenc: set bitstreamRestrictionFlag when neccesary
avformat/hevc: add support for writing alpha layer
avcodec/libx265: add alpha layer encoding support
avformat/flvenc: remove !size check for audio packets
avformat/flvdec: add enhanced audio codecs
avformat/flvenc: refactor fourcc writing
avformat/flvenc: write enhanced rtmp multichannel info for audio with more than two channels
avformat/flvdec: parse enhanced rtmp multichannel info
avformat/flvenc: add support for writing multi track audio
avformat/flvdec: add support for reading multi track audio
avformat/rtmpproto: add more enhanced rtmp codecs
avformat/flvdec: stop shadowing local variables
avformat/flvdec: support all multi-track modes
avformat/rtmpproto: reserve enough space for statusmsg
fate/flvenc: add test for multitrack flv
avformat/flvenc: prevent writing legacy codecs into extended video tracks
avformat/flvdec: propagate av_packet_add_side_data failure
avformat: bump version for enhanced flv
avformat/flvdec: add missing track_size decrement
avformat/flvdec: fix potential premature return on audio MultichannelConfig
avformat/flvdec: clean up variable initialization spacing
avformat/flvenc: properly handle writing mpeg4 extradata
avformat/flvdec: properly free mt_extradata
avformat/flvdec: don't leak extradata pointer on realloc failure
avformat/flvdec: add support for legacy HEVC files
avformat/flvdec: implement support for parsing ModEx data
avformat/flvdec: correctly skip command frame for enhanced flv
avcodec/nvenc: use encoder level options for qmin/qmax
avcodec/nvenc: finalize SDK 13.0 support
avfilter/vf_amf_common: fix build
avcodec/cuviddec: correctly handle buffer size and status when deinterlacing
avutil/timecode: add ff_timecode_set_smpte
avcodec/utils: use new ff_timecode_set_smpte function
avcodec/nvenc: add time code writing for h264
avcodec/nvenc: factor out mastering display data into its own function
avcodec/Makefile: remove redundant object
avcodec/cuviddec: use pre-existing chroma format information
avcodec/Makefile: fix build of exr decoder in odd configs
avcodec/tableprint_vlc: fix build with --enable-hardcoded-tables
compat/cuda: add device side printf function
avcodec/cuviddec: print error when queueing frames fails
avcodec/cuviddec: only flush cuvid when output queue is empty
fftools/resources: add missing extensions to .gitignore
ffbuild: correctly silence and tag new css/html steps
avformat/Makefile: don't hardcode openssl for whip muxer
avformat/whip: use av_dict_set_int for int
avformat/whip: don't leak options dict
avformat/whip: remove redundant WHIP: prefix from all logging
avformat/tls: use non protocol specific error message
avformat/tls: don't use http_proxy for udp sockets
avformat/udp: don't override 0 localport
avformat/tls: fix udp init
avformat/tls_openssl: use existing context handle
avformat/tls: remove unused fingerprint option
avformat/tls: clean up new whip options
avformat/whip: fix format string for printing size_t
avcodec/nvdec: fix 10bit output pixel formats
avformat/tls: move whip specific init out of generic tls code
avformat/udp: make recv addr of each packet available
avformat/udp: separate rx and tx fifo
avformat/udp: add function to set remote address directly
avformat/tls: make passing an external socket universal
avformat/tls_schannel: add DTLS support
avformat/tls_schannel: add option to load server certificate from store
avformat/tls_schannel: fix non-blocking write breaking TLS sessions
avutils/pixfmt: add YUV444/GBRP 10 and 12 bit MSB formats
swscale: add support for new 10/12 bit MSB formats
avcodec/nvenc: add support for new 10 bit MSB pixel formats
avcodec/nvdec: switch to proper pixfmts on next major bump
avformat/tls_openssl: set dtls remote addr in listen mode
avformat/tls_openssl: force dtls handshake to be blocking
avformat/tls_openssl: don't abort if dtls has no key/cert set
avformat/tls_openssl: initialize DTLS context with correct method
avformat/tls_openssl: set default MTU if none is set
avformat/tls_openssl: properly limit written size to data mtu
avformat/tls_openssl: don't hardcode ciphers and curves for dtls
avformat/tls_openssl: clean up peer verify logic in dtls mode
avformar/tls_openssl: use correct info callback in DTLS mode
avformat/tls_openssl: don't enable read_ahead in dtls mode
avformat/tls_openssl: properly free generated/read keys and certificates
avformat/tls_openssl: don't expose deprecated EC_KEY outside of its function
avformat/tls_openssl: make generating fingerprints optional
avformat/tls_openssl: automatically generate self-signed certificate when none is provided in listen mode
avformat/flvdec: don't skip backwards or over EOF
avformat/tls_openssl: unset nonblock flag on correct URLContext during dtls handshake
avformat/tls_openssl: avoid unusual inline-if style
forgejo/workflows: add initial rudimentary CI
forgejo/workflows: add issue/PR auto labeler
avcodec/cuviddec: also reflect new pix_fmts in cuvid_handle_video_sequence
avcodec/cuviddec: fix wrong 10bit 420 format in cuvid_handle_video_sequence
forgejo/workflows: use explicit token with issue write permission
forgejo/workflows: only upload cache if key changed
forgejo/workflows: add compile-only test for win64
avcodec/mfenc: fix compilation on modern gcc/clang
avcodec/mfenc: remove unused variables
avfilter/vf_scale_d3d11: remove unused variable
all: fix whitespace/new-line issues
all: fix typos found by codespell
forgejo/workflows: add pre-commit based linting
forgejo/CODEOWNER: forgejo uses regex to match paths
avformat/tls: switch on peer certificate verification by default
Timothee (1):
avfilter/codecview: Enable QP visualization for H.264
Tobias Rapp (2):
avcodec/dxva2: Fix compilation with Mingw-w64
avfilter/vf_setparams: Fix chroma_location being cleared
Tomas Härdin (7):
lavf/mxfdec: Speed up klv_read_packet()
lavf/mxfdec: Speed up mxf_edit_unit_absolute_offset()
lavf/mxfdec: Remove a call to avio_tell() in klv_read_packet()
lavf/mxfdec: Set a scan direction explicitly
lavf/mxfenc: Use nb_components, not av_pix_fmt_count_planes()
lavf/mxfenc: Make write_desc return int
lavf/mxfenc: Return AVERROR(EINVAL) in mxf_write_jpeg2000_subdesc() is pixfmt not set
Tong Wu (1):
d3d12va_encode_hevc: use base to init VPS/SPS/PPS
Tristan Matthews (5):
speexdec: fix framesize for ultra-wideband
doc/examples/filter_audio: use av_err2str
doc/examples/qsv_decode: use av_err2str
checkasm: add checkasm_check_dctcoef
checkasm: h264dsp: test luma_dc_dequant
Ulrik (2):
avformat/http: Return EIO for prematurely broken connection
avformat/flacdec: Return correct error-codes on read-failure
Ulrik Mikaelsson (1):
avformat/mp3dec: Subtract known padding from duration
Viraaj Raulgaonkar (1):
avformat/riffdec: change declaration of ff_get_wav_header()
Vitaly Buka (1):
avcodec/hevc/hevcdec: Don't add to null pointer
Vittorio Giovara (2):
mov: Export frame packing information from pack box
lavu/spherical: Add support for Spherical Immersive type
Vittorio Palmisano (2):
libavfilter: Whisper audio filter
libavfilter: add af_whisper codeowner
Wu Jianhua (55):
avcodec/vvc/cabac: add 9.3.3.5 k-th order Exp - Golomb binarization process
avcodec/vvc/cabac: add 9.3.3.7 Fixed-length binarization process
avcodec/vvc/cabac: add palette support
avcodec/vvc: add VVC_MAX_NUM_PALETTE_PREDICTOR_SIZE
avcodec/vvc/ctu: refact out ff_vvc_channel_range
avcodec/vvc: refact out ep_init and ep_init_wpp
avcodec/vvc: refact, save pf and ciip_flag in ff_vvc_set_intra_mvf
avcodec/vvc/ctu: refact out intra_data
avcodec/vvc/intra: add ff_vvc_palette_derive_scale
avcodec/vvc/ctu: add palette support
avcodec/vvc/filter: skip deblocking filter for palette
avcodec/vvc/intra: add palette coding decoder
avcodec/vvc/cabac: add ff_vvc_cu_act_enabled_flag
avcodec/vvc/ctu: read act_enabled_flag for adaptive color transform
avcodec/vvc/ctu: fix derive_chroma_intra_pred_mode
avcodec/vvc/dsp: update the interface of pred_residual_joint for joint cbcr residual functionality
avcodec/vvc/dsp: add adaptive_color_transform
avcodec/vvc/intra: fix scaling process for transform coefficients
avcodec/vvc/intra: refact, predict jcbcr to tb->coeffs
avcodec/vvc/intra: make lmcs_scale_chroma inplace
avcodec/vvc/intra: refact out lmcs_scale_chroma and add_residual
avcodec/vvc: add adaptive color transform support
Changelog: VVC supports all content of SCC
avcodec/cbs_h2645: add cbs_sei_h274_types
avcodec/cbs_sei_syntax_template: add sei message film_grain_characteristics
avcodec/vvc: support decoding prefix and suffix nal units
avcodec/vvc/sei: add decode_film_grain_characteristics
avcodec/vvc/dec: export sei to the frame when the frame starts
avcodec/vvc/dec: support applying film grain by the decoder
avcodec/vvc/dec: support removing film grain params from side data
avcodec/h274: add H274SEIPictureHash struct
avcodec/vvc/sei: add decode_decoded_picture_hash
avcodec/h274: add ff_h274_hash functions
avcodec/vvcdec: verify picture hash
avcodec/cbs_sei_syntax_template: add sei message sei_display_orientation
avcodec/vvc/sei: add decode_display_orientation
avcodec/vvc/sei: add decode_content_light_level_info
avcodec/cbs_sei_syntax_template: add sei message frame_field_information
avcodec/h274: add H274SEIFrameFieldInfo struct
avcodec/vvc/sei: add decode_frame_field_info
avcodec/vvc: support fields
avcodec/vvc/sei: add decode_ambient_viewing_environment
avcodec/vvc/sei: add decode_mastering_display_colour_volume
MAINTAINERS: add myself as vvc maintainer
avformat/Makefile: fix error unresolved external symbol ff_dtls_protocol
avcodec/vvc/ctu: should use the width and height of the start component
avcodec/h274: fix hash verification on BE
avcodec/vvc/dec: fix typo and also output log when the checksum is correct
fate/vvc: add vvc-conformance-10b422_L_5
fate/vvc: add vvc-conformance-ACT_A_3
fate/vvc: add vvc-conformance-FIELD_A_4
CODEOWNERS: Add myself for VVC
MAINTAINERS: add myself as hwcontext_d3d12va maintainer
mailmap: add entry for myself
forgejo/CODEOWNERS: add myself to d3d12va
Yalda (1):
forgejo/ISSUE_TEMPLATE: create Issue ticket template based on TRAC form
Zhao Zhili (104):
avformat/internal: Add ff_get_frame_filename
avformat/img2enc: Fix integer truncation when frame_pts is enabled
aarch64/vvc: Add w_avg
aarch64/vvc: Add dmvr_hv
aarch64/vvc: Add dmvr
avcodec/vvc: Don't use large array on stack
avcodec/mediacodecenc: Fix access of uninitialized value
fftools/ffplay: use swapchain_colorspace_hint to get better HDR support
avcodec/mediacodecenc: Extract configOBUs from AV1CodecConfigurationRecord
avcodec/mediacodecdec_common: Workaround MTK broken crop implementation
tests/fate-run: Fix pixdesc failure
fate/vvc: Add a sample which lose frames before 5c66a3
x86/vvc: Fix build error for arch x86_32
fftools/ffplay_renderer: Fix a typo
avcodec/mediacodecdec: Add operating_rate option
avcodec/mediacodecenc: Add operating_rate option
avcodec/mediacodec_wrapper: add async mode support
avcodec/mediacodecenc: add async mode support
avfilter/textutils: Add missing time_internal.h
avcodec/cavs: Limit align requirement to variable than type
avutil/mem_internal: define DECLARE_ALIGNED as C11's alignas
avutil/mem_internal: local align should always work
avutil/mem_internal: Don't use alignas for MSVC
configure: Add wasm as a fake arch
tests/checkasm: Add partial support for wasm
avcodec/hevc: Add wasm simd128 idct
tests/checkasm: Simplify logic for WASI signal handling
avcodec/mediacodecenc: Check fifo write result and simplify fifo operation
aarch64/vvc: Reuse ff_vvc_put_pel_pixels for chroma
aarch64/vvc: Use faster clip operation
aarch64/vvc: Fix clip in alf
avutil/vulkan_glslang: Fix build failure
aarch64/vvc: Add apply_bdof
avcodec/bit_depth_template: Remove empty macro INIT_CLIP
avcodec/cuviddec: Fix missing HW_CONFIG_METHOD_HW_FRAMES_CTX flag
avcodec/mediacodecenc: Support config qp range
avcodec/vvc: Add support for output_corrupt/showall flags
avcodec/nvenc: Enable recovery point SEI for intra refresh mode
avformat/seek: Remove dead code
avformat/seek: Remove always true condition
avformat/matroskaenc: log unsupported subtitle codec name
avcodec/hevc: Rewrite scalability_mask_flag parse in decode_vps_ext
avcodec/hevc/ps: Add basic HEVC_SCALABILITY_AUXILIARY support
avcodec/hevc: Add alpha layer support
avutil/frame: Fix direct pointer compare between different array
avcodec/hevc: Parse recovery point SEI
avcodec/hevc: Add support for output_corrupt/showall flags
tests: Add fate-hevc-alpha
avcodec/ffv1_parser: Rename close to ffv1_close
avformat/movenc: Add AVS3 support
avformat/isom_tags: Add tag for AVS3
avcodec/libuavs3d: process extradata
aarch64/hevcdsp_idct_neon: Optimize idct dc
aarch64/hevcdsp_idct_neon: Add implementation for idct dc 12
tests: Add enhanced-flv-hevc-hdr10 for demux and mux HDR color info
avformat/flvdec: Fix use sizeof(AVMasteringDisplayMetadata)
avformat/flvdec: Put FLVMetaVideoColor inside FLVContext directly
avformat/flvdec: Remove one level of indentation
avformat/flvdec: Use appropriate types in FLVMetaVideoColor
avformat/flvdec: Use float for FLVMasteringMeta
avformat/flvdec: Fix error handling of parse_video_color_info
avformat/flvdec: Use appropriate error code
avcodec/videotoolboxenc: Add AYUV as a candidate pix_fmt for HEVC alpha
avcodec/vt: Don't restart decoder when confronted with ReferenceMissingErr
avformat/mov: generalize sgpd_sync index lookup
avcodec/avs3_parser: pixel format should be native endian
avcodec/libuavs3d: pixel format should be native endian
avcodec/decode: Fix avcodec parameters when bsfs are enable by decoder
avcodec/mediacodecdec: Reset optional fields when parse format
doc/filters: Fix video size of mptestsrc
avformat/mov: Reduce seek when interleaved_read is disabled
aarch64/h26x: optimize sao_band_filter
aarch64/h26x: Add put_hevc_pel_bi_w_pixels
avcodec/bsf/h264_mp4toannexb: Fix mixed bitstream format
avformat/hls: Fix get key file error
avformat/http: Ensure same protocol in ff_http_do_new_request2
avformat/hls: Return error code when read key file failed
avformat/allformats: Move avisynth and dvdvideo under external libraries group
Makefile: Remove postproc from ALLFFLIBS
avcodec/h2645_vui: Ensure color primaries/trc/space isn't reserved value
tests/fate/cbs: Add hevc metadata set color test
tests/fate/hevc: Fix dependancy for hevc-alpha
tests: Add fate-hevc-color-reserved
avformat/movenc: Fix flush fragment
avformat/movenc: Reduce loop iterations in mov_flush_fragment
avformat/tls: Fix integer overflow with option mtu
avformat/whip: Constify arguments in is_rtp_rtcp/is_rtcp
avformat/format: make experimental flag works for muxer
avcodec/libx264: Remove unnecessary include
avcodec/mediacodecdec: replace memset with direct zero init
avformat/movenc: Fix editlist with hybrid_fragmented
avcodec/mediacodecenc: Fix typo in VP9 option description
doc/encoders: Document mediacodec wrapper
avfilter/vf_libplacebo: Use new vulkan queue API
fftools/ffplay_renderer: Use new vulkan queue API
wasm/hevc: Add sao_band_filter
wasm/hevc: Add sao_edge_filter
avutil/hwcontext: Add ohcodec device and pixel format
avcodec/ohdec: Add h264/hevc OpenHarmony decoders
avcodec/ohenc: Add h264/hevc OpenHarmony encoders
avfilter/vf_blackdetect: Fix header guard
avformat/mxfenc: Ensure frame offset in valid range
avfilter/vf_vibrance: Update default value of rlum/blum
configure: Fix build with MSVC
arch1t3cht (1):
avfilter/vf_subtitles: Respect YCbCr Matrix header
asivery (1):
avformat/oma: Demux oma-encapsulated AAC audio
averne (7):
avcodec/h264: fix reference reordering
avcodec/nvdec_vc1: add marker insertion logic
vulkan: fix leak in FFVkExecPool
vulkan/ffv1dec: fix leak in FFVulkanDecodeShared
vulkan/ffv1dec: fix FFVkSPIRVCompiler leak
avcodec/proresdec: Remove grayscale hack
avcodec/proresenc_anatoliy: Remove support for grayscale flag
compn (4):
doc/git-howto: remove outdated line about gitolite
doc/infra: add more information and accounts
MAINTAINERS: remove arpi
doc/infra: add reddit sub, facebook page and wikipedia
dank074 (1):
avformat/unix: set is_streamed to true
ekir (1):
GOL-1361: Remove invalid CTTS sample_offset check
gnattu via ffmpeg-devel (1):
avcodec/bsf/dovi_rpu: remove EL when stripping dovi metadata
jinbo (1):
swscale: Fix conflicting types for loongarch
llyyr (3):
avformat/mpegts: correctly skip TP_extra_header in m2ts
avutil/hwcontext_vulkan: stop checking for deprecated and removed flag
avcodec/vulkan_{av1, h264, hevc}: demote per frame logs to AV_LOG_DEBUG
nyanmisaka (4):
avformat/movenc: handle EAC-3 extension bits for Atmos
avcodec/amfdec: Add VP9 AMF decoder
lavu/hwcontext_vaapi: fix a race mapping to allow CSC to YUV420P
lavu/hwcontext_vaapi: drop a redundant check
rcombs (5):
lavu/aes: add x86 AESNI optimizations
checkasm: add tests for AES
lavu/dict: add AV_DICT_DEDUP
lavf/metadata: support duplicate keys in ff_metadata_conv
lavf/id3v2dec: support multiple values and TIPL frames
sfan5 (1):
avformat/file: add missing null check in Android content resolver
softworkz (43):
avutil/log: support logging of date and time information
fftools/opt_common: add time and datetime log flags
avformat/hls: Partially revert "reduce default max reload to 3"
avcodec/vlc: Reduce debug logging
avformat/webvttdec: Add webvtt extension and MIME type
MAINTAINERS: Add myself
fftools/textformat: Extract and generalize textformat api from ffprobe.c
fftools/ffprobe: Change to use textformat api
fftools/ffprobe: Rename writer_print_section_* and WriterContext
fftools/ffprobe: Rename AVTextFormatContext variables (w => tfc)
avformat/hls demuxer: Add WebVTT subtitle support
avcodec/dvbsubdec: Fix conditions for fallback to default resolution
avformat/dump: Print stream start offsets for input streams
ffmpeg/repo: Add dot-folders in the repository root to .gitignore
avutil/log,hwcontext: Add AV_CLASS_CATEGORY_HWDEVICE
avutil/hwcontext: Add item_name function for AVHWDeviceContext
avformat/dump: Stream start offsets: change precision and label
avutil/opt: Print default option value for AV_OPT_TYPE_INT64
fftools/ffmpeg: Include elapsed-time in print_report()
libavformat/asfdec: Fix regression bug when reading image attachments
fftools/ffmpeg: Log exit code on exit
fftools/ffprobe: Disable stderr buffering on Windows
fftools/textformat: Apply formatting and whitespace changes
fftools/textformat: Apply quality improvements
fftools/textformat: Remove unused print_rational() pointer from AVTextFormatter
fftools/textformat: Rename name param to key for API consistency
fftools/avtextformat: Re-use BPrint in loop
fftools/textformat: Introduce AVTextFormatOptions for avtext_context_open()
fftools/textformat: Introduce common header and deduplicate code
fftools/tf_internal: Use av_default_item_name
fftools/textformat: Add flags param to function avtext_print_integer()
fftools/ffmpeg_filter: Move some declaration to new header file
avfilter/avfilter: Add avfilter_link_get_hw_frames_ctx()
fftools/resources: Add resource manager files with build-time compression
fftools/ffmpeg_mux: Make ms_from_ost() inline
fftools/graphprint: Add execution graph printing
fftools/graphprint: Now, make it a Killer-Feature!
Revert "fftools/graphprint: Now, make it a Killer-Feature!"
fftools/makefile: Remove resources from ffprobe
fftools/ffmpeg: Free print_graph option variables
fftools/graphprint: Fix memory leaks
fftools/tf_mermaid: Add missing uninit and fix leaks
MAINTAINERS: Add myself for graph printing
sunyuechi (11):
lavc/vvc_mc: R-V V avg w_avg
checkasm/rv40dsp: cover more cases
lavc/rv40dsp: fix RISC-V chroma_mc
Update R-V V vvc_mc vset to support more lengths
lavc/vvc_mc: R-V V dmvr
lavc/riscv: Move VVC macro to h26x
lavc/vvc_mc: R-V V put_pixels
lavc/hevc: R-V V put_pixels(pow2)
lavc/vvc_mc R-V V sad
lavc/riscv: vset macro for simplify if-else
Fix the tail handling in R-V V sad
tangsha (1):
delete unused variable ret
vectronic (2):
avformat/mov: if pos has been reset, clear fragments and indexes and search for next root
avformat/hls: improve comment
vipyne (1):
configure: suggest installing nasm before using --disable-x86asm
vytskalt (2):
hwcontext_vulkan: transfer exclusive images to correct queue family in drm->vulkan mapping
hwcontext_vulkan: transfer EXCLUSIVE images to correct queue families
wang-bin (1):
lavc/videotoolboxenc: add hevc main42210 and p210
wangbin (2):
avdevice/android_camera: Set image linesize aligment to 1
configure: fix -L flags for lld-link
xiongweixiao (1):
lavf: vvc_probe: lower probe score for invalid SPS/PPS/IRAP order to avoid misdetection of mp3 as VVC
yuanhecai (1):
loongarch: fixes fate-checkasm-sw_rgb failure
zhaozhenghang (1):
libavformat/mov.c: Fix "statement will never be executed" warning
-----------------------------------------------------------------------
hooks/post-receive
--
1
0
[ffmpeg] branch master updated. f62d878911 .forgejo/CODEOWNERS: add myself for various files
by ffmpeg-git@ffmpeg.org 22 Aug '25
by ffmpeg-git@ffmpeg.org 22 Aug '25
22 Aug '25
The branch, master has been updated
via f62d8789116fef8d8cd7f20062b16ccd93f7ce23 (commit)
from 5ed1d7279298cfc218a9b989cad4d1b97a066e8d (commit)
- Log -----------------------------------------------------------------
commit f62d8789116fef8d8cd7f20062b16ccd93f7ce23
Author: Peter Ross <pross(a)xvid.org>
AuthorDate: Thu Aug 21 19:58:03 2025 +1000
Commit: Peter Ross <pross(a)xvid.org>
CommitDate: Fri Aug 22 08:01:26 2025 +0000
.forgejo/CODEOWNERS: add myself for various files
diff --git a/.forgejo/CODEOWNERS b/.forgejo/CODEOWNERS
index 348bae580c..39abd7a832 100644
--- a/.forgejo/CODEOWNERS
+++ b/.forgejo/CODEOWNERS
@@ -12,30 +12,59 @@
# =======
libavcodec/.*aac.* @lynne
libavcodec/.*ac3.* @lynne
-libavcodec/.*adpcm.* @zane
+libavcodec/.*adpcm.* @zane @pross
+libavcodec/anm.* @pross
+libavcodec/ansi.* @pross
libavcodec/.*atrac9.* @lynne
+libavcodec/bink.* @pross
+libavcodec/bintext.* @pross
libavcodec/.*bitpacked.* @lynne
libavcodec/.*d3d12va.* @jianhuaw
libavcodec/.*dirac.* @lynne
+libavcodec/dpx.* @pross
+libavcodec/dsd.* @pross
+libavcodec/eacmv.* @pross
+libavcodec/eaidct.* @pross
+libavcodec/eamad.* @pross
+libavcodec/eat.* @pross
libavcodec/.*ffv1.* @lynne @michaelni
+libavcodec/g728.* @pross
+libavcodec/gem.* @pross
libavcodec/golomb.* @michaelni
libavcodec/.*h266.* @frankplow @NuoMi @jianhuaw
libavcodec/h26x/.* @frankplow @NuoMi @jianhuaw
+libavcodec/iff.* @pross
libavcodec/.*jpegxl.* @lynne @Traneptora
+libavcodec/jv.* @pross
libavcodec/.*jxl.* @lynne @Traneptora
+libavcodec/lead.* @pross
+libavcodec/mmvideo.* @pross
+libavcodec/msp2.* @pross
+libavcodec/mvc.* @pross
libavcodec/.*opus.* @lynne
+libavcodec/pictor.* @pross
libavcodec/.*png.* @Traneptora
libavcodec/.*prores.* @lynne
libavcodec/rangecoder.* @michaelni
libavcodec/ratecontrol.* @michaelni
+libavcodec/rv60.* @pross
+libavcodec/sgirle.* @pross
libavcodec/.*siren.* @lynne
libavcodec/smpte_436m.* @programmerjake
+libavcodec/svq1.* @pross
+libavcodec/svq3.* @pross
libavcodec/.*vc2.* @lynne
-libavcodec/vp8.* @rbultje
+libavcodec/vp3.* @pross
+libavcodec/vp4.* @pross
+libavcodec/vp5.* @pross
+libavcodec/vp6.* @pross
+libavcodec/vp8.* @rbultje @pross
libavcodec/vp9.* @rbultje
-libavcodec/vpx.* @rbultje
+libavcodec/vpx.* @rbultje @pross
+libavcodec/vqc.* @pross
libavcodec/.*vvc.* @frankplow @NuoMi @jianhuaw
libavcodec/wmavoice.* @rbultje
+libavcodec/wbmp.* @pross
# bitstream filters
libavcodec/bsf/eia608_to_smpte436m.* @programmerjake
@@ -65,16 +94,38 @@ libavfilter/x86/colorspace.* @rbultje
# =======
libavformat/alp.* @zane
libavformat/amv.* @zane
+libavformat/anm.* @pross
libavformat/apm.* @zane
libavformat/argo_.* @zane
+libavformat/bink.* @pross
+libavformat/bintext.* @pross
+libavformat/caf.* @pross
+libavformat/cine.* @pross
+libavformat/dsf.* @pross
+libavformat/eacdata.* @pross
+libavformat/electronicarts.* @pross
+libavformat/filmstrip.* @pross
+libavformat/frm.* @pross
libavformat/iamf.* @jamrial
+libavformat/ico.* @pross
+libavformat/iff.* @pross
libavformat/.*jpegxl.* @Traneptora
+libavformat/jv.* @pross
libavformat/.*jxl.* @Traneptora
libavformat/kvag.* @zane
libavformat/mccdec.* @programmerjake
libavformat/mccenc.* @programmerjake
+libavformat/mlv.* @pross
+libavformat/mm.* @pross
+libavformat/msp.* @pross
+libavformat/mv.* @pross
libavformat/pp_bnk.* @zane
+libavformat/rm.* @pross
+libavformat/sauce.* @pross
libavformat/scd.* @zane
+libavformat/tty.* @pross
+libavformat/wsd.* @pross
+libavformat/wtv.* @pross
# avutil
# ======
-----------------------------------------------------------------------
Summary of changes:
.forgejo/CODEOWNERS | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++---
1 file changed, 54 insertions(+), 3 deletions(-)
hooks/post-receive
--
1
0
[ffmpeg] branch release/8.0 updated. 140fd653ae Changelog: Remove "version <next>"
by ffmpeg-git@ffmpeg.org 22 Aug '25
by ffmpeg-git@ffmpeg.org 22 Aug '25
22 Aug '25
The branch, release/8.0 has been updated
via 140fd653aed8cad774f991ba083e2d01e86420c7 (commit)
from 09f15530e57729af55bcfda2f813e6a7a660c372 (commit)
- Log -----------------------------------------------------------------
commit 140fd653aed8cad774f991ba083e2d01e86420c7
Author: Michael Niedermayer <michael(a)niedermayer.cc>
AuthorDate: Fri Aug 22 01:57:24 2025 +0200
Commit: Michael Niedermayer <michael(a)niedermayer.cc>
CommitDate: Fri Aug 22 01:57:24 2025 +0200
Changelog: Remove "version <next>"
Signed-off-by: Michael Niedermayer <michael(a)niedermayer.cc>
diff --git a/Changelog b/Changelog
index 4b493c8e75..5411c268c5 100644
--- a/Changelog
+++ b/Changelog
@@ -1,8 +1,6 @@
Entries are sorted chronologically from oldest to youngest within each release,
releases are sorted from youngest to oldest.
-version <next>:
-
version 8.0:
- Whisper filter
-----------------------------------------------------------------------
Summary of changes:
Changelog | 2 --
1 file changed, 2 deletions(-)
hooks/post-receive
--
1
0
[ffmpeg] branch release/8.0 updated. 09f15530e5 RELEASE_NOTES: Based on the version from 5.1
by ffmpeg-git@ffmpeg.org 22 Aug '25
by ffmpeg-git@ffmpeg.org 22 Aug '25
22 Aug '25
The branch, release/8.0 has been updated
via 09f15530e57729af55bcfda2f813e6a7a660c372 (commit)
via af310e68db0791b94753a9670c9a9ef0d717e32a (commit)
via c3747e011e7c7107ad6ef4c9e0a1c26490e2c30f (commit)
via f258c9a8e5100a49d436c073bd06c2fdd8ad34ec (commit)
from a6c578ef6555fdb0af0789f8fc673f9188f4b0ec (commit)
- Log -----------------------------------------------------------------
commit 09f15530e57729af55bcfda2f813e6a7a660c372
Author: Michael Niedermayer <michael(a)niedermayer.cc>
AuthorDate: Fri Nov 2 01:36:21 2018 +0100
Commit: Michael Niedermayer <michael(a)niedermayer.cc>
CommitDate: Fri Aug 22 01:15:31 2025 +0200
RELEASE_NOTES: Based on the version from 5.1
Name suggested by 3 people on ML
Signed-off-by: Michael Niedermayer <michael(a)niedermayer.cc>
diff --git a/RELEASE_NOTES b/RELEASE_NOTES
new file mode 100644
index 0000000000..5e38471d36
--- /dev/null
+++ b/RELEASE_NOTES
@@ -0,0 +1,15 @@
+
+ ┌────────────────────────────────────────┐
+ │ RELEASE NOTES for FFmpeg 8.0 "Huffman" │
+ └────────────────────────────────────────┘
+
+ The FFmpeg Project proudly presents FFmpeg 8.0 "Huffman", about 11
+ months after the release of FFmpeg 7.1.
+
+ A complete Changelog is available at the root of the project, and the
+ complete Git history on https://git.ffmpeg.org/gitweb/ffmpeg.git
+
+ We hope you will like this release as much as we enjoyed working on it, and
+ as usual, if you have any questions about it, or any FFmpeg related topic,
+ feel free to join us on the #ffmpeg IRC channel (on irc.libera.chat) or ask
+ on the mailing-lists.
commit af310e68db0791b94753a9670c9a9ef0d717e32a
Author: Manuel Lauss <manuel.lauss(a)gmail.com>
AuthorDate: Thu Aug 21 20:05:41 2025 +0200
Commit: Michael Niedermayer <michael(a)niedermayer.cc>
CommitDate: Fri Aug 22 01:07:20 2025 +0200
avcodec/sanm: fix issues with FTCH offset hack
Just add an extra x/y offset parameter pair to process_frame_obj(),
and store the size of the data to FTCH in a separate context member.
The only valid sizes for FTCH are 6 and 12, reject any other.
Finally, if a FOBJ uses codecs37 and above, enforce it to be subversion 2,
to use the simpler STOR/FTCH method.
Fixes BIGSLEEP-440183164/process_ftch.anim
Signed-off-by: Manuel Lauss <manuel.lauss(a)gmail.com>
Signed-off-by: Michael Niedermayer <michael(a)niedermayer.cc>
(cherry picked from commit d311382c38df9c2237b33a9e8e860a5da7d2895d)
Signed-off-by: Michael Niedermayer <michael(a)niedermayer.cc>
diff --git a/libavcodec/sanm.c b/libavcodec/sanm.c
index 843a0679f6..4e18d1eada 100644
--- a/libavcodec/sanm.c
+++ b/libavcodec/sanm.c
@@ -277,6 +277,7 @@ typedef struct SANMVideoContext {
uint16_t *fbuf, *frm0, *frm1, *frm2;
uint8_t *stored_frame;
uint32_t fbuf_size, frm0_size, frm1_size, frm2_size;
+ uint32_t stor_size;
uint32_t stored_frame_size;
uint8_t *rle_buf;
@@ -471,9 +472,11 @@ static av_cold int init_buffers(SANMVideoContext *ctx)
av_fast_padded_mallocz(&ctx->frm0, &ctx->frm0_size, ctx->buf_size);
av_fast_padded_mallocz(&ctx->frm1, &ctx->frm1_size, ctx->buf_size);
av_fast_padded_mallocz(&ctx->frm2, &ctx->frm2_size, ctx->buf_size);
- if (!ctx->version)
+ if (!ctx->version) {
av_fast_padded_mallocz(&ctx->stored_frame,
&ctx->stored_frame_size, ctx->buf_size);
+ ctx->stor_size = 0;
+ }
if (!ctx->frm0 || !ctx->frm1 || !ctx->frm2 ||
(!ctx->stored_frame && !ctx->version)) {
@@ -1660,7 +1663,8 @@ static int old_codec48(SANMVideoContext *ctx, int width, int height)
return 0;
}
-static int process_frame_obj(SANMVideoContext *ctx, GetByteContext *gb)
+static int process_frame_obj(SANMVideoContext *ctx, GetByteContext *gb,
+ int xoff, int yoff)
{
uint16_t w, h, parm2;
uint8_t codec, param;
@@ -1669,14 +1673,14 @@ static int process_frame_obj(SANMVideoContext *ctx, GetByteContext *gb)
codec = bytestream2_get_byteu(gb);
param = bytestream2_get_byteu(gb);
- left = bytestream2_get_le16u(gb);
- top = bytestream2_get_le16u(gb);
+ left = bytestream2_get_le16u(gb) + xoff;
+ top = bytestream2_get_le16u(gb) + yoff;
w = bytestream2_get_le16u(gb);
h = bytestream2_get_le16u(gb);
bytestream2_skip(gb, 2);
parm2 = bytestream2_get_le16u(gb);
- if (w < 1 || h < 1 || w > 800 || h > 600 || left > 800 || top > 600 || left + w <= 0 || top + h <= 0) {
+ if (w < 1 || h < 1 || w > 640 || h > 480 || left > 640 || top > 480 || left + w <= 0 || top + h <= 0) {
av_log(ctx->avctx, AV_LOG_WARNING,
"ignoring invalid fobj dimensions: c%d %d %d @ %d %d\n",
codec, w, h, left, top);
@@ -1700,7 +1704,7 @@ static int process_frame_obj(SANMVideoContext *ctx, GetByteContext *gb)
if (w > xres || h > yres)
return AVERROR_INVALIDDATA;
ctx->have_dimensions = 1;
- } else if (codec == 37 || codec == 47 || codec == 48) {
+ } else if (fsc) {
/* these codecs work on full frames, trust their dimensions */
xres = w;
yres = h;
@@ -1716,7 +1720,7 @@ static int process_frame_obj(SANMVideoContext *ctx, GetByteContext *gb)
xres = w;
yres = h;
ctx->have_dimensions = 1;
- } else if (((xres == 424) && (yres == 260)) || /* RA1 */
+ } else if (((xres == 424) && (yres == 260)) || /* RA2 */
((xres == 320) && (yres == 200)) || /* ft/dig/... */
((xres == 640) && (yres == 480))) { /* ol/comi/mots... */
ctx->have_dimensions = 1;
@@ -1750,6 +1754,10 @@ static int process_frame_obj(SANMVideoContext *ctx, GetByteContext *gb)
}
}
+ /* users of codecs>=37 are subversion 2, enforce that for STOR/FTCH */
+ if (fsc)
+ ctx->subversion = 2;
+
/* clear the main buffer on the first fob */
if (ctx->first_fob) {
ctx->first_fob = 0;
@@ -1819,45 +1827,31 @@ static int process_frame_obj(SANMVideoContext *ctx, GetByteContext *gb)
static int process_ftch(SANMVideoContext *ctx, int size)
{
- uint8_t *sf = ctx->stored_frame;
- int xoff, yoff, left, top, ret;
+ int xoff, yoff, ret;
GetByteContext gb;
- uint32_t sz;
/* FTCH defines additional x/y offsets */
- if (size != 12) {
- if (bytestream2_get_bytes_left(&ctx->gb) < 6)
- return AVERROR_INVALIDDATA;
+ if (size == 6) {
bytestream2_skip(&ctx->gb, 2);
xoff = bytestream2_get_le16u(&ctx->gb);
yoff = bytestream2_get_le16u(&ctx->gb);
- } else {
+ } else if (size == 12) {
av_assert0(bytestream2_get_bytes_left(&ctx->gb) >= 12);
bytestream2_skip(&ctx->gb, 4);
xoff = bytestream2_get_be32u(&ctx->gb);
yoff = bytestream2_get_be32u(&ctx->gb);
- }
-
- sz = *(uint32_t *)(sf + 0);
- if ((sz > 0) && (sz <= ctx->stored_frame_size - 4)) {
- /* add the FTCH offsets to the left/top values of the stored FOBJ */
- left = av_le2ne16(*(int16_t *)(sf + 4 + 2));
- top = av_le2ne16(*(int16_t *)(sf + 4 + 4));
- *(int16_t *)(sf + 4 + 2) = av_le2ne16(left + xoff);
- *(int16_t *)(sf + 4 + 4) = av_le2ne16(top + yoff);
+ } else
+ return 1;
+ if (ctx->stor_size > 0) {
/* decode the stored FOBJ */
- uint8_t *bitstream = av_malloc(sz + AV_INPUT_BUFFER_PADDING_SIZE);
+ uint8_t *bitstream = av_malloc(ctx->stor_size + AV_INPUT_BUFFER_PADDING_SIZE);
if (!bitstream)
return AVERROR(ENOMEM);
- memcpy(bitstream, sf + 4, sz);
- bytestream2_init(&gb, bitstream, sz);
- ret = process_frame_obj(ctx, &gb);
+ memcpy(bitstream, ctx->stored_frame, ctx->stor_size);
+ bytestream2_init(&gb, bitstream, ctx->stor_size);
+ ret = process_frame_obj(ctx, &gb, xoff, yoff);
av_free(bitstream);
-
- /* now restore the original left/top values again */
- *(int16_t *)(sf + 4 + 2) = av_le2ne16(left);
- *(int16_t *)(sf + 4 + 4) = av_le2ne16(top);
} else {
/* this happens a lot in RA1: The individual files are meant to
* be played in sequence, with some referencing objects STORed
@@ -2350,8 +2344,9 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *frame,
case MKBETAG('F', 'O', 'B', 'J'):
if (size < 16)
return AVERROR_INVALIDDATA;
- if (ret = process_frame_obj(ctx, &ctx->gb))
+ if (ret = process_frame_obj(ctx, &ctx->gb, 0, 0)) {
return ret;
+ }
have_img = 1;
/* STOR: for ANIMv0/1 store the whole FOBJ datablock, as it
@@ -2362,12 +2357,12 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *frame,
if (to_store) {
to_store = 0;
if (ctx->subversion < 2) {
- if (size + 4 <= ctx->stored_frame_size) {
+ if (size <= ctx->stored_frame_size) {
int pos2 = bytestream2_tell(&ctx->gb);
bytestream2_seek(&ctx->gb, pos, SEEK_SET);
- *(uint32_t *)(ctx->stored_frame) = size;
- bytestream2_get_bufferu(&ctx->gb, ctx->stored_frame + 4, size);
+ bytestream2_get_bufferu(&ctx->gb, ctx->stored_frame, size);
bytestream2_seek(&ctx->gb, pos2, SEEK_SET);
+ ctx->stor_size = size;
} else {
av_log(avctx, AV_LOG_ERROR, "FOBJ too large for STOR\n");
ret = AVERROR(ENOMEM);
commit c3747e011e7c7107ad6ef4c9e0a1c26490e2c30f
Author: Michael Niedermayer <michael(a)niedermayer.cc>
AuthorDate: Thu Aug 21 19:06:03 2025 +0200
Commit: Michael Niedermayer <michael(a)niedermayer.cc>
CommitDate: Fri Aug 22 01:07:20 2025 +0200
avcodec/sanm: Eliminate reference into reallocated frame
AFAIK the original decoder uses the frame buffers in very strange ways
our implementation seems to mimic that and that results in the
bitstream input to point into a frame buffer while code then
parses that and potentially reallocates the frame buffer
leaving pointers hanging into dealllocated space
This simply uses a temporary buffer
Fixes: Writing into freed buffers
Fixes: BIGSLEEP-440183164/old_codec21.anim
Fixes: BIGSLEEP-440183164/old_codec4.anim
Found-by: Google Big Sleep
Signed-off-by: Michael Niedermayer <michael(a)niedermayer.cc>
(cherry picked from commit c41a70b6bb79707e1e3a4b0e31950cd986b9f50e)
Signed-off-by: Michael Niedermayer <michael(a)niedermayer.cc>
diff --git a/libavcodec/sanm.c b/libavcodec/sanm.c
index cd8e4c3403..843a0679f6 100644
--- a/libavcodec/sanm.c
+++ b/libavcodec/sanm.c
@@ -1847,8 +1847,13 @@ static int process_ftch(SANMVideoContext *ctx, int size)
*(int16_t *)(sf + 4 + 4) = av_le2ne16(top + yoff);
/* decode the stored FOBJ */
- bytestream2_init(&gb, sf + 4, sz);
+ uint8_t *bitstream = av_malloc(sz + AV_INPUT_BUFFER_PADDING_SIZE);
+ if (!bitstream)
+ return AVERROR(ENOMEM);
+ memcpy(bitstream, sf + 4, sz);
+ bytestream2_init(&gb, bitstream, sz);
ret = process_frame_obj(ctx, &gb);
+ av_free(bitstream);
/* now restore the original left/top values again */
*(int16_t *)(sf + 4 + 2) = av_le2ne16(left);
commit f258c9a8e5100a49d436c073bd06c2fdd8ad34ec
Author: Michael Niedermayer <michael(a)niedermayer.cc>
AuthorDate: Thu Aug 21 18:40:26 2025 +0200
Commit: Michael Niedermayer <michael(a)niedermayer.cc>
CommitDate: Fri Aug 22 01:07:19 2025 +0200
avcodec/sanm: Replace impossible bitstream check by assert
the space left and size have already been cross checked by the caller
Signed-off-by: Michael Niedermayer <michael(a)niedermayer.cc>
(cherry picked from commit d4e28917afb82548fe830448033068c080cafd02)
Signed-off-by: Michael Niedermayer <michael(a)niedermayer.cc>
diff --git a/libavcodec/sanm.c b/libavcodec/sanm.c
index 9e99aa9dd9..cd8e4c3403 100644
--- a/libavcodec/sanm.c
+++ b/libavcodec/sanm.c
@@ -1832,8 +1832,7 @@ static int process_ftch(SANMVideoContext *ctx, int size)
xoff = bytestream2_get_le16u(&ctx->gb);
yoff = bytestream2_get_le16u(&ctx->gb);
} else {
- if (bytestream2_get_bytes_left(&ctx->gb) < 12)
- return AVERROR_INVALIDDATA;
+ av_assert0(bytestream2_get_bytes_left(&ctx->gb) >= 12);
bytestream2_skip(&ctx->gb, 4);
xoff = bytestream2_get_be32u(&ctx->gb);
yoff = bytestream2_get_be32u(&ctx->gb);
-----------------------------------------------------------------------
Summary of changes:
RELEASE_NOTES | 15 ++++++++++++
libavcodec/sanm.c | 69 +++++++++++++++++++++++++++----------------------------
2 files changed, 49 insertions(+), 35 deletions(-)
create mode 100644 RELEASE_NOTES
hooks/post-receive
--
1
0
[ffmpeg] branch release/8.0 updated. a6c578ef65 avformat/hlsproto: explicitly deprecate it
by ffmpeg-git@ffmpeg.org 22 Aug '25
by ffmpeg-git@ffmpeg.org 22 Aug '25
22 Aug '25
The branch, release/8.0 has been updated
via a6c578ef6555fdb0af0789f8fc673f9188f4b0ec (commit)
from efa64c2acc70e866fd4499ef6d7911bb7608002f (commit)
- Log -----------------------------------------------------------------
commit a6c578ef6555fdb0af0789f8fc673f9188f4b0ec
Author: Marvin Scholz <epirat07(a)gmail.com>
AuthorDate: Fri Aug 22 00:28:33 2025 +0200
Commit: Marvin Scholz <epirat07(a)gmail.com>
CommitDate: Fri Aug 22 00:28:33 2025 +0200
avformat/hlsproto: explicitly deprecate it
This makes it more clear that it will be removed in a future release.
diff --git a/libavformat/hlsproto.c b/libavformat/hlsproto.c
index 02f695c1db..1c63a191cb 100644
--- a/libavformat/hlsproto.c
+++ b/libavformat/hlsproto.c
@@ -206,10 +206,10 @@ static int hls_open(URLContext *h, const char *uri, int flags)
goto fail;
}
av_log(h, AV_LOG_WARNING,
- "Using the hls protocol is discouraged, please try using the "
- "hls demuxer instead. The hls demuxer should be more complete "
- "and work as well as the protocol implementation. (If not, "
- "please report it.) To use the demuxer, simply use %s as url.\n",
+ "Using the hls protocol is deprecated and it will be remove in "
+ "a future release, please use the hls demuxer instead. "
+ "If encountering issues with it, please report them. "
+ "To use the demuxer, simply use %s as url.\n",
s->playlisturl);
if ((ret = parse_playlist(h, s->playlisturl)) < 0)
-----------------------------------------------------------------------
Summary of changes:
libavformat/hlsproto.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
hooks/post-receive
--
1
0
[ffmpeg] branch master updated. 5ed1d72792 avcodec/decode: remove Exif Orientation tag after adding it as display matrix
by ffmpeg-git@ffmpeg.org 22 Aug '25
by ffmpeg-git@ffmpeg.org 22 Aug '25
22 Aug '25
The branch, master has been updated
via 5ed1d7279298cfc218a9b989cad4d1b97a066e8d (commit)
via 5a9e5d8031b98dd269033918499e9db79c0a26c1 (commit)
from d311382c38df9c2237b33a9e8e860a5da7d2895d (commit)
- Log -----------------------------------------------------------------
commit 5ed1d7279298cfc218a9b989cad4d1b97a066e8d
Author: James Almer <jamrial(a)gmail.com>
AuthorDate: Wed Aug 20 13:03:21 2025 -0300
Commit: Leo Izen <leo.izen(a)gmail.com>
CommitDate: Thu Aug 21 22:48:16 2025 +0000
avcodec/decode: remove Exif Orientation tag after adding it as display matrix
Don't replace it with a conflicting value.
Signed-off-by: James Almer <jamrial(a)gmail.com>
diff --git a/libavcodec/decode.c b/libavcodec/decode.c
index 1dbb20de0e..b0ce94cadd 100644
--- a/libavcodec/decode.c
+++ b/libavcodec/decode.c
@@ -2290,24 +2290,22 @@ static int exif_attach_ifd(AVCodecContext *avctx, AVFrame *frame, const AVExifMe
if (ret < 0) {
av_log(avctx, AV_LOG_WARNING, "unable to attach displaymatrix from EXIF\n");
} else {
- const AVExifEntry *cloned_orient;
cloned = av_exif_clone_ifd(ifd);
if (!cloned) {
ret = AVERROR(ENOMEM);
goto end;
}
- // will have the same offset in the clone as in the original
- cloned_orient = &cloned->entries[orient - ifd->entries];
- cloned_orient->value.uint[0] = 1;
+ av_exif_remove_entry(avctx, cloned, orient->id, 0);
+ ifd = cloned;
}
}
- ret = av_exif_ifd_to_dict(avctx, cloned ? cloned : ifd, &frame->metadata);
+ ret = av_exif_ifd_to_dict(avctx, ifd, &frame->metadata);
if (ret < 0)
goto end;
if (cloned || !og) {
- ret = av_exif_write(avctx, cloned ? cloned : ifd, &written, AV_EXIF_TIFF_HEADER);
+ ret = av_exif_write(avctx, ifd, &written, AV_EXIF_TIFF_HEADER);
if (ret < 0)
goto end;
}
commit 5a9e5d8031b98dd269033918499e9db79c0a26c1
Author: James Almer <jamrial(a)gmail.com>
AuthorDate: Tue Aug 19 13:18:18 2025 -0300
Commit: Leo Izen <leo.izen(a)gmail.com>
CommitDate: Thu Aug 21 22:48:16 2025 +0000
avcodec/exif: use ff_frame_new_side_data() to export display matrix
Otherwise, the user requested priority of packet side data will be ignored.
For this, move the relevant functions to decode.c, as they need access to an
AVCodecContext.
Signed-off-by: James Almer <jamrial(a)gmail.com>
diff --git a/libavcodec/decode.c b/libavcodec/decode.c
index 2319e76e4b..1dbb20de0e 100644
--- a/libavcodec/decode.c
+++ b/libavcodec/decode.c
@@ -47,6 +47,7 @@
#include "codec_desc.h"
#include "codec_internal.h"
#include "decode.h"
+#include "exif_internal.h"
#include "hwaccel_internal.h"
#include "hwconfig.h"
#include "internal.h"
@@ -2245,3 +2246,108 @@ void ff_decode_internal_uninit(AVCodecContext *avctx)
av_refstruct_unref(&dc->lcevc);
}
+
+static int attach_displaymatrix(AVCodecContext *avctx, AVFrame *frame, int orientation)
+{
+ AVFrameSideData *sd = NULL;
+ int32_t *matrix;
+ int ret;
+ /* invalid orientation */
+ if (orientation < 2 || orientation > 8)
+ return AVERROR_INVALIDDATA;
+ ret = ff_frame_new_side_data(avctx, frame, AV_FRAME_DATA_DISPLAYMATRIX, sizeof(int32_t) * 9, &sd);
+ if (ret < 0) {
+ av_log(avctx, AV_LOG_ERROR, "Could not allocate frame side data: %s\n", av_err2str(ret));
+ return ret;
+ }
+ if (sd) {
+ matrix = (int32_t *) sd->data;
+ ret = av_exif_orientation_to_matrix(matrix, orientation);
+ }
+
+ return ret;
+}
+
+static int exif_attach_ifd(AVCodecContext *avctx, AVFrame *frame, const AVExifMetadata *ifd, AVBufferRef *og)
+{
+ const AVExifEntry *orient = NULL;
+ AVFrameSideData *sd;
+ AVExifMetadata *cloned = NULL;
+ AVBufferRef *written = NULL;
+ int ret;
+
+ for (size_t i = 0; i < ifd->count; i++) {
+ const AVExifEntry *entry = &ifd->entries[i];
+ if (entry->id == ORIENTATION_TAG && entry->count > 0 && entry->type == AV_TIFF_SHORT) {
+ orient = entry;
+ break;
+ }
+ }
+
+ if (orient && orient->value.uint[0] > 1) {
+ av_log(avctx, AV_LOG_DEBUG, "found nontrivial EXIF orientation: %" PRIu64 "\n", orient->value.uint[0]);
+ ret = attach_displaymatrix(avctx, frame, orient->value.uint[0]);
+ if (ret < 0) {
+ av_log(avctx, AV_LOG_WARNING, "unable to attach displaymatrix from EXIF\n");
+ } else {
+ const AVExifEntry *cloned_orient;
+ cloned = av_exif_clone_ifd(ifd);
+ if (!cloned) {
+ ret = AVERROR(ENOMEM);
+ goto end;
+ }
+ // will have the same offset in the clone as in the original
+ cloned_orient = &cloned->entries[orient - ifd->entries];
+ cloned_orient->value.uint[0] = 1;
+ }
+ }
+
+ ret = av_exif_ifd_to_dict(avctx, cloned ? cloned : ifd, &frame->metadata);
+ if (ret < 0)
+ goto end;
+
+ if (cloned || !og) {
+ ret = av_exif_write(avctx, cloned ? cloned : ifd, &written, AV_EXIF_TIFF_HEADER);
+ if (ret < 0)
+ goto end;
+ }
+
+ sd = av_frame_new_side_data_from_buf(frame, AV_FRAME_DATA_EXIF, written ? written : og);
+ if (!sd) {
+ if (written)
+ av_buffer_unref(&written);
+ ret = AVERROR(ENOMEM);
+ goto end;
+ }
+
+ ret = 0;
+
+end:
+ if (og && written && ret >= 0)
+ av_buffer_unref(&og); // as though we called new_side_data on og;
+ av_exif_free(cloned);
+ av_free(cloned);
+ return ret;
+}
+
+int ff_decode_exif_attach_ifd(AVCodecContext *avctx, AVFrame *frame, const AVExifMetadata *ifd)
+{
+ return exif_attach_ifd(avctx, frame, ifd, NULL);
+}
+
+int ff_decode_exif_attach_buffer(AVCodecContext *avctx, AVFrame *frame, AVBufferRef *data,
+ enum AVExifHeaderMode header_mode)
+{
+ int ret;
+ AVExifMetadata ifd = { 0 };
+
+ ret = av_exif_parse_buffer(avctx, data->data, data->size, &ifd, header_mode);
+ if (ret < 0)
+ goto end;
+
+ ret = exif_attach_ifd(avctx, frame, &ifd, data);
+
+end:
+ av_exif_free(&ifd);
+ return ret;
+}
diff --git a/libavcodec/decode.h b/libavcodec/decode.h
index 2c3719a8d0..f285da924d 100644
--- a/libavcodec/decode.h
+++ b/libavcodec/decode.h
@@ -220,4 +220,35 @@ int ff_decode_content_light_new(const AVCodecContext *avctx, AVFrame *frame,
int ff_decode_content_light_new_ext(const AVCodecContext *avctx,
AVFrameSideData ***sd, int *nb_sd,
struct AVContentLightMetadata **clm);
+
+enum AVExifHeaderMode;
+
+/**
+ * Attach the data buffer to the frame. This is mostly a wrapper for
+ * av_side_data_new_from_buffer, but it checks if the orientation tag is
+ * present in the provided EXIF buffer. If it is, it zeroes it out and
+ * attaches that information as an AV_FRAME_DATA_DISPLAYMATRIX instead
+ * of including it in the AV_FRAME_DATA_EXIF side data buffer.
+ *
+ * On a success, the caller loses ownership of the data buffer. Either it is
+ * unrefed, or its ownership is transferred to the frame directly. On failure,
+ * the data buffer is left owned by the caller.
+ */
+int ff_decode_exif_attach_buffer(AVCodecContext *avctx, AVFrame *frame, AVBufferRef *data,
+ enum AVExifHeaderMode header_mode);
+
+struct AVExifMetadata;
+
+/**
+ * Attach an already-parsed EXIF metadata struct to the frame as a side data
+ * buffer. It writes the EXIF IFD into the buffer and attaches the buffer to
+ * the frame.
+ *
+ * If the metadata struct contains an orientation tag, it will be zeroed before
+ * writing, and instead, an AV_FRAME_DATA_DISPLAYMATRIX will be attached in
+ * addition to the AV_FRAME_DATA_EXIF side data.
+ */
+int ff_decode_exif_attach_ifd(AVCodecContext *avctx, AVFrame *frame,
+ const struct AVExifMetadata *ifd);
+
#endif /* AVCODEC_DECODE_H */
diff --git a/libavcodec/exif.c b/libavcodec/exif.c
index 2513ee4ec0..1332fa68bb 100644
--- a/libavcodec/exif.c
+++ b/libavcodec/exif.c
@@ -46,13 +46,6 @@
#define IFD_EXTRA_SIZE 6
#define EXIF_TAG_NAME_LENGTH 32
-#define MAKERNOTE_TAG 0x927c
-#define ORIENTATION_TAG 0x112
-#define EXIFIFD_TAG 0x8769
-#define IMAGE_WIDTH_TAG 0x100
-#define IMAGE_LENGTH_TAG 0x101
-#define PIXEL_X_TAG 0xa002
-#define PIXEL_Y_TAG 0xa003
struct exif_tag {
const char name[EXIF_TAG_NAME_LENGTH];
@@ -824,23 +817,6 @@ int av_exif_parse_buffer(void *logctx, const uint8_t *buf, size_t size,
return bytestream2_tell(&gbytes);
}
-static int attach_displaymatrix(void *logctx, AVFrame *frame, int orientation)
-{
- AVFrameSideData *sd;
- int32_t *matrix;
- /* invalid orientation */
- if (orientation < 2 || orientation > 8)
- return AVERROR_INVALIDDATA;
- sd = av_frame_new_side_data(frame, AV_FRAME_DATA_DISPLAYMATRIX, sizeof(int32_t) * 9);
- if (!sd) {
- av_log(logctx, AV_LOG_ERROR, "Could not allocate frame side data\n");
- return AVERROR(ENOMEM);
- }
- matrix = (int32_t *) sd->data;
-
- return av_exif_orientation_to_matrix(matrix, orientation);
-}
-
#define COLUMN_SEP(i, c) ((i) ? ((i) % (c) ? ", " : "\n") : "")
static int exif_ifd_to_dict(void *logctx, const char *prefix, const AVExifMetadata *ifd, AVDictionary **metadata)
@@ -953,68 +929,6 @@ int avpriv_exif_decode_ifd(void *logctx, const uint8_t *buf, int size,
}
#endif /* FF_API_OLD_EXIF */
-static int exif_attach_ifd(void *logctx, AVFrame *frame, const AVExifMetadata *ifd, AVBufferRef *og)
-{
- const AVExifEntry *orient = NULL;
- AVFrameSideData *sd;
- AVExifMetadata *cloned = NULL;
- AVBufferRef *written = NULL;
- int ret;
-
- for (size_t i = 0; i < ifd->count; i++) {
- const AVExifEntry *entry = &ifd->entries[i];
- if (entry->id == ORIENTATION_TAG && entry->count > 0 && entry->type == AV_TIFF_SHORT) {
- orient = entry;
- break;
- }
- }
-
- if (orient && orient->value.uint[0] > 1) {
- av_log(logctx, AV_LOG_DEBUG, "found nontrivial EXIF orientation: %" PRIu64 "\n", orient->value.uint[0]);
- ret = attach_displaymatrix(logctx, frame, orient->value.uint[0]);
- if (ret < 0) {
- av_log(logctx, AV_LOG_WARNING, "unable to attach displaymatrix from EXIF\n");
- } else {
- const AVExifEntry *cloned_orient;
- cloned = av_exif_clone_ifd(ifd);
- if (!cloned) {
- ret = AVERROR(ENOMEM);
- goto end;
- }
- // will have the same offset in the clone as in the original
- cloned_orient = &cloned->entries[orient - ifd->entries];
- cloned_orient->value.uint[0] = 1;
- }
- }
-
- ret = av_exif_ifd_to_dict(logctx, cloned ? cloned : ifd, &frame->metadata);
- if (ret < 0)
- goto end;
-
- if (cloned || !og) {
- ret = av_exif_write(logctx, cloned ? cloned : ifd, &written, AV_EXIF_TIFF_HEADER);
- if (ret < 0)
- goto end;
- }
-
- sd = av_frame_new_side_data_from_buf(frame, AV_FRAME_DATA_EXIF, written ? written : og);
- if (!sd) {
- if (written)
- av_buffer_unref(&written);
- ret = AVERROR(ENOMEM);
- goto end;
- }
-
- ret = 0;
-
-end:
- if (og && written && ret >= 0)
- av_buffer_unref(&og); // as though we called new_side_data on og;
- av_exif_free(cloned);
- av_free(cloned);
- return ret;
-}
-
#define EXIF_COPY(fname, srcname) do { \
size_t sz; \
if (av_size_mult(src->count, sizeof(*(fname)), &sz) < 0) { \
@@ -1250,27 +1164,6 @@ fail:
return NULL;
}
-int ff_exif_attach_ifd(void *logctx, AVFrame *frame, const AVExifMetadata *ifd)
-{
- return exif_attach_ifd(logctx, frame, ifd, NULL);
-}
-
-int ff_exif_attach_buffer(void *logctx, AVFrame *frame, AVBufferRef *data, enum AVExifHeaderMode header_mode)
-{
- int ret;
- AVExifMetadata ifd = { 0 };
-
- ret = av_exif_parse_buffer(logctx, data->data, data->size, &ifd, header_mode);
- if (ret < 0)
- goto end;
-
- ret = exif_attach_ifd(logctx, frame, &ifd, data);
-
-end:
- av_exif_free(&ifd);
- return ret;
-}
-
static const int rotation_lut[2][4] = {
{1, 8, 3, 6}, {4, 7, 2, 5},
};
diff --git a/libavcodec/exif_internal.h b/libavcodec/exif_internal.h
index de1a26e3f9..565e747353 100644
--- a/libavcodec/exif_internal.h
+++ b/libavcodec/exif_internal.h
@@ -42,29 +42,13 @@ int avpriv_exif_decode_ifd(void *logctx, const uint8_t *buf, int size,
int le, int depth, AVDictionary **metadata);
#endif /* FF_API_OLD_EXIF */
-/**
- * Attach the data buffer to the frame. This is mostly a wrapper for
- * av_side_data_new_from_buffer, but it checks if the orientation tag is
- * present in the provided EXIF buffer. If it is, it zeroes it out and
- * attaches that information as an AV_FRAME_DATA_DISPLAYMATRIX instead
- * of including it in the AV_FRAME_DATA_EXIF side data buffer.
- *
- * On a success, the caller loses ownership of the data buffer. Either it is
- * unrefed, or its ownership is transferred to the frame directly. On failure,
- * the data buffer is left owned by the caller.
- */
-int ff_exif_attach_buffer(void *logctx, AVFrame *frame, AVBufferRef *data, enum AVExifHeaderMode header_mode);
-
-/**
- * Attach an already-parsed EXIF metadata struct to the frame as a side data
- * buffer. It writes the EXIF IFD into the buffer and attaches the buffer to
- * the frame.
- *
- * If the metadata struct contains an orientation tag, it will be zeroed before
- * writing, and instead, an AV_FRAME_DATA_DISPLAYMATRIX will be attached in
- * addition to the AV_FRAME_DATA_EXIF side data.
- */
-int ff_exif_attach_ifd(void *logctx, AVFrame *frame, const AVExifMetadata *ifd);
+#define MAKERNOTE_TAG 0x927c
+#define ORIENTATION_TAG 0x112
+#define EXIFIFD_TAG 0x8769
+#define IMAGE_WIDTH_TAG 0x100
+#define IMAGE_LENGTH_TAG 0x101
+#define PIXEL_X_TAG 0xa002
+#define PIXEL_Y_TAG 0xa003
/**
* Compares values in the IFD with data in the provided AVFrame and sets the values
diff --git a/libavcodec/libjxldec.c b/libavcodec/libjxldec.c
index 7ea5fc4787..31f4592d1c 100644
--- a/libavcodec/libjxldec.c
+++ b/libavcodec/libjxldec.c
@@ -516,7 +516,7 @@ static int libjxl_receive_frame(AVCodecContext *avctx, AVFrame *frame)
ret = av_exif_remove_entry(avctx, &ifd, av_exif_get_tag_id("Orientation"), 0);
if (ret < 0)
av_log(avctx, AV_LOG_WARNING, "Unable to remove orientation from EXIF buffer\n");
- ret = ff_exif_attach_ifd(avctx, ctx->frame, &ifd);
+ ret = ff_decode_exif_attach_ifd(avctx, ctx->frame, &ifd);
if (ret < 0)
av_log(avctx, AV_LOG_ERROR, "Unable to attach EXIF ifd\n");
}
diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c
index 46ec3eb938..4d6379805c 100644
--- a/libavcodec/mjpegdec.c
+++ b/libavcodec/mjpegdec.c
@@ -2855,7 +2855,7 @@ the_end:
}
if (s->exif_metadata.entries) {
- ret = ff_exif_attach_ifd(avctx, frame, &s->exif_metadata);
+ ret = ff_decode_exif_attach_ifd(avctx, frame, &s->exif_metadata);
av_exif_free(&s->exif_metadata);
if (ret < 0)
av_log(avctx, AV_LOG_WARNING, "couldn't attach EXIF metadata\n");
diff --git a/libavcodec/pngdec.c b/libavcodec/pngdec.c
index 5e138a4f49..8a63f0ad90 100644
--- a/libavcodec/pngdec.c
+++ b/libavcodec/pngdec.c
@@ -1751,15 +1751,15 @@ exit_loop:
handle_small_bpp(s, p);
if (s->exif_data) {
- // we swap because ff_exif_attach_buffer adds to p->metadata
+ // we swap because ff_decode_exif_attach_buffer adds to p->metadata
FFSWAP(AVDictionary *, p->metadata, s->frame_metadata);
- ret = ff_exif_attach_buffer(avctx, p, s->exif_data, AV_EXIF_TIFF_HEADER);
+ ret = ff_decode_exif_attach_buffer(avctx, p, s->exif_data, AV_EXIF_TIFF_HEADER);
FFSWAP(AVDictionary *, p->metadata, s->frame_metadata);
if (ret < 0) {
av_log(avctx, AV_LOG_WARNING, "unable to attach EXIF buffer\n");
return ret;
}
- // ff_exif_attach_buffer takes ownership so
+ // ff_decode_exif_attach_buffer takes ownership so
// we do not want to call av_buffer_unref here
s->exif_data = NULL;
}
diff --git a/libavcodec/tiff.c b/libavcodec/tiff.c
index d15bc497ec..bb8120bc1b 100644
--- a/libavcodec/tiff.c
+++ b/libavcodec/tiff.c
@@ -2411,7 +2411,7 @@ again:
}
}
- ret = ff_exif_attach_ifd(avctx, p, &s->exif_meta);
+ ret = ff_decode_exif_attach_ifd(avctx, p, &s->exif_meta);
if (ret < 0)
av_log(avctx, AV_LOG_ERROR, "error attaching EXIF ifd: %s\n", av_err2str(ret));
diff --git a/libavcodec/webp.c b/libavcodec/webp.c
index 56c3ec6d28..0dca130ff3 100644
--- a/libavcodec/webp.c
+++ b/libavcodec/webp.c
@@ -1477,7 +1477,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
memcpy(exif_buf->data, gb.buffer, chunk_size);
/* if this succeeds then exif_buf is either freed or transferred to the AVFrame */
- ret = ff_exif_attach_buffer(avctx, p, exif_buf, AV_EXIF_TIFF_HEADER);
+ ret = ff_decode_exif_attach_buffer(avctx, p, exif_buf, AV_EXIF_TIFF_HEADER);
if (ret < 0) {
av_log(avctx, AV_LOG_WARNING, "unable to attach EXIF buffer\n");
av_buffer_unref(&exif_buf);
-----------------------------------------------------------------------
Summary of changes:
libavcodec/decode.c | 104 +++++++++++++++++++++++++++++++++++++++++++
libavcodec/decode.h | 31 +++++++++++++
libavcodec/exif.c | 107 ---------------------------------------------
libavcodec/exif_internal.h | 30 +++----------
libavcodec/libjxldec.c | 2 +-
libavcodec/mjpegdec.c | 2 +-
libavcodec/pngdec.c | 6 +--
libavcodec/tiff.c | 2 +-
libavcodec/webp.c | 2 +-
9 files changed, 149 insertions(+), 137 deletions(-)
hooks/post-receive
--
1
0
[ffmpeg] branch master updated. d311382c38 avcodec/sanm: fix issues with FTCH offset hack
by ffmpeg-git@ffmpeg.org 21 Aug '25
by ffmpeg-git@ffmpeg.org 21 Aug '25
21 Aug '25
The branch, master has been updated
via d311382c38df9c2237b33a9e8e860a5da7d2895d (commit)
via c41a70b6bb79707e1e3a4b0e31950cd986b9f50e (commit)
via d4e28917afb82548fe830448033068c080cafd02 (commit)
from 7caa2a65d9d73848e0d4167fed86aac6780f4bbe (commit)
- Log -----------------------------------------------------------------
commit d311382c38df9c2237b33a9e8e860a5da7d2895d
Author: Manuel Lauss <manuel.lauss(a)gmail.com>
AuthorDate: Thu Aug 21 20:05:41 2025 +0200
Commit: michaelni <michael(a)niedermayer.cc>
CommitDate: Thu Aug 21 21:02:40 2025 +0000
avcodec/sanm: fix issues with FTCH offset hack
Just add an extra x/y offset parameter pair to process_frame_obj(),
and store the size of the data to FTCH in a separate context member.
The only valid sizes for FTCH are 6 and 12, reject any other.
Finally, if a FOBJ uses codecs37 and above, enforce it to be subversion 2,
to use the simpler STOR/FTCH method.
Fixes BIGSLEEP-440183164/process_ftch.anim
Signed-off-by: Manuel Lauss <manuel.lauss(a)gmail.com>
Signed-off-by: Michael Niedermayer <michael(a)niedermayer.cc>
diff --git a/libavcodec/sanm.c b/libavcodec/sanm.c
index 051acc9057..7c41d622eb 100644
--- a/libavcodec/sanm.c
+++ b/libavcodec/sanm.c
@@ -277,6 +277,7 @@ typedef struct SANMVideoContext {
uint16_t *fbuf, *frm0, *frm1, *frm2;
uint8_t *stored_frame;
uint32_t fbuf_size, frm0_size, frm1_size, frm2_size;
+ uint32_t stor_size;
uint32_t stored_frame_size;
uint8_t *rle_buf;
@@ -471,9 +472,11 @@ static av_cold int init_buffers(SANMVideoContext *ctx)
av_fast_padded_mallocz(&ctx->frm0, &ctx->frm0_size, ctx->buf_size);
av_fast_padded_mallocz(&ctx->frm1, &ctx->frm1_size, ctx->buf_size);
av_fast_padded_mallocz(&ctx->frm2, &ctx->frm2_size, ctx->buf_size);
- if (!ctx->version)
+ if (!ctx->version) {
av_fast_padded_mallocz(&ctx->stored_frame,
&ctx->stored_frame_size, ctx->buf_size);
+ ctx->stor_size = 0;
+ }
if (!ctx->frm0 || !ctx->frm1 || !ctx->frm2 ||
(!ctx->stored_frame && !ctx->version)) {
@@ -1660,7 +1663,8 @@ static int old_codec48(SANMVideoContext *ctx, int width, int height)
return 0;
}
-static int process_frame_obj(SANMVideoContext *ctx, GetByteContext *gb)
+static int process_frame_obj(SANMVideoContext *ctx, GetByteContext *gb,
+ int xoff, int yoff)
{
uint16_t w, h, parm2;
uint8_t codec, param;
@@ -1669,14 +1673,14 @@ static int process_frame_obj(SANMVideoContext *ctx, GetByteContext *gb)
codec = bytestream2_get_byteu(gb);
param = bytestream2_get_byteu(gb);
- left = bytestream2_get_le16u(gb);
- top = bytestream2_get_le16u(gb);
+ left = bytestream2_get_le16u(gb) + xoff;
+ top = bytestream2_get_le16u(gb) + yoff;
w = bytestream2_get_le16u(gb);
h = bytestream2_get_le16u(gb);
bytestream2_skip(gb, 2);
parm2 = bytestream2_get_le16u(gb);
- if (w < 1 || h < 1 || w > 800 || h > 600 || left > 800 || top > 600 || left + w <= 0 || top + h <= 0) {
+ if (w < 1 || h < 1 || w > 640 || h > 480 || left > 640 || top > 480 || left + w <= 0 || top + h <= 0) {
av_log(ctx->avctx, AV_LOG_WARNING,
"ignoring invalid fobj dimensions: c%d %d %d @ %d %d\n",
codec, w, h, left, top);
@@ -1700,7 +1704,7 @@ static int process_frame_obj(SANMVideoContext *ctx, GetByteContext *gb)
if (w > xres || h > yres)
return AVERROR_INVALIDDATA;
ctx->have_dimensions = 1;
- } else if (codec == 37 || codec == 47 || codec == 48) {
+ } else if (fsc) {
/* these codecs work on full frames, trust their dimensions */
xres = w;
yres = h;
@@ -1716,7 +1720,7 @@ static int process_frame_obj(SANMVideoContext *ctx, GetByteContext *gb)
xres = w;
yres = h;
ctx->have_dimensions = 1;
- } else if (((xres == 424) && (yres == 260)) || /* RA1 */
+ } else if (((xres == 424) && (yres == 260)) || /* RA2 */
((xres == 320) && (yres == 200)) || /* ft/dig/... */
((xres == 640) && (yres == 480))) { /* ol/comi/mots... */
ctx->have_dimensions = 1;
@@ -1750,6 +1754,10 @@ static int process_frame_obj(SANMVideoContext *ctx, GetByteContext *gb)
}
}
+ /* users of codecs>=37 are subversion 2, enforce that for STOR/FTCH */
+ if (fsc)
+ ctx->subversion = 2;
+
/* clear the main buffer on the first fob */
if (ctx->first_fob) {
ctx->first_fob = 0;
@@ -1819,45 +1827,31 @@ static int process_frame_obj(SANMVideoContext *ctx, GetByteContext *gb)
static int process_ftch(SANMVideoContext *ctx, int size)
{
- uint8_t *sf = ctx->stored_frame;
- int xoff, yoff, left, top, ret;
+ int xoff, yoff, ret;
GetByteContext gb;
- uint32_t sz;
/* FTCH defines additional x/y offsets */
- if (size != 12) {
- if (bytestream2_get_bytes_left(&ctx->gb) < 6)
- return AVERROR_INVALIDDATA;
+ if (size == 6) {
bytestream2_skip(&ctx->gb, 2);
xoff = bytestream2_get_le16u(&ctx->gb);
yoff = bytestream2_get_le16u(&ctx->gb);
- } else {
+ } else if (size == 12) {
av_assert0(bytestream2_get_bytes_left(&ctx->gb) >= 12);
bytestream2_skip(&ctx->gb, 4);
xoff = bytestream2_get_be32u(&ctx->gb);
yoff = bytestream2_get_be32u(&ctx->gb);
- }
-
- sz = *(uint32_t *)(sf + 0);
- if ((sz > 0) && (sz <= ctx->stored_frame_size - 4)) {
- /* add the FTCH offsets to the left/top values of the stored FOBJ */
- left = av_le2ne16(*(int16_t *)(sf + 4 + 2));
- top = av_le2ne16(*(int16_t *)(sf + 4 + 4));
- *(int16_t *)(sf + 4 + 2) = av_le2ne16(left + xoff);
- *(int16_t *)(sf + 4 + 4) = av_le2ne16(top + yoff);
+ } else
+ return 1;
+ if (ctx->stor_size > 0) {
/* decode the stored FOBJ */
- uint8_t *bitstream = av_malloc(sz + AV_INPUT_BUFFER_PADDING_SIZE);
+ uint8_t *bitstream = av_malloc(ctx->stor_size + AV_INPUT_BUFFER_PADDING_SIZE);
if (!bitstream)
return AVERROR(ENOMEM);
- memcpy(bitstream, sf + 4, sz);
- bytestream2_init(&gb, bitstream, sz);
- ret = process_frame_obj(ctx, &gb);
+ memcpy(bitstream, ctx->stored_frame, ctx->stor_size);
+ bytestream2_init(&gb, bitstream, ctx->stor_size);
+ ret = process_frame_obj(ctx, &gb, xoff, yoff);
av_free(bitstream);
-
- /* now restore the original left/top values again */
- *(int16_t *)(sf + 4 + 2) = av_le2ne16(left);
- *(int16_t *)(sf + 4 + 4) = av_le2ne16(top);
} else {
/* this happens a lot in RA1: The individual files are meant to
* be played in sequence, with some referencing objects STORed
@@ -2364,8 +2358,9 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *frame,
case MKBETAG('F', 'O', 'B', 'J'):
if (size < 16)
return AVERROR_INVALIDDATA;
- if (ret = process_frame_obj(ctx, &ctx->gb))
+ if (ret = process_frame_obj(ctx, &ctx->gb, 0, 0)) {
return ret;
+ }
have_img = 1;
/* STOR: for ANIMv0/1 store the whole FOBJ datablock, as it
@@ -2376,12 +2371,12 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *frame,
if (to_store) {
to_store = 0;
if (ctx->subversion < 2) {
- if (size + 4 <= ctx->stored_frame_size) {
+ if (size <= ctx->stored_frame_size) {
int pos2 = bytestream2_tell(&ctx->gb);
bytestream2_seek(&ctx->gb, pos, SEEK_SET);
- *(uint32_t *)(ctx->stored_frame) = size;
- bytestream2_get_bufferu(&ctx->gb, ctx->stored_frame + 4, size);
+ bytestream2_get_bufferu(&ctx->gb, ctx->stored_frame, size);
bytestream2_seek(&ctx->gb, pos2, SEEK_SET);
+ ctx->stor_size = size;
} else {
av_log(avctx, AV_LOG_ERROR, "FOBJ too large for STOR\n");
ret = AVERROR(ENOMEM);
commit c41a70b6bb79707e1e3a4b0e31950cd986b9f50e
Author: Michael Niedermayer <michael(a)niedermayer.cc>
AuthorDate: Thu Aug 21 19:06:03 2025 +0200
Commit: michaelni <michael(a)niedermayer.cc>
CommitDate: Thu Aug 21 21:02:40 2025 +0000
avcodec/sanm: Eliminate reference into reallocated frame
AFAIK the original decoder uses the frame buffers in very strange ways
our implementation seems to mimic that and that results in the
bitstream input to point into a frame buffer while code then
parses that and potentially reallocates the frame buffer
leaving pointers hanging into dealllocated space
This simply uses a temporary buffer
Fixes: Writing into freed buffers
Fixes: BIGSLEEP-440183164/old_codec21.anim
Fixes: BIGSLEEP-440183164/old_codec4.anim
Found-by: Google Big Sleep
Signed-off-by: Michael Niedermayer <michael(a)niedermayer.cc>
diff --git a/libavcodec/sanm.c b/libavcodec/sanm.c
index 28fdcb3659..051acc9057 100644
--- a/libavcodec/sanm.c
+++ b/libavcodec/sanm.c
@@ -1847,8 +1847,13 @@ static int process_ftch(SANMVideoContext *ctx, int size)
*(int16_t *)(sf + 4 + 4) = av_le2ne16(top + yoff);
/* decode the stored FOBJ */
- bytestream2_init(&gb, sf + 4, sz);
+ uint8_t *bitstream = av_malloc(sz + AV_INPUT_BUFFER_PADDING_SIZE);
+ if (!bitstream)
+ return AVERROR(ENOMEM);
+ memcpy(bitstream, sf + 4, sz);
+ bytestream2_init(&gb, bitstream, sz);
ret = process_frame_obj(ctx, &gb);
+ av_free(bitstream);
/* now restore the original left/top values again */
*(int16_t *)(sf + 4 + 2) = av_le2ne16(left);
commit d4e28917afb82548fe830448033068c080cafd02
Author: Michael Niedermayer <michael(a)niedermayer.cc>
AuthorDate: Thu Aug 21 18:40:26 2025 +0200
Commit: michaelni <michael(a)niedermayer.cc>
CommitDate: Thu Aug 21 21:02:40 2025 +0000
avcodec/sanm: Replace impossible bitstream check by assert
the space left and size have already been cross checked by the caller
Signed-off-by: Michael Niedermayer <michael(a)niedermayer.cc>
diff --git a/libavcodec/sanm.c b/libavcodec/sanm.c
index 4cf1ac5221..28fdcb3659 100644
--- a/libavcodec/sanm.c
+++ b/libavcodec/sanm.c
@@ -1832,8 +1832,7 @@ static int process_ftch(SANMVideoContext *ctx, int size)
xoff = bytestream2_get_le16u(&ctx->gb);
yoff = bytestream2_get_le16u(&ctx->gb);
} else {
- if (bytestream2_get_bytes_left(&ctx->gb) < 12)
- return AVERROR_INVALIDDATA;
+ av_assert0(bytestream2_get_bytes_left(&ctx->gb) >= 12);
bytestream2_skip(&ctx->gb, 4);
xoff = bytestream2_get_be32u(&ctx->gb);
yoff = bytestream2_get_be32u(&ctx->gb);
-----------------------------------------------------------------------
Summary of changes:
libavcodec/sanm.c | 69 +++++++++++++++++++++++++++----------------------------
1 file changed, 34 insertions(+), 35 deletions(-)
hooks/post-receive
--
1
0
[ffmpeg] branch release/8.0 updated. efa64c2acc hwcontext_vulkan: Fix build with older Vulkan headers
by ffmpeg-git@ffmpeg.org 21 Aug '25
by ffmpeg-git@ffmpeg.org 21 Aug '25
21 Aug '25
The branch, release/8.0 has been updated
via efa64c2acc70e866fd4499ef6d7911bb7608002f (commit)
via 9c5f654e44ea9da9efff4438c22f9a04dfe4cb0b (commit)
via 5494973d2856ebd6ec07a6098d04240a02e8e531 (commit)
from 15cb74fc681e159bfab3c5cf320775761aa38e3c (commit)
- Log -----------------------------------------------------------------
commit efa64c2acc70e866fd4499ef6d7911bb7608002f
Author: Mark Thompson <sw(a)jkqxz.net>
AuthorDate: Sat Aug 9 17:45:46 2025 +0100
Commit: Lynne <dev(a)lynne.ee>
CommitDate: Fri Aug 22 04:44:19 2025 +0900
hwcontext_vulkan: Fix build with older Vulkan headers
(cherry picked from commit 4a42e5a1e2991036e5ae5b3906c31c5f530dd764)
diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c
index f1ff7b9eb0..4e078eb527 100644
--- a/libavutil/hwcontext_vulkan.c
+++ b/libavutil/hwcontext_vulkan.c
@@ -2908,7 +2908,7 @@ static int vulkan_frames_init(AVHWFramesContext *hwfc)
if (p->dev_is_nvidia &&
(((fmt->nb_images == 1) && (fmt->vk_planes > 1)) ||
(av_pix_fmt_desc_get(hwfc->sw_format)->nb_components == 1)))
- supported_usage &= ~VK_IMAGE_USAGE_HOST_TRANSFER_BIT;
+ supported_usage &= ~VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT;
/* Image usage flags */
if (!hwctx->usage) {
commit 9c5f654e44ea9da9efff4438c22f9a04dfe4cb0b
Author: Mark Thompson <sw(a)jkqxz.net>
AuthorDate: Sat Aug 9 17:46:09 2025 +0100
Commit: Lynne <dev(a)lynne.ee>
CommitDate: Fri Aug 22 04:44:19 2025 +0900
hwcontext_vulkan: Fix build
(cherry picked from commit 19473362fcecddeaef2f16e78d16023d6dfe5a08)
diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c
index 857dae2883..f1ff7b9eb0 100644
--- a/libavutil/hwcontext_vulkan.c
+++ b/libavutil/hwcontext_vulkan.c
@@ -3988,7 +3988,7 @@ static VkImageAspectFlags plane_index_to_aspect(int plane) {
if (plane == 2) return VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT;
if (plane == 3) return VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT;
- av_assert2 (false && "Invalid plane index");
+ av_assert2 (0 && "Invalid plane index");
return VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT;
}
commit 5494973d2856ebd6ec07a6098d04240a02e8e531
Author: Mark Thompson <sw(a)jkqxz.net>
AuthorDate: Sat Aug 9 09:06:13 2025 +0100
Commit: Lynne <dev(a)lynne.ee>
CommitDate: Fri Aug 22 04:44:19 2025 +0900
cbs_vp9: Fix VP9 passthrough
Don't overwrite the bitstream values when updating the top-level loop
filter and segmentation state, instead do the update separately at the
end of the frame parsing.
This also reverts the change to the passthrough tests which made them
have output not matching the input.
(cherry picked from commit 26a2a76346457e33408ca9ef5453b1d14cca2504)
diff --git a/libavcodec/cbs_vp9_syntax_template.c b/libavcodec/cbs_vp9_syntax_template.c
index 9c4f09eac9..9d01debb6d 100644
--- a/libavcodec/cbs_vp9_syntax_template.c
+++ b/libavcodec/cbs_vp9_syntax_template.c
@@ -152,7 +152,6 @@ static int FUNC(interpolation_filter)(CodedBitstreamContext *ctx, RWContext *rw,
static int FUNC(loop_filter_params)(CodedBitstreamContext *ctx, RWContext *rw,
VP9RawFrameHeader *current)
{
- CodedBitstreamVP9Context *vp9 = ctx->priv_data;
int err, i;
f(6, loop_filter_level);
@@ -160,8 +159,6 @@ static int FUNC(loop_filter_params)(CodedBitstreamContext *ctx, RWContext *rw,
f(1, loop_filter_delta_enabled);
if (current->loop_filter_delta_enabled) {
- memcpy(current->loop_filter_ref_deltas, vp9->loop_filter_ref_deltas, sizeof(vp9->loop_filter_ref_deltas));
- memcpy(current->loop_filter_mode_deltas, vp9->loop_filter_mode_deltas, sizeof(vp9->loop_filter_mode_deltas));
f(1, loop_filter_delta_update);
if (current->loop_filter_delta_update) {
for (i = 0; i < VP9_MAX_REF_FRAMES; i++) {
@@ -174,9 +171,9 @@ static int FUNC(loop_filter_params)(CodedBitstreamContext *ctx, RWContext *rw,
if (current->update_mode_delta[i])
ss(6, loop_filter_mode_deltas[i], 1, i);
}
- memcpy(vp9->loop_filter_ref_deltas, current->loop_filter_ref_deltas, sizeof(vp9->loop_filter_ref_deltas));
- memcpy(vp9->loop_filter_mode_deltas, current->loop_filter_mode_deltas, sizeof(vp9->loop_filter_mode_deltas));
}
+ } else {
+ infer(loop_filter_delta_update, 0);
}
return 0;
@@ -201,18 +198,11 @@ static int FUNC(segmentation_params)(CodedBitstreamContext *ctx, RWContext *rw,
{
static const uint8_t segmentation_feature_bits[VP9_SEG_LVL_MAX] = { 8, 6, 2, 0 };
static const uint8_t segmentation_feature_signed[VP9_SEG_LVL_MAX] = { 1, 1, 0, 0 };
-
- CodedBitstreamVP9Context *vp9 = ctx->priv_data;
int err, i, j;
f(1, segmentation_enabled);
if (current->segmentation_enabled) {
- memcpy(current->segmentation_tree_probs, vp9->segmentation_tree_probs, sizeof(vp9->segmentation_tree_probs));
- memcpy(current->segmentation_pred_prob, vp9->segmentation_pred_prob, sizeof(vp9->segmentation_pred_prob));
- memcpy(current->feature_enabled, vp9->feature_enabled, sizeof(vp9->feature_enabled));
- memcpy(current->feature_value, vp9->feature_value, sizeof(vp9->feature_value));
- memcpy(current->feature_sign, vp9->feature_sign, sizeof(vp9->feature_sign));
f(1, segmentation_update_map);
if (current->segmentation_update_map) {
for (i = 0; i < 7; i++)
@@ -224,8 +214,6 @@ static int FUNC(segmentation_params)(CodedBitstreamContext *ctx, RWContext *rw,
else
infer(segmentation_pred_prob[i], 255);
}
- memcpy(vp9->segmentation_tree_probs, current->segmentation_tree_probs, sizeof(vp9->segmentation_tree_probs));
- memcpy(vp9->segmentation_pred_prob, current->segmentation_pred_prob, sizeof(vp9->segmentation_pred_prob));
}
f(1, segmentation_update_data);
@@ -248,10 +236,9 @@ static int FUNC(segmentation_params)(CodedBitstreamContext *ctx, RWContext *rw,
}
}
}
- memcpy(vp9->feature_enabled, current->feature_enabled, sizeof(vp9->feature_enabled));
- memcpy(vp9->feature_value, current->feature_value, sizeof(vp9->feature_value));
- memcpy(vp9->feature_sign, current->feature_sign, sizeof(vp9->feature_sign));
}
+ } else {
+ infer(segmentation_update_data, 0);
}
return 0;
@@ -368,18 +355,6 @@ static int FUNC(uncompressed_header)(CodedBitstreamContext *ctx, RWContext *rw,
f(2, frame_context_idx);
- if (current->frame_type == VP9_KEY_FRAME || current->error_resilient_mode || current->intra_only) {
- infer(update_ref_delta[0], 1);
- infer(update_ref_delta[1], 0);
- infer(update_ref_delta[2], -1);
- infer(update_ref_delta[3], -1);
- infer(loop_filter_mode_deltas[0], 0);
- infer(loop_filter_mode_deltas[1], 0);
- memset(vp9->feature_enabled, 0, sizeof(current->feature_enabled));
- memset(vp9->feature_value, 0, sizeof(current->feature_value));
- memset(vp9->feature_sign, 0, sizeof(current->feature_sign));
- }
-
CHECK(FUNC(loop_filter_params)(ctx, rw, current));
CHECK(FUNC(quantization_params)(ctx, rw, current));
CHECK(FUNC(segmentation_params)(ctx, rw, current));
@@ -399,6 +374,60 @@ static int FUNC(uncompressed_header)(CodedBitstreamContext *ctx, RWContext *rw,
}
}
+ // Update top-level loop filter and segmentation state with changes
+ // from this frame.
+ if (current->frame_type == VP9_KEY_FRAME ||
+ current->intra_only ||
+ current->error_resilient_mode) {
+ // setup_past_independence() - fill with the initial values.
+
+ vp9->loop_filter_ref_deltas[VP9_INTRA_FRAME] = 1;
+ vp9->loop_filter_ref_deltas[VP9_LAST_FRAME] = 0;
+ vp9->loop_filter_ref_deltas[VP9_GOLDEN_FRAME] = -1;
+ vp9->loop_filter_ref_deltas[VP9_ALTREF_FRAME] = -1;
+
+ vp9->loop_filter_mode_deltas[0] = 0;
+ vp9->loop_filter_mode_deltas[1] = 0;
+
+ memset(vp9->feature_enabled, 0, sizeof(vp9->feature_enabled));
+ memset(vp9->feature_value, 0, sizeof(vp9->feature_value));
+ memset(vp9->feature_sign, 0, sizeof(vp9->feature_sign));
+
+ } else {
+ // Modify previous state based on updates in this frame.
+
+ if (current->loop_filter_delta_update) {
+ for (i = 0; i < 4; i++) {
+ if (current->update_ref_delta[i])
+ vp9->loop_filter_ref_deltas[i] =
+ current->loop_filter_ref_deltas[i];
+ }
+ for (i = 0; i < 2; i++) {
+ if (current->update_mode_delta[i])
+ vp9->loop_filter_mode_deltas[i] =
+ current->loop_filter_mode_deltas[i];
+ }
+ }
+
+ if (current->segmentation_update_data) {
+ memcpy(vp9->feature_enabled, current->feature_enabled,
+ sizeof(vp9->feature_enabled));
+ memcpy(vp9->feature_value, current->feature_value,
+ sizeof(vp9->feature_value));
+ memcpy(vp9->feature_sign, current->feature_sign,
+ sizeof(vp9->feature_sign));
+
+ if (current->segmentation_update_map) {
+ memcpy(vp9->segmentation_tree_probs,
+ current->segmentation_tree_probs,
+ sizeof(vp9->segmentation_tree_probs));
+ memcpy(vp9->segmentation_pred_prob,
+ current->segmentation_pred_prob,
+ sizeof(vp9->segmentation_pred_prob));
+ }
+ }
+ }
+
av_log(ctx->log_ctx, AV_LOG_DEBUG, "Frame: size %dx%d "
"subsample %dx%d bit_depth %d tiles %dx%d.\n",
vp9->frame_width, vp9->frame_height,
diff --git a/tests/ref/fate/cbs-vp9-vp90-2-03-deltaq b/tests/ref/fate/cbs-vp9-vp90-2-03-deltaq
index addf9a942a..f621d7a480 100644
--- a/tests/ref/fate/cbs-vp9-vp90-2-03-deltaq
+++ b/tests/ref/fate/cbs-vp9-vp90-2-03-deltaq
@@ -1 +1 @@
-0f43cdcbdc97ea6651c56540d97610e5
+fe62460fe28202e0666e628afd8602ca
diff --git a/tests/ref/fate/cbs-vp9-vp90-2-05-resize b/tests/ref/fate/cbs-vp9-vp90-2-05-resize
index 965bbb272e..8f036bba81 100644
--- a/tests/ref/fate/cbs-vp9-vp90-2-05-resize
+++ b/tests/ref/fate/cbs-vp9-vp90-2-05-resize
@@ -1 +1 @@
-af456bb18c4f5e6fb83c559769ce1b07
+6838422ebb45df353a2bad62b9aff8e9
diff --git a/tests/ref/fate/cbs-vp9-vp90-2-06-bilinear b/tests/ref/fate/cbs-vp9-vp90-2-06-bilinear
index ffa375790b..9359e21e40 100644
--- a/tests/ref/fate/cbs-vp9-vp90-2-06-bilinear
+++ b/tests/ref/fate/cbs-vp9-vp90-2-06-bilinear
@@ -1 +1 @@
-af98321cd43a36f065f8c728e22f2c06
+179e228004c396a301c89f34b6c72f68
diff --git a/tests/ref/fate/cbs-vp9-vp90-2-09-lf_deltas b/tests/ref/fate/cbs-vp9-vp90-2-09-lf_deltas
index 313a531945..5b21675c76 100644
--- a/tests/ref/fate/cbs-vp9-vp90-2-09-lf_deltas
+++ b/tests/ref/fate/cbs-vp9-vp90-2-09-lf_deltas
@@ -1 +1 @@
-8b4ce818cde9621481b6bf7997b544b8
+1d1f0768c547461ae2abef57f0aabc24
diff --git a/tests/ref/fate/cbs-vp9-vp90-2-10-show-existing-frame b/tests/ref/fate/cbs-vp9-vp90-2-10-show-existing-frame
index d87d1b7185..19b7a78dd8 100644
--- a/tests/ref/fate/cbs-vp9-vp90-2-10-show-existing-frame
+++ b/tests/ref/fate/cbs-vp9-vp90-2-10-show-existing-frame
@@ -1 +1 @@
-ea65b698e86322709257caf9038da40a
+13fa042ee1b4079c227a5c5c96e2db38
diff --git a/tests/ref/fate/cbs-vp9-vp90-2-10-show-existing-frame2 b/tests/ref/fate/cbs-vp9-vp90-2-10-show-existing-frame2
index fa8d684e42..e7bf2a078d 100644
--- a/tests/ref/fate/cbs-vp9-vp90-2-10-show-existing-frame2
+++ b/tests/ref/fate/cbs-vp9-vp90-2-10-show-existing-frame2
@@ -1 +1 @@
-c1047aeeb593f2f87818d9bd19cb12f2
+2ab7c95e4637fb6a15efd8c0a8d6af98
diff --git a/tests/ref/fate/cbs-vp9-vp90-2-segmentation-aq-akiyo b/tests/ref/fate/cbs-vp9-vp90-2-segmentation-aq-akiyo
index f2b03031a4..f30889dbdc 100644
--- a/tests/ref/fate/cbs-vp9-vp90-2-segmentation-aq-akiyo
+++ b/tests/ref/fate/cbs-vp9-vp90-2-segmentation-aq-akiyo
@@ -1 +1 @@
-cb14fde4f0f99d6e962fb109d3db36ee
+b5be66a6a8792f7aac090beb9f3b4555
diff --git a/tests/ref/fate/cbs-vp9-vp90-2-segmentation-sf-akiyo b/tests/ref/fate/cbs-vp9-vp90-2-segmentation-sf-akiyo
index a7d074c28c..dca77f2113 100644
--- a/tests/ref/fate/cbs-vp9-vp90-2-segmentation-sf-akiyo
+++ b/tests/ref/fate/cbs-vp9-vp90-2-segmentation-sf-akiyo
@@ -1 +1 @@
-0f1cfba95edb2446689547fc012f741b
+7bde6532fc682bfa3f5170cf9d607865
diff --git a/tests/ref/fate/cbs-vp9-vp90-2-tiling-pedestrian b/tests/ref/fate/cbs-vp9-vp90-2-tiling-pedestrian
index d029f01530..0aa3cc8ce6 100644
--- a/tests/ref/fate/cbs-vp9-vp90-2-tiling-pedestrian
+++ b/tests/ref/fate/cbs-vp9-vp90-2-tiling-pedestrian
@@ -1 +1 @@
-db40458891febf9f007c98e735e02ab9
+1e40e8b48e4682e8b8004b9e0e60a5b6
diff --git a/tests/ref/fate/cbs-vp9-vp91-2-04-yuv440 b/tests/ref/fate/cbs-vp9-vp91-2-04-yuv440
index fe81cc0b39..947e1229eb 100644
--- a/tests/ref/fate/cbs-vp9-vp91-2-04-yuv440
+++ b/tests/ref/fate/cbs-vp9-vp91-2-04-yuv440
@@ -1 +1 @@
-855cffb78a063ad0dfc432ae593974a2
+9bb416c0304a13c4f66c56aef8431cd4
diff --git a/tests/ref/fate/cbs-vp9-vp91-2-04-yuv444 b/tests/ref/fate/cbs-vp9-vp91-2-04-yuv444
index 1b7a1acc6f..bf251138ed 100644
--- a/tests/ref/fate/cbs-vp9-vp91-2-04-yuv444
+++ b/tests/ref/fate/cbs-vp9-vp91-2-04-yuv444
@@ -1 +1 @@
-8f6c44c4098915261e7708ab270877ff
+3a7ed001d30f96d4888f5ca16e6263ce
diff --git a/tests/ref/fate/cbs-vp9-vp92-2-20-10bit-yuv420 b/tests/ref/fate/cbs-vp9-vp92-2-20-10bit-yuv420
index 23d980ea0f..2cad8b947c 100644
--- a/tests/ref/fate/cbs-vp9-vp92-2-20-10bit-yuv420
+++ b/tests/ref/fate/cbs-vp9-vp92-2-20-10bit-yuv420
@@ -1 +1 @@
-0ed4ec02fd72c0b594d74c5cbd7e252f
+7315bb7b55693a87c350b48cd2ee9811
diff --git a/tests/ref/fate/cbs-vp9-vp93-2-20-10bit-yuv422 b/tests/ref/fate/cbs-vp9-vp93-2-20-10bit-yuv422
index 0a77ebbd58..bb1c0f7ea7 100644
--- a/tests/ref/fate/cbs-vp9-vp93-2-20-10bit-yuv422
+++ b/tests/ref/fate/cbs-vp9-vp93-2-20-10bit-yuv422
@@ -1 +1 @@
-1e8d7e1bd62a04bf47270c72a1c55bb7
+1a7b5bf86bf0bbef10c9a1b2c799b276
diff --git a/tests/ref/fate/cbs-vp9-vp93-2-20-12bit-yuv444 b/tests/ref/fate/cbs-vp9-vp93-2-20-12bit-yuv444
index 9705dfeb50..9b7b358d04 100644
--- a/tests/ref/fate/cbs-vp9-vp93-2-20-12bit-yuv444
+++ b/tests/ref/fate/cbs-vp9-vp93-2-20-12bit-yuv444
@@ -1 +1 @@
-c2ca28679265c1c86d4a7ef60cc061ff
+9b7a0b7fc081542d9be1074b23054861
-----------------------------------------------------------------------
Summary of changes:
libavcodec/cbs_vp9_syntax_template.c | 87 ++++++++++++++--------
libavutil/hwcontext_vulkan.c | 4 +-
tests/ref/fate/cbs-vp9-vp90-2-03-deltaq | 2 +-
tests/ref/fate/cbs-vp9-vp90-2-05-resize | 2 +-
tests/ref/fate/cbs-vp9-vp90-2-06-bilinear | 2 +-
tests/ref/fate/cbs-vp9-vp90-2-09-lf_deltas | 2 +-
.../ref/fate/cbs-vp9-vp90-2-10-show-existing-frame | 2 +-
.../fate/cbs-vp9-vp90-2-10-show-existing-frame2 | 2 +-
.../ref/fate/cbs-vp9-vp90-2-segmentation-aq-akiyo | 2 +-
.../ref/fate/cbs-vp9-vp90-2-segmentation-sf-akiyo | 2 +-
tests/ref/fate/cbs-vp9-vp90-2-tiling-pedestrian | 2 +-
tests/ref/fate/cbs-vp9-vp91-2-04-yuv440 | 2 +-
tests/ref/fate/cbs-vp9-vp91-2-04-yuv444 | 2 +-
tests/ref/fate/cbs-vp9-vp92-2-20-10bit-yuv420 | 2 +-
tests/ref/fate/cbs-vp9-vp93-2-20-10bit-yuv422 | 2 +-
tests/ref/fate/cbs-vp9-vp93-2-20-12bit-yuv444 | 2 +-
16 files changed, 74 insertions(+), 45 deletions(-)
hooks/post-receive
--
1
0