)]}'
{
  "log": [
    {
      "commit": "2b68d2babae73714846961fb0ee47e3b3d2e39a9",
      "tree": "c60e6b597c312801ce91d81110442d40fbf4d672",
      "parents": [
        "ab1e157fc2286f5aecb0f1fdebd36f02d29b3a0d"
      ],
      "author": {
        "name": "Eugene Zemtsov",
        "email": "eugene@chromium.org",
        "time": "Wed Jul 15 22:11:41 2026"
      },
      "committer": {
        "name": "Eugene Zemtsov",
        "email": "eugene@chromium.org",
        "time": "Thu Jul 16 02:28:48 2026"
      },
      "message": "README.chromium file\n"
    },
    {
      "commit": "ab1e157fc2286f5aecb0f1fdebd36f02d29b3a0d",
      "tree": "39b677f15d1191a146f7a23acb078faabcd61da6",
      "parents": [
        "e3d1150fa65fe906f69f34a9bc03655d521a9405"
      ],
      "author": {
        "name": "Eugene Zemtsov",
        "email": "eugene@chromium.org",
        "time": "Wed Jul 15 22:11:40 2026"
      },
      "committer": {
        "name": "Eugene Zemtsov",
        "email": "eugene@chromium.org",
        "time": "Thu Jul 16 02:28:48 2026"
      },
      "message": "GN Configuration\n"
    },
    {
      "commit": "e3d1150fa65fe906f69f34a9bc03655d521a9405",
      "tree": "585cf0914591564d75ed50991ce9438a98ff4c50",
      "parents": [
        "db0156ccfb20a88886676c31231a77a04741bd13"
      ],
      "author": {
        "name": "Eugene Zemtsov",
        "email": "eugene@chromium.org",
        "time": "Wed Jul 15 22:06:00 2026"
      },
      "committer": {
        "name": "Eugene Zemtsov",
        "email": "eugene@chromium.org",
        "time": "Thu Jul 16 02:28:48 2026"
      },
      "message": "Fix syntax error in RISC-V intrapred macro\n"
    },
    {
      "commit": "db0156ccfb20a88886676c31231a77a04741bd13",
      "tree": "8f3fb8d4c4a74cf33bf42147dbf32462d3313a55",
      "parents": [
        "fcf00a65aa4168c2ae1ce6e55f59e8bc1edd6c78",
        "a5e6c0175a7245fc1a9f4639da2810156128aa8b"
      ],
      "author": {
        "name": "Eugene Zemtsov",
        "email": "eugene@chromium.org",
        "time": "Wed Jul 15 22:00:06 2026"
      },
      "committer": {
        "name": "Eugene Zemtsov",
        "email": "eugene@chromium.org",
        "time": "Wed Jul 15 22:00:06 2026"
      },
      "message": "Merge remote-tracking branch \u0027upstream/master\u0027 into sushi-2026-07-15-14-50-59\n\n# Conflicts:\n#\tconfigure\n#\tlibavcodec/h2645_sei.c\n#\tlibavcodec/hevc/hevcdec.c\n#\tlibavcodec/opus/parse.c\n#\tlibavcodec/opus/parser.c\n#\tlibavformat/mov.c\n#\tlibavformat/oggdec.c\n"
    },
    {
      "commit": "a5e6c0175a7245fc1a9f4639da2810156128aa8b",
      "tree": "367a87d4a17c908a12927a9b961c43f5a45f93ae",
      "parents": [
        "1588bce21b6d5d9064fd9576c038fd8d6ec8beac"
      ],
      "author": {
        "name": "Ramiro Polla",
        "email": "ramiro.polla@gmail.com",
        "time": "Mon Jun 22 23:49:20 2026"
      },
      "committer": {
        "name": "Ramiro Polla",
        "email": "ramiro.polla@gmail.com",
        "time": "Wed Jul 15 10:46:04 2026"
      },
      "message": "swscale/uops: mark unneeded rows as zero in translate_linear_op()\n"
    },
    {
      "commit": "1588bce21b6d5d9064fd9576c038fd8d6ec8beac",
      "tree": "c4dd4f2cdfcfc6c248850697e222f94ec0a4a183",
      "parents": [
        "005e963c85689f4714ea9948a6be4739fc68ebc9"
      ],
      "author": {
        "name": "Mirkó Visontai",
        "email": "mirkov@google.com",
        "time": "Mon Jul 13 18:15:28 2026"
      },
      "committer": {
        "name": "Zhao Zhili",
        "email": "quink@noreply.code.ffmpeg.org",
        "time": "Wed Jul 15 03:47:53 2026"
      },
      "message": "avdevice/android_camera: fix OOB read in metadata parsing\n\nACAMERA_SCALER_AVAILABLE_STREAM_CONFIGURATIONS metadata is an\nint32[n*4] array (one 4-tuple per stream config: format, width,\nheight, input/output flag). ACameraMetadata_const_entry.count is the\ntotal number of int32_t elements, not the number of tuples. The loop\nbound must be count/4 to avoid iterating past the end of the array.\n\nSimilarly, ACAMERA_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES is an\nint32[n*2] array (min/max pairs). The loop bound must be count/2.\n\nWithout this fix, both loops over-iterate and read heap memory\nbeyond the metadata array bounds.\n\nSigned-off-by: Mirko Visontai \u003cmirkov@google.com\u003e\n"
    },
    {
      "commit": "005e963c85689f4714ea9948a6be4739fc68ebc9",
      "tree": "6904fcaeb2d4b7f62a136caa5bc86e1bd4a646ec",
      "parents": [
        "d7fe91e9c38fa968034d33d15c3b6c79d0f9c405"
      ],
      "author": {
        "name": "Thomas Guilbert",
        "email": "tguilbert@chromium.org",
        "time": "Wed Jun 17 03:18:51 2026"
      },
      "committer": {
        "name": "michaelni",
        "email": "michael@niedermayer.cc",
        "time": "Wed Jul 15 01:36:36 2026"
      },
      "message": "Guard against int overflow when discarding samples\n\nIn `discard_samples()`, the rescaling operation can evaluate to\nAV_NOPTS_VALUE if the rescaling operation overflows. This commit\nprevents adjusting timestamp and durations by the invalid value.\n"
    },
    {
      "commit": "d7fe91e9c38fa968034d33d15c3b6c79d0f9c405",
      "tree": "b9e3d8b6300465287f0e6eac2fa62ce4e878372d",
      "parents": [
        "1ad50bb62ced9c3a8479ebc57dc3c78d89c25eda"
      ],
      "author": {
        "name": "Timo Rothenpieler",
        "email": "timo@rothenpieler.org",
        "time": "Tue Jul 14 22:52:50 2026"
      },
      "committer": {
        "name": "Timo Rothenpieler",
        "email": "timo@rothenpieler.org",
        "time": "Wed Jul 15 00:24:02 2026"
      },
      "message": "avutil/hwcontext_cuda: fix build with old cuda headers\n"
    },
    {
      "commit": "1ad50bb62ced9c3a8479ebc57dc3c78d89c25eda",
      "tree": "46b272de35478abec723d276978b3f94252536e0",
      "parents": [
        "96bce2956546468bc1019fa772eae8820fe48c68"
      ],
      "author": {
        "name": "Diego de Souza",
        "email": "ddesouza@nvidia.com",
        "time": "Tue Jul 14 23:20:28 2026"
      },
      "committer": {
        "name": "Timo Rothenpieler",
        "email": "timo@rothenpieler.org",
        "time": "Wed Jul 15 00:17:20 2026"
      },
      "message": "configure: gate CUARRAY support on ffnvcodec capabilities\n\nThe CUARRAY implementation unconditionally references CUDA array\nformats and dynamic-loader entries added in nv-codec-headers 13.1.\nThis breaks builds with older ffnvcodec versions that configure\nstill accepts.\n\nProbe for the complete CUARRAY header support and use the result\nto disable only CUARRAY hwaccels and code paths. Ordinary CUDA,\nNVDEC, NVENC, and hwupload_cuda remain available with older headers.\n\nSigned-off-by: Diego de Souza \u003cddesouza@nvidia.com\u003e\n"
    },
    {
      "commit": "96bce2956546468bc1019fa772eae8820fe48c68",
      "tree": "36cb0c4be6f1e4bb3f6cb05b0a640904da389c58",
      "parents": [
        "ac91f1c0f7001cd62528a2130a41379fd2b6d176"
      ],
      "author": {
        "name": "James Almer",
        "email": "jamrial@gmail.com",
        "time": "Tue Jul 14 22:48:26 2026"
      },
      "committer": {
        "name": "James Almer",
        "email": "jamrial@gmail.com",
        "time": "Tue Jul 14 22:48:26 2026"
      },
      "message": "avformat/mov: fix error log for cdsc track references\n\nSigned-off-by: James Almer \u003cjamrial@gmail.com\u003e\n"
    },
    {
      "commit": "ac91f1c0f7001cd62528a2130a41379fd2b6d176",
      "tree": "f136c67dedd090c09f42b177062bbec558a956e5",
      "parents": [
        "07020f5ce8dbac1bbde8cb9fa1cad1accb9a5042"
      ],
      "author": {
        "name": "zhanghongyuan",
        "email": "zhanghongyuan@uniontech.com",
        "time": "Thu Jun 18 05:19:31 2026"
      },
      "committer": {
        "name": "Marton Balint",
        "email": "cus@passwd.hu",
        "time": "Tue Jul 14 21:25:25 2026"
      },
      "message": "avdevice/pulse_audio_dec: validate sample spec before use\n\nff_codec_id_to_pulse_format() returns PA_SAMPLE_INVALID for\nunsupported codecs (e.g. AAC, FLAC, Opus). Without validation,\nthe invalid format propagates to pa_frame_size() and other PA\ncalls, causing assertion failures or division-by-zero.\n\nAdd pa_sample_spec_valid() check, matching the existing guard\nin pulse_audio_enc.c.\n\nSigned-off-by: zhanghongyuan \u003czhanghongyuan@uniontech.com\u003e\n"
    },
    {
      "commit": "fcf00a65aa4168c2ae1ce6e55f59e8bc1edd6c78",
      "tree": "f016d0f8da5900614fa38272d6f6c3bf0c7379bb",
      "parents": [
        "ad41607c61898cf7150e0fb20fe4bbabd44922a3"
      ],
      "author": {
        "name": "Victor Liu",
        "email": "liuvic@google.com",
        "time": "Tue Jul 14 18:08:04 2026"
      },
      "committer": {
        "name": "Victor Liu",
        "email": "liuvic@google.com",
        "time": "Tue Jul 14 20:06:33 2026"
      },
      "message": "Exclude architecture-specific C init files when linux-noasm\n\nIn linux-noasm builds (such as MSan), assembly optimizations are\ndisabled, leaving handwritten assembly symbols uncompiled. However,\narchitecture-specific C initialization files contain static global\ntables that reference these uncompiled assembly symbols, causing\ndynamic linker symbol lookup errors in libffmpeg.so in component builds.\n\nTo prevent undefined symbol errors, removing architecture-specific\nC init files from ffmpeg_c_sources when running linux-noasm.\n\nBug: 526656114\nChange-Id: If49f72e58dc9146840c427d75f43b0d152d88ad3\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/third_party/ffmpeg/+/8047362\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "07020f5ce8dbac1bbde8cb9fa1cad1accb9a5042",
      "tree": "cc4d6575276559072c51b4def02e7815f790a851",
      "parents": [
        "1eb47126215761abf89ff9db8fd9164bd596d206"
      ],
      "author": {
        "name": "Diego de Souza",
        "email": "ddesouza@nvidia.com",
        "time": "Wed Mar 18 22:56:43 2026"
      },
      "committer": {
        "name": "Timo Rothenpieler",
        "email": "timo@rothenpieler.org",
        "time": "Tue Jul 14 19:45:02 2026"
      },
      "message": "avfilter/hwupload_cuda: add CUARRAY output and semi-planar 444 format support\n\nAdd an output_format option (cuda | cuarray) so the filter can produce\neither pitched-linear (AV_PIX_FMT_CUDA, default) or block-linear\n(AV_PIX_FMT_CUARRAY) device frames.  This enables host-to-device\nupload directly into CUarray surfaces for the CUARRAY transcode\npipeline.\n\nAlso extend the accepted input pixel format list with semi-planar 444\nformats (NV24, P410, P416) and the planar MSB variants (YUV444P10MSB,\nYUV444P12MSB).  Semi-planar 444 formats are rejected with a clear\nerror when output_format\u003dcuda, as they are only supported by the\nCUarray allocation path.\n\nSigned-off-by: Diego de Souza \u003cddesouza@nvidia.com\u003e\n"
    },
    {
      "commit": "1eb47126215761abf89ff9db8fd9164bd596d206",
      "tree": "4def01d49af33a61d26485735c94ebd2f5931eb7",
      "parents": [
        "a127ad2da64e7337efa850a5186ead9ee70b546d"
      ],
      "author": {
        "name": "Diego de Souza",
        "email": "ddesouza@nvidia.com",
        "time": "Sat Mar 14 00:38:17 2026"
      },
      "committer": {
        "name": "Timo Rothenpieler",
        "email": "timo@rothenpieler.org",
        "time": "Tue Jul 14 19:45:02 2026"
      },
      "message": "fftools/ffmpeg_dec: improve hwaccel format negotiation for CUARRAY\n\nAdjust get_format() to prefer the exact hwaccel_output_format requested\nby the user when multiple hardware formats are available (e.g. both\nAV_PIX_FMT_CUDA and AV_PIX_FMT_CUARRAY). Previously, the loop would\nbreak on the first matching device type, ignoring the user\u0027s preferred\noutput format.\n\nWhen the preferred format is not available, the code now falls back\ngracefully and emits a warning.\n\nSigned-off-by: Diego de Souza \u003cddesouza@nvidia.com\u003e\n"
    },
    {
      "commit": "a127ad2da64e7337efa850a5186ead9ee70b546d",
      "tree": "095fe21050be6430d4936d2ed1085fedf7aa3b72",
      "parents": [
        "0c0580e5bf97fc5792af0b635ce5a50a501526ee"
      ],
      "author": {
        "name": "Diego de Souza",
        "email": "ddesouza@nvidia.com",
        "time": "Sat Mar 14 00:34:43 2026"
      },
      "committer": {
        "name": "Timo Rothenpieler",
        "email": "timo@rothenpieler.org",
        "time": "Tue Jul 14 19:45:02 2026"
      },
      "message": "avcodec/nvenc: add CUARRAY (block-linear) input support\n\nAllow NVENC to accept AV_PIX_FMT_CUARRAY frames by registering them\nas NV_ENC_INPUT_RESOURCE_TYPE_CUDAARRAY. This enables zero-copy\ntranscode when paired with NVDEC CUARRAY output, avoiding the\npitched-linear intermediate copy. Also accept semi-planar 444\nformats (NV24, P410, P412, P416) and map them to the corresponding\nNVENC buffer formats when registered as CUarray input resources.\n\nGuarded by NVENC_HAVE_CUDA_ARRAY_INPUT_SUPPORT (SDK 13.1+).\n\nSigned-off-by: Diego de Souza \u003cddesouza@nvidia.com\u003e\n"
    },
    {
      "commit": "0c0580e5bf97fc5792af0b635ce5a50a501526ee",
      "tree": "92e020279f31bb81d7882e330509f3db5084e8ba",
      "parents": [
        "acbaf420aade95d5965260ede91945b194093b32"
      ],
      "author": {
        "name": "Diego de Souza",
        "email": "ddesouza@nvidia.com",
        "time": "Sat Mar 14 00:33:08 2026"
      },
      "committer": {
        "name": "Timo Rothenpieler",
        "email": "timo@rothenpieler.org",
        "time": "Tue Jul 14 19:45:02 2026"
      },
      "message": "avcodec/cuviddec: add CUARRAY opaque output and zero-copy support\n\nImplement opaque block-linear output for the CUVID decoder, mirroring\nthe NVDEC hwaccel path but within the standalone CUVID demuxer/decoder.\n\nKey additions:\n  - output_format\u003dcuarray option and zero_copy toggle\n  - CUarray surface creation and cuvidRegisterDecodeSurfaces\n  - Zero-copy path: frames reference decode CUarray surfaces directly\n  - Copy path: output surfaces allocated from the hwcontext_cuda pool\n  - Deferred decoder cleanup (CuvidDecoderCleanup) to handle the case\n    where surfaces outlive the decoder due to encoder buffering\n  - 444 chroma sw_pix_fmt remapping to semi-planar (NV24, P410, P412,\n    P416) to match the native CUarray layout\n  - Per-plane linesize derived from CUarray plane descriptors via\n    cuArrayGetPlane / cuArray3DGetDescriptor\n  - Crop, resize, and deinterlace forced off (with warnings) for\n    cuarray output, as the decode surfaces are used directly\n\nAll opaque-specific code is guarded by NVDEC_HAVE_OPAQUE_OUTPUT_SUPPORT.\n\nSigned-off-by: Diego de Souza \u003cddesouza@nvidia.com\u003e\n"
    },
    {
      "commit": "acbaf420aade95d5965260ede91945b194093b32",
      "tree": "0d4c91ff12d9847a1c1bd065a8f27c07abb814e8",
      "parents": [
        "ca13ad0c2873f682f99ae52cfe7c8b611044d63b"
      ],
      "author": {
        "name": "Diego de Souza",
        "email": "ddesouza@nvidia.com",
        "time": "Sat Mar 14 00:31:56 2026"
      },
      "committer": {
        "name": "Timo Rothenpieler",
        "email": "timo@rothenpieler.org",
        "time": "Tue Jul 14 19:45:02 2026"
      },
      "message": "avcodec/nvdec: register CUARRAY hwaccel variants for all supported codecs\n\nAdd CUARRAY hwaccel structs (ff_\u003ccodec\u003e_nvdec_cuarray_hwaccel) and the\ncorresponding AV_PIX_FMT_CUARRAY entries in each decoder\u0027s pixel format\nnegotiation list. This allows decoders to advertise CUARRAY as a\nsupported hardware output format alongside AV_PIX_FMT_CUDA.\n\nCodecs: H.264, HEVC, AV1, MPEG-1, MPEG-2, MPEG-4, VC-1, WMV3, VP8, VP9.\n\nSigned-off-by: Diego de Souza \u003cddesouza@nvidia.com\u003e\n"
    },
    {
      "commit": "ca13ad0c2873f682f99ae52cfe7c8b611044d63b",
      "tree": "c46949f74d548c1225c298e6a845dc094d51d415",
      "parents": [
        "ef3dcf4ea6139f2b8cad29e67b48a39f094fa3bc"
      ],
      "author": {
        "name": "Diego de Souza",
        "email": "ddesouza@nvidia.com",
        "time": "Sat Mar 14 00:24:24 2026"
      },
      "committer": {
        "name": "Timo Rothenpieler",
        "email": "timo@rothenpieler.org",
        "time": "Tue Jul 14 19:45:02 2026"
      },
      "message": "avcodec/nvdec: add opaque CUARRAY output and zero-copy decode support\n\nAdd support for NVDEC opaque output using block-linear CUarray surfaces\nregistered with cuvidRegisterDecodeSurfaces (Video Codec SDK 13.1+).\n\nTwo output modes are implemented:\n\n  - Zero-copy (unsafe_output): decode surfaces are exposed directly\n    to the consumer (e.g. NVENC). The surface is locked via\n    surface_in_use[] and released when the downstream AVBufferRef\n    is freed.\n\n  - Safe copy (!unsafe_output): the frame is set up pointing to the\n    decode CUarray, then av_frame_make_writable() copies it into a\n    new CUarray from the output hwframes pool via cuda_transfer_data().\n    This decouples the decode and encode surface lifetimes.\n\nAll opaque-specific code is guarded by NVDEC_HAVE_OPAQUE_OUTPUT_SUPPORT,\nwith a AVERROR(ENOSYS) fallback when building against older SDK versions.\n\nSigned-off-by: Diego de Souza \u003cddesouza@nvidia.com\u003e\n"
    },
    {
      "commit": "ef3dcf4ea6139f2b8cad29e67b48a39f094fa3bc",
      "tree": "ffafd9afa0300ab3e873c6c50fb3693eacf1222d",
      "parents": [
        "c7546ce0ea6e451c33bf16c8ea1a341b917652a5"
      ],
      "author": {
        "name": "Timo Rothenpieler",
        "email": "timo@rothenpieler.org",
        "time": "Mon Mar 16 15:11:32 2026"
      },
      "committer": {
        "name": "Timo Rothenpieler",
        "email": "timo@rothenpieler.org",
        "time": "Tue Jul 14 19:45:02 2026"
      },
      "message": "avutil/hwcontext_cuda: add CUarray surface pool support\n\nExtend the internal CUDA frames context (CUDAFramesContext) to manage\nblock-linear CUarray surfaces alongside the existing pitched-linear\nallocations.\n\nWhen the frames context format is AV_PIX_FMT_CUARRAY, the caller\n(e.g. NVDEC) can fill cuarray_desc and cuarray_num_surfaces before\ncalling av_hwframe_ctx_init(), which then allocates the CUarray\nsurfaces.\n\nAlso add cuda_transfer_data_from_cuarray() to support hwdownload\nfrom CUarray frames to host memory via cuMemcpy2DAsync.\n\nCo-authored-by: Diego de Souza \u003cddesouza@nvidia.com\u003e\nSigned-off-by: Diego de Souza \u003cddesouza@nvidia.com\u003e\n"
    },
    {
      "commit": "c7546ce0ea6e451c33bf16c8ea1a341b917652a5",
      "tree": "a984c7e7ec247fecd298edd1fcb0d57c6c472aa5",
      "parents": [
        "5002b55ce79fda51e1d329a28d112495aab9f8cb"
      ],
      "author": {
        "name": "Diego de Souza",
        "email": "ddesouza@nvidia.com",
        "time": "Sat Mar 14 00:11:31 2026"
      },
      "committer": {
        "name": "Timo Rothenpieler",
        "email": "timo@rothenpieler.org",
        "time": "Tue Jul 14 19:45:02 2026"
      },
      "message": "avutil/pixfmt: add AV_PIX_FMT_CUARRAY for opaque CUDA block-linear surfaces\n\nAdd a new hardware pixel format representing opaque block-linear CUDA\narrays (CUarray). This format is used by NVDEC when decoding into\nopaque surfaces registered with cuvidRegisterDecodeSurfaces, and can\nbe consumed directly by NVENC as CUDA array input without requiring\na pitch-linear copy.\n\nSigned-off-by: Diego de Souza \u003cddesouza@nvidia.com\u003e\n"
    },
    {
      "commit": "5002b55ce79fda51e1d329a28d112495aab9f8cb",
      "tree": "667b38fcc8fdd2564597fce92f946ffd35fea8a2",
      "parents": [
        "8a3e9147b697f093ef59675906ceb8f64cd78d19"
      ],
      "author": {
        "name": "Vignesh Venkat",
        "email": "vigneshv@google.com",
        "time": "Tue Jul 14 17:39:09 2026"
      },
      "committer": {
        "name": "James Almer",
        "email": "jamrial@gmail.com",
        "time": "Tue Jul 14 18:50:30 2026"
      },
      "message": "fate/mov: Add fate test for t35 cdsc track\n\nSigned-off-by: Vignesh Venkat \u003cvigneshv@google.com\u003e\n"
    },
    {
      "commit": "8a3e9147b697f093ef59675906ceb8f64cd78d19",
      "tree": "bbb9d70330ee352de72c51a47985ae3ecb3d0229",
      "parents": [
        "a302c9ae44ec07cbe12417f14c1852868f903f60"
      ],
      "author": {
        "name": "James Almer",
        "email": "jamrial@gmail.com",
        "time": "Tue Jul 14 00:01:53 2026"
      },
      "committer": {
        "name": "James Almer",
        "email": "jamrial@gmail.com",
        "time": "Tue Jul 14 18:50:30 2026"
      },
      "message": "avformat/mov: parse cdsc track references\n\nSigned-off-by: James Almer \u003cjamrial@gmail.com\u003e\n"
    },
    {
      "commit": "a302c9ae44ec07cbe12417f14c1852868f903f60",
      "tree": "915d9f08ba8c8593cdbd7ebb6aa491ed3c84489f",
      "parents": [
        "312c8309162eab790d6bed069db7eb1a52263e1e"
      ],
      "author": {
        "name": "Vignesh Venkat",
        "email": "vigneshv@google.com",
        "time": "Thu Apr 30 00:02:43 2026"
      },
      "committer": {
        "name": "James Almer",
        "email": "jamrial@gmail.com",
        "time": "Tue Jul 14 18:50:24 2026"
      },
      "message": "avformat/mov: Add itut-t35 data codec support\n\nThe specification for the T35MetaDataSampleEntry (\u0027it35\u0027) box is\navailable in the \"Draft text of ISO/IEC 14496-12 10th edition\"\nwhich can be found on the MPEG website:\nhttps://www.mpeg.org/standards/MPEG-4/12/\n\nSupport the t35 track in mov and export the `t35_identifier`\nas extradata and human readable sample description as the stream\ndescription.\n\nSigned-off-by: Vignesh Venkat \u003cvigneshv@google.com\u003e\n"
    },
    {
      "commit": "312c8309162eab790d6bed069db7eb1a52263e1e",
      "tree": "77f1a0b194aaa8754476203386ef32b5ae2d6c5b",
      "parents": [
        "9287fc3bc90e6c2cbdd5a5955eb46153501695fe"
      ],
      "author": {
        "name": "Raja-89",
        "email": "imraja729@gmail.com",
        "time": "Mon Jul 13 14:48:47 2026"
      },
      "committer": {
        "name": "guoyejun",
        "email": "yejun.guo@intel.com",
        "time": "Tue Jul 14 14:26:53 2026"
      },
      "message": "avfilter/dnn: auto-initialize nireq for Torch backend\n\nInitialize ctx-\u003enireq with av_cpu_count() / 2 + 1 when\nunset, matching the TensorFlow and OpenVINO backends.\n\nCreate ctx-\u003enireq THRequestItems in a loop instead of\nhardcoding a single request, enabling concurrent async\ninference requests for improved throughput.\n\nSigned-off-by: Raja Rathour \u003cimraja729@gmail.com\u003e\n"
    },
    {
      "commit": "9287fc3bc90e6c2cbdd5a5955eb46153501695fe",
      "tree": "b5fb1a255fb0d37ed2faee48bb3ff82d2a4c3d9a",
      "parents": [
        "150f7d15df726bdcf49a7c5ef9d8d67c46ed3d41"
      ],
      "author": {
        "name": "lck",
        "email": "luckysk@foxmail.com",
        "time": "Sat Jul 11 01:10:26 2026"
      },
      "committer": {
        "name": "ghost00",
        "email": "luckysk@foxmail.com",
        "time": "Tue Jul 14 13:54:39 2026"
      },
      "message": "lavc/mediacodecdec: rename MediaCodecH264DecContext to MediaCodecContext\n\nThe context structure was named specifically for H.264, but it\u0027s actually\nused for multiple codecs (H.264, H.265, MPEG-4, etc.). Renaming it to\nMediaCodecContext better reflects its actual usage and makes the code\nmore consistent.\n"
    },
    {
      "commit": "150f7d15df726bdcf49a7c5ef9d8d67c46ed3d41",
      "tree": "10b0712544db2f0965badb2441930c97e76c314e",
      "parents": [
        "e65dab2b5919ede3a4f308d723e46a6f65643ca8"
      ],
      "author": {
        "name": "Niklas Haas",
        "email": "git@haasn.dev",
        "time": "Mon Jul 13 20:51:54 2026"
      },
      "committer": {
        "name": "Niklas Haas",
        "email": "ffmpeg@haasn.dev",
        "time": "Tue Jul 14 12:24:01 2026"
      },
      "message": "swscale/uops_macros_gen: drop checkasm planar write hack\n\nNo longer needed since the new uops-based rewrite.\nHere\u0027s hoping we won\u0027t need to revert it if these ops come up again\nin the future.\n\nSigned-off-by: Niklas Haas \u003cgit@haasn.dev\u003e\n"
    },
    {
      "commit": "e65dab2b5919ede3a4f308d723e46a6f65643ca8",
      "tree": "389530e99d721a702b4e0da187d3234ab6205991",
      "parents": [
        "909ca1d7ce77f9a188c979902acc223096b5a5ec"
      ],
      "author": {
        "name": "Niklas Haas",
        "email": "git@haasn.dev",
        "time": "Mon Jul 13 19:31:23 2026"
      },
      "committer": {
        "name": "Niklas Haas",
        "email": "ffmpeg@haasn.dev",
        "time": "Tue Jul 14 12:24:01 2026"
      },
      "message": "swscale/tests/sws_ops: rewrite to test uops directly\n\nInstead of awkwardly reverse-engineering each uop to reflect\nit back to the corresponding SwsOp, this leverages the new\ncompile_uops() API to directly test the uop in question.\n\nThis is not only vastly simpler but also fixes several major\nshortcomings with the previous design, such as always having\nto keep the reflection code in sync for any newly added uop,\nor not testing uops that get translated to a packed shuffle\nfast path.\n\nThe major downside is that arch-specific uops can now no longer\nbe tested against the C reference unless we specifically add\na C reference function for each relevant uop; and also, that the\npacked shuffle fast path is currently no longer tested by checkasm.\n(But this will be fixed by my upcoming pshufb uop series)\n\nAnother downside is that this effectively disables testing for e.g.\naarch64, since it does not yet use the uops architecture.\n\n$ time checkasm --test\u003dsw_ops --repeat\u003d10 # 1.85s -\u003e 1.39s\n\nSigned-off-by: Niklas Haas \u003cgit@haasn.dev\u003e\n"
    },
    {
      "commit": "909ca1d7ce77f9a188c979902acc223096b5a5ec",
      "tree": "3ba5a0db576d850b00e19a01ccea2113b0cd61aa",
      "parents": [
        "44e1b60c6acf0511222f4e0892f3545696bb7769"
      ],
      "author": {
        "name": "Niklas Haas",
        "email": "git@haasn.dev",
        "time": "Wed Jul 08 00:05:46 2026"
      },
      "committer": {
        "name": "Niklas Haas",
        "email": "ffmpeg@haasn.dev",
        "time": "Tue Jul 14 12:24:01 2026"
      },
      "message": "swscale/x86/ops: add missing non-FMA SWS_UOP_LINEAR fallback\n\nNeeded for platforms without SSE4.1 support, as well as checkasm.\n\nSigned-off-by: Niklas Haas \u003cgit@haasn.dev\u003e\n"
    },
    {
      "commit": "44e1b60c6acf0511222f4e0892f3545696bb7769",
      "tree": "00e75878b5a91c2f566945b7f2a739f67e13997a",
      "parents": [
        "b3a998699c53aa3be37919becb6496dddb6b0a7b"
      ],
      "author": {
        "name": "Niklas Haas",
        "email": "git@haasn.dev",
        "time": "Tue Jul 07 22:53:09 2026"
      },
      "committer": {
        "name": "Niklas Haas",
        "email": "ffmpeg@haasn.dev",
        "time": "Tue Jul 14 12:24:01 2026"
      },
      "message": "swscale/uops: consolidate SWS_UOP_{PERMUTE,COPY,MOVE}\n\nRather than having two uops for the C reference code and a separate\nuop for the x86 backend, we can just implement the C reference\nusing the same register-register assignment logic.\n\nThis results in only slightly worse codegen, since the compiler is\nsmart enough to eliminate the unnecessary copies.\n\nThe main downside is the fact that we need to allocate extra stack space\nto back-fill the remaining (unused) pointers. In theory, we could do this\nmore efficiently by re-using unused *input* registers directly, but that\nwould require a lot of reliance on compile-time constant folding teasing\napart the entire register index tracking loop and duplicate check, so this\nis a useful middle ground.\n\nOn platforms like x86, we still don\u0027t care about the PERMUTE vs\nCOPY distinction, but it\u0027s also harmless (2-3 extra lines to\ninstantiate the underlying MOVE macro on both uop variants).\n\nFinally, we need to add a mask to the move uops to keep track of which\noutputs are actually needed (especially for checkasm). Though it does result\nin the rather unfortunate downside that it bloats the names of the uop\nnames.\n\nThe op lists change to reflect the new representation, e.g.:\n\n rgb24 16x16 -\u003e bgr24 16x16:\n   [ u8 +++X] SWS_OP_READ         : 3 elem(s) packed \u003e\u003e 0\n     min: {0 0 0 _}, max: {255 255 255 _}\n   [ u8 +++X] SWS_OP_SWIZZLE      : 2103\n     min: {0 0 0 _}, max: {255 255 255 _}\n   [ u8 XXXX] SWS_OP_WRITE        : 3 elem(s) packed \u003e\u003e 0\n     (\u0027X\u0027 unused, \u0027z\u0027 byteswapped, \u0027\u003d\u0027 copied, \u0027$\u0027 const, \u0027+\u0027 integer, \u00270\u0027 zero)\n  translated micro-ops:\n     u8_read_packed_xyz\n-    u8_permute_zyxw\n+    u8_permute_xyzw_txz_xzt\n     u8_write_packed_xyz\n\nSigned-off-by: Niklas Haas \u003cgit@haasn.dev\u003e\n"
    },
    {
      "commit": "b3a998699c53aa3be37919becb6496dddb6b0a7b",
      "tree": "2b5010db5e06a53aed0a664dae66d1a5c14a0a67",
      "parents": [
        "bb553f91605d963173312474210f0a9444479c7f"
      ],
      "author": {
        "name": "Niklas Haas",
        "email": "git@haasn.dev",
        "time": "Tue Jul 07 12:17:28 2026"
      },
      "committer": {
        "name": "Niklas Haas",
        "email": "ffmpeg@haasn.dev",
        "time": "Tue Jul 14 12:24:01 2026"
      },
      "message": "swscale/x86/ops: add micro-op dump to compile_uops_x86() as well\n\nThis was only done in compile_uops_c(). Add it here as well for consistency.\nLong-term I want to move this code to ops_dispatch.c, but that requires\nmoving the packed shuffle solver there as well, which is still WIP.\n\nSigned-off-by: Niklas Haas \u003cgit@haasn.dev\u003e\n"
    },
    {
      "commit": "bb553f91605d963173312474210f0a9444479c7f",
      "tree": "8d530f5f3e4e09b38889ba1423ef781220399e69",
      "parents": [
        "33d183a4735f170d91456e0ce59ebcaf4b4a9480"
      ],
      "author": {
        "name": "Niklas Haas",
        "email": "git@haasn.dev",
        "time": "Tue Jul 07 12:10:59 2026"
      },
      "committer": {
        "name": "Niklas Haas",
        "email": "ffmpeg@haasn.dev",
        "time": "Tue Jul 14 12:24:01 2026"
      },
      "message": "swscale/x86/ops: implement compile_uops()\n\nThis also splits off the mmsize determination to a separate helper,\nto make the code a bit more reusable.\n\nSponsored-by: Sovereign Tech Fund\nSigned-off-by: Niklas Haas \u003cgit@haasn.dev\u003e\n"
    },
    {
      "commit": "33d183a4735f170d91456e0ce59ebcaf4b4a9480",
      "tree": "264d81463c1e9505ac70e9351534a0cd9b27c360",
      "parents": [
        "17a9a59333469cf98dc7459f47968b160422dca3"
      ],
      "author": {
        "name": "Niklas Haas",
        "email": "git@haasn.dev",
        "time": "Fri Jun 12 10:14:25 2026"
      },
      "committer": {
        "name": "Niklas Haas",
        "email": "ffmpeg@haasn.dev",
        "time": "Tue Jul 14 12:24:01 2026"
      },
      "message": "swscale/ops_dispatch: add SwsOpBackend.compile_uops()\n\nThis can be used as an alternative to the existing compile() backend, that\ntakes SwsUOpList instead of SwsOpList.\n\nDown the line, I plan on also moving the uops translation to the dispatch\nlayer itself, but this requires some further changes which have not yet\nbeen merged, so this commit represents a stopgap solution.\n\nSponsored-by: Sovereign Tech Fund\nSigned-off-by: Niklas Haas \u003cgit@haasn.dev\u003e\n"
    },
    {
      "commit": "17a9a59333469cf98dc7459f47968b160422dca3",
      "tree": "5cb65b7100efdd4c95c1d3c7b179de1a1829b52d",
      "parents": [
        "670324675fed1ea22f98e5ad07d5fcf4375e0187"
      ],
      "author": {
        "name": "Niklas Haas",
        "email": "git@haasn.dev",
        "time": "Fri Jun 12 10:13:39 2026"
      },
      "committer": {
        "name": "Niklas Haas",
        "email": "ffmpeg@haasn.dev",
        "time": "Tue Jul 14 12:24:01 2026"
      },
      "message": "swscale/x86/ops: avoid direct reliance on `ops` metadata\n\nInstead, use the new metadata introduced in the previous commit. The\nmotivating reason here is a desire to stop taking a direct SwsOpList from\nthe backends altogether.\n\nIn theory, we could still recover this information from the `uops` list\nitself, but that would require far more boilerplate than simply having\nuops.c generate it using existing SwsOpsList helpers.\n\nSponsored-by: Sovereign Tech Fund\nSigned-off-by: Niklas Haas \u003cgit@haasn.dev\u003e\n"
    },
    {
      "commit": "670324675fed1ea22f98e5ad07d5fcf4375e0187",
      "tree": "c58adc1050b31fa24845ce67d5a83d1a0fd951f4",
      "parents": [
        "2dbcec5222775b9afd82c6379f20da5ebe91e728"
      ],
      "author": {
        "name": "Niklas Haas",
        "email": "git@haasn.dev",
        "time": "Fri Jun 12 10:12:52 2026"
      },
      "committer": {
        "name": "Niklas Haas",
        "email": "ffmpeg@haasn.dev",
        "time": "Tue Jul 14 12:24:01 2026"
      },
      "message": "swscale/uops: add extra convenience metadata for the backends\n\nSponsored-by: Sovereign Tech Fund\nSigned-off-by: Niklas Haas \u003cgit@haasn.dev\u003e\n"
    },
    {
      "commit": "2dbcec5222775b9afd82c6379f20da5ebe91e728",
      "tree": "dc8365f4069b5a2568fbe7e8b8e9a3f63c7ddd2c",
      "parents": [
        "8bea614d987e481c5e912588c50dbdc9920f87f7"
      ],
      "author": {
        "name": "Niklas Haas",
        "email": "git@haasn.dev",
        "time": "Fri Jun 12 09:33:59 2026"
      },
      "committer": {
        "name": "Niklas Haas",
        "email": "ffmpeg@haasn.dev",
        "time": "Tue Jul 14 12:24:01 2026"
      },
      "message": "swscale/ops_dispatch: remove outdated comment\n\nMissed by 228ef8d97b.\n\nSigned-off-by: Niklas Haas \u003cgit@haasn.dev\u003e\n"
    },
    {
      "commit": "8bea614d987e481c5e912588c50dbdc9920f87f7",
      "tree": "dadd2ff9a187c94a185f24035b85024d1bfdb8b2",
      "parents": [
        "f769e433a3486252143e8d912c45fe44a47d8c04"
      ],
      "author": {
        "name": "Andreas Rheinhardt",
        "email": "andreas.rheinhardt@outlook.com",
        "time": "Sat Jul 11 07:43:26 2026"
      },
      "committer": {
        "name": "Andreas Rheinhardt",
        "email": "andreas.rheinhardt@outlook.com",
        "time": "Tue Jul 14 08:01:08 2026"
      },
      "message": "avcodec/x86/sbcdsp: Avoid shift\n\nSigned-off-by: Andreas Rheinhardt \u003candreas.rheinhardt@outlook.com\u003e\n"
    },
    {
      "commit": "f769e433a3486252143e8d912c45fe44a47d8c04",
      "tree": "4f24d55ad367909a80b586ef4f757b4475057c55",
      "parents": [
        "58d39e99e26d1116f43a67d66ecfe71dba316875"
      ],
      "author": {
        "name": "Andreas Rheinhardt",
        "email": "andreas.rheinhardt@outlook.com",
        "time": "Sat Jul 11 07:40:42 2026"
      },
      "committer": {
        "name": "Andreas Rheinhardt",
        "email": "andreas.rheinhardt@outlook.com",
        "time": "Tue Jul 14 08:01:08 2026"
      },
      "message": "Revert \"tests/checkasm/vp9dsp: Allow to run only a subset of tests\"\n\nThis reverts commit 7bc35b8426cee8114b5d807b4d0e37fefe9995fa.\nThe aim of this patch can now be achieved via checkasm\u0027s\n--function pattern matching.\n\nSigned-off-by: Andreas Rheinhardt \u003candreas.rheinhardt@outlook.com\u003e\n"
    },
    {
      "commit": "58d39e99e26d1116f43a67d66ecfe71dba316875",
      "tree": "2601ff1ab2803fde9f2254e59a1cb7b1944f5f5f",
      "parents": [
        "597036b692b8c39198fe572aad027eeb4c13da35"
      ],
      "author": {
        "name": "Michael Niedermayer",
        "email": "michael@niedermayer.cc",
        "time": "Mon Jul 07 00:53:18 2025"
      },
      "committer": {
        "name": "Michael Niedermayer",
        "email": "michael@niedermayer.cc",
        "time": "Tue Jul 14 02:52:18 2026"
      },
      "message": "avformat/concatdec: Check recursion depth\n\nThis variant is easy backportable but is concatdec specific\n\nFixes: self_ref.ffconcat\nReported-by: Yuhao Jiang \u003cdanisjiang@gmail.com\u003e\nRediscovered-by: Anxious Koisi\nFixes: RWHkT0ASFMNI\nSigned-off-by: Michael Niedermayer \u003cmichael@niedermayer.cc\u003e\n"
    },
    {
      "commit": "597036b692b8c39198fe572aad027eeb4c13da35",
      "tree": "01c00a9b9b9970965373e8b1ad111e9837a61592",
      "parents": [
        "a633df56a455ffb75cd97af784cb1f2d2ec2bca9"
      ],
      "author": {
        "name": "Michael Niedermayer",
        "email": "michael@niedermayer.cc",
        "time": "Mon Jul 07 00:44:19 2025"
      },
      "committer": {
        "name": "michaelni",
        "email": "michael@niedermayer.cc",
        "time": "Mon Jul 13 19:35:48 2026"
      },
      "message": "avformat: Add recursion limit\n\nThis is a generic recursion limit that is not specific to a demuxer\nit does change public API which makes this unsuitable for backporting\n\nFixes: self_ref.ffconcat\n\nReported-by: Yuhao Jiang \u003cdanisjiang@gmail.com\u003e\n\nSigned-off-by: Michael Niedermayer \u003cmichael@niedermayer.cc\u003e\n"
    },
    {
      "commit": "a633df56a455ffb75cd97af784cb1f2d2ec2bca9",
      "tree": "9dde76187cb26b7db85becc20332e713e307406f",
      "parents": [
        "1307db3d3c95223b1d2164844e0542cddbb2a401"
      ],
      "author": {
        "name": "Timo Rothenpieler",
        "email": "timo@rothenpieler.org",
        "time": "Wed Jul 08 22:50:32 2026"
      },
      "committer": {
        "name": "Timo Rothenpieler",
        "email": "timo@rothenpieler.org",
        "time": "Mon Jul 13 19:13:25 2026"
      },
      "message": "avcodec/d3d12va_vp9: check size of frame bitstream against available buffer size\n"
    },
    {
      "commit": "1307db3d3c95223b1d2164844e0542cddbb2a401",
      "tree": "f71a4cea4a08345463b374b57c66e801543494de",
      "parents": [
        "26a9f9b3aeb054901b69518223af0d6f4f991fd9"
      ],
      "author": {
        "name": "Timo Rothenpieler",
        "email": "timo@rothenpieler.org",
        "time": "Wed Jul 08 22:50:20 2026"
      },
      "committer": {
        "name": "Timo Rothenpieler",
        "email": "timo@rothenpieler.org",
        "time": "Mon Jul 13 19:13:25 2026"
      },
      "message": "avcodec/d3d12va_vc1: check size of frame bitstream against available buffer size\n"
    },
    {
      "commit": "26a9f9b3aeb054901b69518223af0d6f4f991fd9",
      "tree": "ff88742b215bc6ff2b0892e988666fc5d64ed66d",
      "parents": [
        "fea3f13a1cc5395b0ab6db95dd20e7cf6023c311"
      ],
      "author": {
        "name": "Timo Rothenpieler",
        "email": "timo@rothenpieler.org",
        "time": "Wed Jul 08 22:42:38 2026"
      },
      "committer": {
        "name": "Timo Rothenpieler",
        "email": "timo@rothenpieler.org",
        "time": "Mon Jul 13 19:13:25 2026"
      },
      "message": "avcodec/d3d12va_mpeg2: check size of frame bitstream against available buffer size\n"
    },
    {
      "commit": "fea3f13a1cc5395b0ab6db95dd20e7cf6023c311",
      "tree": "c1f1a7a2cc8c9c26175ac414cd91c1d920ea1d56",
      "parents": [
        "19e81f9260e64c43604556cbd4079fadee4ac4f1"
      ],
      "author": {
        "name": "Timo Rothenpieler",
        "email": "timo@rothenpieler.org",
        "time": "Wed Jul 08 22:40:32 2026"
      },
      "committer": {
        "name": "Timo Rothenpieler",
        "email": "timo@rothenpieler.org",
        "time": "Mon Jul 13 19:13:25 2026"
      },
      "message": "avcodec/d3d12va_hevc: check size of frame bitstream against available buffer size\n"
    },
    {
      "commit": "19e81f9260e64c43604556cbd4079fadee4ac4f1",
      "tree": "9eee7db4f7541714e65d48952ae5b7fb7cf900ea",
      "parents": [
        "7309ad9fd78d875e60427daa52260834e27ef2ea"
      ],
      "author": {
        "name": "Timo Rothenpieler",
        "email": "timo@rothenpieler.org",
        "time": "Wed Jul 08 22:38:37 2026"
      },
      "committer": {
        "name": "Timo Rothenpieler",
        "email": "timo@rothenpieler.org",
        "time": "Mon Jul 13 19:13:25 2026"
      },
      "message": "avcodec/d3d12va_h264: check size of frame bitstream against available buffer size\n"
    },
    {
      "commit": "7309ad9fd78d875e60427daa52260834e27ef2ea",
      "tree": "4577b8e7bf62614defab42d4d5c787dfdec99980",
      "parents": [
        "e1ef95c779a3757d21ab970c06aac3e9e1b71974"
      ],
      "author": {
        "name": "Timo Rothenpieler",
        "email": "timo@rothenpieler.org",
        "time": "Wed Jul 08 22:29:01 2026"
      },
      "committer": {
        "name": "Timo Rothenpieler",
        "email": "timo@rothenpieler.org",
        "time": "Mon Jul 13 19:13:25 2026"
      },
      "message": "avcodec/d3d12va_av1: check slice bitstream size against available buffer size\n"
    },
    {
      "commit": "e1ef95c779a3757d21ab970c06aac3e9e1b71974",
      "tree": "d91ffda60bcdaf8e3fb544480e44fc57bf49d4f8",
      "parents": [
        "ba55f425fdd889a7998fce068367e9d3a6c40af4"
      ],
      "author": {
        "name": "Timo Rothenpieler",
        "email": "timo@rothenpieler.org",
        "time": "Wed Jul 08 13:19:33 2026"
      },
      "committer": {
        "name": "Timo Rothenpieler",
        "email": "timo@rothenpieler.org",
        "time": "Mon Jul 13 19:13:25 2026"
      },
      "message": "avcodec/d3d12va_av1: check size of frame bitstream against available buffer size\n"
    },
    {
      "commit": "ba55f425fdd889a7998fce068367e9d3a6c40af4",
      "tree": "600ee0342b76786a3c1b7a8786013e8d99b0e2b3",
      "parents": [
        "de771bd52774a52d45b0e2c82e56995a1ef40df7"
      ],
      "author": {
        "name": "Michael Niedermayer",
        "email": "michael@niedermayer.cc",
        "time": "Wed Jun 24 01:00:42 2026"
      },
      "committer": {
        "name": "michaelni",
        "email": "michael@niedermayer.cc",
        "time": "Mon Jul 13 18:36:11 2026"
      },
      "message": "avcodec/hevc: Fix integer overflow in WPP entry point range check\n\nFixes: out of array access\nFixes: poc.hevc / make_poc.py\nFixes: 83WY4xnR87vb\nFixes: dad354f38d (avcodec/hevc: Check max ctb addresses for WPP)\nFound-by: VulnForge Security Research Team \u003chaoyuliu@clouditera.com\u003e\nSigned-off-by: Michael Niedermayer \u003cmichael@niedermayer.cc\u003e\n"
    },
    {
      "commit": "de771bd52774a52d45b0e2c82e56995a1ef40df7",
      "tree": "8059fd5d7d8352b2905e5da5f1651c6bc9a4e2bc",
      "parents": [
        "a7e38b617b32f996beaa371bbf04b39907d7a527"
      ],
      "author": {
        "name": "Michael Niedermayer",
        "email": "michael@niedermayer.cc",
        "time": "Fri Jul 10 02:07:35 2026"
      },
      "committer": {
        "name": "michaelni",
        "email": "michael@niedermayer.cc",
        "time": "Mon Jul 13 18:29:44 2026"
      },
      "message": "avformat/ty: don\u0027t let the Series2 AC3 trim underflow the packet size\n\nFixes: negative-size-param\nFixes: ty-s2-ac3-negative-size-single-file.ffconcat / create_poc.py\nFixes: g0qeE6KvrjZi\nFound-by: Adrian Junge (vurlo)\n"
    },
    {
      "commit": "a7e38b617b32f996beaa371bbf04b39907d7a527",
      "tree": "bad6a3111e8e0280ae9c1704581b446624df869a",
      "parents": [
        "cff4a692949a0c4b5ef36c1438abaccc5a1588de"
      ],
      "author": {
        "name": "Michael Niedermayer",
        "email": "michael@niedermayer.cc",
        "time": "Sat Jul 11 14:46:39 2026"
      },
      "committer": {
        "name": "michaelni",
        "email": "michael@niedermayer.cc",
        "time": "Mon Jul 13 18:22:46 2026"
      },
      "message": "avfilter/vf_swaprect: size the temp row buffer for the widest plane\n\nFixes: out of array access\nFixes: 7aj_swaprect_odd17_nv12.nut / 7aj_generate_swaprect_odd17_nv12.py\nFixes: VRAXYvKtmKa8\nFound-by: Adrian Junge (vurlo) \u003cadjun37@gmail.com\u003e\n"
    },
    {
      "commit": "cff4a692949a0c4b5ef36c1438abaccc5a1588de",
      "tree": "48e98f8c14496e876aaed59a41c23b7d1c2d2ec7",
      "parents": [
        "f186c50cf53aec20e9a29059cb22ca3f2d59201c"
      ],
      "author": {
        "name": "Michael Niedermayer",
        "email": "michael@niedermayer.cc",
        "time": "Sun Jul 12 20:33:56 2026"
      },
      "committer": {
        "name": "michaelni",
        "email": "michael@niedermayer.cc",
        "time": "Mon Jul 13 18:16:18 2026"
      },
      "message": "avfilter: add latticepal filter\n\nConvert packed 24/32-bit RGB/BGR/RGBA/BGRA input to PAL8 using a per-frame palette\nwhose colors are placed on a face-centered cubic lattice (realized as the\nscaled D3/D4 checkerboard lattice), with a user-supplied density controlling\nthe number of lattice steps spanning one color axis.\n\nOnly lattice points actually used by a frame enter its palette; if a frame\nneeds more than 256 of them, the filter will itearatively drop palettte\nentries and reassign affected pixels until 256 color remain\n\nlookup uses the Conway-Sloane rounding algorithm. Supported dithering\nmodes: none, ordered 8x8 bayer (swscale), Cluster \u0026 Void blue noise and\nFloyd-Steinberg error diffusion.\n\nCo-Authored-by: Fable-5\nSigned-off-by: Michael Niedermayer \u003cmichael@niedermayer.cc\u003e\n"
    },
    {
      "commit": "f186c50cf53aec20e9a29059cb22ca3f2d59201c",
      "tree": "34f2830d545ac456c617bb282581481e74c70594",
      "parents": [
        "24c322fdb232d0a3f3790d544dcb64e5c2138e79"
      ],
      "author": {
        "name": "Michael Niedermayer",
        "email": "michael@niedermayer.cc",
        "time": "Sun Jul 12 01:27:47 2026"
      },
      "committer": {
        "name": "michaelni",
        "email": "michael@niedermayer.cc",
        "time": "Mon Jul 13 17:14:54 2026"
      },
      "message": "avfilter/vf_floodfill: remove unneeded variables\n\nSigned-off-by: Michael Niedermayer \u003cmichael@niedermayer.cc\u003e\n"
    },
    {
      "commit": "24c322fdb232d0a3f3790d544dcb64e5c2138e79",
      "tree": "c09102f1852c6fc6833682f9f5d730cfd553090f",
      "parents": [
        "0089694c060bf25b628d16ba6078f083f7522bae"
      ],
      "author": {
        "name": "Michael Niedermayer",
        "email": "michael@niedermayer.cc",
        "time": "Sat Jul 11 14:47:28 2026"
      },
      "committer": {
        "name": "michaelni",
        "email": "michael@niedermayer.cc",
        "time": "Mon Jul 13 17:14:54 2026"
      },
      "message": "avfilter/vf_floodfill: size the point stack for the current frame\n\nFixes: out of array access\nFixes: 8aj_floodfill_dynamic_size.pgm / 8aj_generate_floodfill_dynamic_size_pgm.py\nFixes: 3MleMXjGZvu3\nFound-by: Adrian Junge (vurlo) \u003cadjun37@gmail.com\u003e\n"
    },
    {
      "commit": "0089694c060bf25b628d16ba6078f083f7522bae",
      "tree": "bf190d768df8408977de67627b414d96c6e26ada",
      "parents": [
        "fc4b5235963441cf29fa3c9f0f6d6ad1e61b8749"
      ],
      "author": {
        "name": "Michael Niedermayer",
        "email": "michael@niedermayer.cc",
        "time": "Fri Jul 10 02:07:17 2026"
      },
      "committer": {
        "name": "michaelni",
        "email": "michael@niedermayer.cc",
        "time": "Mon Jul 13 17:14:48 2026"
      },
      "message": "avfilter/vf_lut3d: compute size2 after the 3DLUTSIZE directive\n\nFixes: out of array access\nFixes: lut3d_poc/poc_3dlut2.dat\nFixes: 6p0ahHBxreqG\nFound-by: SecBuddyF - Tencent KeenLab\n"
    },
    {
      "commit": "fc4b5235963441cf29fa3c9f0f6d6ad1e61b8749",
      "tree": "fb3cd18157555d105fee2e626d11a51bacac88e5",
      "parents": [
        "b672ae39053759557a42f3a54f31f8413a37d871"
      ],
      "author": {
        "name": "Araz Iusubov",
        "email": "Primeadvice@gmail.com",
        "time": "Mon Jul 13 14:02:35 2026"
      },
      "committer": {
        "name": "ArazIusubov",
        "email": "Primeadvice@gmail.com",
        "time": "Mon Jul 13 16:40:41 2026"
      },
      "message": "avfilter/vf_vqe_amf: Add AMF Video Quality Enhancer filter\n"
    },
    {
      "commit": "b672ae39053759557a42f3a54f31f8413a37d871",
      "tree": "4156d9bfcf5237d88c58a09c0e27aade00772698",
      "parents": [
        "ddfa842088cd86bd48bc4533f10a4b5badcbd02d"
      ],
      "author": {
        "name": "Lynne",
        "email": "dev@lynne.ee",
        "time": "Mon Jul 13 15:29:22 2026"
      },
      "committer": {
        "name": "Lynne",
        "email": "dev@lynne.ee",
        "time": "Mon Jul 13 16:23:24 2026"
      },
      "message": "vulkan_encode: fix leak and swallowed errors in init_base_units()\n\nThe encoded session parameters buffer was never freed, and both\nGetEncodedVideoSessionParametersKHR error paths returned err, which\nis always 0 at that point, reporting success on failure.\n"
    },
    {
      "commit": "ddfa842088cd86bd48bc4533f10a4b5badcbd02d",
      "tree": "508be9dbeff4073318592776e554c7177ace7575",
      "parents": [
        "569674ac8dc00c11eaa96d86870b186cfb076639"
      ],
      "author": {
        "name": "Lynne",
        "email": "dev@lynne.ee",
        "time": "Mon Jul 13 15:29:22 2026"
      },
      "committer": {
        "name": "Lynne",
        "email": "dev@lynne.ee",
        "time": "Mon Jul 13 16:23:24 2026"
      },
      "message": "vulkan_encode: destroy image views of queued pictures on uninit\n\nff_hw_base_encode_close() frees any pictures still in the encode\nqueue without invoking the encoder\u0027s free callback, leaking their\nimage views when an encoder is closed without fully draining it.\nAlso uninit the packet buffer pool before the base encode context,\nrather than after.\n"
    },
    {
      "commit": "569674ac8dc00c11eaa96d86870b186cfb076639",
      "tree": "5054ecf2b95480c822afa03971c3493338d26d16",
      "parents": [
        "01a9a98f353bcf9ffcdfdcc62533ef063231384d"
      ],
      "author": {
        "name": "Lynne",
        "email": "dev@lynne.ee",
        "time": "Mon Jul 13 15:29:09 2026"
      },
      "committer": {
        "name": "Lynne",
        "email": "dev@lynne.ee",
        "time": "Mon Jul 13 16:23:21 2026"
      },
      "message": "vulkan_encode: free CBS context, fragment and SEI buffers on close\n\nThe CBS context, its current access unit fragment, and the SEI\nbuffers were never freed, leaking the refcounted parameter set\nclones stored in the CBS private data on every encoder teardown.\n"
    },
    {
      "commit": "01a9a98f353bcf9ffcdfdcc62533ef063231384d",
      "tree": "7b43e406a4823c5bb2f7ec26edf544697d3526b3",
      "parents": [
        "0c29cabc97639ccf2f3d676540c3f4d4a54c423e"
      ],
      "author": {
        "name": "Michael Niedermayer",
        "email": "michael@niedermayer.cc",
        "time": "Sun Jul 12 17:12:09 2026"
      },
      "committer": {
        "name": "michaelni",
        "email": "michael@niedermayer.cc",
        "time": "Mon Jul 13 16:13:47 2026"
      },
      "message": "doc/developer.texi: update reviews section\n\nSigned-off-by: Michael Niedermayer \u003cmichael@niedermayer.cc\u003e\n"
    },
    {
      "commit": "0c29cabc97639ccf2f3d676540c3f4d4a54c423e",
      "tree": "18cbc57d4392a6d704067c21db8fe220a74e5eda",
      "parents": [
        "fd3ee52fab34d98a95b787d0b5ff45685766200c"
      ],
      "author": {
        "name": "Michael Niedermayer",
        "email": "michael@niedermayer.cc",
        "time": "Sun Jul 12 17:06:33 2026"
      },
      "committer": {
        "name": "michaelni",
        "email": "michael@niedermayer.cc",
        "time": "Mon Jul 13 16:13:47 2026"
      },
      "message": "doc/infra.txt: add fairy\n"
    },
    {
      "commit": "fd3ee52fab34d98a95b787d0b5ff45685766200c",
      "tree": "75ad6156d18fb03bfaa7f6fa499f935dee55376d",
      "parents": [
        "90436de5e10ebeac98a3c5e1fb8b2f509e3f96e5"
      ],
      "author": {
        "name": "Cloud-LHY",
        "email": "security@clouditera.com",
        "time": "Fri Jul 10 02:07:04 2026"
      },
      "committer": {
        "name": "michaelni",
        "email": "michael@niedermayer.cc",
        "time": "Mon Jul 13 16:13:04 2026"
      },
      "message": "avcodec/tdsc: unref the reference frame before reallocating on size change\n\nFixes: out of array access\nFixes: tdsc_poc/ffmpeg-tdsc-linesize-report/poc.avi / gen_poc.py\nFixes: tdsc_resize_jpeg_oob.avi / tdsc-resize-stale-linesize-jpeg-oob-generate-poc.py\nFixes: p9xG4xGf9P7H\nFixes: HQL7a1WgTdHZ\nFound-by: Cloud-LHY / Clouditera Security, Z.ai Security, NSFOCUS\nFound-by: Adrian Junge (vurlo)\n"
    },
    {
      "commit": "90436de5e10ebeac98a3c5e1fb8b2f509e3f96e5",
      "tree": "0c3ea6b8ae4d3c9701dc5eac17e813e8f9959d78",
      "parents": [
        "92f2e6374dfbe9bf1c8e4d879f8810deafff3710"
      ],
      "author": {
        "name": "Lynne",
        "email": "dev@lynne.ee",
        "time": "Sun Jul 12 05:43:16 2026"
      },
      "committer": {
        "name": "Lynne",
        "email": "dev@lynne.ee",
        "time": "Mon Jul 13 09:57:38 2026"
      },
      "message": "vf_libplacebo: add missing avstring.h include\n\nOtherwise compilation fails due to vulkan.h no longer including it.\n"
    },
    {
      "commit": "92f2e6374dfbe9bf1c8e4d879f8810deafff3710",
      "tree": "5467123e05d42f7dcfe388428a5d91dc0baa84f7",
      "parents": [
        "9e9ac0dcd93d0dfe31827237539cb82b4c7e4dc7"
      ],
      "author": {
        "name": "Lynne",
        "email": "dev@lynne.ee",
        "time": "Sun Jul 12 05:11:59 2026"
      },
      "committer": {
        "name": "Lynne",
        "email": "dev@lynne.ee",
        "time": "Mon Jul 13 09:57:38 2026"
      },
      "message": "configure: remove libshaderc and libglslang support\n\nAll of it is now gone.\n"
    },
    {
      "commit": "9e9ac0dcd93d0dfe31827237539cb82b4c7e4dc7",
      "tree": "12fd01fa7e9084fe40f41af19632fafa41a0faad",
      "parents": [
        "aa6aa4ec3ef89fcaf1c7f73da4caa2116b3cbea0"
      ],
      "author": {
        "name": "Lynne",
        "email": "dev@lynne.ee",
        "time": "Sun Jul 12 05:11:45 2026"
      },
      "committer": {
        "name": "Lynne",
        "email": "dev@lynne.ee",
        "time": "Mon Jul 13 09:57:37 2026"
      },
      "message": "vulkan: remove runtime shader compilation support\n\nNo longer needed.\n"
    },
    {
      "commit": "aa6aa4ec3ef89fcaf1c7f73da4caa2116b3cbea0",
      "tree": "7bdd704b3fa5a48dab10e73dace5106af303ec6d",
      "parents": [
        "6219d4fdd1fb61b7fff0c713f92dbdd156feaa35"
      ],
      "author": {
        "name": "Lynne",
        "email": "dev@lynne.ee",
        "time": "Sun Jul 12 05:11:32 2026"
      },
      "committer": {
        "name": "Lynne",
        "email": "dev@lynne.ee",
        "time": "Mon Jul 13 09:57:37 2026"
      },
      "message": "swscale: remove GLSL backend\n\nNo longer needed. The SPIR-V version is pretty clean and neat.\n"
    },
    {
      "commit": "6219d4fdd1fb61b7fff0c713f92dbdd156feaa35",
      "tree": "10e30a6c7537888b09976690d50f43fb97a0f6a6",
      "parents": [
        "1a4250e9249682bae2c1e888f9d751a5f34ee9c0"
      ],
      "author": {
        "name": "Lynne",
        "email": "dev@lynne.ee",
        "time": "Sun Jul 12 05:10:31 2026"
      },
      "committer": {
        "name": "Lynne",
        "email": "dev@lynne.ee",
        "time": "Mon Jul 13 09:57:37 2026"
      },
      "message": "vf_scale_vulkan: port to compile-time SPIR-V generation\n\nSame functionality as before, but cleaner.\n"
    },
    {
      "commit": "1a4250e9249682bae2c1e888f9d751a5f34ee9c0",
      "tree": "dae04022340043f4d308d4d9f6ef9090d6bb1922",
      "parents": [
        "4b9c4b9cfb56126dccd9dd4e0c78736d1f5d6ff1"
      ],
      "author": {
        "name": "Lynne",
        "email": "dev@lynne.ee",
        "time": "Sun Jul 12 05:10:15 2026"
      },
      "committer": {
        "name": "Lynne",
        "email": "dev@lynne.ee",
        "time": "Mon Jul 13 09:57:37 2026"
      },
      "message": "avcodec: remove unneeded vulkan_spirv.h includes\n\nLeftover crud from before the rewrite to compile-time SPIR-V.\n"
    },
    {
      "commit": "4b9c4b9cfb56126dccd9dd4e0c78736d1f5d6ff1",
      "tree": "0a253a44f8c255ef7fe8b36ab9f67c5810b165ca",
      "parents": [
        "b2b0429d153cdbc1af0711af98e18d4ae861d4cf"
      ],
      "author": {
        "name": "Lynne",
        "email": "dev@lynne.ee",
        "time": "Sun Jul 12 15:13:59 2026"
      },
      "committer": {
        "name": "Lynne",
        "email": "dev@lynne.ee",
        "time": "Mon Jul 13 09:57:37 2026"
      },
      "message": "swscale/ops_dispatch: fix use-after-free when adding opaque ops passes\n\ncomp points into p, which is freed before comp-\u003ebackend is read.\nUse the copy taken before the free.\n"
    },
    {
      "commit": "b2b0429d153cdbc1af0711af98e18d4ae861d4cf",
      "tree": "949669c7be75041100a47da0186c22bdb1815876",
      "parents": [
        "9c2aabaa34147b7a3812e5857bcb4f9f6e17a5f7"
      ],
      "author": {
        "name": "Lynne",
        "email": "dev@lynne.ee",
        "time": "Sun Jul 12 15:13:59 2026"
      },
      "committer": {
        "name": "Lynne",
        "email": "dev@lynne.ee",
        "time": "Mon Jul 13 09:57:37 2026"
      },
      "message": "swscale/vulkan: fix invalid SPIR-V generation for plane-remapped passes\n\nThe CLEAR codegen iterated components by value[i].den, while the\nconstants pass iterates by clear.mask; unmasked components may hold\nleftover values with a nonzero denominator, consuming more constant\nIDs than were registered and emitting ID 0 into the instruction\nstream.\n\nThe image handle arrays were also sized by the number of planes an\nop touches, but plane_src/plane_dst contain actual frame plane\nindices, so a pass writing only e.g. the alpha plane references\nhandle 3 while only handle 0 was loaded.\n\nEither results in invalid SPIR-V, which crashes RADV inside\nspirv_to_nir when creating the shader object.\n"
    },
    {
      "commit": "9c2aabaa34147b7a3812e5857bcb4f9f6e17a5f7",
      "tree": "81c17f1a7e200e4e400a808014663044abd4c724",
      "parents": [
        "705ff11c2b02d2925fca5c2c78c547ccbd901182"
      ],
      "author": {
        "name": "Michael Niedermayer",
        "email": "michael@niedermayer.cc",
        "time": "Sat Jul 11 14:46:17 2026"
      },
      "committer": {
        "name": "michaelni",
        "email": "michael@niedermayer.cc",
        "time": "Mon Jul 13 01:08:09 2026"
      },
      "message": "avcodec/cavsdec: reject invalid start-code bitreader sizes\n\nFixes: NULL pointer dereference\nFixes: 4jy_poc_cavs.zip / poc_cavs.avi\nFixes: UH66Y8Om9F8X\nFound-by: Jiale Yao \u003cyaojiale02@163.com\u003e\n"
    },
    {
      "commit": "705ff11c2b02d2925fca5c2c78c547ccbd901182",
      "tree": "bfd340ec198241b729e464fda7f5faeec5bb06c4",
      "parents": [
        "ed4f286a1049bcd394ab9a5ce71e297f6cbba002"
      ],
      "author": {
        "name": "Jiale Yao",
        "email": "yaojiale02@163.com",
        "time": "Sat Jul 11 14:46:26 2026"
      },
      "committer": {
        "name": "michaelni",
        "email": "michael@niedermayer.cc",
        "time": "Mon Jul 13 01:08:03 2026"
      },
      "message": "avcodec/libcodec2: reject packet sample counts that overflow int\n\nFixes: out of array access\nFixes: 2jy_poc_codec2.zip / poc_codec2.raw\nFixes: jOQASNnOm6O7\nFound-by: Jiale Yao \u003cyaojiale02@163.com\u003e\n"
    },
    {
      "commit": "ed4f286a1049bcd394ab9a5ce71e297f6cbba002",
      "tree": "16ab40ad4d0129bacc8cb3417141b3887775e99b",
      "parents": [
        "7a39c205ae90f3691a9996a69e7a52c06312ad32"
      ],
      "author": {
        "name": "Michael Niedermayer",
        "email": "michael@niedermayer.cc",
        "time": "Fri Jul 10 02:07:27 2026"
      },
      "committer": {
        "name": "michaelni",
        "email": "michael@niedermayer.cc",
        "time": "Mon Jul 13 01:07:35 2026"
      },
      "message": "avcodec/ffv1dec: mask the fltmap index on the 8bit remap path\n\nFixes: out of array access\nFixes: ffv1_poc/test_ffv1_8bit_v4.avi\nFixes: 6p0ahHBxreqG\nFound-by: SecBuddyF - Tencent KeenLab\n"
    },
    {
      "commit": "7a39c205ae90f3691a9996a69e7a52c06312ad32",
      "tree": "a563cf8227014ada148a60ef05625f2d0bf0df6d",
      "parents": [
        "206f2d92db2e67914cb417b9e1efac191c3b0690"
      ],
      "author": {
        "name": "Michael Niedermayer",
        "email": "michael@niedermayer.cc",
        "time": "Fri Jul 10 00:34:59 2026"
      },
      "committer": {
        "name": "michaelni",
        "email": "michael@niedermayer.cc",
        "time": "Mon Jul 13 00:58:16 2026"
      },
      "message": "avcodec/vorbisdec: skip the MDCT for unused channels\n\nFixes: Timeout\nFixes: 490144337/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_VORBIS_DEC_fuzzer-4539724776931328\nFound-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg\n"
    },
    {
      "commit": "206f2d92db2e67914cb417b9e1efac191c3b0690",
      "tree": "8103380c51f7911fac5b521ef641b19433a07551",
      "parents": [
        "a13c2b1e4f7e39a86a863a7682a6e11cd6d12dba"
      ],
      "author": {
        "name": "Michael Niedermayer",
        "email": "michael@niedermayer.cc",
        "time": "Tue Jul 07 21:48:04 2026"
      },
      "committer": {
        "name": "michaelni",
        "email": "michael@niedermayer.cc",
        "time": "Mon Jul 13 00:57:26 2026"
      },
      "message": "avcodec/exr: bound total decoded pixels by max_pixels\n\nUse the maximum block dimensions decode_block() can assign after clipping\nthe nominal tile or scanline block to the data window.\n\nFixes: Timeout\nFixes: 521392254/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_EXR_DEC_fuzzer-6740984590565376\nFound-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg\nSigned-off-by: Michael Niedermayer \u003cmichael@niedermayer.cc\u003e\n"
    },
    {
      "commit": "a13c2b1e4f7e39a86a863a7682a6e11cd6d12dba",
      "tree": "da70c80bd6da75c96727362ee2746508e78f75f0",
      "parents": [
        "a619985145c69906707a8040327d0e80dc6aa8ae"
      ],
      "author": {
        "name": "Andreas Rheinhardt",
        "email": "andreas.rheinhardt@outlook.com",
        "time": "Thu Jul 09 18:06:42 2026"
      },
      "committer": {
        "name": "Andreas Rheinhardt",
        "email": "andreas.rheinhardt@outlook.com",
        "time": "Sun Jul 12 21:46:56 2026"
      },
      "message": "avcodec/x86/vp9lpf: Simplify clip_u8(u8+i8)\n\nJust subtract 128 from u8 to make it signed, use paddsb\nand convert back to u8. Saves 2477B of .text here.\n\nOld benchmarks:\n  vp9_loop_filter_h_4_8_8bpp_c:                77.5\n  vp9_loop_filter_h_4_8_8bpp_mmxext:           54.8 ( 1.41x)\n  vp9_loop_filter_h_8_8_8bpp_c:                85.5\n  vp9_loop_filter_h_8_8_8bpp_mmxext:           75.0 ( 1.12x)\n  vp9_loop_filter_h_16_8_8bpp_c:              139.8\n  vp9_loop_filter_h_16_16_8bpp_c:             249.7\n  vp9_loop_filter_h_16_16_8bpp_sse2:          154.9 ( 1.54x)\n  vp9_loop_filter_h_16_16_8bpp_ssse3:         152.9 ( 1.54x)\n  vp9_loop_filter_h_16_16_8bpp_avx:           142.1 ( 1.62x)\n  vp9_loop_filter_mix2_h_44_16_8bpp_c:        167.8\n  vp9_loop_filter_mix2_h_44_16_8bpp_sse2:      52.3 ( 3.21x)\n  vp9_loop_filter_mix2_h_44_16_8bpp_ssse3:     52.7 ( 3.18x)\n  vp9_loop_filter_mix2_h_44_16_8bpp_avx:       51.9 ( 3.18x)\n  vp9_loop_filter_mix2_h_48_16_8bpp_c:        175.1\n  vp9_loop_filter_mix2_h_48_16_8bpp_sse2:      73.2 ( 2.39x)\n  vp9_loop_filter_mix2_h_48_16_8bpp_ssse3:     74.9 ( 2.28x)\n  vp9_loop_filter_mix2_h_48_16_8bpp_avx:       69.0 ( 2.54x)\n  vp9_loop_filter_mix2_h_84_16_8bpp_c:        177.7\n  vp9_loop_filter_mix2_h_84_16_8bpp_sse2:      72.6 ( 2.45x)\n  vp9_loop_filter_mix2_h_84_16_8bpp_ssse3:     71.3 ( 2.48x)\n  vp9_loop_filter_mix2_h_84_16_8bpp_avx:       69.3 ( 2.56x)\n  vp9_loop_filter_mix2_h_88_16_8bpp_c:        184.3\n  vp9_loop_filter_mix2_h_88_16_8bpp_sse2:      69.6 ( 2.59x)\n  vp9_loop_filter_mix2_h_88_16_8bpp_ssse3:     70.2 ( 2.62x)\n  vp9_loop_filter_mix2_h_88_16_8bpp_avx:       69.3 ( 2.66x)\n  vp9_loop_filter_mix2_v_44_16_8bpp_c:        176.3\n  vp9_loop_filter_mix2_v_44_16_8bpp_sse2:      22.0 ( 7.98x)\n  vp9_loop_filter_mix2_v_44_16_8bpp_ssse3:     21.4 ( 8.23x)\n  vp9_loop_filter_mix2_v_44_16_8bpp_avx:       21.6 ( 8.18x)\n  vp9_loop_filter_mix2_v_48_16_8bpp_c:        187.8\n  vp9_loop_filter_mix2_v_48_16_8bpp_sse2:      49.9 ( 3.75x)\n  vp9_loop_filter_mix2_v_48_16_8bpp_ssse3:     47.3 ( 3.96x)\n  vp9_loop_filter_mix2_v_48_16_8bpp_avx:       46.1 ( 4.07x)\n  vp9_loop_filter_mix2_v_84_16_8bpp_c:        189.7\n  vp9_loop_filter_mix2_v_84_16_8bpp_sse2:      51.2 ( 3.58x)\n  vp9_loop_filter_mix2_v_84_16_8bpp_ssse3:     48.4 ( 3.90x)\n  vp9_loop_filter_mix2_v_84_16_8bpp_avx:       45.9 ( 4.14x)\n  vp9_loop_filter_mix2_v_88_16_8bpp_c:        199.8\n  vp9_loop_filter_mix2_v_88_16_8bpp_sse2:      51.2 ( 3.88x)\n  vp9_loop_filter_mix2_v_88_16_8bpp_ssse3:     50.5 ( 3.93x)\n  vp9_loop_filter_mix2_v_88_16_8bpp_avx:       45.4 ( 4.40x)\n  vp9_loop_filter_v_4_8_8bpp_c:                83.3\n  vp9_loop_filter_v_4_8_8bpp_mmxext:           23.2 ( 3.58x)\n  vp9_loop_filter_v_8_8_8bpp_c:                92.6\n  vp9_loop_filter_v_8_8_8bpp_mmxext:           52.5 ( 1.76x)\n  vp9_loop_filter_v_16_8_8bpp_c:              154.9\n  vp9_loop_filter_v_16_16_8bpp_c:             291.3\n  vp9_loop_filter_v_16_16_8bpp_sse2:          104.8 ( 2.68x)\n  vp9_loop_filter_v_16_16_8bpp_ssse3:         107.5 ( 2.64x)\n  vp9_loop_filter_v_16_16_8bpp_avx:            97.7 ( 2.90x)\n\nNew benchmarks:\n  vp9_loop_filter_h_4_8_8bpp_c:                77.1\n  vp9_loop_filter_h_4_8_8bpp_mmxext:           52.0 ( 1.48x)\n  vp9_loop_filter_h_8_8_8bpp_c:                85.6\n  vp9_loop_filter_h_8_8_8bpp_mmxext:           73.3 ( 1.17x)\n  vp9_loop_filter_h_16_8_8bpp_c:              139.2\n  vp9_loop_filter_h_16_16_8bpp_c:             252.4\n  vp9_loop_filter_h_16_16_8bpp_sse2:          149.3 ( 1.60x)\n  vp9_loop_filter_h_16_16_8bpp_ssse3:         149.3 ( 1.62x)\n  vp9_loop_filter_h_16_16_8bpp_avx:           140.2 ( 1.77x)\n  vp9_loop_filter_mix2_h_44_16_8bpp_c:        168.5\n  vp9_loop_filter_mix2_h_44_16_8bpp_sse2:      48.4 ( 3.48x)\n  vp9_loop_filter_mix2_h_44_16_8bpp_ssse3:     49.6 ( 3.39x)\n  vp9_loop_filter_mix2_h_44_16_8bpp_avx:       49.0 ( 3.43x)\n  vp9_loop_filter_mix2_h_48_16_8bpp_c:        174.8\n  vp9_loop_filter_mix2_h_48_16_8bpp_sse2:      66.0 ( 2.65x)\n  vp9_loop_filter_mix2_h_48_16_8bpp_ssse3:     64.9 ( 2.69x)\n  vp9_loop_filter_mix2_h_48_16_8bpp_avx:       64.6 ( 2.65x)\n  vp9_loop_filter_mix2_h_84_16_8bpp_c:        177.6\n  vp9_loop_filter_mix2_h_84_16_8bpp_sse2:      70.5 ( 2.51x)\n  vp9_loop_filter_mix2_h_84_16_8bpp_ssse3:     66.8 ( 2.65x)\n  vp9_loop_filter_mix2_h_84_16_8bpp_avx:       66.3 ( 2.68x)\n  vp9_loop_filter_mix2_h_88_16_8bpp_c:        185.6\n  vp9_loop_filter_mix2_h_88_16_8bpp_sse2:      72.1 ( 2.50x)\n  vp9_loop_filter_mix2_h_88_16_8bpp_ssse3:     70.7 ( 2.54x)\n  vp9_loop_filter_mix2_h_88_16_8bpp_avx:       65.5 ( 2.83x)\n  vp9_loop_filter_mix2_v_44_16_8bpp_c:        175.9\n  vp9_loop_filter_mix2_v_44_16_8bpp_sse2:      19.2 ( 9.17x)\n  vp9_loop_filter_mix2_v_44_16_8bpp_ssse3:     19.2 ( 9.16x)\n  vp9_loop_filter_mix2_v_44_16_8bpp_avx:       19.1 ( 9.18x)\n  vp9_loop_filter_mix2_v_48_16_8bpp_c:        186.9\n  vp9_loop_filter_mix2_v_48_16_8bpp_sse2:      49.6 ( 3.73x)\n  vp9_loop_filter_mix2_v_48_16_8bpp_ssse3:     47.7 ( 3.89x)\n  vp9_loop_filter_mix2_v_48_16_8bpp_avx:       43.6 ( 4.28x)\n  vp9_loop_filter_mix2_v_84_16_8bpp_c:        189.1\n  vp9_loop_filter_mix2_v_84_16_8bpp_sse2:      45.8 ( 4.12x)\n  vp9_loop_filter_mix2_v_84_16_8bpp_ssse3:     46.6 ( 4.05x)\n  vp9_loop_filter_mix2_v_84_16_8bpp_avx:       43.0 ( 4.27x)\n  vp9_loop_filter_mix2_v_88_16_8bpp_c:        198.6\n  vp9_loop_filter_mix2_v_88_16_8bpp_sse2:      43.5 ( 4.57x)\n  vp9_loop_filter_mix2_v_88_16_8bpp_ssse3:     43.3 ( 4.57x)\n  vp9_loop_filter_mix2_v_88_16_8bpp_avx:       43.0 ( 4.62x)\n  vp9_loop_filter_v_4_8_8bpp_c:                83.2\n  vp9_loop_filter_v_4_8_8bpp_mmxext:           21.8 ( 3.81x)\n  vp9_loop_filter_v_8_8_8bpp_c:                92.3\n  vp9_loop_filter_v_8_8_8bpp_mmxext:           51.5 ( 1.79x)\n  vp9_loop_filter_v_16_8_8bpp_c:              155.6\n  vp9_loop_filter_v_16_16_8bpp_c:             290.3\n  vp9_loop_filter_v_16_16_8bpp_sse2:          105.1 ( 2.68x)\n  vp9_loop_filter_v_16_16_8bpp_ssse3:         103.8 ( 2.72x)\n  vp9_loop_filter_v_16_16_8bpp_avx:            97.7 ( 2.86x)\n\nSigned-off-by: Andreas Rheinhardt \u003candreas.rheinhardt@outlook.com\u003e\n"
    },
    {
      "commit": "a619985145c69906707a8040327d0e80dc6aa8ae",
      "tree": "a0394d4666e2c87bd3eda27114891210a9332500",
      "parents": [
        "0c3a212c74399586c671f939be30e8e596335bcb"
      ],
      "author": {
        "name": "Andreas Rheinhardt",
        "email": "andreas.rheinhardt@outlook.com",
        "time": "Thu Jul 09 16:30:49 2026"
      },
      "committer": {
        "name": "Andreas Rheinhardt",
        "email": "andreas.rheinhardt@outlook.com",
        "time": "Sun Jul 12 21:46:56 2026"
      },
      "message": "avcodec/x86/vp9lpf: Combine filter2 and filter4 cases\n\nThere are two differences between the filter2 and filter4 case.\nThe first one is\n\nif (hev) {\n    int f \u003d av_clip_intp2(p1 - q1, BIT_DEPTH - 1);\n    f \u003d av_clip_intp2(3 * (q0 - p0) + f, BIT_DEPTH - 1);\n...\n} else {\n    int f \u003d av_clip_intp2(3 * (q0 - p0), BIT_DEPTH - 1);\n...\n\nwhich can simply be combined to\n\nint f \u003d hev ? av_clip_intp2(p1 - q1, BIT_DEPTH - 1) : 0;\nf \u003d av_clip_intp2(3 * (q0 - p0) + f, BIT_DEPTH - 1);\n\nwhich boils down to masking f by hev after the first\nav_clip_intp2().\n\nThe second is that two more rows are processed for filter4(),\nbut one can simply mask the differential there, too.\n\nSo one can just combine both filters into one; doing so saves\n8457B of .text here and improves performance.\n\nOld benchmarks:\n  vp9_loop_filter_h_4_8_8bpp_c:                77.3\n  vp9_loop_filter_h_4_8_8bpp_mmxext:           60.8 ( 1.27x)\n  vp9_loop_filter_h_8_8_8bpp_c:                86.3\n  vp9_loop_filter_h_8_8_8bpp_mmxext:           82.9 ( 1.04x)\n  vp9_loop_filter_h_16_8_8bpp_c:              139.7\n  vp9_loop_filter_h_16_16_8bpp_c:             251.9\n  vp9_loop_filter_h_16_16_8bpp_sse2:          164.8 ( 1.44x)\n  vp9_loop_filter_h_16_16_8bpp_ssse3:         164.4 ( 1.49x)\n  vp9_loop_filter_h_16_16_8bpp_avx:           155.1 ( 1.59x)\n  vp9_loop_filter_mix2_h_44_16_8bpp_c:        169.2\n  vp9_loop_filter_mix2_h_44_16_8bpp_sse2:      58.0 ( 2.91x)\n  vp9_loop_filter_mix2_h_44_16_8bpp_ssse3:     56.6 ( 2.99x)\n  vp9_loop_filter_mix2_h_44_16_8bpp_avx:       57.1 ( 2.96x)\n  vp9_loop_filter_mix2_h_48_16_8bpp_c:        174.9\n  vp9_loop_filter_mix2_h_48_16_8bpp_sse2:      75.4 ( 2.32x)\n  vp9_loop_filter_mix2_h_48_16_8bpp_ssse3:     80.6 ( 2.16x)\n  vp9_loop_filter_mix2_h_48_16_8bpp_avx:       75.1 ( 2.28x)\n  vp9_loop_filter_mix2_h_84_16_8bpp_c:        179.7\n  vp9_loop_filter_mix2_h_84_16_8bpp_sse2:      79.5 ( 2.25x)\n  vp9_loop_filter_mix2_h_84_16_8bpp_ssse3:     78.2 ( 2.28x)\n  vp9_loop_filter_mix2_h_84_16_8bpp_avx:       76.1 ( 2.32x)\n  vp9_loop_filter_mix2_h_88_16_8bpp_c:        184.5\n  vp9_loop_filter_mix2_h_88_16_8bpp_sse2:      82.5 ( 2.23x)\n  vp9_loop_filter_mix2_h_88_16_8bpp_ssse3:     78.7 ( 2.34x)\n  vp9_loop_filter_mix2_h_88_16_8bpp_avx:       74.4 ( 2.48x)\n  vp9_loop_filter_mix2_v_44_16_8bpp_c:        176.0\n  vp9_loop_filter_mix2_v_44_16_8bpp_sse2:      28.4 ( 6.18x)\n  vp9_loop_filter_mix2_v_44_16_8bpp_ssse3:     26.3 ( 6.69x)\n  vp9_loop_filter_mix2_v_44_16_8bpp_avx:       26.2 ( 6.72x)\n  vp9_loop_filter_mix2_v_48_16_8bpp_c:        188.7\n  vp9_loop_filter_mix2_v_48_16_8bpp_sse2:      60.4 ( 3.11x)\n  vp9_loop_filter_mix2_v_48_16_8bpp_ssse3:     53.6 ( 3.50x)\n  vp9_loop_filter_mix2_v_48_16_8bpp_avx:       51.2 ( 3.64x)\n  vp9_loop_filter_mix2_v_84_16_8bpp_c:        191.7\n  vp9_loop_filter_mix2_v_84_16_8bpp_sse2:      55.2 ( 3.40x)\n  vp9_loop_filter_mix2_v_84_16_8bpp_ssse3:     51.6 ( 3.71x)\n  vp9_loop_filter_mix2_v_84_16_8bpp_avx:       50.8 ( 3.77x)\n  vp9_loop_filter_mix2_v_88_16_8bpp_c:        201.1\n  vp9_loop_filter_mix2_v_88_16_8bpp_sse2:      52.1 ( 3.86x)\n  vp9_loop_filter_mix2_v_88_16_8bpp_ssse3:     53.9 ( 3.73x)\n  vp9_loop_filter_mix2_v_88_16_8bpp_avx:       51.5 ( 3.90x)\n  vp9_loop_filter_v_4_8_8bpp_c:                83.7\n  vp9_loop_filter_v_4_8_8bpp_mmxext:           29.7 ( 2.81x)\n  vp9_loop_filter_v_8_8_8bpp_c:                93.2\n  vp9_loop_filter_v_8_8_8bpp_mmxext:           58.7 ( 1.59x)\n  vp9_loop_filter_v_16_8_8bpp_c:              156.5\n  vp9_loop_filter_v_16_16_8bpp_c:             292.9\n  vp9_loop_filter_v_16_16_8bpp_sse2:          117.8 ( 2.43x)\n  vp9_loop_filter_v_16_16_8bpp_ssse3:         116.7 ( 2.45x)\n  vp9_loop_filter_v_16_16_8bpp_avx:           104.5 ( 2.78x)\n\nNew benchmarks:\n  vp9_loop_filter_h_4_8_8bpp_c:                77.5\n  vp9_loop_filter_h_4_8_8bpp_mmxext:           54.8 ( 1.41x)\n  vp9_loop_filter_h_8_8_8bpp_c:                85.5\n  vp9_loop_filter_h_8_8_8bpp_mmxext:           75.0 ( 1.12x)\n  vp9_loop_filter_h_16_8_8bpp_c:              139.8\n  vp9_loop_filter_h_16_16_8bpp_c:             249.7\n  vp9_loop_filter_h_16_16_8bpp_sse2:          154.9 ( 1.54x)\n  vp9_loop_filter_h_16_16_8bpp_ssse3:         152.9 ( 1.54x)\n  vp9_loop_filter_h_16_16_8bpp_avx:           142.1 ( 1.62x)\n  vp9_loop_filter_mix2_h_44_16_8bpp_c:        167.8\n  vp9_loop_filter_mix2_h_44_16_8bpp_sse2:      52.3 ( 3.21x)\n  vp9_loop_filter_mix2_h_44_16_8bpp_ssse3:     52.7 ( 3.18x)\n  vp9_loop_filter_mix2_h_44_16_8bpp_avx:       51.9 ( 3.18x)\n  vp9_loop_filter_mix2_h_48_16_8bpp_c:        175.1\n  vp9_loop_filter_mix2_h_48_16_8bpp_sse2:      73.2 ( 2.39x)\n  vp9_loop_filter_mix2_h_48_16_8bpp_ssse3:     74.9 ( 2.28x)\n  vp9_loop_filter_mix2_h_48_16_8bpp_avx:       69.0 ( 2.54x)\n  vp9_loop_filter_mix2_h_84_16_8bpp_c:        177.7\n  vp9_loop_filter_mix2_h_84_16_8bpp_sse2:      72.6 ( 2.45x)\n  vp9_loop_filter_mix2_h_84_16_8bpp_ssse3:     71.3 ( 2.48x)\n  vp9_loop_filter_mix2_h_84_16_8bpp_avx:       69.3 ( 2.56x)\n  vp9_loop_filter_mix2_h_88_16_8bpp_c:        184.3\n  vp9_loop_filter_mix2_h_88_16_8bpp_sse2:      69.6 ( 2.59x)\n  vp9_loop_filter_mix2_h_88_16_8bpp_ssse3:     70.2 ( 2.62x)\n  vp9_loop_filter_mix2_h_88_16_8bpp_avx:       69.3 ( 2.66x)\n  vp9_loop_filter_mix2_v_44_16_8bpp_c:        176.3\n  vp9_loop_filter_mix2_v_44_16_8bpp_sse2:      22.0 ( 7.98x)\n  vp9_loop_filter_mix2_v_44_16_8bpp_ssse3:     21.4 ( 8.23x)\n  vp9_loop_filter_mix2_v_44_16_8bpp_avx:       21.6 ( 8.18x)\n  vp9_loop_filter_mix2_v_48_16_8bpp_c:        187.8\n  vp9_loop_filter_mix2_v_48_16_8bpp_sse2:      49.9 ( 3.75x)\n  vp9_loop_filter_mix2_v_48_16_8bpp_ssse3:     47.3 ( 3.96x)\n  vp9_loop_filter_mix2_v_48_16_8bpp_avx:       46.1 ( 4.07x)\n  vp9_loop_filter_mix2_v_84_16_8bpp_c:        189.7\n  vp9_loop_filter_mix2_v_84_16_8bpp_sse2:      51.2 ( 3.58x)\n  vp9_loop_filter_mix2_v_84_16_8bpp_ssse3:     48.4 ( 3.90x)\n  vp9_loop_filter_mix2_v_84_16_8bpp_avx:       45.9 ( 4.14x)\n  vp9_loop_filter_mix2_v_88_16_8bpp_c:        199.8\n  vp9_loop_filter_mix2_v_88_16_8bpp_sse2:      51.2 ( 3.88x)\n  vp9_loop_filter_mix2_v_88_16_8bpp_ssse3:     50.5 ( 3.93x)\n  vp9_loop_filter_mix2_v_88_16_8bpp_avx:       45.4 ( 4.40x)\n  vp9_loop_filter_v_4_8_8bpp_c:                83.3\n  vp9_loop_filter_v_4_8_8bpp_mmxext:           23.2 ( 3.58x)\n  vp9_loop_filter_v_8_8_8bpp_c:                92.6\n  vp9_loop_filter_v_8_8_8bpp_mmxext:           52.5 ( 1.76x)\n  vp9_loop_filter_v_16_8_8bpp_c:              154.9\n  vp9_loop_filter_v_16_16_8bpp_c:             291.3\n  vp9_loop_filter_v_16_16_8bpp_sse2:          104.8 ( 2.68x)\n  vp9_loop_filter_v_16_16_8bpp_ssse3:         107.5 ( 2.64x)\n  vp9_loop_filter_v_16_16_8bpp_avx:            97.7 ( 2.90x)\n\nSigned-off-by: Andreas Rheinhardt \u003candreas.rheinhardt@outlook.com\u003e\n"
    },
    {
      "commit": "0c3a212c74399586c671f939be30e8e596335bcb",
      "tree": "0abb5d795be062dd6650ae1855716bfa3d958994",
      "parents": [
        "c727bc3480640c266176134eb813b2b046165a7d"
      ],
      "author": {
        "name": "Andreas Rheinhardt",
        "email": "andreas.rheinhardt@outlook.com",
        "time": "Thu Jul 09 10:37:18 2026"
      },
      "committer": {
        "name": "Andreas Rheinhardt",
        "email": "andreas.rheinhardt@outlook.com",
        "time": "Sun Jul 12 21:46:56 2026"
      },
      "message": "avcodec/x86/vp9lpf: Avoid unnecessary stores\n\nP1, P0, Q0 and Q1 are kept in registers throughout the whole\nfunction (when using xmm registers on x64), so they need not\nbe stored on the stack.\n\nSigned-off-by: Andreas Rheinhardt \u003candreas.rheinhardt@outlook.com\u003e\n"
    },
    {
      "commit": "c727bc3480640c266176134eb813b2b046165a7d",
      "tree": "fbf538f6f376e5e8326f04848b0b2e9c103d9ed5",
      "parents": [
        "b5970d7cb9b5ed1754ab539d5290aae86dc8ef3c"
      ],
      "author": {
        "name": "Andreas Rheinhardt",
        "email": "andreas.rheinhardt@outlook.com",
        "time": "Thu Jul 09 08:27:44 2026"
      },
      "committer": {
        "name": "Andreas Rheinhardt",
        "email": "andreas.rheinhardt@outlook.com",
        "time": "Sun Jul 12 21:46:56 2026"
      },
      "message": "avcodec/x86/vp9lpf: Avoid inverting masks\n\nChange the comparison instead to already yield the inverted mask.\n\nSigned-off-by: Andreas Rheinhardt \u003candreas.rheinhardt@outlook.com\u003e\n"
    },
    {
      "commit": "b5970d7cb9b5ed1754ab539d5290aae86dc8ef3c",
      "tree": "400ddaede83c168cdacba09fb5d9df3474258034",
      "parents": [
        "fee9a4fedfc0d89b6213d7b8f1c12efaf7fbaa43"
      ],
      "author": {
        "name": "Andreas Rheinhardt",
        "email": "andreas.rheinhardt@outlook.com",
        "time": "Wed Jul 08 19:14:02 2026"
      },
      "committer": {
        "name": "Andreas Rheinhardt",
        "email": "andreas.rheinhardt@outlook.com",
        "time": "Sun Jul 12 21:46:56 2026"
      },
      "message": "avcodec/x86/vp9lpf: Avoid reloading constant\n\npb_80 is still in a register.\n\nSigned-off-by: Andreas Rheinhardt \u003candreas.rheinhardt@outlook.com\u003e\n"
    },
    {
      "commit": "fee9a4fedfc0d89b6213d7b8f1c12efaf7fbaa43",
      "tree": "349b2fd0779932032efc643e1491f52a17c3eab7",
      "parents": [
        "10232fdd710cd15670119c71375d7d64355cde40"
      ],
      "author": {
        "name": "Andreas Rheinhardt",
        "email": "andreas.rheinhardt@outlook.com",
        "time": "Wed Jul 08 17:20:04 2026"
      },
      "committer": {
        "name": "Andreas Rheinhardt",
        "email": "andreas.rheinhardt@outlook.com",
        "time": "Sun Jul 12 21:46:56 2026"
      },
      "message": "avcodec/x86/vp9lpf: Improve deriving masks\n\nDeriving the fm, flat8in and flat8out masks involves\ncalculating max{abs(a_i-a), 1\u003c\u003di\u003c\u003dN} (with N being two or four).\nThe current code does this by calculating the abs individually\n(two psubusb and a por), followed by combining the results\n(another por or pmaxub). But there is a better way:\nCalculate the min m and max M of the a_i. Then the result equals\nmax{(M-a)^+,(a-m)^+}, which can be calculated with two\npsubusb, followed by combining the result. E.g. for N\u003d2\nthis saves two por and exchanges two psubusb with pmaxub/pminub.\n\nDoing so saves 2062B of .text here; performance is basically\nflat (the length of the critical section is unchanged).\n\nSigned-off-by: Andreas Rheinhardt \u003candreas.rheinhardt@outlook.com\u003e\n"
    },
    {
      "commit": "10232fdd710cd15670119c71375d7d64355cde40",
      "tree": "7e4113fade76b2496829f4e4356f57ff456e36e0",
      "parents": [
        "2e3bc3ebb268666146e4a902a3afe8e8dbd802ad"
      ],
      "author": {
        "name": "Andreas Rheinhardt",
        "email": "andreas.rheinhardt@outlook.com",
        "time": "Sun Jul 05 18:41:52 2026"
      },
      "committer": {
        "name": "Andreas Rheinhardt",
        "email": "andreas.rheinhardt@outlook.com",
        "time": "Sun Jul 12 21:46:56 2026"
      },
      "message": "avcodec/x86/vp9lpf: Don\u0027t do work twice\n\nmax(abs(p1-p0),abs(q1-q0)) is currently computed twice.\nStop doing so. This saves 1681B of .text and gives\na small performance boost.\n\nSigned-off-by: Andreas Rheinhardt \u003candreas.rheinhardt@outlook.com\u003e\n"
    },
    {
      "commit": "2e3bc3ebb268666146e4a902a3afe8e8dbd802ad",
      "tree": "a55ce6ae67af64befbd187dbdcf0f50fa22b5541",
      "parents": [
        "7b9eeadda06edd6ef7f604d5c3863f30722c7c15"
      ],
      "author": {
        "name": "Andreas Rheinhardt",
        "email": "andreas.rheinhardt@outlook.com",
        "time": "Sun Jul 05 08:07:02 2026"
      },
      "committer": {
        "name": "Andreas Rheinhardt",
        "email": "andreas.rheinhardt@outlook.com",
        "time": "Sun Jul 12 21:46:56 2026"
      },
      "message": "avcodec/x86/vp9lpf: Combine comparisons\n\nThe VP9 loop filter involves comparing several unsigned\nvalues against the same value and combines the results:\na \u003c\u003d I \u0026\u0026 b \u003c\u003d I \u0026\u0026 ...\nThis is equivalent to max(a,b,...) \u003c\u003d I and using this\nform is beneficial: Each comparison needs one pxor*\nand one pcmpgtb and every comparison except the first\nuses one por to combine the result. Switching to max\ninstead results in one comparison and (operands - 1)\npmaxub to create the maximum; the latter can be relaxed\nto por if the final comparator is one**, as it is for\nflat8{in,out}.\n\nDoing so saves 4113B of .text here and is beneficial\nfor performance:\n\nOld benchmarks:\n  vp9_loop_filter_h_4_8_8bpp_c:                78.0\n  vp9_loop_filter_h_4_8_8bpp_mmxext:           74.2 ( 1.05x)\n  vp9_loop_filter_h_8_8_8bpp_c:                85.0\n  vp9_loop_filter_h_8_8_8bpp_mmxext:          101.9 ( 0.83x)\n  vp9_loop_filter_h_16_8_8bpp_c:              140.3\n  vp9_loop_filter_h_16_16_8bpp_c:             250.7\n  vp9_loop_filter_h_16_16_8bpp_sse2:          176.1 ( 1.39x)\n  vp9_loop_filter_h_16_16_8bpp_ssse3:         172.9 ( 1.38x)\n  vp9_loop_filter_h_16_16_8bpp_avx:           165.5 ( 1.46x)\n  vp9_loop_filter_mix2_h_44_16_8bpp_c:        167.5\n  vp9_loop_filter_mix2_h_44_16_8bpp_sse2:      70.5 ( 2.32x)\n  vp9_loop_filter_mix2_h_44_16_8bpp_ssse3:     69.7 ( 2.40x)\n  vp9_loop_filter_mix2_h_44_16_8bpp_avx:       70.3 ( 2.38x)\n  vp9_loop_filter_mix2_h_48_16_8bpp_c:        175.5\n  vp9_loop_filter_mix2_h_48_16_8bpp_sse2:      93.3 ( 1.87x)\n  vp9_loop_filter_mix2_h_48_16_8bpp_ssse3:     93.3 ( 1.87x)\n  vp9_loop_filter_mix2_h_48_16_8bpp_avx:       90.1 ( 1.95x)\n  vp9_loop_filter_mix2_h_84_16_8bpp_c:        177.1\n  vp9_loop_filter_mix2_h_84_16_8bpp_sse2:      94.3 ( 1.82x)\n  vp9_loop_filter_mix2_h_84_16_8bpp_ssse3:     90.6 ( 1.92x)\n  vp9_loop_filter_mix2_h_84_16_8bpp_avx:       88.8 ( 1.99x)\n  vp9_loop_filter_mix2_h_88_16_8bpp_c:        186.4\n  vp9_loop_filter_mix2_h_88_16_8bpp_sse2:      94.7 ( 1.95x)\n  vp9_loop_filter_mix2_h_88_16_8bpp_ssse3:     93.7 ( 1.98x)\n  vp9_loop_filter_mix2_h_88_16_8bpp_avx:       89.7 ( 2.07x)\n  vp9_loop_filter_mix2_v_44_16_8bpp_c:        176.0\n  vp9_loop_filter_mix2_v_44_16_8bpp_sse2:      29.7 ( 5.92x)\n  vp9_loop_filter_mix2_v_44_16_8bpp_ssse3:     29.3 ( 6.02x)\n  vp9_loop_filter_mix2_v_44_16_8bpp_avx:       30.5 ( 5.76x)\n  vp9_loop_filter_mix2_v_48_16_8bpp_c:        187.7\n  vp9_loop_filter_mix2_v_48_16_8bpp_sse2:      65.1 ( 2.82x)\n  vp9_loop_filter_mix2_v_48_16_8bpp_ssse3:     65.2 ( 2.84x)\n  vp9_loop_filter_mix2_v_48_16_8bpp_avx:       56.0 ( 3.35x)\n  vp9_loop_filter_mix2_v_84_16_8bpp_c:        188.3\n  vp9_loop_filter_mix2_v_84_16_8bpp_sse2:      60.7 ( 3.03x)\n  vp9_loop_filter_mix2_v_84_16_8bpp_ssse3:     64.8 ( 2.80x)\n  vp9_loop_filter_mix2_v_84_16_8bpp_avx:       56.8 ( 3.21x)\n  vp9_loop_filter_mix2_v_88_16_8bpp_c:        199.4\n  vp9_loop_filter_mix2_v_88_16_8bpp_sse2:      65.8 ( 3.01x)\n  vp9_loop_filter_mix2_v_88_16_8bpp_ssse3:     57.6 ( 3.46x)\n  vp9_loop_filter_mix2_v_88_16_8bpp_avx:       56.3 ( 3.53x)\n  vp9_loop_filter_v_4_8_8bpp_c:                82.8\n  vp9_loop_filter_v_4_8_8bpp_mmxext:           32.4 ( 2.50x)\n  vp9_loop_filter_v_8_8_8bpp_c:                91.9\n  vp9_loop_filter_v_8_8_8bpp_mmxext:           65.6 ( 1.40x)\n  vp9_loop_filter_v_16_8_8bpp_c:              156.2\n  vp9_loop_filter_v_16_16_8bpp_c:             291.3\n  vp9_loop_filter_v_16_16_8bpp_sse2:          125.7 ( 2.25x)\n  vp9_loop_filter_v_16_16_8bpp_ssse3:         123.1 ( 2.31x)\n  vp9_loop_filter_v_16_16_8bpp_avx:           115.3 ( 2.51x)\n\nNew benchmarks:\n  vp9_loop_filter_h_4_8_8bpp_c:                78.8\n  vp9_loop_filter_h_4_8_8bpp_mmxext:           62.4 ( 1.26x)\n  vp9_loop_filter_h_8_8_8bpp_c:                85.8\n  vp9_loop_filter_h_8_8_8bpp_mmxext:           86.5 ( 0.97x)\n  vp9_loop_filter_h_16_8_8bpp_c:              139.3\n  vp9_loop_filter_h_16_16_8bpp_c:             251.3\n  vp9_loop_filter_h_16_16_8bpp_sse2:          164.7 ( 1.45x)\n  vp9_loop_filter_h_16_16_8bpp_ssse3:         164.2 ( 1.49x)\n  vp9_loop_filter_h_16_16_8bpp_avx:           155.2 ( 1.56x)\n  vp9_loop_filter_mix2_h_44_16_8bpp_c:        168.3\n  vp9_loop_filter_mix2_h_44_16_8bpp_sse2:      60.1 ( 2.80x)\n  vp9_loop_filter_mix2_h_44_16_8bpp_ssse3:     60.1 ( 2.80x)\n  vp9_loop_filter_mix2_h_44_16_8bpp_avx:       60.4 ( 2.79x)\n  vp9_loop_filter_mix2_h_48_16_8bpp_c:        178.1\n  vp9_loop_filter_mix2_h_48_16_8bpp_sse2:      83.5 ( 2.07x)\n  vp9_loop_filter_mix2_h_48_16_8bpp_ssse3:     84.0 ( 2.02x)\n  vp9_loop_filter_mix2_h_48_16_8bpp_avx:       78.0 ( 2.28x)\n  vp9_loop_filter_mix2_h_84_16_8bpp_c:        181.7\n  vp9_loop_filter_mix2_h_84_16_8bpp_sse2:      78.3 ( 2.20x)\n  vp9_loop_filter_mix2_h_84_16_8bpp_ssse3:     85.1 ( 2.12x)\n  vp9_loop_filter_mix2_h_84_16_8bpp_avx:       79.8 ( 2.27x)\n  vp9_loop_filter_mix2_h_88_16_8bpp_c:        184.8\n  vp9_loop_filter_mix2_h_88_16_8bpp_sse2:      85.6 ( 2.14x)\n  vp9_loop_filter_mix2_h_88_16_8bpp_ssse3:     85.1 ( 2.09x)\n  vp9_loop_filter_mix2_h_88_16_8bpp_avx:       77.6 ( 2.38x)\n  vp9_loop_filter_mix2_v_44_16_8bpp_c:        176.0\n  vp9_loop_filter_mix2_v_44_16_8bpp_sse2:      28.1 ( 6.27x)\n  vp9_loop_filter_mix2_v_44_16_8bpp_ssse3:     32.3 ( 5.42x)\n  vp9_loop_filter_mix2_v_44_16_8bpp_avx:       27.4 ( 6.43x)\n  vp9_loop_filter_mix2_v_48_16_8bpp_c:        187.4\n  vp9_loop_filter_mix2_v_48_16_8bpp_sse2:      55.3 ( 3.39x)\n  vp9_loop_filter_mix2_v_48_16_8bpp_ssse3:     54.7 ( 3.42x)\n  vp9_loop_filter_mix2_v_48_16_8bpp_avx:       53.7 ( 3.48x)\n  vp9_loop_filter_mix2_v_84_16_8bpp_c:        189.6\n  vp9_loop_filter_mix2_v_84_16_8bpp_sse2:      62.5 ( 3.00x)\n  vp9_loop_filter_mix2_v_84_16_8bpp_ssse3:     61.3 ( 3.07x)\n  vp9_loop_filter_mix2_v_84_16_8bpp_avx:       54.3 ( 3.47x)\n  vp9_loop_filter_mix2_v_88_16_8bpp_c:        199.5\n  vp9_loop_filter_mix2_v_88_16_8bpp_sse2:      55.1 ( 3.52x)\n  vp9_loop_filter_mix2_v_88_16_8bpp_ssse3:     54.4 ( 3.66x)\n  vp9_loop_filter_mix2_v_88_16_8bpp_avx:       53.0 ( 3.69x)\n  vp9_loop_filter_v_4_8_8bpp_c:                84.3\n  vp9_loop_filter_v_4_8_8bpp_mmxext:           32.0 ( 2.62x)\n  vp9_loop_filter_v_8_8_8bpp_c:                94.3\n  vp9_loop_filter_v_8_8_8bpp_mmxext:           63.7 ( 1.48x)\n  vp9_loop_filter_v_16_8_8bpp_c:              155.8\n  vp9_loop_filter_v_16_16_8bpp_c:             292.0\n  vp9_loop_filter_v_16_16_8bpp_sse2:          119.5 ( 2.39x)\n  vp9_loop_filter_v_16_16_8bpp_ssse3:         119.1 ( 2.39x)\n  vp9_loop_filter_v_16_16_8bpp_avx:           111.0 ( 2.61x)\n\n*: to shift unsigned values to signed ones for pcmpgtb\n**: or any comparison like \u003c\u003d 2^n-1\n\nSigned-off-by: Andreas Rheinhardt \u003candreas.rheinhardt@outlook.com\u003e\n"
    },
    {
      "commit": "7b9eeadda06edd6ef7f604d5c3863f30722c7c15",
      "tree": "2c7b8f0ae368e0e3a16c968b08209620638213cd",
      "parents": [
        "a09be9b91e8e1219f297586873b0d7322b47df96"
      ],
      "author": {
        "name": "Shreesh Adiga",
        "email": "16567adigashreesh@gmail.com",
        "time": "Fri Jul 10 12:57:46 2026"
      },
      "committer": {
        "name": "Martin Storsjö",
        "email": "martin@martin.st",
        "time": "Sun Jul 12 19:44:48 2026"
      },
      "message": "tests/checkasm/aes: fix memcmp size argument\n\nsizeof(16 * count) evaluates to 4 and thus only the first 4 bytes of aes\noutput was being compared. Removing the sizeof operator will ensure that\nthe whole output buffer will be compared.\n"
    },
    {
      "commit": "a09be9b91e8e1219f297586873b0d7322b47df96",
      "tree": "cc9ed90f71e63a102b9d28b4c136005027ec59e5",
      "parents": [
        "48236ce1a8c0d37c31ce5c6394e4bd284b8b3bc1"
      ],
      "author": {
        "name": "Lynne",
        "email": "dev@lynne.ee",
        "time": "Sun Jul 05 07:30:36 2026"
      },
      "committer": {
        "name": "Lynne",
        "email": "dev@lynne.ee",
        "time": "Sun Jul 12 04:34:58 2026"
      },
      "message": "apv_encode_vulkan: read the gathered bitstream back with the copy engine\n\nSame as FFv1.\n"
    },
    {
      "commit": "48236ce1a8c0d37c31ce5c6394e4bd284b8b3bc1",
      "tree": "5230119d351789a0e480213911b7fc640252aac8",
      "parents": [
        "720bc0b916c0396ada52490cc75c652d42ccf9c7"
      ],
      "author": {
        "name": "Lynne",
        "email": "dev@lynne.ee",
        "time": "Sun Jul 05 07:30:36 2026"
      },
      "committer": {
        "name": "Lynne",
        "email": "dev@lynne.ee",
        "time": "Sun Jul 12 04:34:58 2026"
      },
      "message": "ffv1enc_vulkan: gather into VRAM and then copy, drop the host-only path\n\nThe gather shader wrote the finished bitstream directly into a\nhost visible buffer with BDA stores.\n\nKeep the gather output in VRAM and append a single copy-engine\ntransfer to the same submission to move it into the host-visible\nreadback buffer. DMA readback into cached system memory is the one\npath every driver optimizes. Still no CPU involvement.\n\nThe host path was awfully slow and only really used because of FFv1\u0027s\ninsane overallocation.\n"
    },
    {
      "commit": "720bc0b916c0396ada52490cc75c652d42ccf9c7",
      "tree": "bae291224535b9fb3c2f25619854dcccd93d5bf4",
      "parents": [
        "43d0d365f3bb4ca9f6e5e6615a4f7aecc6e9df9d"
      ],
      "author": {
        "name": "Lynne",
        "email": "dev@lynne.ee",
        "time": "Sun Jul 05 07:30:36 2026"
      },
      "committer": {
        "name": "Lynne",
        "email": "dev@lynne.ee",
        "time": "Sun Jul 12 04:34:57 2026"
      },
      "message": "vulkan/seg_gather: avoid scratch spills and serial prefix summing\n\nCompilers lowered the funnel indexer to scratch (spilling the data),\nduring the tight copy loop into something that spills every load.\nJust use a case to select from the 2 source vectors.\n\nSumming the offsets at the end took far longer than expected and\nblocked all invocs. Just use a trivial subgroup add + atomic add\nto finish the sum quickly and with less contention.\n"
    },
    {
      "commit": "43d0d365f3bb4ca9f6e5e6615a4f7aecc6e9df9d",
      "tree": "acf396bbeae65d5316cb44b53f8bab66e904036d",
      "parents": [
        "30b6ccb59af96dd1fae7668fdbf503527a37c2fc"
      ],
      "author": {
        "name": "Lynne",
        "email": "dev@lynne.ee",
        "time": "Sun Jul 05 07:30:10 2026"
      },
      "committer": {
        "name": "Lynne",
        "email": "dev@lynne.ee",
        "time": "Sun Jul 12 04:34:57 2026"
      },
      "message": "ffv1enc_vulkan: fix VRAM size detection\n\nThe reduction accumulated into the zero-initialized context field\ninstead of the local variable, so the detected VRAM was whatever\ndevice-local heap the implementation listed last, usually the\n256MiB BAR heap rather than the multi-GiB VRAM heap.\n\nThis made the encoder take the host-memory fallback (or fail the\nallocation outright at 12K and above) on hardware with plenty of VRAM.\n"
    },
    {
      "commit": "30b6ccb59af96dd1fae7668fdbf503527a37c2fc",
      "tree": "f12092b216d4794a67039c25f1d9a27cafce00c5",
      "parents": [
        "fe38a1e257f85ad2e16e4b3bd0bde9f6873592e7"
      ],
      "author": {
        "name": "Lynne",
        "email": "dev@lynne.ee",
        "time": "Sun Jul 12 03:38:13 2026"
      },
      "committer": {
        "name": "Lynne",
        "email": "dev@lynne.ee",
        "time": "Sun Jul 12 04:34:53 2026"
      },
      "message": "vulkan: fix u32vec2buf/u32vec4buf alignment values\n\nWe were optimistic, looking through the GLSL specs, it was illegal to use\nan alignment value which satisfied scalar alignment when doing vector loads.\nAt best, the GPU compiler split it up into multiple parts.\n"
    },
    {
      "commit": "fe38a1e257f85ad2e16e4b3bd0bde9f6873592e7",
      "tree": "061c3b1365d3edb468c5dd045b8404f4e8041c45",
      "parents": [
        "8656a45be55a424af93e052e386ccac2ac46608b"
      ],
      "author": {
        "name": "Jun Zhao",
        "email": "barryjzhao@tencent.com",
        "time": "Sat Jun 27 23:08:12 2026"
      },
      "committer": {
        "name": "Jun Zhao",
        "email": "mypopydev@gmail.com",
        "time": "Sun Jul 12 00:02:40 2026"
      },
      "message": "avformat/network: make ff_network_init() follow standard AVERROR convention\n\nff_network_init() used to return 0 on failure and 1 on success,\nrequiring callers to check !ff_network_init(). Change it to return\na negative AVERROR(EIO) on failure and 0 on success, matching the\nstandard FFmpeg convention where negative values indicate errors.\n\nUpdate all callers (avio.c, rtsp.c, rtspdec.c, sapdec.c, sapenc.c,\nutils.c) to use the standard (ret \u003d ff_network_init()) \u003c 0 pattern.\n\nSigned-off-by: Jun Zhao \u003cbarryjzhao@tencent.com\u003e\n"
    },
    {
      "commit": "8656a45be55a424af93e052e386ccac2ac46608b",
      "tree": "977424830a0b31249bf068128ab9c02cd7fe637f",
      "parents": [
        "a6ed750664d6d8760bcee88f8aacec2e7d1b3ab7"
      ],
      "author": {
        "name": "Jun Zhao",
        "email": "barryjzhao@tencent.com",
        "time": "Sat Jun 27 07:10:37 2026"
      },
      "committer": {
        "name": "Jun Zhao",
        "email": "mypopydev@gmail.com",
        "time": "Sun Jul 12 00:02:40 2026"
      },
      "message": "avformat/tls: remove orphan ff_openssl_init/ff_openssl_deinit declarations\n\nThese declarations were left behind by f0913b3f16 which\nremoved support for OpenSSL \u003c 1.1.0. Since OpenSSL \u003e\u003d 1.1.0\nauto-initializes, neither function has an implementation or\ncaller.\n\nSigned-off-by: Jun Zhao \u003cbarryjzhao@tencent.com\u003e\n"
    },
    {
      "commit": "a6ed750664d6d8760bcee88f8aacec2e7d1b3ab7",
      "tree": "da0849df18fa12f545dde5c730965c9c16a5cb0c",
      "parents": [
        "683fae35e1bf9cc69d903eacc53cf5dde0ca7c7a"
      ],
      "author": {
        "name": "Jun Zhao",
        "email": "barryjzhao@tencent.com",
        "time": "Sat Jul 11 03:26:20 2026"
      },
      "committer": {
        "name": "Jun Zhao",
        "email": "mypopydev@gmail.com",
        "time": "Sun Jul 12 00:02:40 2026"
      },
      "message": "avformat/utils: fix ff_mkdir_p() swallowing intermediate mkdir errors\n\nWhen creating nested directories (e.g. /a/b/c), a genuine mkdir()\nfailure for an intermediate component was overwritten by later\nattempts, making the original failure harder to diagnose.\n\nStop immediately on intermediate errors other than EEXIST, preserving\nerrno for the caller. Existing path components remain non-fatal, as\nrequired by mkdir -p semantics. Add a regression test for creating a\nchild below an existing parent directory.\n\nSigned-off-by: Jun Zhao \u003cbarryjzhao@tencent.com\u003e\n"
    },
    {
      "commit": "683fae35e1bf9cc69d903eacc53cf5dde0ca7c7a",
      "tree": "859fb1b0f1eadaac3a035380c84932620dfe5c86",
      "parents": [
        "c16840b826584b7682078cec4d5e8405b06f03c8"
      ],
      "author": {
        "name": "Jun Zhao",
        "email": "barryjzhao@tencent.com",
        "time": "Sat Jun 27 06:06:24 2026"
      },
      "committer": {
        "name": "Jun Zhao",
        "email": "mypopydev@gmail.com",
        "time": "Sun Jul 12 00:02:40 2026"
      },
      "message": "avformat/internal: fix typo allow_unkown -\u003e allow_unknown\n\nThe declaration of ff_parse_opts_from_query_string() misspelled\n\"unknown\" as \"unkown\". The implementation in utils.c already uses\nthe correct spelling.\n\nSigned-off-by: Jun Zhao \u003cbarryjzhao@tencent.com\u003e\n"
    },
    {
      "commit": "c16840b826584b7682078cec4d5e8405b06f03c8",
      "tree": "ac8006caf687ba88a72b9323dde00733abb7955b",
      "parents": [
        "57708daf619c1de0ea25366ef11e527f292acd55"
      ],
      "author": {
        "name": "James Almer",
        "email": "jamrial@gmail.com",
        "time": "Fri Jun 12 18:08:03 2026"
      },
      "committer": {
        "name": "James Almer",
        "email": "jamrial@gmail.com",
        "time": "Sat Jul 11 22:32:17 2026"
      },
      "message": "avcodec/dca_xll: export downmix matrix coefficients\n\nOnly for primary channel sets if they embeed coefficients for now.\n\n$ ./ffmpeg -downmix stereo -i $fate-suite/dts/dcadec-suite/xll_51_24_48_768.dtshd -y native.wav\n\nBefore:\n$ ./ffmpeg -i $fate-suite/dts/dcadec-suite/xll_51_24_48_768.dtshd -af aresample,aformat\u003dchannel_layouts\u003dstereo -y swr.wav\n[...]\n[Parsed_aresample_0] [SWR] Using fltp internally between filters\n[Parsed_aresample_0] [SWR] Matrix coefficients:\n[Parsed_aresample_0] [SWR] FL: FL:0.414214 FR:0.000000 FC:0.292893 LFE:0.000000 SL:0.292893 SR:0.000000\n[Parsed_aresample_0] [SWR] FR: FL:0.000000 FR:0.414214 FC:0.292893 LFE:0.000000 SL:0.000000 SR:0.292893\n[Parsed_aresample_0] ch:6 chl:5.1(side) fmt:s32p r:48000Hz -\u003e ch:2 chl:stereo fmt:s16 r:48000Hz\n[...]\n\n$ tests/tiny_psnr.exe native.wav swr.wav\nstddev:21178.05 PSNR:  9.81 MAXDIFF:49613 bytes:     8192/     8192\n\nAfter:\n$ ./ffmpeg -i $fate-suite/dts/dcadec-suite/xll_51_24_48_768.dtshd -af aresample,aformat\u003dchannel_layouts\u003dstereo -y swr.wav\n[...]\n[Parsed_aresample_0] [SWR] Using fltp internally between filters\n[Parsed_aresample_0] [SWR] Custom matrix coefficients:\n[Parsed_aresample_0] [SWR] FL: FL:-0.100006 FR:0.000000 FC:0.000000 LFE:0.000000 SL:-0.707092 SR:0.000000\n[Parsed_aresample_0] [SWR] FR: FL:0.000000 FR:-0.100006 FC:0.000000 LFE:0.000000 SL:0.000000 SR:-0.707092\n[Parsed_aresample_0] ch:6 chl:5.1(side) fmt:s32p r:48000Hz -\u003e ch:2 chl:stereo fmt:s16 r:48000Hz\n[...]\n\n$ tests/tiny_psnr.exe native.wav swr.wav\nstddev:    0.71 PSNR: 99.22 MAXDIFF:    1 bytes:     8192/     8192\n\nSigned-off-by: James Almer \u003cjamrial@gmail.com\u003e\n"
    },
    {
      "commit": "57708daf619c1de0ea25366ef11e527f292acd55",
      "tree": "38682f512e9e67d1e93c38d9a8dbcbf7f327e284",
      "parents": [
        "e1e6ebb065ebfb2a08a4adc4b4aae0a85640018d"
      ],
      "author": {
        "name": "James Almer",
        "email": "jamrial@gmail.com",
        "time": "Thu Jun 04 17:51:57 2026"
      },
      "committer": {
        "name": "James Almer",
        "email": "jamrial@gmail.com",
        "time": "Sat Jul 11 22:32:17 2026"
      },
      "message": "avcodec/dca_core: export downmix matrix coefficients\n\n$ ./ffmpeg -downmix stereo -i $fate-suite/dts/dcadec-suite/core_51_24_48_768_1.dtshd -y native.wav\n\nBefore:\n$ ./ffmpeg -i $fate-suite/dts/dcadec-suite/core_51_24_48_768_1.dtshd -af aresample,aformat\u003dchannel_layouts\u003dstereo -y swr.wav\n[...]\n[Parsed_aresample_0] [SWR] Using fltp internally between filters\n[Parsed_aresample_0] [SWR] Matrix coefficients:\n[Parsed_aresample_0] [SWR] FL: FL:0.414214 FR:0.000000 FC:0.292893 LFE:0.000000 SL:0.292893 SR:0.000000\n[Parsed_aresample_0] [SWR] FR: FL:0.000000 FR:0.414214 FC:0.292893 LFE:0.000000 SL:0.000000 SR:0.292893\n[Parsed_aresample_0] ch:6 chl:5.1(side) fmt:fltp r:48000Hz -\u003e ch:2 chl:stereo fmt:s16 r:48000Hz\n[...]\n\n$ tests/tiny_psnr.exe native.wav swr.wav s16\nstddev:18907.06 PSNR: 10.80 MAXDIFF:51590 bytes:     8192/     8192\n\nAfter:\n$ ./ffmpeg -i $fate-suite/dts/dcadec-suite/core_51_24_48_768_1.dtshd -af aresample,aformat\u003dchannel_layouts\u003dstereo -y swr.wav\n[...]\n[Parsed_aresample_0] [SWR] Using fltp internally between filters\n[Parsed_aresample_0] [SWR] Custom matrix coefficients:\n[Parsed_aresample_0] [SWR] FL: FL:-0.100006 FR:0.000000 FC:0.000000 LFE:0.000000 SL:-0.707092 SR:0.000000\n[Parsed_aresample_0] [SWR] FR: FL:0.000000 FR:-0.100006 FC:0.000000 LFE:0.000000 SL:0.000000 SR:-0.707092\n[Parsed_aresample_0] ch:6 chl:5.1(side) fmt:fltp r:48000Hz -\u003e ch:2 chl:stereo fmt:s16 r:48000Hz\n[...]\n\n$ tests/tiny_psnr.exe native.wav swr.wav\nstddev:    0.02 PSNR:129.44 MAXDIFF:    1 bytes:     8192/     8192\n\nSigned-off-by: James Almer \u003cjamrial@gmail.com\u003e\n"
    },
    {
      "commit": "e1e6ebb065ebfb2a08a4adc4b4aae0a85640018d",
      "tree": "c239e99ef1aa327bd071b68175b4edf1ae08b0d3",
      "parents": [
        "b662613b63e902e3978bc3977e4ad3ccb738110f"
      ],
      "author": {
        "name": "James Almer",
        "email": "jamrial@gmail.com",
        "time": "Thu Jun 04 17:46:51 2026"
      },
      "committer": {
        "name": "James Almer",
        "email": "jamrial@gmail.com",
        "time": "Sat Jul 11 22:32:17 2026"
      },
      "message": "fftools/ffmpeg_filter: propagate downmix matrix side data to the filterchain\n\nSigned-off-by: James Almer \u003cjamrial@gmail.com\u003e\n"
    },
    {
      "commit": "b662613b63e902e3978bc3977e4ad3ccb738110f",
      "tree": "662d52eae094a98299c7ef86e2c177acba66ca28",
      "parents": [
        "9646228fd676ff59168dd546924705d2fb3f250c"
      ],
      "author": {
        "name": "James Almer",
        "email": "jamrial@gmail.com",
        "time": "Thu Jun 04 17:46:07 2026"
      },
      "committer": {
        "name": "James Almer",
        "email": "jamrial@gmail.com",
        "time": "Sat Jul 11 22:32:17 2026"
      },
      "message": "avfilter/af_aresample: also look for downmix matrix side data\n\nSigned-off-by: James Almer \u003cjamrial@gmail.com\u003e\n"
    },
    {
      "commit": "9646228fd676ff59168dd546924705d2fb3f250c",
      "tree": "8102d25cb02f54641aa28e08e090ba1da83e2b60",
      "parents": [
        "6336cffdceeece9b7d222d5dc88705db08f88aac"
      ],
      "author": {
        "name": "James Almer",
        "email": "jamrial@gmail.com",
        "time": "Thu Jun 04 17:44:15 2026"
      },
      "committer": {
        "name": "James Almer",
        "email": "jamrial@gmail.com",
        "time": "Sat Jul 11 22:32:17 2026"
      },
      "message": "swresample/rematrix: print custom downmix matrix coefficients\n\nSimilar to how it\u0027s done to the matrix built in auto_matrix().\n\nSigned-off-by: James Almer \u003cjamrial@gmail.com\u003e\n"
    },
    {
      "commit": "6336cffdceeece9b7d222d5dc88705db08f88aac",
      "tree": "39322fd7e938c98e2b509181d683c5203762bdd4",
      "parents": [
        "7e68fdd4dabc02cb76c7924398928a49031847a8"
      ],
      "author": {
        "name": "James Almer",
        "email": "jamrial@gmail.com",
        "time": "Thu Jun 04 17:44:10 2026"
      },
      "committer": {
        "name": "James Almer",
        "email": "jamrial@gmail.com",
        "time": "Sat Jul 11 22:32:17 2026"
      },
      "message": "avfilter/af_ashowinfo: support printing downmix matrix side data\n\nSigned-off-by: James Almer \u003cjamrial@gmail.com\u003e\n"
    },
    {
      "commit": "7e68fdd4dabc02cb76c7924398928a49031847a8",
      "tree": "3736c369d8304340ecad3f7ed28bffc5104dc532",
      "parents": [
        "56e39bd20b418b9298488bd5a261a0ee5ae21525"
      ],
      "author": {
        "name": "James Almer",
        "email": "jamrial@gmail.com",
        "time": "Thu Jun 04 17:41:55 2026"
      },
      "committer": {
        "name": "James Almer",
        "email": "jamrial@gmail.com",
        "time": "Sat Jul 11 22:32:17 2026"
      },
      "message": "avutil/frame: add a new side data type for downmix matrix\n\nSigned-off-by: James Almer \u003cjamrial@gmail.com\u003e\n"
    },
    {
      "commit": "56e39bd20b418b9298488bd5a261a0ee5ae21525",
      "tree": "dbe535800f51e777eaec54eca4b42be786dc9733",
      "parents": [
        "dd941af8ac9c97017b335832714457fe9dd7f6be"
      ],
      "author": {
        "name": "James Almer",
        "email": "jamrial@gmail.com",
        "time": "Thu Jun 04 17:40:58 2026"
      },
      "committer": {
        "name": "James Almer",
        "email": "jamrial@gmail.com",
        "time": "Sat Jul 11 22:32:17 2026"
      },
      "message": "avutil/downmix_info: add a new API to propagate pre-made downmix matrixes\n\nUseful for formats where they provide the downmix matrix in the bistream rather\nthan scale factors for channel groups.\n\nSigned-off-by: James Almer \u003cjamrial@gmail.com\u003e\n"
    },
    {
      "commit": "dd941af8ac9c97017b335832714457fe9dd7f6be",
      "tree": "a88174ff4cfa4250865d472c60dc474380b2efc8",
      "parents": [
        "4133db39b2bd1491e41457e819ed3ca96ef555ff"
      ],
      "author": {
        "name": "Michael Niedermayer",
        "email": "michael@niedermayer.cc",
        "time": "Wed Jul 08 14:14:48 2026"
      },
      "committer": {
        "name": "michaelni",
        "email": "michael@niedermayer.cc",
        "time": "Sat Jul 11 21:53:00 2026"
      },
      "message": "avcodec/bsf/dts2pts: evict unconsumable nodes from the poc tree\n\nEach pending packet consumes up to poc_diff tree nodes when it is\noutput, so the packets in the FIFO can consume at most nb_pending nodes\nin total. Frames whose tree lookup misses on output leave their nodes\nbehind, and damaged or crafted streams can make that happen\nindefinitely, growing the tree without limit.\n\nTrack the node count and insertion order, keep the leftovers of up to\nMAX_DAMAGED_FRAMES frames and beyond that evict the nodes unconsumed\nthe longest. Timestamps of valid frames are unaffected unless more\nframes than that are damaged. No eviction is done at EOF, where nodes\nare deliberately kept to regenerate timestamps from.\n\nOf all h264/hevc conformance samples only MR3_TANDBERG_B.264 triggers\nevictions, and no sample changes output.\n\nFixes: unbounded memory growth with damaged streams\n\nCo-Authored-By: Fable-5\n"
    }
  ],
  "next": "4133db39b2bd1491e41457e819ed3ca96ef555ff"
}
