commit 79128878ddb2c280bbb6c89c76a46b31a80ade1c
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Dec 23 07:55:38 2025 +0100

    CI: use newer LLVM UCRT image with python requests
    
    Since we don't use Python venv to upload the release symbols, we
    need this package to use our Python script.

commit b7c75b0c9925847518913a946bc25516e9885ab4
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Dec 16 08:42:14 2025 +0100

    demux: h26x: fix vlc_stream_Peek() read into an unsigned value
    
    We need to check errors in vlc_stream_Peek() calls.
    
    (cherry picked from commit 1558850135d43cf8fe5a500f31d9250410ee6359)

commit 29801aa47193653ba142eb2a3bba5b52835de05d
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Dec 22 08:19:34 2025 +0100

    CI: use the stripped down tag name for the symbol tarball

commit 67afafc2c94b861a22bd755956fec22a5d25f87a
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Sat Dec 20 07:42:05 2025 +0100

    Revert "CI: call symbol upload in a Python venv"
    
    This reverts commit e55793ca30a3b2f6990c339734900d882044db8f.
    
    The old winXX-3.0 Docker images don't have python venv. But it's OK
    because they have python3-requests which is the only requirement we
    need to use our breakpad script.

commit 578d28f6c9f2379164516e689418f92ac74a3445
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Dec 19 16:45:43 2025 +0100

    CI: let the docker runner guess the user to clone the git repository with
    
    In the some runners (builder-release.videolan.org, a Videolabs one) we can't run
    commands in the git repository:
    
    fatal: detected dubious ownership in repository at '/builds/videolan/vlc'
    To add an exception for this directory, call:
    
            git config --global --add safe.directory /builds/videolan/vlc
    cat: /builds/videolan/vlc/extras/package/win32/../../../src/revision.txt: No such file or directory
    
    See https://gitlab.com/gitlab-org/gitlab-runner/-/merge_requests/3538

commit 043d9e7cf47d5db3e8c1796887689102b6192681
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Dec 15 08:06:28 2025 +0100

    bluray: read vlc_stream_Peek() into a signed value
    
    Only 2048 is accepted so it does not matter too much if a size_t is used,
    but it's cleaner.
    
    (cherry picked from commit 5aebff101357c14f659c9647d03d9e6a41a8ccc2)

commit 12bf31e06a1fed084f75ab7c968c63ea7d9c18f0
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Dec 15 08:05:36 2025 +0100

    demux: webvtt: fix vlc_stream_Peek() read into an unsigned value
    
    We need to check errors in vlc_stream_Peek() calls.
    
    (cherry picked from commit 66d7893235329bd53e39bbb60e16def75e6bb94c)

commit f501d7c18ee7ff56ae35cd62d71be6f0fcc1d366
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Dec 15 07:57:02 2025 +0100

    subtitle: fix vlc_stream_Peek() read into an unsigned value
    
    We need to check errors in vlc_stream_Peek() calls.
    
    Fixes #29377
    
    (cherry picked from commit 6bbf8be995e51db335b244b495874dfe12514542)

commit 3697ebcb2716cb4f9c7824b11ce33afefb0212ab
Author: Jean-Baptiste Kempf <jb@videolan.org>
Date:   Sun Dec 14 23:09:00 2025 +0100

    Update NEWS for 3.0.23

commit 12d95db736a623f0e07cb7e5b6e7f280c4310032
Author: VideoLAN <videolan@videolan.org>
Date:   Tue Dec 9 09:47:20 2025 +0100

    po: update translations for 3.0.23

commit e688e44321ba33febfd2712d93d2d31da2b242b6
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Dec 9 09:12:30 2025 +0100

    win32: dirs: do not create some system folders on behalf of the user
    
    These should not be created by VLC
    * VLC_HOME_DIR (%userprofile%\Documents)
    * VLC_MUSIC_DIR (%userprofile%\Music)
    * VLC_PICTURES_DIR (%userprofile%\Pictures)
    * VLC_VIDEOS_DIR (%userprofile%\Videos)
    * VLC_DESKTOP_DIR = VLC_HOME_DIR (%userprofile%\Documents)
    * VLC_TEMPLATES_DIR = VLC_HOME_DIR (%userprofile%\Documents)
    * VLC_PUBLICSHARE_DIR = VLC_HOME_DIR (%userprofile%\Documents)
    * VLC_DOCUMENTS_DIR = VLC_HOME_DIR (%userprofile%\Documents)
    * VLC_DOWNLOAD_DIR = VLC_HOME_DIR (%userprofile%\Documents)
    
    VLC_VIDEOS_DIR/VLC_MUSIC_DIR/VLC_DOWNLOAD_DIR are used by the es_out.
    But if the system doesn't have them or if they are not usable we should not write in them.
    The user has the option to set "input-record-path" to set a usable folder.
    
    VLC_PICTURES_DIR is used to save the snapshots and there is "snapshot-path"
    to use a different folder.
    
    These should be created by VLC if needed:
    * VLC_CONFIG_DIR
    * VLC_DATA_DIR
    * VLC_CACHE_DIR
    
    But they are not actually created during the config_GetAppDir() call.
    
    Fixes #29488

commit b5ec4940a4a643d5abbe88b0c729fab7f7f2e9ca
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Sep 30 11:46:33 2025 +0200

    qt: remove unused BUTTON_SET_ACT

commit 085a10f96e3e69ec9f67d299eff7e380f37c4d31
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Sep 30 13:29:27 2025 +0200

    qt: fix index type in ARRAY_SIZE loop

commit f1f9e073568d15e1b4c1d73b127061c98e2c6477
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Sep 30 13:17:40 2025 +0200

    qt: fix missing override on customEvent()
    
    'customEvent' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]

commit 548e797d83b716806fddd0c7fd17abab26632180
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Sep 30 15:00:42 2025 +0200

    qt: remove unused DialogEventTypeOffset

commit d87c28fe0e506475a8edc06a9c0b082a1b485530
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Sep 30 13:13:50 2025 +0200

    qt: fix warning about ambiguous operators

commit ce0c8b05f97fd126ee1cd1b668b8403b84828db6
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Sat Dec 13 10:24:35 2025 +0100

    qt: fix make dist with qt6 qmake files

commit 855d4d364057c3b135063a0e74d91438a236809c
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Dec 12 10:43:32 2025 +0100

    contrib: qtsvg: simplify build calls and use jobserver
    
    There are only the plugins and svg subtargets so we can just call the install for all 'src'.

commit b8aad6b62a4ffc7a7d3561e3ac9d43d459bb0b56
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Dec 12 11:27:43 2025 +0100

    contrib: qt: don't rebuild native uic/rcc/moc
    
    They are already built and installed a few lines above.

commit 31854254d4c60d156a0ef8bd0ea8e489c029cf71
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Dec 12 10:27:08 2025 +0100

    contrib: qt: always install qmake + mkspecs and use jobserver
    
    We don't need to build it again, it's always built as a native tool
    when running configure.
    
    It's needed for QtSvg since 189ca8feb6c784101a879895e8ad7cd793a0f16c.

commit 404aac828d1901bf4880627aeb2f8afe6adb7a80
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Dec 12 10:59:06 2025 +0100

    contrib: qt: only build the folders that we install and use jobserver
    
    We don't care about examples, qmake, doc, etc.

commit fc53f681e4a17b8b6a384d5485109d483780d64d
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Dec 12 10:51:38 2025 +0100

    contrib: qt: disable XCB when building for Windows

commit a84629dd60615ba16b6a8eab9afee47701fb8c67
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Dec 12 10:48:49 2025 +0100

    contrib: qt: remove variable hack for pthread-GC2
    
    We don't use pthread-GC2 since 0885d5e47aa7b10a0d3e9e8d1162714317705b0b.

commit baa78c390d4ffc34b2131a64f3aaa86ad4ba65a5
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Dec 10 14:22:13 2025 +0100

    access: http: fix status string size warning
    
    The asserts checks that the status is below 1000 but if it's bigger
    in a release build we should not limit the buffer size.
    
    (cherry picked from commit dbd22036b067f7a161e2e19810e26a70784bc810)

commit 14e998cd509a48cc856698d9af436932c26956d9
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Dec 10 14:33:51 2025 +0100

    ncurses: disable string format warning
    
    gcc claims c can be NULL but it cannot.
    
    gui/ncurses.c:401:17: error: '%s' directive argument is null [-Werror=format-overflow=]
      401 |             if (asprintf(&tmp, "%s%c ", c, last ? ' ' : '|') == -1)
          |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

commit b4de9310bf6b12db7feac5771dbf1f22c5bb4280
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Jul 11 09:22:23 2018 +0200

    access:http: change the scanf/printf format modifiers when using uintmax_t
    
    PRI(uxd)MAX for printf and SCN(uxd)MAX for scanf are supported in C99 and even
    in MSVC 2013, unlike the j modifier.
    
    (cherry picked from commit 06d86ae4088fd49e69ff6e47c2f6f31e4530f975)

commit ce54ec7570af6b440a8bbd48fcd0635c2b3d1f47
Author: Alexandre Janniaux <ajanni@videolabs.io>
Date:   Thu Sep 5 13:37:24 2019 +0200

    mosaic_bridge: fix format-overflow warning
    
    Signed-off-by: Thomas Guillem <thomas@gllm.fr>
    (cherry picked from commit 865d5a931360fba22894ed9c0cecb93abe78de54) (edited)

commit 49b5312bfa6ab4f06a7e65566ac7db4a17370790
Author: Erwan Tulou <erwan10@videolan.org>
Date:   Sun Sep 22 12:21:00 2019 +0200

    skins2: kill compilation warning
    
    (cherry picked from commit bdefc284c09d651ff3007d10da9f4e6e3a30903f)

commit db607fb089f86919b6462beb8b6f9d03f10fe7aa
Author: Marvin Scholz <epirat07@gmail.com>
Date:   Mon Jan 8 23:56:13 2024 +0100

    http: avoid using sprintf
    
    Use snprintf to avoid a deprecation warning about sprintf on Darwin platforms.
    
    (cherry picked from commit b93f201c755284edf78f79fbe6c2709d832b5ed0)

commit a498eaee6348c47d46300255b946402be9cbbb03
Author: Thomas Guillem <thomas@gllm.fr>
Date:   Wed Apr 7 14:49:06 2021 +0200

    cdda: fix format-truncation warning
    
    (cherry picked from commit 5f24d66c06d6337eda485413bd6867d4572308fd)

commit a504757d3ef8b662302d7d069851d8e756d9b2d0
Author: Marvin Scholz <epirat07@gmail.com>
Date:   Mon Jan 8 23:52:41 2024 +0100

    access: cdda: avoid using sprintf
    
    Use snprintf to avoid a deprecation warning about sprintf on Darwin platforms.
    
    (cherry picked from commit 8fba6c29bc2bbe20835ba63e11bbef875b446ba7)

commit 02e0b281bfead348b8d53b2fcb5992848e412180
Author: Alexandre Janniaux <ajanni@videolabs.io>
Date:   Sat Oct 19 15:11:08 2019 +0200

    mpeg: fix format-overflow warning
    
    psz_key can be NULL, which triggers a format-overflow warning.
    
    Signed-off-by: Steve Lhomme <robux4@ycbcr.xyz>
    (cherry picked from commit 56452f2173d31dd970448c6dc2ed9904ad8b3a39)

commit 1fc33b479e228008fd0c384fe395297fd0a31f58
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Oct 10 13:14:36 2023 +0200

    png: fix potential buffer overflow
    
    This is the error we have:
    ../../../modules/codec/png.c:162:49: warning: '%zu' directive output may be truncated writing between 1 and 20 bytes into a region of size between 18 and 37 [-Wformat-truncation=]
      162 |                   "block size %zu too small for %zu encoded bytes",
          |                                                 ^~~
    ../../../modules/codec/png.c:162:19: note: directive argument in the range [1, 18446744073709551615]
      162 |                   "block size %zu too small for %zu encoded bytes",
    
    (cherry picked from commit 59894f24f431e717444bb49331f35624eedc64f7)

commit 41328807c91a9385956f0a3864f27b869d1b5277
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Oct 19 09:59:49 2023 +0200

    actions: match the format string with the buffer size
    
    (cherry picked from commit a1f42f8bdb04bd6b32413225009a13f2c594ddee)

commit c41cacc68ed1c8cfeb1c45696b90828d52d6e606
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Dec 17 09:56:09 2024 +0100

    configure: detect Qt6 using QMake
    
    This is similar to how it's done in VLC4 before python scripts were used.

commit befe2417444334778b3f07550fe2bec64ae41c74
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Dec 9 11:49:49 2025 +0100

    directx_va: fix detection of mingw-w64 v13 dxva.h
    
    If the dxva.h file comes from the contribs, it doesn't match the system
    __MINGW64_VERSION_MAJOR. But we can detect it another way.
    
    Similar to 20227126ef968f966d1b7b202d04f93dc934db04

commit 5bded3240aa643ef9e49b09da053305dce1d34e3
Author: Felix Paul Kühne <fkuehne@videolan.org>
Date:   Sat Oct 11 10:58:49 2025 +0200

    .tx: add configuration to update po files
    
    This is a configuration file for the tx command line tool to
    automatically pull updated translations from the transifex platform to
    the correct places.
    
    After the pull, it is necessary to correct the headers manually and to
    perform "msgcat --width=79 po/*.po -o -" to achieve the intended
    formatting.
    
    Perform the pull with "tx pull --use-git-timestamps --force"

commit abc817dac8dd17511b917cd786db2e6730e21e5e
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Dec 9 13:59:36 2025 +0100

    opengl: use pl_shader for the libplacebo shader
    
    The pl_context structure was renamed in https://code.videolan.org/videolan/libplacebo/-/commit/dd755a09c4a22deaab82da8b4178ce8a50584b7c

commit 8c4e05bcfbb57a1401b05f6ccbd6f1d52b02a47d
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Dec 9 13:31:00 2025 +0100

    opengl: use pl_log for the libplacebo context
    
    The pl_context structure was renamed in https://code.videolan.org/videolan/libplacebo/-/commit/2459200a133d1a0f36f092a32a2d5d443cfbee55
    
    It's already initialized with pl_log_create / pl_log_destroy since 65ea8d19d91ac1599a29e8411485a72fe89c45e2
    Although there were PL_MAJOR_VER == 4 with this change.

commit 88d5825bb4883f60dcbec835ab4214c8346ee5a0
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Dec 9 13:17:59 2025 +0100

    opengl: use pl_shader_obj typedef in newer libplacebo version
    
    The plain structure is gone in current version.
    
    From https://code.videolan.org/videolan/libplacebo/-/commit/dd755a09c4a22deaab82da8b4178ce8a50584b7c

commit b1231297eca82da6e9465599a81a3431b785ac72
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Dec 9 13:56:04 2025 +0100

    opengl: use tc->pl_sh directly
    
    So we don't depend on its actual type.

commit 1089af38fc26293d0b93a9456adf7ae4a5b0b930
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Dec 9 11:42:02 2025 +0100

    avcodec: use AV_LEVEL_xxx instead of FF_LEVEL_xxx
    
    This was added in libavcodec 60.26.100 [^1].
    
    [^1]:  https://code.ffmpeg.org/FFmpeg/FFmpeg/commit/8238bc0b5e3dba271217b1223a901b3f9713dc6e

commit ffd813653f170702ae52b22a9f3db36bc6b0d997
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Sep 8 13:51:43 2025 +0200

    avcodec: use AV_PROFILE_xxx instead of FF_PROFILE_xxx
    
    This was added in libavcodec 60.26.100 [^1]. We require 58.54.100.
    
    [^1]:  https://code.ffmpeg.org/FFmpeg/FFmpeg/commit/8238bc0b5e3dba271217b1223a901b3f9713dc6e
    
    (cherry picked from commit ff292b650ea0b10c67c9e4ff16327486afe0d8ad) (edited)
    - the vaapi had less profiles
    - the direct_va doesn't have HEVC EXT
    - FF_PROFILE_UNKNOWN was used in more places

commit bde8f7e2eeec9d0b056dfcae0fbce5cd3fbfa0d3
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Jan 14 11:28:21 2025 +0100

    avcodec/video: use frame flags instead of fields
    
    The structure fields are deprecated.
    It was introduced in lavu 58.7.100.
    
    (cherry picked from commit c79659bc9cfa2ff14754920a706f89d07d6425e6)

commit b7039d830040a4478ea52008f6a8fc3a976faeae
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Sep 8 13:55:28 2025 +0200

    avcodec: encoder: remove AV_INPUT_BUFFER_MIN_SIZE usage
    
    It's not supported in FFMpeg 8.0 since 60.40.100.
    
    It used to be used with preallocated packet buffers with
    the old encode API, but said API is no more and therefore
    there is no reason for this to be public any more.
    So deprecate it and use an internal replacement
    for the encoders using it as an upper bound for the
    size of their headers.
    
    (cherry picked from commit dae7faa0757ee094681c5e7100baca74c007c67c)

commit 6c250ae48a3cef9453f2c56ab4724e91c85dcf16
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Dec 9 11:21:17 2025 +0100

    upnp: include iphlpapi.h to use local structures
    
    They used to be included by pupnp. They don't use/need it anymore, but we do.
    
    Similar to eacf1bd2b33b82c16d7c6ecc507744e0a70985f0.

commit 30231c06b7b784d4978ce764c38f9004f84a5894
Author: Jean-Baptiste Kempf <jb@videolan.org>
Date:   Mon Dec 8 07:59:15 2025 +0100

    Update PO

commit 174e45e3beeafbb0570c8c47f01f9b28eb6ea45c
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Jan 25 12:17:32 2019 +0100

    configure: include glew.h before wglew.h
    
    In recent wglew.h it relies on the DLL export mode defined in glew.h
    
    (cherry picked from commit 1f86df44e3b6e86f3af35fbb388793f09d0d7553) (edited)
    edited:
    - the 3.0 converter is not in direct3d9.c

commit 9140355a0514a0af1ec7bee50bfb21254449102a
Author: Sean McGovern <gseanmcg@gmail.com>
Date:   Mon Dec 1 14:45:36 2025 -0500

    misc/stats: ensure p_pic is non-NULL before calling decoder_QueueVideo()
    
    (cherry picked from commit f93a8c5f341a346a93b5dfe4da38873475453352)

commit 841640c3031113bc3d2d1f177c7996a01a40813e
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Dec 8 10:27:06 2025 +0100

    CI: update gcc windows images with wine compatible with the contrib Wix
    
    Fixes #29489

commit 92dd4ae3b514bf470ce12d033fad92fb928c4875
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Dec 8 11:37:45 2025 +0100

    contrib: caca: force recognition of all sprint variants tested on Windows
    
    The built-in in some mingw-w64 variants require linking for kernel32.
    
    configure:18427: i686-w64-mingw32-gcc -o conftest.exe -D__MSVCRT_VERSION__=0x700 -D_WIN32_WINNT=0x0502 -DWINVER=0x0502  -I/home/videolan/vlc/contrib/i686-w64-mingw32/include -g -O0 -D__MSVCRT_VERSION__=0x700 -D_WIN32_WINNT=0x0502 -DWINVER=0x0502 -I/home/videolan/vlc/contrib/i686-w64-mingw32/include -DCACA_STATIC  -L/home/videolan/vlc/contrib/i686-w64-mingw32/lib  conftest.c  >&5
    conftest.c:47:6: warning: conflicting types for built-in function 'vsnprintf'
     char vsnprintf ();
          ^~~~~~~~~
    /opt/gcc-i686-w64-mingw32/lib/gcc/i686-w64-mingw32/6.4.0/../../../../i686-w64-mingw32/lib/../lib/libmsvcrt.a(lib32_libmsvcrt_extra_a-_vscprintf.o): In function `_mingw_get_msvcrt_handle':
    /build/mingw-w64/mingw-w64-crt/build/../include/msvcrt.h:9: undefined reference to `_imp__GetModuleHandleW@4'
    collect2: error: ld returned 1 exit status
    configure:18427: $? = 1

commit be17eee393bdef371d7aa3965f971986dabdfebd
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Wed Jul 30 16:19:50 2025 +0700

    codec: cc: fix mask size for 708 captions
    
    refs #29219
    
    (cherry picked from commit 7c5cd6e7361fac223232b5d949c6cf27945c219e)
    Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>

commit d3872a83841dd3b452c03b03a151030a7816ddc5
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Dec 5 10:58:06 2025 +0100

    contrib: libarchive: fix build with recent gcc

commit 7dc62530b805c4104f38af1b8308b38f43a238f4
Author: Pratik Patel <pratikpatel8982@gmail.com>
Date:   Sat Nov 22 22:15:49 2025 +0530

    qt: adapt volume slider to dark palette

commit 7b5e4180bd1fd1143c8e57f4a06f50c5518156b0
Author: Pratik Patel <pratikpatel8982@gmail.com>
Date:   Tue Nov 18 14:29:08 2025 +0530

    qt: update seekstyle for dark palette and accent highlight

commit 72a5f4a08ed572b62d4e02819cae9a5cbc422187
Author: Pratik Patel <pratikpatel8982@gmail.com>
Date:   Tue Nov 18 14:25:13 2025 +0530

    qt: Use Windows accent color in dark palette

commit f88c0f283eb2855b2697de4a3cf5388e3e9ecf42
Author: Pratik Patel <pratikpatel8982@gmail.com>
Date:   Tue Nov 18 14:11:57 2025 +0530

    qt: Use QColor(r,g,b) instead of string in dark palette definition

commit 38d64f6cb714475f8277a24c9d8316b1c213cecb
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Dec 5 15:25:14 2025 +0100

    package/win32: ensure the NSIS folder we are going to use exists
    
    (cherry-picked from 67c201f09f4e6b741ba71c59431a2ca2592bb137)

commit 5b9bc28e4a00d441efaf65b8ed80f3b645010f73
Author: Marvin Scholz <epirat07@gmail.com>
Date:   Thu Dec 4 03:28:14 2025 +0100

    demux: image: fix JFIF detection
    
    A JFIF does not necessarily has an ICC Profile, and especially
    not usually directly following the SOI, as the spec requires SOI
    followed by the APP0 JFIF marker. So while this new detection logic
    fixes out-of-spec files that have a (small) ICC profile before the
    APP0 JFIF, it breaks most other properly structured ones.
    
    This makes the APP0 ICC profile optional and continues looking for the
    APP0 JFIF regardless.
    
    Regression from 5ffd36ffa26a83ae498373f7d0ace1d82ab952f4
    
    (cherry picked from commit 70eb2735e7b47eb082ceb3e299d94f42ac19331b)
    Signed-off-by: Marvin Scholz <epirat07@gmail.com>

commit 0dc35287ba72cdb16d4ee8dd744930c916406c4a
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Dec 5 15:56:23 2025 +0100

    CI: go back to gcc 6.4 Docker images for Windows builds
    
    Newer gcc has some issues with Thread Local Storage (TLS).
    
    The difference between the old GCC 6.4 images, that doesn't build VLC 3 anymore:
    
    * based on Debian bullseye (was Debian stretch)
    * openjdk goes from v8 to v11
    * python goes from 3.5 to 3.9
    * the old gcc mirror is not available anymore
    
    Fixes #29480

commit e09876cc3bf568fce0058a4ead46085415690191
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Dec 4 11:41:16 2025 +0100

    direct3d11: fix ID3D11Resource used by default for picture decoding
    
    Bogus copy paste from 833b02552a6d6055f1ed1d5f84827ac213db5774.
    
    Fixes #29479

commit 6d049d6702c6ffc3d0faa53bb169e223af55e4ba
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Wed Feb 1 16:07:48 2023 +0100

    es_out: bitrate info is valid for any ES
    
    cherry-picked from d568e3d8a4254f3b40ee7af02c1b655d77fe3d0d

commit f5527c0968ffea2f5ba0e02785efa987459d6a61
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Wed Feb 1 16:06:01 2023 +0100

    es_out: make use of initial es description
    
    cherry-picked from 977b8e38a1dc35ce84ce5f99a699b34cda0720aa

commit 557873e2683534f4671bb1c582ed250b6ad7a1bc
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Wed Feb 1 16:03:28 2023 +0100

    es_out: use EMPTY_STR macro
    
    cherry-picked from a13c388cc25e2ecc45792a0a68367fc90176bf40

commit aa2ec8f5f9b4c57c8e73c8cd360a4b3fa8b19780
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Mon Jan 27 15:15:39 2020 +0100

    input: es_out: differentiate decoded & source audio formats
    
    Because users can't get it. Too many invalid bugs.
    
    cherry-picked from 8009135e0dcf28f24c34ee5d8251fa2c10488722

commit 767e95da4018121c03666710076e6d349de6caae
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Mon Jan 27 15:14:55 2020 +0100

    input: es_out: refactor codec info
    
    cherry-picked from d89a93356dbf4617614898b5ce0cbfe17b48219f

commit 911d96778808be91bc76cd3590ae950906a78e5b
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Aug 5 10:03:50 2025 +0200

    codec: webvtt: fix line: 0% alignment
    
    A line: 0% positioning should set the box on top of the video viewport [^1]
    (when alignment is top-left which is the default).
    
    Fixes #29230
    
    [^1]: https://www.w3.org/TR/webvtt1/#webvtt-line-cue-setting
    
    (cherry picked from commit 0f215cb3cc6b3e4f94571c54a5e69c2d17dacb58)
    Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>

commit b0cbff20e64ca25095442b1ceaa0af5abfffc178
Author: Tristan Matthews <tmatth@videolan.org>
Date:   Tue Sep 16 11:57:08 2025 -0400

    demux: ogg: fix int overflow when parsing daala header
    
    (cherry picked from commit dda21a9cd95c78f40d8444543a934e945a0ce348)

commit 07fbef60f837fb36ed066206c3ac13a009e305be
Author: Tristan Matthews <tmatth@videolan.org>
Date:   Mon Sep 15 12:51:31 2025 -0400

    demux: ogg: fix undefined shift in theora parsing
    
    We can skip the loop since i_granule_shift will always equal the 5-bit value read
    from the header.
    
    Fixes #29304
    
    (cherry picked from commit aa26d90296d60833a281adbf31ae2d632e24311f)

commit 84125cb58eb716dd6c79cdb478051bde0cde6c46
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Oct 1 09:35:03 2025 +0200

    taglib: use non-deprecated File constructor
    
    The deprecated info was added in 1.5 [^1]. But the constructor was added in 2.0 [^2].
    The parameters are the same, in a different order and the factory is optional.
    
    Fixes #29391
    
    [^1]: https://github.com/taglib/taglib/commit/4879eb8e6e6bf46b89a4a67f62cada82478bade5
    [^2]: https://github.com/taglib/taglib/commit/56fa36934e5633122fcbf305d98f2111caeb5315
    
    (cherry picked from commit 98f4a840ec6a8be5d2db735598724652dcdecb6b)
    Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>

commit 18ab3e56f0d02564d0de6110c4f16395f7d7771f
Author: Khalid Masum <khalid.masum.92@gmail.com>
Date:   Wed Oct 8 07:21:19 2025 +0600

    libass: fix possible nullptr deref
    
    vlc_stream_MemoryNew may return NULL. Which could be dereferenced
    by vlc_stream_ReadLine calls in OldEngineClunkyRollInfoPatch.
    
    Fixes: #29363 (Coverity 1666281)
    (cherry picked from commit 0b7831694bbee4e001aede459f76d1d0da74f2e4)
    Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>

commit 64e7f15c694065d9b55f37b327464e609a959282
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Sep 26 12:59:23 2025 +0200

    packetizer: h264: skip all slice group ID's at once
    
    (cherry picked from commit 1327a621feed33b5156bcbea701c1023355d5931)
    Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>

commit 89c0c3efe8f72feda08e377bf951578c117e82e4
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Sep 26 13:47:11 2025 +0200

    packetizer: h264: simplify sliceGroupSize computation
    
    num_slice_groups_minus1 can only be in the [1,7] range when reaching this code.
    
    (cherry picked from commit 52e0d1a6ea51f194821d6b3ad9792f1b73c6a0b6)
    Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>

commit d4271389cc2d5c78d6ff7eaf1ea0786758c84291
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Sep 26 11:54:56 2025 +0200

    packetizer: h264: use num_slice_groups_minus1 as stored
    
    And also as the specs compare it. The loop for slice_group_map_type was bogus.
    
    (cherry picked from commit 486e2e67ff9ee3db3f11b4da427b946b20fc58fd)
    Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>

commit f9020c4df073c861a28f0cda5c6c5dccb58a49ef
Author: Jean-Baptiste Kempf <jb@videolan.org>
Date:   Mon Nov 24 16:23:58 2025 +0100

    Update NEWS for 3.0.22

commit 77471842b52e6b0ef3e60c30f0fbeb76393693a6
Author: Joe Breuer <git@jmbreuer.net>
Date:   Fri Nov 14 09:46:55 2025 +0100

    dbus: fix unpause from KDE MPRIS
    
    (cherry picked from commit c5513cf900aaf59b048c3404fd3662f9a301259f)
    Signed-off-by: Marvin Scholz <epirat07@gmail.com>

commit 911133a0440e18300fe9876dc93c04c8fcbc671f
Author: Johannes Kauffmann <johanneskauffmann@hotmail.com>
Date:   Sat Oct 4 21:42:56 2025 +0200

    canvas: fix fmt leak
    
    (cherry picked from commit cc140332997025b835172c14adb020b8b7e42bf1)
    edited:
    - the filter_chain_Reset() signature is different on 3.0.x and caused
      a conflict

commit 844fb8060ea968d078dc2b7c6fcafdc4e55da9af
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Oct 15 13:52:42 2025 +0200

    automake: use MKDIR_P instead of mkdir -p
    
    (cherry picked from commit c87cbb73d9f2833df214049c93f06e9ffafe06d9)
    Signed-off-by: Marvin Scholz <epirat07@gmail.com>

commit 3908fb9a60453e8a861a395f58de8af2c6441314
Author: Alexandre Janniaux <ajanni@videolabs.io>
Date:   Fri Sep 9 12:55:51 2022 +0200

    share: Makefile.am: use $(EGREP) instead of egrep
    
    Fix the following warning:
    
        egrep: warning: egrep is obsolescent; using grep -E
    
    (cherry picked from commit c6ed4170a5aa38be847b63bc86daad87358ffb54)
    Signed-off-by: Marvin Scholz <epirat07@gmail.com>

commit 761bbd3e0dcf0dcafbda2e3edd895e94b9690635
Author: Marvin Scholz <epirat07@gmail.com>
Date:   Sun Nov 16 15:02:24 2025 +0100

    macosx: PLItem: clamp pos when inserting
    
    Pos needs to be clamped to the amount of items in the array, else
    we might try to insert at an invalid position in the array.
    
    This can happen because the playlist can change till we process the
    insertion request, so an item that would have been inserted before at
    position 0 is dropped and then we try to insert the next item at
    position 1 which would lead to an exception as it is outside the array
    bounds.
    
    This is easy to reproduce when using the flattened playlist and dragging
    a folder with a few items and a subfolder onto the icon or playlist.
    
    Fix #28660

commit aa9ff8aca3a67e2e86aa39d4c158a94073ce9c08
Author: Pierre Lamot <pierre@videolabs.io>
Date:   Fri Nov 21 17:22:41 2025 +0100

    qt: consume THBN_CLICKED events
    
    otherwise events are evaluated twice

commit 02102a889082ffb3b5dff4710a7c3475923b79e1
Author: Tristan Matthews <tmatth@videolan.org>
Date:   Wed Nov 12 10:53:11 2025 -0500

    codec: vorbis: fix leak on xiph_AppendHeaders error
    
    (cherry picked from commit 1efee9cd4463bc62e359cd5f43e1a560d4f3c292)

commit 20f35cc4f2414ca790bad42946fc065d5e1757b1
Author: Tristan Matthews <tmatth@videolan.org>
Date:   Wed Nov 12 10:50:03 2025 -0500

    codec: theora: fix leak on xiph_AppendHeaders error
    
    (cherry picked from commit e18f719aca1e9aabb3f97457a3a0ca6e7f64b9c7)

commit 67358978f610feb4e8f0982653321364f2241cc6
Author: Tristan Matthews <tmatth@videolan.org>
Date:   Wed Nov 12 10:44:12 2025 -0500

    demux: ogg: fix leak on xiph_AppendHeaders error
    
    Fixes #29448
    Fixes https://issues.oss-fuzz.com/issues/456426262
    
    Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/vlc
    (cherry picked from commit c10dde079c65799a58307fb6f23ee18275f0363f)

commit a9d5a66e458565305d21831b5061baf19543170a
Author: Jean-Baptiste Kempf <jb@videolan.org>
Date:   Thu Nov 13 23:15:13 2025 +0100

    Update NEWS for 3.0.22-rc2

commit ca8dd2c982eb048aad45f0d2e0358e452a9ac281
Author: Khalid Masum <khalid.masum.92@gmail.com>
Date:   Mon Oct 6 23:52:02 2025 +0600

    text_renderer/svg: fix uaf at template load
    
    If token is not found in svg template, psz_template is
    freed. Yet it is used in svg_GetDocument as
    psz_file_template and incorectly being double freed in
    Destroy().
    
    Since the only use of psz_file_template is in svg_GetDocument
    and it is performed after a null-check, setting psz_template
    to null after freed should fix the issue.
    
    Fixes: #29370 (Coverity 1398436)
    (cherry picked from commit 03e511aea8214405b2a2bc44b4d9b9fc5a7ce56e) (rebased)
    
    rebased:
    - Replacement of tab with space

commit 5338b87fb1e24f848ce7fc80eea9b5ab70642700
Author: AsciiWolf <mail@asciiwolf.com>
Date:   Sat Nov 30 01:00:32 2024 +0100

    appdata: fix AppStream metadata file name, other small fixes
    
    The file name should match the app id
    
    Also add OARS metadata, fix default screenshot and fix component type
    
    (cherry picked from commit a66e01306dd5a072cf9e7e61763be967f8648110)
    Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
    
    Conflicts:
            configure.ac
            po/POTFILES.in
            share/.gitignore
            share/Makefile.am
            share/org.videolan.vlc.appdata.xml.in.in

commit f5dea94ed03557776223228f0199b4f96ea0ad90
Author: Rémi Denis-Courmont <remi@remlab.net>
Date:   Sat Dec 21 20:06:33 2019 +0200

    dmsmux: use symbolic constants and macros
    
    (cherry picked from commit 8233a6195eb7cc75dca3468a6bc2a45b08d02f2f)

commit 5525a1d6c60bb31f3768d63c18c0709b86906496
Author: Rémi Denis-Courmont <remi@remlab.net>
Date:   Sat Dec 21 18:19:58 2019 +0200

    dmsmux: revector
    
    (cherry picked from commit 35ee25e478aeec7974bd7de23ccd7a8b9651e24e)

commit 06f8bfd1620e0731d1d594ae54dcd6adebd06d95
Author: Rémi Denis-Courmont <remi@remlab.net>
Date:   Fri Dec 20 21:50:13 2019 +0200

    dmxmus: demuxer for MUS files from the DMX audio library
    
    (cherry picked from commit 08eef6a645e128ca34c881d6dc4ac782d6b4d97b)

commit 3beff849612c11218b4e63b1d13cde88aed5e5d0
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Nov 12 16:02:30 2025 +0100

    spudec: fix crash when no region was found for the SPU
    
    Fixes #29445

commit 84e055cf36aed1abf4513b01d849037d9726eb98
Author: Khalid Masum <khalid.masum.92@gmail.com>
Date:   Sat Oct 11 05:54:00 2025 +0600

    demux: ts: fix possible divide by 0 at j2k parse
    
    i_num, which comes from an untrusted source is used as a divisor in
    vlc_tick_from_samples.
    
    Fixes: #29369 (Coverity: 1666134)
    (cherry picked from commit 5ca90ea1) (rebased)
    rebased:
    - vlc_tick_from_samples doesn't exist in VLC 3

commit f7745d071ba5b7164bb06c22322dcfd278e384da
Author: Stanislav Fort <stanislav.fort@aisle.com>
Date:   Tue Oct 28 16:46:49 2025 +0100

    oggspots: fix OOB read (unchecked image offset)
    
    Fixes #29319

commit 153a13b9be4447222e893e7cc29b0421ae4fd057
Author: Stanislav Fort <stanislav.fort@aisle.com>
Date:   Mon Oct 27 14:25:53 2025 +0100

    cea708: fix CEA708_Window_Truncate()
    
    Make truncation actually drop one column in LTR/RTL (adjust
    lastcol/firstcol; delete rows only when they become empty).
    
    Fixes #29328

commit e5d01c1ae85b6db59ed7c508c88477cbdc3baf50
Author: Stanislav Fort <stanislav.fort@aisle.com>
Date:   Mon Oct 27 14:03:46 2025 +0100

    cea708: fix Window_MinCol()/Window_MaxCol() indexes
    
    Refs #29328

commit 6e585a4d3cef23c05bd3322b1c8eb372b41d37b0
Author: Stanislav Fort <stanislav.fort@aisle.com>
Date:   Mon Oct 27 13:49:30 2025 +0100

    cea708: fix OOB write in CEA-708 LTR window scroll
    
    Due to wrong bound check
    
    Fixes #29375

commit 7cda527f1b3c07ce4281534982173532d4b920fd
Author: Stanislav Fort <stanislav.fort@aisle.com>
Date:   Mon Oct 27 13:47:17 2025 +0100

    cea708: use 4-byte stride for 4-byte character cells
    
    Fixes corruption/OOB.
    Fixes #29326

commit 96f32bb67d9930128a6360d96f69b594269245be
Author: Stanislav Fort <stanislav.fort@aisle.com>
Date:   Mon Oct 27 11:51:40 2025 +0100

    cea708: fix OOB write in CEA-708 RTL window scroll
    
    Fixes #29323

commit fa562df84c8aee880f36f23109028975bac71a5b
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Sep 24 12:06:31 2025 +0200

    demux: ty: don't look for ES header past the input buffer boundaries

commit ee89f0f7f8060892e4d20076607dbdd958d147e8
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Sep 24 11:57:53 2025 +0200

    demux: ty: don't check for S1/S2 if the offsets are too large

commit b728f20701d4ff111a6bacd21d352518887f11ac
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Sep 24 11:55:22 2025 +0200

    demux: ty: stop read chunk if offset is past the data
    
    Fixes https://code.videolan.org/videolan/vlc/-/issues/29316

commit 82c10bb0eb32a3051f613fa3a0f38c9748044f03
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Sep 24 10:59:31 2025 +0200

    cvdbsub: don't use metadata offset if bigger than whole SPU
    
    ParseMetaInfo() will not parse anything in that case as p == p_end.
    The image will use the whole of the SPU buffer, potentially containing
    metadata at the end. But the reading in RenderImage() is constrained by the width/height
    so it won't use these data.
    
    Fixes https://code.videolan.org/videolan/vlc/-/issues/29325

commit b3a03a21961166c04fb09476a5ca45bba70648f2
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Sep 17 11:25:19 2025 +0200

    demux: ogg: keep the map sizes when they are set
    
    The p_old_map/p_new_map sizes should match their buffer size.
    
    By default the channel counts are zero which considers the old/new maps match.
    The channel count read may be updated but not the channel mapping.
    We need to check the channel count match and the mapping matches.
    
    Fixes https://code.videolan.org/videolan/vlc/-/issues/29314

commit d0adf4fbb02555447fa6880a53c4f29a1629d7d5
Author: Jean-Baptiste Kempf <jb@videolan.org>
Date:   Thu Nov 13 15:32:26 2025 +0100

    Update to RC2

commit 86a14a729f7b10c75e592a159bf267dab219bd14
Author: Rémi Denis-Courmont <remi@remlab.net>
Date:   Sun Sep 28 13:53:19 2025 +0300

    po: remove country from Assamese localisation
    
    We have no other variants of this locale. Adding a country code only
    makes the locale more difficult for people to select.
    
    Refs #29383. Manual backport to 3.0.x

commit f5142d2806e1023c778a74727755e7adf14d1485
Author: VideoLAN <videolan@videolan.org>
Date:   Mon Nov 10 20:04:22 2025 +0100

    po: pull updated translations from transifex
    
    Signed-off-by: Felix Paul Kühne <felix@feepk.net>

commit 104bc8729e86030eaa5b3b0969b3ea588fe31655
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Wed Oct 29 14:14:19 2025 +0100

    codec: webvtt: replace recursive css cleanup
    
    refs #29392
    
    (cherry picked from commit 5902316a43d47cda218330f94756286659756d55)

commit b125e361b21db3099eac2ffcb99e995643cf36ef
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Wed Oct 29 14:09:31 2025 +0100

    codec: webvtt: fix recursive cleanup
    
    no siblings were reclaimed on cleanup
    
    regression by 150a7f5648970abfe9adfa84586d951ec4951645
    
    (cherry picked from commit 73861536c3943774823bc65cbde4469d6bbc7335)

commit 83feb4a3c31c9c0860530bf53426bdf0994c6513
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Oct 15 10:40:30 2025 +0200

    contrib: x264: pass EXTRA_CFLAGS to the CC assembler
    
    Otherwise we end up with warnings like this:
    
    > ld: warning: object file (/Volumes/APFS/Programs/Videolabs/vlc/build/contrib/aarch64-apple-darwin15/lib/libx264.a[63](bitstream-a-8.o)) was built for newer 'macOS' version (15.0) than being linked (11.0)
    
    (cherry picked from commit 47ecb166f300e0b8b4b6d96838a7abeb112ba7d0)

commit 2a06a37806e64f4296d099e748f0e4299f107702
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Oct 15 09:57:19 2025 +0200

    configure: pass the macOS toolchain flags to CCAS
    
    Otherwise we end up with warnings like this:
    
    > ld: warning: object file (vlc/build/modules/isa/aarch64/simd/.libs/merge.o) was built for newer 'macOS' version (15.0) than being linked (11.0)
    
    (cherry picked from commit 1e7dc2770d5b234973605dd2aa507bf95e8fe0fb)

commit 0ab9522e5f2241e95b71ccffffb54229bd6b4e82
Author: Rémi Denis-Courmont <remi@remlab.net>
Date:   Sun Oct 12 15:58:15 2025 +0300

    contrib: gmp: detect with pkg-config
    
    It doesn't even compile on Debian unstable at the moment, not even
    natively if taken from contribs. Not that there would be any reasons
    not to use the build from the distro.
    
    (cherry picked from commit 525ebe9fc34cc92060adb5fba79ea263f4709e22) (rebased)
    rebased:
    - the code around is slightly different

commit 6ca6e8aac1bd4d5e01ad1b64efa7798f04db1ef4
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Oct 14 15:36:21 2025 +0200

    contrib: don't show unzip'ed files in non verbose mode
    
    This avoids being bombarded with logs when building.
    
    Similar to 0a555fa1ac6db47923c9db03faa8d49393f571ec for unzip.
    
    (cherry picked from commit d11f22f763a3601c018eb096556db13712b5641b)

commit 963407c92e251a37d4bb825847bc232abe0d93e6
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Oct 9 09:59:14 2025 +0200

    contrib: allow verbose compilation with V=1 in meson
    
    As supported by make and CMake targets.
    
    (cherry picked from commit dd6be4fa388238e1b98eadf792c576e56ad98ea7) (rebased)
    rebased:
    - the code around is slightly different

commit 7bec9f68922e5ba1c31c00ff32be3e4645807f7d
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Oct 21 07:45:15 2025 +0200

    package/macos: build extras/tools with multiple threads
    
    (cherry picked from commit 1deac746dcac43f53f52bbefe0b689ad89599291)

commit ada86d530a235a62b052d68f4cf7c096dd35f3ee
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Oct 14 10:49:36 2025 +0200

    package/macosx: use the same minimum version as the other scripts
    
    The value is grabbed when calling env.build.sh.
    
    (cherry picked from commit d6a636de2098f1f713da95b2a68de5da631eefad) (edited)
    - 3.0 had the minimum to 10.7
    - 4.0 also disabled x

commit ed1baf0bab22a9370fb8ed956cf3c80683a670d4
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Oct 13 13:55:19 2025 +0200

    package/macosx: show the SDK version used to build
    
    (cherry picked from commit cb6ba2c39c485fcd46f6442b3bcccb9eff292de6)

commit 225996d202fbdfff3238a8b7cf94f982f3b56e7d
Author: Romain Vimont <rom@rom1v.com>
Date:   Tue Jul 11 11:31:08 2023 +0200

    Fix extra tool error message
    
    The error message is printed (among others) when the major versions
    differ, not only when the current version is older than the expected
    one, so "too old" may be incorrect.
    
    Before:
    
    > meson too old
    
    After:
    
    > meson incompatible version (expected 0.51.1, got 1.1.1)
    
    (cherry picked from commit 8449690b0dbad24aff2f83b0213de810332e3883)

commit 8da71b5a45b8064a96bb576be86f03b8e17753b0
Author: Pierre Lamot <pierre@videolabs.io>
Date:   Wed Nov 5 14:52:15 2025 +0100

    qt: fix wheel event on volume slider being interpreted multiple times
    
    If the event isn't accepted it is forwarded to the parent widget which also
    handles the wheel event. As a result, the if the vout as vertical scrolling used
    for seeking, and we scroll vertically on the sound slider, both events would
    occur when scrolling on the widget.

commit 1d52533d7bfdb157455be31b57b692618e13afa0
Author: Pierre Lamot <pierre@videolabs.io>
Date:   Wed Nov 5 11:39:04 2025 +0100

    qt: fix scrolling horizontally on the volumne slider has no effect
    
    We now use wheel converter as it provides better handling of touch pads

commit b28eb7a58c97f72eb2403d6d2318a6a6c94c1d31
Author: Pierre Lamot <pierre@videolabs.io>
Date:   Wed Nov 5 11:39:04 2025 +0100

    qt: fix scrolling vertically on input slider always scrolls forward
    
    When scrolling vertically, angleDelta.x() is 0, so the backward direction was
    never accounted for.
    
    We now use wheel converter as it provides better handling of touch pads

commit 49e97a2a04d6eaa322ef37f791f037887f353712
Author: Pierre Lamot <pierre@videolabs.io>
Date:   Wed Nov 5 14:34:44 2025 +0100

    qt: introduce WheelToVLCConverter to aggregate wheel events as VLC keys
    
    this class aggregates wheel events until a full step (120 angle units) is
    reached in a direction and emits a synthesized event usable by VLC hotkeys
    
    (cherry picked from commit 7498ac55db73dec778d97de88a758707964ebdc7 without the
    QML related methods)

commit 5d1b310ca0ae75f02307611a77f90aa2ec7d2250
Author: Pierre Lamot <pierre@videolabs.io>
Date:   Wed Nov 5 14:31:44 2025 +0100

    qt: make Qt Mouse/Input/KeyEvent to VLC converter functions const

commit fe60420c4060e22c1660668f124b14da875f36be
Author: Alexandre Janniaux <ajanni@videolabs.io>
Date:   Fri Feb 19 23:20:00 2021 +0100

    gitignore: unblacklist build.sh script
    
    (cherry picked from commit 1cff424af81f9ce1fdfb2a12a89c2383dffe4a31)

commit 318bfabe45d47bbb7d25b2eddc1fb7cb37e4eb40
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Oct 14 10:41:51 2025 +0200

    contrib: allow building xcodebuild targets with newer SDKs if targeting OS 10.11+

commit d29ea814ded0274e7065116d7ab010a13b8bfe28
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Oct 13 13:11:23 2025 +0200

    contrib: disable targets if they can't be built with xcodebuild
    
    Here is a failure log:
    > clang++: error: SDK does not contain 'libarclite' at the path '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_macosx.a'; try increasing the minimum deployment target
    >
    > contrib-x86_64-apple-darwin18/sparkle/Sparkle.xcodeproj: warning: The macOS deployment target 'MACOSX_DEPLOYMENT_TARGET' is set to 10.7, but the range of supported deployment target versions is 10.13 to 26.0.99.
    
    xcodebuild seems to only be able to support a certain range of
    macOS version.
    
    In XCode 26 the minimum supported version seems
    to be 10.13 but we need 10.7. However the sparkle/breakpad
    builds work when targeting 10.11. growl doesn't build anyway.
    
    The number 26 may differ if an older version is used because iOS, tvOS, etc
    had different values than the OSX version before that.
    
    Older XCode versions may have different issues.
    
    Ref. #29414
    
    clang: error: SDK does not contain 'libarclite' at the path '/Volumes/APFS/opt/Xcode15.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_macosx.a'; try increasing the minimum deployment target
    
    clang: error: SDK does not contain 'libarclite' at the path '/Volumes/APFS/opt/Xcode15.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_macosx.a'; try increasing the minimum deployment target
    ld: file not found: /Volumes/APFS/opt/Xcode14.3.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_macosx.a

commit bc31b4d18604f3583f3f7afb111f5b0178d6af7b
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Oct 14 11:07:51 2025 +0200

    contrib: add a way to check the Apple Target OS version

commit 01d5ad915c6da0a6f60b02ed37fbd1442a84f838
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Oct 13 12:58:32 2025 +0200

    contrib: add a way to check the Apple SDK version

commit edc7a1b110180cd3d528f4917abbac3e107317af
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Oct 14 11:50:06 2025 +0200

    package/macosx: ensure the nightly builds have growl

commit 4cc9b413d3bb71ebe700d0406c25a6396a539b7b
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Oct 14 11:49:11 2025 +0200

    package/macosx: ensure the release build has all the contribs we want

commit f7a7cab664af20d2dfdd67a5d20d5819b91ed8f0
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Oct 14 14:04:38 2025 +0200

    CI: really generate tarball packages
    
    The CI_DEFAULT_BRANCH is "master" but we should
    generate the tarballs when the "3.0.x" branch has been merged.

commit d249316478bdf90b66599372dbfdecd30b88be11
Author: Johannes Kauffmann <johanneskauffmann@hotmail.com>
Date:   Fri Oct 3 22:20:41 2025 +0200

    canvas: fix p_chain leak
    
    (cherry picked from commit 4787f40122d16cc9385781903aee55deb525f6d7)

commit 251374ca474443c83c800ceaf07a702b76b02f42
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Sep 5 07:16:51 2025 +0200

    tools: build less things in gettext tools
    
    Borrowed from 8f2fd35daf5dbc864208e5c32cb3dc2a724aac3b without updating gettext.

commit 922f6d11598b6bbfc6d8c71cb844801e1644b781
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Oct 10 10:05:43 2025 +0200

    contrib: gettext: only explicitly disable faccessat usage
    
    The other calls were used for native tools that we don't build.

commit 53cb37ccacd5976c9a1c65a9337301855dace3c7
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Sep 17 09:52:56 2025 +0200

    contrib: gettext: do not build any binary tools
    
    We don't use cross-compiled binaries. The binaries should come from extras/tools.
    
    (cherry picked from commit 381cc2fe7777460d896c60580fc1dc111600c7ff)

commit 29f765a59f30fa9018b0d09dedf976e4005e146a
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Oct 10 10:03:12 2025 +0200

    contrib: gettext: use MAKEBUILD macros

commit ce362903621efe709eceacc8b2e11a0b44b11c3a
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Oct 10 10:01:17 2025 +0200

    contrib: gettext: disable building native tools
    
    We only need the runtime part to compile/link with.
    The native tools are in the system or in extras/tools.
    
    Similar to 031aff1c30a635c83578b30a90e52e37aa9f5c8a

commit ee9412bc0feaa5351736830ef7683a6ac8512d41
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Aug 1 14:50:27 2024 +0200

    CI: only generate the contrib tarball on master after the merge
    
    The rebased branch before merging has a different CI_PROJECT_PATH.
    The tarball will not be used, so no need to create it.
    It will be created and used in the build on the videolan/vlc account.
    
    (cherry picked from commit d0f931107bcc0fcc54e6e01de9588576fa81b73b) (edited)
    edited:
    - 3.0 doesn't have debian-contrib, raspbian-arm, wasm32

commit 56096270e64d326553aebec47ccaf236a77e2448
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Oct 17 16:28:00 2022 +0200

    CI: only generate a contrib tarball if we're on the main branch
    
    There's no need to generate the tarball since it's not going to be used by
    anyone else. It's only used on master after a merge or in nightly builds.
    
    This should save a few minutes during each contrib MR builds.
    
    (cherry picked from commit b4d374071298e944d31ddaba51d317c72b006204)

commit 677a5b5d8990df7465be8df5ebc5c15a49fb2936
Author: Marvin Scholz <epirat07@gmail.com>
Date:   Sat Mar 12 03:49:24 2022 +0100

    CI: macosx: package zip instead of dmg
    
    (only for non-nightly, nightlies still package a dmg as before)
    
    (cherry picked from commit 155036d4a4a071ac21812f0d6723e5c531ed4a08)

commit 79023faacbdf5571fdbc569b94f8053b8df85907
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Sep 27 11:46:31 2022 +0200

    ci: generate a contrib package if Windows prebuilt were used but failed
    
    If the previous prebuilt was broken we have a fresh one to use.
    
    (cherry picked from commit ee926f4251d123fa68a4f814d5ec2e1e1cc45388)

commit 731469b0a4ab5fdf75013b9cab88d74e690ca27c
Author: Felix Paul Kühne <fkuehne@videolan.org>
Date:   Fri Apr 8 23:57:21 2022 +0200

    CI/appleOS: use tools available on the runner
    
    (cherry picked from commit 27948cbf566a6f06f92b9ac354c69fb80fe0e019) (edited)
    edited:
    - there is no apple-os-common on 3.0

commit 75c51d778a5b492fb775cb605658ef3fe811e1a4
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Sat Sep 20 09:40:39 2025 +0200

    contrib: harfbuzz: update to 11.5.0
    
    Support Unicode 17
    
    (cherry picked from commit 5e2aa683cd50f5122bbf5761e79d02c5843c499f)
    Signed-off-by: Felix Paul Kühne <felix@feepk.net>

commit 7fb5da0b9e69220975cc04062667635dab91d92f
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Sep 23 13:16:10 2022 +0200

    contrib: macos: always shows the list of know contribs before building
    
    We also want to know about native tools that may or may not be there.
    
    (cherry picked from commit cf349b29f55f67e9642a0634c31cc349b91f63fd)

commit 7c5843a7ea3e945e7c7641788046523736969c2c
Author: David Fuhrmann <dfuhrmann@videolan.org>
Date:   Sat Jul 13 21:48:05 2019 +0200

    macOS build.sh: Explicitly list all packages for contribs source build
    
    (cherry picked from commit 8d4373ff50918b65c4c06c5bd65b7feac072ef75)

commit b3c1b62320a65eba8071fc8b923486d2b363cf68
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Jul 7 10:32:01 2025 +0200

    package/macos: build gettext via dependencies
    
    It's already working for other targets. If a dependency is not properly defined
    it needs to be fixed.
    
    (cherry picked from commit 7a58c476ffeeb5e00c260b74be2ac9a6631ddacd)

commit 2cb79f83df4c819ef1f5cd0f5d163870b62766d0
Author: Johannes Kauffmann <johanneskauffmann@hotmail.com>
Date:   Sun Sep 28 13:05:33 2025 +0200

    livehttp: fix psz_keyfile and key_uri leak
    
    (cherry picked from commit dc90c38045f43d8a6ab0dc5de06112736013bf58)

commit 52b1b3df595df6318289a34f820edb2509b304d8
Author: Johannes Kauffmann <johanneskauffmann@hotmail.com>
Date:   Sun Sep 28 12:59:53 2025 +0200

    access: decklink: fix opt leak
    
    (cherry picked from commit 9f54ff720b6a67b0b63020e39a5527dc5841e38f)

commit b69ca0fa1a5ec0703f8a8514a471d71ed5aca058
Author: Johannes Kauffmann <johanneskauffmann@hotmail.com>
Date:   Sun Sep 28 13:18:04 2025 +0200

    direct3d9: fix filepath leak
    
    In case the string is non-NULL but empty, var_InheritString returns NULL
    so we can treat that case the same.
    
    (cherry picked from commit 9d2d8f0136730fb81d1de130680796f6f512aad3)
    edited:
    - the direct3d9 code is reordered on master

commit c9dde25a62c4612d71250c4eb845154e0ea9e13e
Author: Gabriel Lafond-Thenaille <gabriel@videolabs.io>
Date:   Tue May 13 15:16:02 2025 +0200

    vlc_common: don't redefine `unreachable` when using C23
    
    Fixes #29390
    
    (cherry picked from commit d56f1e196b570a2e2893c31a0d593bab2b31b349)
    Signed-off-by: Thomas Guillem <thomas@gllm.fr>

commit d3d4aea356246ea36b0068e8d6b8ae2118f10149
Author: Andreas Sturmlechner <asturm@gentoo.org>
Date:   Sat Sep 20 22:22:54 2025 +0200

    Drop Qt6 mention from NEWS
    
    It is in fact not possible to build with Qt6 at least as long as
    https://code.videolan.org/videolan/vlc/-/merge_requests/6812 is not
    done. "News" sites are already picking this up though for the fact
    that 3.0.22-rc1 was tagged.
    
    Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>

commit 9f42f96623ed845640fa3a8e587e0e5df15d03d2
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Sep 25 09:25:30 2025 +0000

    libvlc: fix vout table leak in set_value()
    
    
    (cherry picked from commit 916b3aa23e265fa3bf87fed83c015ffce3e3d4c2)
    
    Co-authored-by: Steve Lhomme <robux4@ycbcr.xyz>

commit 8052b3a827571387dae28667c4916aefc76309a0
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Sep 23 09:47:56 2025 +0200

    contrib: lua: fix CVE-2014-5461
    
    Using debian's patch [^1].
    
    Co-authored-by: Thomas Guillem <thomas@gllm.fr>
    
    [^1]: https://sources.debian.org/data/main/l/lua5.1/5.1.5-11/debian/patches/0004-Fix-stack-overflow-in-vararg-functions.patch

commit 4cbcfa740fd7b2176024d654c4ddc1561f899d00
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Sep 23 09:44:07 2025 +0200

    contrib: update Lua to 5.1.5
    
    This is the latest (and last) version of 5.1.

commit 4a645203d3b88f56e5d83925650373a1e450182a
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Sep 5 07:16:27 2025 +0200

    tools: use ftpmirror for GNU packages
    
    It's less overloaded and the recommended URL [^1].
    
    Similar to 03d3b0a941b1bce0715af0dda612fa080a975d1c for tools.
    
    [^1]: https://www.gnu.org/prep/ftp.en.html
    
    (cherry picked from commit 36356178a0461bd6b65a2d36946a9c7ede82e23f)

commit a22bdad4adeb764f43f08e7bb4ddd81409d6eead
Author: William Woodruff <william@trailofbits.com>
Date:   Thu Apr 3 19:41:31 2025 -0400

    extras/tools: use HTTPS for all tool bootstrapping
    
    This patch updates all of the URL prefixes and
    templates in packages.mak to use HTTPS instead of
    HTTP.
    
    Each of the domains was tested to ensure that
    HTTPS was available. One domain, used for
    Apache, was updated from an OVH mirror
    to the official Apache downloads site, as the
    OVH mirror did not support HTTPS.
    
    Signed-off-by: William Woodruff <william@trailofbits.com>
    (cherry picked from commit e02872fb5cd25eff369cae445f7bf58529dd2f19) (edited)
    edited:
    - 3.0 has less tools

commit 8c7274c258d60f91ffb674be7a365456f20908eb
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Sep 19 08:13:24 2025 +0200

    tools: use curl --retry to download tarballs
    
    If some URLs are flaky we have a better chance of not failing a build.
    (like GNU mirrors and git)
    
    We don't need a temporary file, we let curl manage the output file and
    overwrite it when necessary. If anything the hash will not match.
    
    (cherry picked from commit ded9e6c5d9162dfb0bbac50740e0c13b24f67e2e)

commit 81771e1cba5d44a4913605edd00d66d5b3efb03c
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Sep 19 08:13:37 2025 +0200

    contrib: use curl --retry to download tarballs
    
    If some URLs are flaky we have a better chance of not failing a build.
    (like GNU mirrors and git)
    
    We don't need a temporary file, we let curl manage the output file and
    overwrite it when necessary. If anything the hash will not match.
    
    (cherry picked from commit b57f13f97e0c395791aeff997a85380e4769d0df)

commit 553e1def6a7d8371292208279c1c695206696b00
Author: Pierre Lamot <pierre@videolabs.io>
Date:   Mon Sep 22 09:30:41 2025 +0200

    qt: set foreground color when setting background color in stylesheet
    
    otherwise we may end up with not enough contrast between the foreground and the
    backgroud color

commit 6da8ba684714ee535dc9ae2c67ca3f9d57eadb90
Author: Pierre Lamot <pierre@videolabs.io>
Date:   Mon Sep 22 09:21:42 2025 +0200

    qt: force stylesheet to be re-evaluated when palette changes
    
    As far as I understand, the colors used by the widgets are evaluated when we
    set a stylesheet on an item (even if the style sheet doesn't specify any
    colors), if the applicationpalette changes afterward, the colors of a widget
    with a custom style is not updated properly. Forcing the stylesheet to be
    re-evaluated when the palette changes, forces the colors to be updated.
    
    since Qt 5.7, we can use Qt::AA_UseStyleSheetPropagationInWidgetStyles which
    propagates the palette automatically
    
    fix: #29315

commit de6771a51b7f5fc67659a2a9fc563c8c62ac59aa
Author: David Fuhrmann <dfuhrmann@videolan.org>
Date:   Sat Sep 20 10:48:29 2025 +0200

    Revert "macOS: Explicitly set the App icon"
    
    macOS Tahoe adapts application icons by itself depending on user
    style. If we overwrite the icon again, it is replaced with the
    default icon, resulting in visual glitch in the whole dock.
    
    This reverts commit 92e03acf1602e2df355a4bb85a9e636b60d59a9c.

commit 73dd10dab846e962ce024f4ba85696c6ae720840
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Sat Sep 20 08:59:55 2025 +0200

    CI: keep tools tarballs as release artifacts for Windows builds

commit fceab7f2812f93c4c8e2152d096e24a55ba55218
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Sep 19 12:20:37 2025 +0200

    CI: keep contrib tarballs as release artifacts for Windows builds

commit 40e98d8fa19ea0f440bc03a33801f4fd1d41beca
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Sep 19 12:19:58 2025 +0200

    CI: keep the Windows symbols artifacts as a tar.xz

commit a711e972451a4f66a6ebc66c1473eace9525e023
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Sep 19 09:39:08 2025 +0200

    CI: keep the Windows symbols folder in release artifacts
    
    In case it's not uploaded properly.

commit 09e3851e95a08a14692aca122a3f80dafda5786e
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Sep 17 13:43:25 2025 +0200

    Update PO files for pending 3.0.22-rc1

commit 9e23cc7e00954f91607471fd0f1c109a715650b7
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Tue Jan 17 17:02:21 2023 +0100

    contribs: xiph has moved to mirror
    
    (cherry picked from commit e37bc901e9286df5480b4cbe27e55f70792f38cd) (rebased)
    rebased:
    - there are more defined sources in 4.0

commit 7c316a1a2daf3cffe11680e4400f60c024380afd
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Oct 31 14:35:32 2022 +0100

    contrib: use a define for XIPH URL downloads
    
    (cherry picked from commit e21277451f93ea514cf73ec493741dc5ecea8bdd) (edited)
    edited:
    - 3.0 used downloads.us.xiph.org in some places

commit 00718ec15105a033a987c800fc59dc7cf5d1cc9e
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Sep 19 13:52:18 2022 +0200

    contrib: soxr: use the GitHub tarball
    
    It has the same hash.
    
    (cherry picked from commit 48a05f9ac07050368ce8080dab6cadb5a7504feb) (edited)
    edited:
    - 4.0 had more changes before reaching that URL

commit d7bfea6d8bbeaef3b4f869ba52d104c30384234f
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Sep 17 07:47:30 2025 +0200

    contrib: libmpeg2: only use the VLC URL
    
    It's not available on Sourceforge anymore.

commit c9674864c1ddb0c1021d6a3998e61d2d1fc57f6b
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Jun 2 13:47:37 2023 +0200

    contrib: use SF for all sourceforge contribs
    
    (cherry picked from commit 36b1865d9588c47fb2b136f367d5fb6455dd0fd0) (edited)
    edited:
    - 3.0 still uses pthread for the mingw contrib

commit e55793ca30a3b2f6990c339734900d882044db8f
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Sep 18 08:15:36 2025 +0200

    CI: call symbol upload in a Python venv
    
    So we have the most recent versions of the packages and don't require
    more python packages from the Docker images.

commit bf5c339cad70c50797e319b1575bc43bc0a0e2b5
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Sep 18 13:02:39 2025 +0200

    CI: show the release tag used
    
    This can be usefule for debugging.

commit bf2a986c4162f7752096f75f4e31f6bcab06f89a
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Sep 18 11:27:10 2025 +0200

    CI: update mingw64 gcc images
    
    Add a version with python-venv.
    
    It has
    - a newer protoc (3.4.1) but already build it anyway.
    - gcc 11.3.0
    - mingw-w64 v10
    - newer winetricks
    - breakpad built from a tarball (https://download.videolan.org/pub/contrib/breakpad/breakpad-0.1.4.tar.gz)

commit e0f77e237d6269537d237d4e99c1a7d6cdf4416e
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Sep 18 08:13:09 2025 +0200

    extras: breakpad: add requirements.txt file describing needed Python modules

commit 6f21c4d5adb8f6f20254f5942e62a03b8fc4b66f
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Sep 18 10:58:41 2025 +0200

    extras: breakpad: use io types for IO classes
    
    typing.io doesn't seem to exist anymore.
    
    typing.io was in Python 3.5 [^1] but not in 3.6 [^2].
    
    ```
    Traceback (most recent call last):
      File "/builds/robUx4/vlc/./extras/breakpad/symb_upload.py", line 146, in <module>
        class OutputStore:
            def store(self, dump: typing.io.TextIO, meta):
                assert(False)
      File "/builds/robUx4/vlc/./extras/breakpad/symb_upload.py", line 147, in OutputStore
        def store(self, dump: typing.io.TextIO, meta):
                              ^^^^^^^^^
      File "/usr/lib/python3.13/typing.py", line 3817, in __getattr__
        raise AttributeError(f"module {__name__!r} has no attribute {attr!r}")
    AttributeError: module 'typing' has no attribute 'io'. Did you mean: 'IO'?
    ```
    
    [^1]: https://docs.python.org/3.5/library/typing.html#typing.io
    [^2]: https://docs.python.org/3.6/library/typing.html

commit 5bd37679406d364c39c3385867794cce814aa664
Author: Martin Storsjö <martin@martin.st>
Date:   Tue Sep 16 13:26:01 2025 +0300

    contrib: gettext: Apply a patch to fix building with latest Clang
    
    The latest nightly Clang made -Wincompatible-pointer-types an
    error by default, which GCC 14 also already did.
    
    Backport a patch from newer gnulib [1], which fixes a bug in
    parsing environment strings; this bug was pointed out by the
    warning that now was upgraded to an error.
    
    Newer versions of gettext have new enough gnulib bundled out
    of the box.
    
    [1] https://cgit.git.savannah.gnu.org/cgit/gnulib.git/commit/?id=92cdf62b56462b914193c7770440e505a37c2526

commit f63d56faddf912b822856b30ba8b76d42567c48e
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Sep 12 14:59:20 2025 +0200

    qt: rename dark option to Enable Dark Mode
    
    This should be easier to understand (and translate) for most people.

commit c2434df31e41e8b752c7598a4e756e2ae5f5dc46
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Sep 16 13:30:19 2025 +0200

    demux: ty: reset the number of records on error
    
    So it matches the data in p_sys->rec_hdrs.
    
    Fixes #29294
    
    (cherry picked from commit 6b6a44e75c52c55167c1ae6921d8b1fc01cc1b61)

commit 5f8320a612b206f707bc88d3f40d99d8b4139a0d
Author: Florian Albrechtskirchinger <falbrechtskirchinger@gmail.com>
Date:   Sun Mar 2 08:30:43 2025 +0100

    live555: fix build with versions >= 2024.11.28
    
    In the 2024.11.28 release (version 1732752000), live555 introduced
    `EventLoopWatchVariable` as a typedef for `std::atomic<char>`, replacing
    direct use of `char` in earlier versions. Add a conditional typedef to
    define it as `char` for older versions, and update `event_rtsp` and
    `event_data` to use `EventLoopWatchVariable`.
    
    (cherry picked from commit 8befcbfa834b809602db24c9ba7456d8cfc25cdb)

commit 3d6a85245bf4db9ca32b138936311fd7613342df
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Sep 12 14:03:16 2025 +0200

    demux: mkv: fix uncaught throw when reading Block data

commit e8e7274a82d6acec5a37df62d4e30e1ed607e567
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Sep 12 14:02:47 2025 +0200

    demux: mkv: fix uncaught throw when reading Cluster first elements
    
    Fixes https://code.videolan.org/videolan/vlc/-/issues/29288

commit 1e42a94883e4df237fa737573111f35e0c3f4c68
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Sep 15 13:40:11 2025 +0200

    contrib: vpx: disable neon_dotprod with Apple Clang 12
    
    It fails to compile with the provided intrinsics although the code is correct.
    
    ```
    ../vpx_dsp/arm/vpx_convolve8_neon_dotprod.c:55:19: error: initializing 'int32x4_t' (vector of 4 'int32_t' values) with an expression of incompatible type '__attribute__((__vector_size__(4 * sizeof(uint32_t)))) uint32_t' (vector of 4 'uint32_t' values)
      int32x4_t sum = vdotq_lane_s32(acc, perm_samples, filters, 0);
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include/arm_neon.h:37021:11: note: expanded from macro 'vdotq_lane_s32'
    int32x4_t __reint1 = __builtin_shufflevector(*(uint32x2_t *) &__reint, *(uint32x2_t *) &__reint, __p3, __p3, __p3, __p3); \
              ^          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ```
    
    Fixes #29292

commit 71b5a8e016c154adb6a68ff7317f22e5032713fd
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Sep 15 13:11:22 2025 +0200

    contrib: add a macro to check the minimum clang version

commit cd71ad62d9564205ce5deeeb4b5b214ab4895234
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Apr 18 07:22:35 2024 +0200

    Revert "contrib: harfbuff: build internal ragel if not found"
    
    ragel is used internally to generate some files when they are changed.
    But we don't modify any source, we can just build harfbuzz without ragel.
    The option is even off by default.
    
    When it's not enabled there is this warning:
    > You have to install ragel if you are going to develop HarfBuzz itself
    
    But that's not our case.
    
    This reverts commit 071a7581ff4e7366972218e340abfe6e6c2c1686.

commit 760e42f07aeff281e2652f15191fb8efd2997409
Author: Rémi Denis-Courmont <remi@remlab.net>
Date:   Sun Apr 14 09:32:58 2019 +0300

    compat: missing #include, fix warning
    
    (cherry picked from commit fa48f95c8567a1babc1610b3a966961482119d9c)

commit e98449998883ff438151b68f18b23d4345787a73
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Sep 15 09:32:00 2025 +0200

    demux: nsv: don't dereference pointer if it's past the buffer
    
    Fixes #29300

commit 540d35fef5baefe2b4c4b9e5742761a0d636b63e
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Sep 12 11:59:15 2025 +0200

    cvdsub: avoid reading past the end of metadata
    
    We always read p[0] to p[3]. If p[3] is further than the end
    of our buffer we should not use these data.
    
    Fixes https://code.videolan.org/videolan/vlc/-/issues/29286

commit c6f5ee9f4bbe308dbb9a530936baa2fa2d758531
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Sep 12 08:04:40 2025 +0200

    CI: add a release target for Debian that does make distcheck

commit e78b9dd4cd509bd84d8c1dcf34faeb3125be8bc3
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Sep 12 08:12:58 2025 +0200

    doc: mention the POTFILES.in needs to be edited before make distcheck

commit 8eb3373e860d4760c39dd13a719192496ebb01bc
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Sep 12 09:22:49 2025 +0200

    test: fix check_POTFILES.sh folder
    
    So it can be called manually.

commit 8d58813b8f611e71718b864323b69a43c5db1611
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Sep 5 08:43:01 2025 +0200

    tools: make use of parallel builds
    
    (cherry picked from commit 21a36f8c4dae1271ae0e59cb126b0b274d4e5f97) (edited)
    edited:
    - gettext is not defined in the same place in 3.0

commit bc454c46ad63882af3132f74727fab1a3187fb49
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon May 6 11:02:49 2024 +0200

    extras/tools: build tar with xz support before unpacking tar.xz files
    
    (cherry picked from commit 46c57f4dbf811fe92b8879f3103802d8d5352dce)

commit dd4078546548b32896a29e894097dd1c5162ebbc
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon May 6 11:01:51 2024 +0200

    extras/tools: build xz before tar
    
    The reason we build tar is because it's missing xz support.
    
    (cherry picked from commit ee9ea36529e70199d5c81894e1e8dae6b7cd4446)

commit 25cc51ff6ba9345e0a44cf31be06390c831377ba
Author: Alexandre Janniaux <ajanni@videolabs.io>
Date:   Wed Jan 17 10:01:32 2024 +0100

    extras: tools: add .m4 dependency for .buildautoconf
    
    Autoconf will require m4 to build correctly, and will complain with the
    following error, at least starting with Autoconf 2.72, when the system
    provided m4 is too old:
    
        GNU M4 1.4.8 or later is required; 1.4.16 or newer is recommended.
        GNU M4 1.4.15 uses a buggy replacement strstr on some systems.
        Glibc 2.9 - 2.12 and GNU M4 1.4.11 - 1.4.15 have another strstr bug.
        yes
        checking whether stricmp is declared... make: *** [.buildautoconf] Error 1
        make: *** Waiting for unfinished jobs....
    
    Ensure that whenever we need to build m4, we build it before autoconf.
    
    (cherry picked from commit a8e83b1b69df3d500d52e5ddb9bd562723ee3b5e)

commit 75f3371f49ac1c789e53eb198e0f0a89fdd939dc
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Sat Dec 9 09:38:34 2023 +0100

    extras/tools: disable automake documentation
    
    It does not build for me, as it tries to use makeinfo/texinfo which is not
    installed and not part of the tools we require.
    
    (cherry picked from commit 90462d2f4d0f0555d4f0915960506c1fa8226343)

commit 39ddeba4b42efe413e3c91aa92f4f17fded2344a
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Jul 20 16:46:51 2020 +0200

    tools: avoid building tracking dependencies for tools
    
    This is a waste of time 99.9999% of the time.
    That's also what we do in contribs.
    
    (cherry picked from commit 4958f6b5911d5771ca7fbd8727f65684f4f923a5) (edited)
    edited:
    - 3.0 doesn't have ragel anymore

commit 049d29410fa1c1e4eab74e44913fccf917e086e8
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Sep 11 15:46:16 2025 +0200

    package/win32: give a different name to Windows ARM64 exe/msi/7z
    
    Otherwise we don't know if the win64 is for arm or x86.

commit 4a5ad643780ce33eabbb2abbda12b41bb1814549
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Feb 24 16:44:54 2022 +0100

    makefile: remove unknown disable-mkv option from distcheck
    
    It generates a warning
    configure: WARNING: unrecognized options: --disable-mkv
    
    (cherry picked from commit 3342f3d56756fd3c7da0066648bea5ab133eb6da)

commit c7c1d68aa00f6845776a9c8075e575d42976504f
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Sep 12 08:47:57 2025 +0200

    src: use git safe.directory to get the revision number
    
    In the release build runner this seems to be an issue [^1].
    
    ```
    Making all in src
    Makefile:3751: warning: ignoring prerequisites on suffix rule definition
    Makefile:3755: warning: ignoring prerequisites on suffix rule definition
    make[2]: Entering directory '/builds/videolan/vlc/winarm64-ucrt/src'
      CC       fourcc_gen
      GEN      stamp-revision
      GEN      ../include/vlc_about.h
    fatal: detected dubious ownership in repository at '/builds/videolan/vlc'
    To add an exception for this directory, call:
            git config --global --add safe.directory /builds/videolan/vlc
    cat: /builds/videolan/vlc/extras/package/win32/../../../src/revision.txt: No such file or directory
    make[2]: *** [Makefile:3781: stamp-revision] Error 1
    make[2]: *** Waiting for unfinished jobs....
    make[2]: Leaving directory '/builds/videolan/vlc/winarm64-ucrt/src'
    make[1]: *** [Makefile:1573: all-recursive] Error 1
    make[1]: Leaving directory '/builds/videolan/vlc/winarm64-ucrt'
    make: *** [Makefile:1460: all] Error 2
    ```
    
    [^1]: https://code.videolan.org/videolan/vlc/-/jobs/2288139

commit 537d5ed35bac06405b120146d07b2ad834d7d6b2
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Sep 12 08:08:19 2025 +0200

    NEWS: add -rc1 in new version
    
    This is necessary for make dist. It will need to be reverted
    when doing the final 3.0.22 build.

commit 40530db7bf75031d30a4feeae7856a67966efce4
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Sep 11 13:42:21 2025 +0200

    CI: keep the .exe/.msi Windows installer in release builds

commit 00cb822968eef9b670f9a167cf59c1c3d6fe61f6
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Sep 11 13:11:52 2025 +0200

    CI: add missing UWP_EXTRA_BUILD_FLAGS to Windows releases
    
    That will turn the ARM build into a UCRT build.

commit ba3e9c6ade225f70434a6eec167f8725e146e629
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Sep 11 14:37:00 2025 +0200

    package/win32: generate the .exe and .msi installer in release builds
    
    So we don't have to generate package-win-strip again and possibly
    have different binary signatures.
    
    The .msi package generation is tricky and requires many calls. It's easier
    to let the makefile do it.

commit a3c6bc2755e9597e73d2aacc795980eb4e2d814c
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Sep 11 13:24:06 2025 +0200

    configure.ac: Correctly set version to 3.0.22-rc1
    
    Similar to ed93768cedee7dae31a5b44d57a38d59da4dd1cf

commit c26b46004e02b5f9eb66b0d3bbdbe486645bbf5c
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Sep 11 13:49:12 2025 +0200

    contrib: breakpad: fix support for Windows ARM64

commit f555dff5bc1f0fd4ada24a80974498aac0ef2f80
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Aug 6 07:47:33 2024 +0200

    tools: don't show untar'ed files in non verbose mode
    
    This avoids being bombarded with logs when building like the 6000 lines of meson.
    
    Similar to 0a555fa1ac6db47923c9db03faa8d49393f571ec for tools.
    
    (cherry picked from commit 66aa9ee86f897bcabf0a36cc0b90ec4687a57bfa)

commit 940dae524b0f03ad034ca19b1166278338da0ba2
Author: Romain Vimont <rom1v@videolabs.io>
Date:   Fri Sep 5 11:05:12 2025 +0200

    tools: fix libtool version check for Debian
    
    On Debian, the libtool version is prefixed by "Debian-":
    
        $ libtool --version | head -1
        libtool (GNU libtool) 2.5.4 Debian-2.5.4-4
    
    As a consequence, the extracted version is incorrect:
    
        $ libtool --version | head -1 | sed s/'.* '//
        Debian-2.5.4-4
    
    causing the bootstrap script to fail:
    
        ./bootstrap: 31: [: Illegal number: Debian-2
        ./bootstrap: 32: [: Illegal number: Debian-2
        ./bootstrap: 33: [: Illegal number: Debian-2
    
    Extract the first pattern matching NUM.NUM or NUM.NUM.NUM.
    
    (cherry picked from commit 42e32fb792a7d9962e35a1cc6e2e4d96c9bf7708)

commit 76d714c3df6e4e0eeb0bbbb13fb23f7eb1aa7014
Author: Tristan Matthews <tmatth@videolan.org>
Date:   Tue Sep 9 15:57:48 2025 -0400

    flac: handle NULL streaminfo
    
    Fixes https://issues.oss-fuzz.com/issues/443965736

commit 68522c2628db42ef250d04e14a72121c4c82a9c2
Author: Felix Paul Kühne <felix@feepk.net>
Date:   Wed Sep 10 21:44:01 2025 +0200

    video_filter/amf: drop shortcut l10n
    
    The module shortcut name should not be translatable.

commit 7d92d2b72d9568dc94b5a136a8e978c8e38880c7
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Sep 9 14:11:20 2025 +0200

    NEWS: update for 3.0.22

commit 1aa8851784ee5fdbe4a40b38a3c05ecec4bcce77
Author: Felix Paul Kühne <felix@feepk.net>
Date:   Sat Jun 21 22:11:31 2025 +0200

    NEWS: prepare for 3.0.22

commit f5f7d5ff146ab71437f79f90962d82fd8798c372
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Sep 9 15:51:49 2025 +0200

    configure: prepare 3.0.22-rc1

commit d7a666402bd335312a819b216ce8c0e77d73a37c
Author: Felix Paul Kühne <felix@feepk.net>
Date:   Sat Jun 21 22:11:19 2025 +0200

    configure.ac: prepare for 3.0.22

commit 8d8c79b4ae37a82d6c9184cf08c3a2c73e6bacce
Author: Felix Paul Kühne <felix@feepk.net>
Date:   Sat Jun 21 22:11:08 2025 +0200

    doc: update for 2025

commit 6f1a5903b6e67360e165bd92d5095c64a151bca1
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Mon Feb 3 16:16:01 2025 +0100

    contrib: dvbpsi: fix out-of-bounds read
    
    (cherry picked from commit 5e024041bfcb2f51bfd27d122efe2199aeeea216)

commit 102b196643a09980be9548d50019266343662a2a
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed May 14 11:34:31 2025 +0200

    demux: libmp4: keep stss sample numbers as they are in the file
    
    Adapt the only place it's used in the code to account for the -1 difference.
    
    Fixes #28982

commit 1af979fc357dfc37a9941e130c834a023c0f3401
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Aug 5 15:14:11 2025 +0200

    demux: libmp4: avoid allowing an index bigger than the array contains
    
    It should not happen in the for loop, but better safe than sorry.

commit 8e7503ad91bb910d787dfb5d4d0796edc6ee8f1d
Author: Francois Cartegnie <fcvlcdev@free.fr>
Date:   Tue Aug 12 13:53:21 2025 +0800

    codec: webvtt: early exit on empty class

commit 28663bc783e6322bb9888ced2da0efefde980ac3
Author: Francois Cartegnie <fcvlcdev@free.fr>
Date:   Tue Aug 12 13:52:19 2025 +0800

    codec: webvtt: fix heap read overflow on empty string match
    
    refs #29233

commit 8b191f39ab08f5e75760c7948de96976fb9867b2
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Aug 4 16:10:23 2025 +0200

    demux: subtitle: always end the filled buffer
    
    strstr() expects a nul terminated string.
    
    Fixes https://code.videolan.org/videolan/vlc/-/issues/29235

commit deae8a9de6101295cd1a8f1fb83bbbc69f72e5e9
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Aug 4 15:40:55 2025 +0200

    spudec: don't read Nibble past our buffer
    
    We read in the buffer with an offset of 4.
    
    Fixes https://code.videolan.org/videolan/vlc/-/issues/29234

commit 9e76bfac8ea86dd6fd562e479dfc4c08443bf5f4
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Feb 27 16:18:09 2025 +0100

    demux: mkv: check bogus block reading
    
    We should not use the block data if it was not fully read.

commit 08e35bf2baa8b6f2ae43d3c949b10e5ae9848ccb
Author: Thomas Guillem <thomas@gllm.fr>
Date:   Thu Feb 27 13:28:10 2025 +0100

    codec: webvtt: fix SEGV
    
    psz can be NULL, cf. CSSGrammar.y
    
    Fixes #29047

commit c91c4d467092ce86113fcd24ae263df516ad78ae
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue May 13 09:38:24 2025 +0200

    mmx: only allocate the length we will use in mms_ParseCommand()

commit d0b2e534ac571f697d7dbc4d70c7cde8c7259187
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue May 13 09:34:22 2025 +0200

    mms: check errors before allocating the output buffer in  mms_ParseCommand
    
    And set the state when there's an error by default.

commit 7c1b7970d3c23c7ab2120858414bacb332ab26ea
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue May 13 10:03:36 2025 +0200

    mms: initialize the error states in mms_ParseCommand()
    
    The pi_used may have been used uninitialized.

commit 1ea226583ddf79d936049a01c558ae3979ab5679
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue May 13 09:21:22 2025 +0200

    mms: clarify reading boundaries
    
    We need to take in account how much buffer is available to write.
    Given we were requesting at least half our (arbitrary) buffer size, we might as
    well request to fill the whole available buffer.
    
    This is equivalent to the previous code since i_tcp is always
    > MMS_BUFFER_SIZE/2 - p_sys->i_buffer_tcp
    
    And i_udp is always
    > MMS_BUFFER_SIZE/2 - p_sys->i_buffer_udp

commit 8532a9dd061982709ccaa5d29f2bc4a8bb29fe81
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Feb 12 15:57:38 2025 +0100

    codec: webvtt: split the code to acutally Delete webvtt_dom_node_t data
    
    So we don't use recursions. We only need an extra loop on the child elements
    to delete. But it will not cause a recursion.

commit 2d7b038d61060c63d7202d2e9e7fce7342062c7f
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Feb 12 15:41:05 2025 +0100

    codec: webvtt: always free the current node in webvtt_domnode_ChainDelete()
    
    It doesn't matter which type it has.

commit 223f855408463c1916e839fb0f4708cae07f8131
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Feb 12 15:38:01 2025 +0100

    codec: webvtt: inline Delete calls in webvtt_domnode_ChainDelete()
    
    So we can see the recursions.

commit 9bcd86472f1d95c99a3adc5af602477e2f6d6fd7
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Feb 12 15:38:38 2025 +0100

    codec: webvtt: inline webvtt_region_ClearCues calls into webvtt_region_Delete()

commit 170f71cd7c67caf97e7aae636b47a3b29612e4b8
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Feb 12 16:01:20 2025 +0100

    codec: webvtt: limit the recursive calls to GetTimedTags/ConvertNodesToSegments()
    
    With malicious files it's possible to overflow the stack.
    50 levels of nested tags ought to be enough for anyone.
    
    Fixes #28993.
    
    No ruby support in VLC 3.0 compared to the same patch on VLC 4.0.

commit 2487ba279a17df733ab4d873037d6964fdafa311
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed May 14 09:39:07 2025 +0200

    demux: subtitle: only parse end time if it's found
    
    We should not parse uninitialized buffers.

commit 8bd8a14858895d5d788bcdc8d78ae3d49682facf
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed May 14 09:32:48 2025 +0200

    demux: subtitle: keep parsed fields private
    
    And we don't need to initialize them.

commit da171a5b4a859dcf8cf5542dba7bf918a26ad343
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed May 14 08:54:32 2025 +0200

    demux: subtitle: avoid using uninitialized variables in ParseRealTime
    
    The value may have been set by previous calls but we should not use it.

commit 2a4690a01c926ee89eafc6915ec152dd190f89b5
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed May 14 08:44:32 2025 +0200

    demux: subtitle: return a vlc_tick_t from ParseRealTime
    
    We should not mix VLC_EGENERIC and a vlc_tick_t return value.
    We shift directly the value with VLC_TICK_0 when we have the value
    as done in other parsers.
    
    The invalid -1 value is used as in other parsers.

commit 76e98161ee8976a548981b7afbbb25272016e234
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed May 14 08:45:20 2025 +0200

    demux: subtitle: sort items in demux master mode
    
    We don't want the PCR to go back and forth.
    
    Fixes #29051

commit 87513b4cc0dc9765d50b24650db8f6ce04968b76
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue May 13 12:03:27 2025 +0200

    packetizer: h264: use the default ref_idx is the read value is too big
    
    Reference values should only go up to 31:
    
    > num_ref_idx_l0_default_active_minus1 specifies how
    > num_ref_idx_l0_active_minus1 is inferred for P, SP, and B slices
    > with num_ref_idx_active_override_flag equal to 0. The value of
    > num_ref_idx_l0_default_active_minus1 shall be in the range of 0 to 31, inclusive.
    > num_ref_idx_l1_default_active_minus1 specifies how num_ref_idx_l1_active_minus1
    > is inferred for B slices with num_ref_idx_active_override_flag equal to 0.
    > The value of num_ref_idx_l1_default_active_minus1 shall be in the range
    > of 0 to 31, inclusive.
    
    This is for the default values but it also applies to the read slice values.
    
    Fixes #29050

commit dcb3586658967ff5970ef4ea87f3a885e4f30b4b
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue May 13 12:03:02 2025 +0200

    packetizer: h264: check the default ref_idx values are valid
    
    Reference values should only go up to 31:
    
    > num_ref_idx_l0_default_active_minus1 specifies how > num_ref_idx_l0_active_minus1 is inferred for P, SP, and B slices
    with num_ref_idx_active_override_flag equal to 0. The value of num_ref_idx_l0_default_active_minus1 shall be in the
    range of 0 to 31, inclusive.
    num_ref_idx_l1_default_active_minus1 specifies how num_ref_idx_l1_active_minus1 is inferred for B slices with
    num_ref_idx_active_override_flag equal to 0. The value of num_ref_idx_l1_default_active_minus1 shall be in the range
    of 0 to 31, inclusive.

commit 83f789b1be97ecd6c85f4b33a413eb8f87fa34e3
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu May 15 13:47:44 2025 +0200

    gme: handle es_out_Add() failure
    
    Ref. #29114

commit 5372fa64e743af30e34ec99588b96ebd5b8dbed8
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed May 14 14:50:26 2025 +0200

    demux: mp4: don't use the i_nztime if it's invalid
    
    It may be invalid when set via FragGetDemuxTimeFromTracksTime().
    
    Ref. #28997

commit 57b68c9714416ebd2d41f41784eab220b8bae795
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue May 13 08:45:00 2025 +0200

    asx: fix potential null dereference
    
    Ref. #29114

commit 424aa4f6fb51e296d86d59fdc5cbdd6e16fb61b0
Author: Thomas Guillem <thomas@gllm.fr>
Date:   Thu Feb 27 13:47:59 2025 +0100

    codec: webvtt: subsvtt: fix SEGV
    
    node->psz_attrs can be NULL, cf. CreateDomNodes().
    
    Fixes #29049

commit b3453533bd35774112d2851e67e3e15a3b6c8447
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue May 13 11:21:57 2025 +0200

    packetizer: dts: fix busy loop with empty returned blocks
    
    Fixes #29046

commit 354cffb7a75d2bdc36fecaa095d037e71d392ee1
Author: Thomas Guillem <thomas@gllm.fr>
Date:   Mon Sep 9 16:28:24 2024 +0200

    wav: fix use of uninitialised value
    
    This could lead to the wav probing to succeed without a valid fmt.
    
    Fixes #28772

commit e9f7ff2810303da1e21d716a96e27c8e5e8ebdae
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Feb 20 11:18:15 2025 +0100

    demux/mkv: fix header leak on error
    
    Fixes #29044

commit 331007e5c2c8e3970dec2405ade80178ca078786
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Feb 20 11:01:12 2025 +0100

    demux/mkv: discard extra elements provided when reading a master element
    
    If this happens that means we're leaking the upper element that was found.
    It's not part of the data we want to read and went further than expected.
    
    Fixes #29043

commit ae1938e7851cac5ed13ee8d9a47b6865f987e061
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Fri Jul 25 10:32:02 2025 +0700

    packetizer: hevc: hvcc->annexb output prefix size is always 4
    
    refs #29217

commit 859df557da17baeb3aaab4003e5b65276fe4449e
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Fri Jul 25 11:33:28 2025 +0700

    codec: cc: don't assume input size is checked by caller
    
    refs #29216

commit 532e81b9395c6ca169b7b7fe7da7104825350c6a
Author: Francois Cartegnie <fcvlcdev@free.fr>
Date:   Thu Jul 24 23:44:21 2025 +0700

    demux: ogg: fix potential double free
    
    refs #29220

commit f40e2df4c240659a3f4714ec576703fdb47f0fe8
Author: Tristan Matthews <tmatth@videolan.org>
Date:   Mon Feb 10 17:36:25 2025 -0500

    demux: mkv: check earlier that current segment is valid
    
    Fixes #29017

commit 384a3b27f147bad502575fd3aab12272a5186ff9
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Feb 20 09:42:38 2025 +0100

    demux/mkv: avoid casting to KaxCluster if it's not the right type
    
    Fixes #29042

commit f956e243c63616fc5cfd09a0c0db4e3238be74fa
Author: Thomas Guillem <thomas@gllm.fr>
Date:   Thu Feb 13 15:13:05 2025 +0100

    avi: fix Integer-overflow in AVI_Rescale
    
    Fixes #29001

commit ffcc2707fb8fdb13d4f6d107471e43bfee34e07a
Author: Rémi Denis-Courmont <remi@remlab.net>
Date:   Sat Jul 13 11:49:25 2019 +0300

    mms: fix signed warning
    
    (cherry picked from commit 324958967b62104375438093d08e91d8d2c70324)

commit d8d09e7ccadc4baa5e949dd80ef13f0a8226b872
Author: Rémi Denis-Courmont <remi@remlab.net>
Date:   Tue Nov 20 21:15:30 2018 +0200

    mmstu: add proper boundary checks
    
    This removes nonsensical arithmetic with pointer representation.
    
    (cherry picked from commit da4d817d41024d32580aeecb5cfc1acf6fe81dcc)

commit 6d2de75bc8cef51615d82f548ea338d7272d6e47
Author: Rémi Denis-Courmont <remi@remlab.net>
Date:   Tue Nov 20 21:12:31 2018 +0200

    mmstu: do not keep useless strings around
    
    They are only printed in debug at start-up.
    
    (cherry picked from commit 282163420fced9e638a21ff26d227b9e5bdaddef)

commit 7485e3c70a6e28f99869f6b5a4f66d99dd750af8
Author: Rémi Denis-Courmont <remi@remlab.net>
Date:   Tue Nov 20 21:01:47 2018 +0200

    mms: fix connection response string parsing
    
     - Do not assume 16-bits unaligned reads work.
     - Do not assume little endianess.
     - Do not assume ASCII strings.
    
    (cherry picked from commit a77e5fb55d0c32dcca07ee6067a9959caa2e4a7a)

commit 5de04cd4b064ef93985b625e488b3a72794b34b8
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Wed Apr 2 17:32:35 2025 +0700

    packetizer: dts: fix dead loop
    
    refs #29063

commit f421dd3b6c612866a5cef3a66efca37b2831d5c0
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Feb 21 13:34:07 2025 +0100

    demux: asf: fix unitialized free on error
    
    The goto may occur before the variables are initialized,
    consecutive to 3758d15c000c9ec10711ca7e9580e43ba09601df.
    
    Fixes #29058

commit d86797d6b0d6020d5b4d4df6b4ce04057541eb8b
Author: Thomas Guillem <thomas@gllm.fr>
Date:   Mon Jul 7 11:23:08 2025 +0200

    modules: packetizer: enforce type
    
    Backportable version of 0463a37586aceebd09c1c294446d0c3b15a5fc4b
    (without any CORE API change)
    
    Fixes #28972

commit f596de79dd9fa7316db64668555aad3ec3495fcd
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Mon Feb 3 17:32:37 2025 +0100

    aout_ChannelReorder: always use limited range for reorder
    
    aout_CheckChannelReorder <= aout_ChannelReorder
    
    refs #28968

commit cc08e838cbd52a3ab9071b8f6db58cc1cc773d8d
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon May 12 14:58:49 2025 +0200

    demux: mp4: accumulate all trun for a given track
    
    Before the previous array was leaking and we were writing too
    far in the array.
    
    Fixes #28959

commit 5e62dbb971cb8b8de8b4778f942c971976275fab
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Feb 4 10:00:26 2025 +0100

    spudec: don't read/write past the RLE pixeldata
    
    Fixes #28960
    
    No error is generated, we just store valid data.
    
    If we end up reading too much we will not issue a region for the subpicture.

commit e37c298fba79f6409331268a661112c96176d15d
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Feb 13 08:21:02 2025 +0100

    demux: webvtt: avoid cast removing const

commit 81b2dc3dc22c1eace7eddeb8e407904b50374439
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Feb 13 08:19:56 2025 +0100

    codec: webvtt: parse timestamps as signed values
    
    sscanf("-1:00:27.500", "%u:%2u:%2u.%3u") returns a large for the negative value.
    This happens on Windows and in Linux too [^1].
    
    The returned timestamp is negative (matching what the text says).
    That bogus timestamps is then discarded as invalid.
    
    Fixes #28994
    
    [^1]: https://godbolt.org/z/YWEYzPeGq

commit 3a6dd613c53c2e8ab7a45603c1aa7c4d34f80116
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Thu Feb 20 16:50:33 2025 +0700

    codec: webvtt: fix potential NULL derefs
    
    refs #28988

commit c793ca95344cb9f97b7456fc7ba0a7fc8a49f5e7
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Thu Feb 20 18:04:02 2025 +0700

    codec: webvtt: fix potential null deref
    
    refs #28987

commit 214fc295c9beac0e615dbb88e7fd01e7d5004e38
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Feb 14 14:59:17 2025 +0100

    demux: mp4: read the sample description index as unsigned
    
    Fixes #29008

commit d009b5777d9ab14fc45610017ddfd44f8b65e748
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Feb 14 13:29:00 2025 +0100

    demux: libavi: avoid potential unsigned shift issue
    
    biClrUsed is a uint32_t.
    
    Fixes #29007

commit 4beb515c8188fc6fe38bd2299e96410a272d6e6a
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Feb 14 12:44:35 2025 +0100

    demux: libasf: error on preroll conversion overflow
    
    If the uint64_t is too big, the conversion to vlc_tick_t will be bogus.
    
    We can't use such a huge preroll.
    
    Fixes #29005

commit 6f24087ea51b1a1a1df395868ba3656e3f7ae477
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Fri Feb 14 12:04:31 2025 +0700

    demux: avi: ensure max_streams limits
    
    refs #28975

commit 298e0a838c38cefa6e423ecf0d38a2004c238874
Author: Thomas Guillem <thomas@gllm.fr>
Date:   Wed Feb 12 09:36:03 2025 +0100

    mjpeg: fix heap-buffer-overflow
    
    Fixes #29009

commit 23f4a5ee2117059c93437036e5e74bbf3399164b
Author: Thomas Guillem <thomas@gllm.fr>
Date:   Wed Feb 12 09:29:32 2025 +0100

    mjpeg: fetch separator length once

commit ce603eeb2fc6b03449fbf6d7deeeb40d9edb32b1
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Feb 12 08:43:50 2025 +0100

    codec: webvtt: exit reduce loop when no reduction happens
    
    The assert was there to ensure we don't loop indefinitely on a reduction
    that does not happen.
    We can check directly if it happened or not.
    
    Fixes #28981

commit 87697f2a91d58217174a9876f75a086835c16ed5
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Feb 12 08:18:19 2025 +0100

    demux: wav: simplify unnecessary negative checks
    
    And simplify associated logs.

commit 77b4bcd772ddba4f2c125d62b3c86f131db66899
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Feb 12 08:10:20 2025 +0100

    demux: wav: ensure i_frame_samples is always positive

commit a2f4edfe9fee78918955993b11db95b70f71830f
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Feb 12 08:15:11 2025 +0100

    demux: wav: reject IMA with negative number of samples

commit 96a6e495e82413737edd5ef3e5b5d4cfc8ef2325
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Feb 12 07:59:27 2025 +0100

    demux: wav: reject ADPCM with negative number of samples
    
    Fixes #28978

commit 65e04179c9835b11e12af32c515ade77d9437ec7
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Feb 13 10:32:48 2025 +0100

    demux: avi: return -1 for errors in AVI_PTSToChunk()/AVI_PTSToByte()
    
    All callsites are checked.
    demuxctx.i_toread is already assuming -1 is some sort of error.

commit dbf08d00199ab652343e1a4374453dbda943a40b
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Feb 13 10:14:22 2025 +0100

    demux: avi: fix potential negative chunk position usage
    
    If we let AVI_PTSToChunk() report errors with negative values, a positive
    i_dpts may result in a negative i_chunks_count.
    
    We don't need to check i_dpts is positive anymore.

commit 634d4b0d40e68c4efed2e22a14e539c08c905833
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Feb 13 10:10:21 2025 +0100

    demux: avi: fix AVI_StreamChunkSet() being called with potential negative/large value

commit ce2af8f8625807df857fbface1fa3b480a7a3e26
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Feb 13 10:04:50 2025 +0100

    demux: avi: fix AVI_StreamBytesSet() being called with potential negative value

commit cb28cb729c3b9ad8f61c4b5e5f91d45fb2dc49ce
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Feb 11 13:10:34 2025 +0100

    demux: avi: avoid rescaling with 0 rate
    
    The result would end up being 0 anyway, but since 8c59fc7af4ad5c52168cb12b8bd296c4494df345
    The newscale is also used for divisions.
    
    Fixes [#28974](https://github.com/FilipRoseen-refp/vlc/issues/28974)

commit 96788d37bb477736e3907fbded27438b5a8bc907
Author: Thomas Guillem <thomas@gllm.fr>
Date:   Wed Feb 5 16:47:03 2025 +0100

    dts: check rate and frame_length
    
    Fixes #28977

commit b6b3b8abece10ba3c0b210cd44858cedf3053288
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Feb 4 12:48:47 2025 +0100

    svcdsub: avoid writing past the line pitch
    
    Since we add +1 to i_count, we must remove it from the max value.
    
    Fixes #28961

commit f38423a1dcf8cd1ec04feee07cf75a8b1ccbc6b0
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Feb 4 13:25:55 2025 +0100

    substx3g: only replace \r on existing characters in the string
    
    psz_subtitle is null terminated and doesn't always have the
    same size as i_psz_bytelength.
    
    Fixes #28965

commit a00cc493397765017e5f363c66c3718d7038f83f
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Feb 4 08:07:21 2025 +0100

    spudec: don't generate a region for 0 width/height
    
    Fixes #28983

commit 968113070af127dd9163d6ca8baa24214a1d4cbd
Author: Thomas Guillem <thomas@gllm.fr>
Date:   Thu Nov 14 15:48:02 2024 +0100

    demux: ty: check l_rec_size
    
    prevent that the sum of all l_rec_size don't go past the CHUNK.
    
    Fixes #28771

commit beaa2622da4f67ac13cb17fa20bc16215be7dce3
Author: Thomas Guillem <thomas@gllm.fr>
Date:   Tue Sep 10 10:14:43 2024 +0200

    demux: ty: remove xmalloc usage in get_chunk_header()

commit e487d82146fe442e6a1ede3ba660deab0e9b1830
Author: Thomas Guillem <thomas@gllm.fr>
Date:   Tue Sep 10 10:11:04 2024 +0200

    demux: ty: prevent out of bound read

commit c2808a8f8defc4db6f780a786f1b0bf5db3e319e
Author: Thomas Guillem <thomas@gllm.fr>
Date:   Tue Sep 10 10:02:03 2024 +0200

    demux: ty: check buffer size
    
    Prevent potential out of bound reads at the end of input.

commit ede7bf749cd3b489d63d789363489e346c87b254
Author: Thomas Guillem <thomas@gllm.fr>
Date:   Tue Sep 10 09:47:22 2024 +0200

    demux: ty: handle possible errors from analyse_chunk

commit 9f2d2d2f7148d547cf0440cb8ab54ddf460e0f01
Author: Thomas Guillem <thomas@gllm.fr>
Date:   Thu Nov 14 15:32:01 2024 +0100

    demux: ty: check i_num_recs

commit 50cbdd05d7b3c7d826586d8d7cf26c202f4d5409
Author: Thomas Guillem <thomas@gllm.fr>
Date:   Thu Nov 14 15:31:35 2024 +0100

    demux: ty: define CHUNK_HEADER_SIZE

commit a74759b1de7c1ae260818ce49e7c6752c84d4838
Author: Thomas Guillem <thomas@gllm.fr>
Date:   Thu Nov 14 14:49:41 2024 +0100

    demux: ty: define REC_SIZE

commit a78e408365bd2975b9a670524192604671cc8f67
Author: Thomas Guillem <thomas@gllm.fr>
Date:   Mon Sep 9 13:03:39 2024 +0200

    demux: ty: fix leak in case of error
    
    (cherry picked from commit 02921db96886fd82f94efa72fbbe4c1b7f32e5c4)
    Signed-off-by: Thomas Guillem <thomas@gllm.fr>

commit 40395e7beb958451344a11f2155dedbc17a0ded7
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Jun 27 08:59:01 2022 +0200

    ty: replace skip size comparisons by skip size equality check
    
    Compiler may generate better code and we really want to skip exactly that
    amount. This will also bring some consistency with the other
    vlc_stream_Read(NULL) callers.
    
    (Partially cherry picked from commit e889e7326b3dcba59e290d82050527b1f54d6e53)
    Signed-off-by: Thomas Guillem <thomas@gllm.fr>

commit 3e8d17d7a329f968f5fc6bbc6c0c5f96d6aca425
Author: Rémi Denis-Courmont <remi@remlab.net>
Date:   Sat Jul 13 12:02:52 2019 +0300

    ty: fix signedness warning, missing limit check
    
    (cherry picked from commit 9bd797a5c408da38551eb3269f9bfad141894059)
    Signed-off-by: Thomas Guillem <thomas@gllm.fr>

commit 00d35e21e301415d59272e1b393955f529c0d5c8
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Mon Dec 24 12:01:01 2018 +0100

    demux: ty: fix all warnings
    
    (cherry picked from commit 52dbf22859e581fa5af74600247e9a0340d47c38)
    Signed-off-by: Thomas Guillem <thomas@gllm.fr>

commit 9f1d03dd3cdcb2372f9e1a84c308442ba2ea25b6
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Sep 9 13:31:19 2025 +0200

    CI: generate a Windows arm64 release build when tagging

commit 2ad9fa6c3ea287bc53e0d4495d72afae7cfd8e3a
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Sep 9 13:29:27 2025 +0200

    CI: move Windows arm64 UWP_EXTRA_BUILD_FLAGS in variables-win64-arm
    
    They enable
    - minimum Windows 10 17763 Redstone 5 1809 (0x0A000006)
    - UCRT build (since we require Windows 10+)
    - extra compilation checks

commit 6086337dbfa4fb6b0b8d0d192de6bba536f19c92
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Sep 9 13:21:54 2025 +0200

    CI: move Windows arm64 VLCARCH in variables-win64-arm

commit 827794605f744ac65ab8b40c057dc81c4177cc6e
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Sep 5 10:19:20 2025 +0200

    CI: update Windows LLVM UCRT image to LLVM 19
    
    Based on Debian trixie and contains mingw-w64 v13.
    
    It's used for the Windows arm64 builds.

commit 9c7a33dc7379237579e8a460b231b7c5fa45f1a5
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Sep 8 10:10:05 2025 +0200

    Update PO files for pending 3.0.22

commit 8fffdf01adcaf9a7fd68a1e9e0fe27b5e068495f
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Sep 8 11:44:36 2025 +0200

    POTFILES.in: add missing fingerprintdialog.h from Qt UI file

commit a9d69ddd923176f6722e2dcdd68d113198b463bf
Author: Tristan Matthews <tmatth@videolan.org>
Date:   Thu Sep 4 07:51:07 2025 -0400

    demux: mkv: fix formatting of debug info
    
    (cherry picked from commit 9d1342e3952c52842761efd279f4cf0bf419fce6) (rebased)
    rebased:
    - the code around doesn't use vlc_tick conversions

commit a8411f9c2be402eb0004c88f552c553ddfbdc067
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Feb 15 07:26:27 2024 +0100

    contrib: gmp: update to 6.3.0
    
    It should be handling arm64 much better.
    
    (cherry picked from commit 9a078736ce748c4cf2935c4c3b9368922ea5a0a3)

commit 17e0a294dbdc5841ecb9c364e104a4295b5ff196
Author: Marvin Scholz <epirat07@gmail.com>
Date:   Wed Feb 23 18:23:20 2022 +0100

    contrib: update gmp to 6.2.1
    
    (cherry picked from commit baf4be7ca6080aad8bffc3f03e5b7f821ca2b6b0)

commit adea2f6a14a43f216c754f25afe5fe3457877f6e
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Jun 25 14:12:43 2018 +0200

    contrib:gmp: do not try to detect assembler format when assembler is disabled
    
    (cherry picked from commit 0feb493b2146493b32e74bc4f49cd768d25562e5)

commit 4997358dabec1bbef47446ab1d7fed7c6eeb6687
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Sep 4 10:46:26 2025 +0200

    contrib: gmp: build all code before installing for autotools contribs
    
    If the contrib install sub-directories it may install some and fail later. We
    should only install when we know everything built correctly.
    
    Do each build step in a separate make line.
    
    Similar to 8a2109a3947ef513e64e9ccae4f85e9399a7d243 for gmp without the macros.

commit b9865af9ee3a4605be58f80099cdfa4b34a7a218
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Aug 27 08:11:49 2025 +0200

    contrib: harfbuzz: update to 11.4.4
    
    In the 3.4.0 update commit 6e3bfdbf1157133dc41ebcdb65d9d7b56e182ec2,
    the 4.0 version was described as having massive API changes. However
    libass, our plugin and Qt all build fine with this version.
    
    Debian trixie uses 10.2.0 [^1].
    
    [^1]: https://packages.debian.org/trixie/libharfbuzz-dev
    
    (cherry picked from commit 775a1047bf29aefbc24ca4594ef4874cd963b1ba)

commit 7dedd030a80c8233abc6c5845b30f8ace669ef98
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Apr 18 07:23:56 2024 +0200

    tools: don't build ragel
    
    It's only used by harfbuzz which has its own internal version.
    
    (cherry picked from commit c0470455a92077db5b840d5bd31f3dc45e95e7d4) (edited)
    edited:
    - the code around is slightly different

commit 21ca61bd86515d3f5d457233fa81720f8cc0ab5c
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Apr 18 07:22:35 2024 +0200

    contrib: harfbuff: build internal ragel if not found
    
    (cherry picked from commit 071a7581ff4e7366972218e340abfe6e6c2c1686)

commit 10b100d458c0340cf42ceae093b1baf7981b3102
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon May 13 10:07:08 2024 +0200

    contrib: harfbuzz: build ragel as a native tool
    
    Fixes #28634
    
    (cherry picked from commit 8c9891d4bb7f7c146abb17606e7528f6d0209ea3)

commit dc67166f3ff9dec236f1296a993005217e63a52c
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Aug 25 15:24:23 2025 +0200

    contrib: libbluray: update to 1.4.0
    
    (cherry picked from commit 87cb4d8687ce08cb8004221f37d6908c772297a8) (edited)
    edited:
    - the autoconf usage was updated in 3.0 but now we use meson

commit dee10a9e86d53f271aec7d8fc6797ce041814cf3
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Jun 5 15:51:27 2024 +0200

    contrib: bluray: remove internal header installation
    
    We don't use the hack anymore.
    
    (cherry picked from commit 804acaed6762e0213ab263fb6e203a185c7a4cb1) (rebased)
    rebased:
    - the code around the patch is different

commit a812c7f2aec2292498f3da0d9911c7ddf1fd9283
Author: Pavlov Konstantin <thresh@videolan.org>
Date:   Fri Apr 12 22:45:51 2019 +0300

    contrib: bluray: drop unused configure switches
    
    (cherry picked from commit a2ce74c34a7da04a63552c94f8d30ec28d834a0a)

commit 52607b44a1ac1ecdcc847a35d2b075d669ab7c45
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Aug 13 12:55:42 2025 +0200

    access: dvd: don't pass 0 as a pointer
    
    (cherry picked from commit 49636827b8b95a396e94a8ebc0aa236dad4afa32) (edited)
    edited:
    - 3.0 has one less parameter

commit f84aaa42ea3de88de3283941d1e1adc3f3a2f85c
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Aug 13 12:35:34 2025 +0200

    demux: ps: simplify else after return
    
    (cherry picked from commit b3e2686885822234e477626d230f3779677c3ea5) (edited)
    edited:
    - the code around is slightly different

commit ebf9dde38c206d7f931bdd95b2c66acbb9a0476a
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Aug 12 15:57:53 2025 +0200

    dvdread: use VOB packet ID mask to get stream ID
    
    (cherry picked from commit a7ff6e36163a421e788bfddda7c961d62a39a9b7)

commit c9fd36841a96bc65b2cc5fd81d7eb6f7b91f4401
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Aug 13 07:41:31 2025 +0200

    demux: pes: document magic value
    
    (cherry picked from commit 6c8f9130b3c804f24d443493d4688ff18316f9fd)

commit 6b668629bfadcc7beaee101d0207bf2ab131dc1b
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Aug 12 15:56:03 2025 +0200

    demux: ps: use VOB/AOB MLP packet IDs for detection
    
    (cherry picked from commit f7fd7a0b159c5270818e6781622da399d2b85bdf) (edited)
    edited:
    - 3.0 had the tests on the same line

commit 3bf1baa221580edae80c3bbe8cdf8abdc53421f0
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Aug 12 15:55:10 2025 +0200

    demux: ps: use stream ID defines to check packet header type
    
    (cherry picked from commit 1c7d2fe048810d29e1b2aa4e144b7945d29b3615) (edited)
    edited:
    - 3.0 has different names for the defines

commit 39916c7ee0eeca65c0a4ee54bf76fe241ad2817f
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Aug 12 15:54:06 2025 +0200

    demux: ps: use packet ID masks based on the stream type
    
    (cherry picked from commit ee6f973d6d0a2be7f49f737411dd94d13733d707) (edited)
    edited:
    - 3.0 use p_pkt->p_buffer in ps_pkt_id()

commit c8c6b4d1cf5b219dac464c5e7c91d06b1d61a142
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Aug 12 15:53:01 2025 +0200

    demux: ps: use MLP packet IDs to check detect AOB or VOB
    
    (cherry picked from commit c0e2a4ad7fccda0b3d771dfb0bc62eabbc773363)

commit ad9c14bb87f2690cddecb2a201143b91125540aa
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Aug 12 15:51:49 2025 +0200

    demux: ps: use packet ID mask to check for type of track
    
    (cherry picked from commit 0669884799d9bc2715a01523bd004f2fb6e946f7)

commit 839349336776346345b1d73d981d8c072b671196
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Aug 12 15:50:43 2025 +0200

    demux: ps: use the packet ID mask to check track IDs
    
    (cherry picked from commit db15b02d8d92dba07e3b923f10c4ddbdfbb400c8)

commit f03f3b2941eb9485440054cf432d61f6a8f491ba
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Aug 12 15:49:32 2025 +0200

    demux: ps: add defines for packet ID values
    
    (cherry picked from commit 8c2f94fd30497473a3a04c8ad79051223e8751c0)

commit 6999a3c99ee8a335f3d3c72f884f4099a6a9b27d
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Sep 5 06:46:05 2025 +0200

    tools: require meson 0.60
    
    This is needed for newer harfbuzz and possibly other contribs we should backport.

commit b9e3d51b5cf55129fc5d5b0a4132d0407ff0130c
Author: Felix Paul Kühne <fkuehne@videolan.org>
Date:   Fri Jul 22 11:55:19 2022 +0200

    extras/tools: update meson to 0.63.0
    
    (cherry picked from commit bb18231acda9a8983a8a765d2e00701be045b141) (rebased)
    rebased:
    - the sha512 around are different

commit 5272a87d23364e09fe1a730c8f5971b58746c81e
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Sep 5 14:57:23 2025 +0200

    extras: snap: build all tools at once in parallel
    
    We don't build CMake anymore so we don't have dependency problems.

commit fe4ab67e2d784bd92d41c8ff5fd3944ab12b07e7
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Sep 5 14:12:40 2025 +0200

    extras: snap: force using local ninja
    
    The vlc-ubuntu-bionic:20250904134924 contains ninja-1.13.0.git.kitware.jobserver-pipe-1.
    It supports jobserver as a client like the old kitware fork. But it only
    does so when combined with GNU make 4.4.
    
    It seems to mess the job sharing in the CI so use the one that is validated
    with old GNU make versions.

commit 063c3285c0eeccb535681466519a6afc4a4bc253
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Sep 4 11:10:45 2025 +0200

    CI: update snap image
    
    It contains python 3.8 and CMake 3.7 + protoc 3.10.

commit 373a6c17314f9eab3a20ed7ba0a5aac245835098
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Sep 3 11:31:47 2025 +0200

    CI: update mingw64 gcc images
    
    These images were for 4.0 but are not used anymore there (LLVM or gcc-posix).
    They are based on Debian bullseye, rather than Debian stretch in the previous
    images.
    
    They correspond to the last commit before upgrading protoc to match VLC4.
    gcc is version 11, mingw-w64 is v10.

commit 262a5d95f5f6f23ec7fd9aef02bcd5c36dae5fb2
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Sep 2 09:08:18 2025 +0200

    win32: inhibit: restrict SystemParametersInfo calls to Windows XP
    
    As mentioned in !7651 the 2 different APIs we use may race each other.
    So we select one based on the OS uses.
    
    We use the same detection for XP vs Vista as already done in D3D9.
    
    Co-authored-by: Icham AIDIBE <blouf@blouf.org>

commit 9af12a6e8240b89da4d9c2ff7e031bff9fc6c829
Author: Felix Paul Kühne <fkuehne@videolan.org>
Date:   Sat Aug 30 20:15:46 2025 +0200

    contrib/live555: use VideoLAN mirror instead of upstream
    
    Apparently, they decided to remove all previous packages from their server.
    
    (cherry picked from commit b194800fc45d2afc6cb97965285a6ca4885b9a1c)

commit dfbec325520e36c83775c74120fdb3e5e38f35f6
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Aug 25 09:34:07 2025 +0200

    contrib: cddb: fix more gcc 14 issues with mingw-w64
    
    (cherry picked from commit 3dc740c6547441769500e8b4f9af1db8d5c2fc76)

commit 9e6dd813d2bd4d70dfe26fe9c91fe3445bf5c49b
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Aug 25 08:35:54 2025 +0200

    contrib: use ftpmirror for GNU packages
    
    It's less overloaded and the recommended URL [^1].
    
    [^1]: https://www.gnu.org/prep/ftp.en.html
    
    (cherry picked from commit 0150e3d5cfd0344d00391ad09f6b9585f9d4b495) (edited)
    edited:
    - 3.0 did not switch to https

commit 73bad97d8df909a0312faf3194aea6b5ec6fe0e2
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Aug 25 08:39:11 2025 +0200

    contrib: gnutls: update to 3.8.10
    
    It builds properly with gcc 14 mingw-w64.
    
    (cherry picked from commit 20cb70f22beb160eff022ae69ed3e23c373936f8)

commit 7bc5e75d46c072e3fb891fc0e5fde1bf4790e77f
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Aug 27 08:35:14 2025 +0200

    CI: update windows LLVM target with mingw13
    
    So we have a target (windows arm64) with an up to date toolchain.

commit 810a90f8fad62aca7324dfbbb84c8e7de10cb971
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed May 14 13:03:11 2025 +0200

    xiph_metadata: ensure the tracks metadata are valid numbers
    
    They are already parsed as unsigned values in the TRACKNUMBER field.
    The UTF-8 check was removed from these fields in dfdc98f72edafc586f5a531f9071461d0d68a314.
    If we turn them into a valid integer (when they are) we have safe UTF-8 data.
    
    Ref. #28976
    
    (cherry picked from commit 63c36ef5af18366f38c7229d653a9e29eead7f06)

commit bad977d0342751fcbcb8d885226ce5fbd8bbffd0
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Aug 22 11:32:51 2025 +0200

    demux: mkv: factorize code to read a whole master element
    
    (cherry picked from commit 6a9d6e8e92527853a8c0fde4069411cd0fe07614) (edited)
    edited:
    - 3.0 doesn't read tags fully in memory
    - 3.0 doesn't have an internal b_seekable flag
    - 3.0 doesn't know about demux_sys_t in the header so move code in .cpp

commit 1e8f353b4a8bc076bdc83ed685593fb7d2aaf0bd
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Aug 22 11:51:17 2025 +0200

    demux: mkv: remove unnecessary cast
    
    (cherry picked from commit 0fe8906c08593379f713cee634dddb5e6c66de58)

commit 8e85ff80a7ea8299cbf9672b7530ebdbaddbf162
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Aug 22 11:48:05 2025 +0200

    demux: mkv: allow dummy elements inside KaxBlockAdditions
    
    There might be new elements that libmatroska doesn't know about.
    It's better to assume they are new elements rather than bogus data.
    This is how we read elements in general to be forward compatible.
    
    (cherry picked from commit 30ec492274356c7c5795d3d3a87dd06e943b8253)

commit 98b5a0b27f8a2a876c029fef4f78a901bbb100b8
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Aug 22 11:06:58 2025 +0200

    demux: mkv: release upper EBML elements when reading an element in memory
    
    The element is created but we don't use it.
    
    Fixes #29260
    
    (cherry picked from commit 74407acf6547bdd644063d739c54c4b421661d22) (edited)
    - 3.0 doesn't read tags fully in memory

commit 49aa2af76c55e3badfd00d2d958225589d3d7733
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Aug 22 11:05:15 2025 +0200

    demux: mkv: use local upper element handling
    
    We don't need to keep the data in the parser.
    
    (cherry picked from commit f2b070a8ef74407777896cd6b702ee2c72e07fae) (edited)
    edited:
    - 3.0 doesn't keep the duration

commit 30f31c7ed61cf7ac57a7b2fd108338c75a258b89
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Jul 31 15:01:29 2025 +0200

    demux: voc: limit the maximum sampling rate to 768000
    
    Fixes https://code.videolan.org/videolan/vlc/-/issues/28978
    
    (cherry picked from commit dd8256bfdb821871b7e25e32d5fb325cb679c5e6)

commit b698111aa1cf0e36543189b6980804703bcbf862
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Jul 31 14:28:41 2025 +0200

    demux: voc: check the number of channels read is usable
    
    (cherry picked from commit 34057a6d9d0e8de667c4bc7fe0960582061623f7)

commit d69cf45d305efb86c9158f957539fc770a62e96a
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Jul 31 14:20:32 2025 +0200

    demux: voc: remove unneeded mulitplying by 1
    
    (cherry picked from commit aa19e5e63463df006a97f54b7a52b12164a76809)

commit 2b73b4e0a6c0c8ef9ccd1313bce30a2ce6c3ba46
Author: Hugo Beauzée-Luyssen <hugo@beauzee.fr>
Date:   Tue Mar 6 16:32:16 2018 +0100

    voc: Reject blocks with a 0 samplerate
    
    (cherry picked from commit 74b68b0f3b64096bc4b48a4eacf5204b85b508e8)

commit 9a1b2e837486e48438cf5bfcb15f0bc29ce52c94
Author: Rémi Denis-Courmont <remi@remlab.net>
Date:   Thu May 3 12:07:27 2018 +0300

    voc: check ES
    
    (cherry picked from commit 0d12b150747911a1facb869b4d1d78b9f287cdb4)

commit d8973ad341a352addfd6344cde15214431a8aa2d
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed May 14 13:32:39 2025 +0200

    demux: avi: cut QNap title on first invalid character
    
    We should only use valid UTF-8 metadata.
    We don't know if this is supposed to be ASCII, UTF-8 or something else.
    This is the same code as EnsureUTF8() except we cut the rest of the string if it's invalid.
    
    Ref. #28976
    
    (cherry picked from commit 9c5ea58677b9f86e278a4c2c0b0fa738bf72ccd4)

commit 437869892f53c21da183abfaa3ccd4d66c8458d9
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Aug 18 07:08:54 2025 +0200

    demux: mp4: use the p_mvhd::i_duration once
    
    So it's clearer they are all the same value.
    
    (cherry picked from commit 8753b281ba36378ab2803a5419b9c0713b26a389)

commit 5539dab2ada4dae2eb7d36331875135ad8555923
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Aug 18 07:07:19 2025 +0200

    demux: mp4: add sanity check on duration
    
    The duration is coded on 4 or 8 bytes as unsigned. But it is converted to signed
    in the MP4_rescale() which creates bogus computation.
    A scaled duration should likely never reach INT64_MAX.
    
    Fixes #29256
    
    (cherry picked from commit 5983df5c1fd5f86f895a1cc35e27c3de050d294e)

commit 12c232514def241d81bc4a5358043048d73c52a4
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Aug 18 11:13:42 2025 +0200

    demux: pva: avoid using data that were not read
    
    We only use up to 14 + 1 + 5 bytes in the data we peek.
    
    We need at least 9 bytes to read the amount of data to skip.
    
    (cherry picked from commit d92f1d5ea463d08f06f9c3634b2713e7f344fc40)

commit 214783ab790ae84883cf692f41aee932eea186c9
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Aug 18 11:07:26 2025 +0200

    demux: pva: move the timestamps reading after the block is created
    
    No need to do it before and check for errors later.
    
    (cherry picked from commit fa9ae6e57af6670bfab68451a6cf7ce515387a20) (edited)
    edited:
    - 3.0 doesn't have the MPEG timestamp helpers

commit a79c2014d053805e77f60e4637d8486d16903fbf
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Aug 22 17:01:17 2025 +0200

    demux: pva: fix PTS computation
    
    On 4.0 the MPEG macros are used since 65838ea0fee8d7634cb00baf1310478b56bbd8b1.
    The last part uses an offset of 4 in the buffer. This is also the case
    for the computed DTS in 3.0.

commit 8e148227c552b218cbe365d42f9cf60b5fb9f008
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Aug 19 08:08:03 2025 +0200

    demux: ps: define what flavor of PS streams can be expected
    
    Between VOB and AOB files the 0xa0->0xaf substreams may be used
    with different codec or different encapsulation.
    There is nothing in the data to really distinguish them. But when reading
    either of those files we know if the file we opened is a dvd, dvda, .VOB,
    .AOB or something else.
    
    This will break detection of MLP in AOB files that are not named *.AOB.
    But it was already broken in a different way by checking a certain value.
    
    In any case DVD sources will be considered as DVD unless it's marked as
    coming from DVD-Audio.
    
    The DVD-Audio support in dvdread is commented out and will have to be
    uncommented when DVD-Audio support is added.
    
    (cherry picked from commit 1ae5b0b8d4c67a74d9f98d84aad78b4f38a4cb8c)
    - 3.0 uses a block_t rather than buffer+size
    - the code around is slightly different
    - the 0xa001||0xbda1 check is done on one line ine 3.0

commit 40adda7810b22a6c1e05b32d154c96f9ab99f27b
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Aug 13 08:49:12 2025 +0200

    demux: ps: relax the test for LPCM AOB detection
    
    The 0xc0 check was added for MLP in 7e3972c490bf6de6db0050dc05a3a6974dd12d88
    
    Verified on a VOB with LPCM, p_pkt[i_start + 6] is always 0x80.
    libavformat has the same test to detect PCM [^1].
    
    [^1]: https://code.ffmpeg.org/FFmpeg/FFmpeg/src/6dd83fab44ca309b02b4ca1baea3ca9ed8b6180f/libavformat/mpeg.c#L517
    
    (cherry picked from commit 7b0b957ece321cadb215a07c47629f8d2853c751) (edited)
    edited:
    - 3.0 uses a block_t rather than buffer+size

commit 9c01af2b752a17ba0aa9f9f6e99b1a6617121b4d
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Aug 13 08:42:30 2025 +0200

    demux: ps: split LPCM/MLP AOB detection
    
    In AOB files LPCM is always 0xa0 and MLP always 0xa1.
    
    (cherry picked from commit 3d0669c368ce8f64eaa5987eb82f85747aba1eca) (edited)
    edited:
    - 3.0 uses a block_t rather than buffer+size

commit 7fdc139ef5bdd96d8e58f82fc709df8104aeb030
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Aug 22 16:38:48 2025 +0200

    contrib: caca: use MAKE contrib macros
    
    Otherwise it builds more things that we don't need.

commit b608cace7e81f0df8c64db8eff790e5d56c82d03
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Aug 22 16:37:11 2025 +0200

    contrib: libmpeg2: disable subfolders we don't want to build
    
    Selecting the folder to run make doesn't work, nor passing SUBDIRS directly
    as it's also used in subfolders.

commit 4ce93430234330ab7d5ef15b6dfd864e75e150cb
Author: Johannes Kauffmann <johanneskauffmann@hotmail.com>
Date:   Sat Aug 16 17:04:50 2025 +0200

    contrib: dvdnav: update title parts patch from upstream
    
    The patch was updated upstream.
    
    (cherry picked from commit c149deb2c7c16318f85376a3fe95769a07b04781)

commit d9a89e481c13a9a020968673f5fbfb1d9170c8ec
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Jun 10 14:13:55 2025 +0200

    demux: wav: check the size of the fmt chunk is legit
    
    WAVEFORMATEX.cbSize represents the size of data after the WAVEFORMATEX structure [^1].
    It is coded on a uint16_t so the size of the WAVEFORMATEX plus its extra data
    can never exceed sizeof(WAVEFORMATEX) + UINT16_MAX.
    
    Fixes #29004
    
    [^1]: https://learn.microsoft.com/en-us/windows/win32/api/mmeapi/ns-mmeapi-waveformatex
    
    (cherry picked from commit d5ab4348ed214174c2f3c50549c7e28acda3b223)

commit 32028657178123df1f148b9c508499adf066ab08
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Aug 12 11:26:43 2025 +0200

    demux: mpeg: cast to vlc_tick_t early
    
    So we can pass smaller type and not overflow.
    
    (cherry picked from commit 031b57d6ad2275f8fa2e35d3fbbed918745830c3)

commit 4294c905d60f34336eb9c194295a39d584976a95
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Sep 20 13:04:04 2018 +0200

    demux:mpeg: make sure FROM_SCALE_NZ() returns a vlc_tick_t
    
    (cherry picked from commit c58f46eec96045389f20e4b9bea79d47974b9cc3)

commit aa5acb3629b79b4708a894ab97eee989c3de5362
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon May 7 14:17:19 2018 +0200

    bluray: use common MPEG timestamps macros
    
    (cherry picked from commit 8da763f888b3b17b2f3dd596b5fbae3bae3ed3a0) (edited)
    edited:
    - timestamps.h was already included in f97c70a9b38c0dae8803b16381b236330cdb2ab6

commit 285ab70a5aba325f39f0adf4c8272a7fac7e98ca
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Aug 4 15:02:31 2025 +0200

    demux/mkv: fix header leak on error
    
    Fixes https://code.videolan.org/videolan/vlc/-/issues/29044
    
    (cherry picked from commit e6ea9b6049faa430dab97d3c657cc9cfa2f3fa1f)

commit 49307128534c4bb3a554734ac40e32bd2d04a80d
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu May 23 10:59:58 2024 +0200

    contrib: gettext: don't build command-line tools when cross-compiling
    
    We may need a separate target for the native tools.
    
    (cherry picked from commit 5b154d9b0e6a16ba96160d11ce0490b1dec9ad78)

commit 8040ca6f09d0e742ccb713f6bc54c7933bf2a67a
Author: Martin Storsjö <martin@martin.st>
Date:   Tue Jun 24 17:46:21 2025 +0300

    contrib: gettext: Fix building for older macOS versions
    
    Work around the fact that gettext/gnulib tests for functions
    without using headers, by manually marking a bunch of functions
    as unavailable.
    
    The function openat is extra tricky, because the gnulib functions
    themselves unconditionally use openat (expecting to either get it
    from the system, or from a gnulib polyfill). When using that,
    it would see both declarations of openat, both from the system headers
    and from gnulib. In that case the system headers still indicated that
    the function is unavailable on 10.7.
    
    Rename the function while including the system header, so that we
    only see the gnulib replacement declaration.

commit c738b90eebc463514904cf4b5809e9dda9e59c93
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu May 23 07:57:48 2024 +0200

    contrib: gettext: update to 0.22.5
    
    (cherry picked from commit c548ff625dd81940d633fe97f8d7592869ae32d7)

commit 3aba712d499c75c35f3602330ddcd624f2bd4069
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Jun 30 09:30:05 2023 +0200

    contrib: gettext: add local unistd to reuse textstyle.h
    
    On Windows fsync is not declared, we need a header that declares it,
    from gnulib.
    
    (cherry picked from commit 3dac9ffa929a1a517e9b29df22c96f55259156a8)

commit 159c7142025743774a1a5c735d8057b469d898e2
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Jun 30 07:41:01 2023 +0200

    contrib: gettext: don't build libasprintf on Linux/mingw-w64
    
    They have native support for it.
    
    (cherry picked from commit 07bca76d365a53239a8fb563505235aa46742e99)

commit cd508c0607478c1b9460c7160c7fe6407bef4799
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Jun 27 08:29:27 2023 +0200

    contrib: update gettext to 0.22
    
    (cherry picked from commit dd4338525b711433d057e7f9c512835ca926f632)

commit e17734149bfe7d681d1256dbf812148d19230da4
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Sep 15 13:17:45 2022 +0200

    contrib: gettext: remove extra CFLAGS with no extra
    
    It's already part of HOSTVARS.
    
    (cherry picked from commit 6fa63706dfedd77f28a8b3396d76bf951cfe8641)

commit 3ad5c847fe3337149c182b84c2b1984df5086aa9
Author: Martin Storsjö <martin@martin.st>
Date:   Fri Aug 12 11:13:49 2022 +0300

    contrib: gettext: Backport a gnulib patch to fix building on Clang 16
    
    Clang 16 made implicit function pointer conversions in C an error
    (which previously was only a warning).
    
    This backports the following change from upstream gnulib
    to the version of the files bundled in gettext:
    https://git.savannah.gnu.org/cgit/gnulib.git/commit/lib/obstack.c?id=0cc39712803ade7b2d4b89c36b143dad72404063
    
    This fixes errors like these:
    
        obstack.c:351:31: error: incompatible function pointer types initializing 'void (*)(void) __attribute__((noreturn))' with an expression of type 'void (void)' [-Wincompatible-function-pointer-types]
        __attribute_noreturn__ void (*obstack_alloc_failed_handler) (void)
                                      ^
    
    (cherry picked from commit 2afe251d735b03c030dcd227a9a51fc7d426b7c0)

commit cf5ce9db69e4973b09927b90e40fb485274b109a
Author: Jean-Baptiste Kempf <jb@videolan.org>
Date:   Sun Feb 20 17:04:21 2022 +0100

    Contribs: update gettext to 0.21
    
    (cherry picked from commit 5494afa0e9df55cd92982e81e516c2e26e965be8)

commit 0c74bb94ad352da2794ccc5b65fcd6120a917e54
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Wed Sep 6 15:00:42 2023 +0700

    demux: webvtt: fix style/header leak
    
    (cherry picked from commit b7c8649644a3806bf9e24637e466474bf4710d64)

commit 87f3a6424d5de64968ed324c3f0eef8895456847
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Mon Jul 28 15:17:39 2025 +0700

    packetizer: h264: check range for delta_scale
    
    refs #29224
    
    (cherry picked from commit 5cf0e2af37846baf1d6fa60a94b47cb4e450471f)

commit a0338747da84fc543bf9d4115acbb7a7f66ee131
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Jul 25 14:48:31 2025 +0200

    contrib: ebml: fix leak of upper elements
    
    This can happen in damaged files. Undamaged files are unaffected.
    
    Sent for review upstream in https://github.com/Matroska-Org/libebml/pull/321 / https://github.com/Matroska-Org/libebml/pull/322
    
    (cherry picked from commit cace91aebc7c1fc7dffecd8c88992a49b8e9438a)

commit 8c62ca272d8f907c7e344c473776e12d2f2451dc
Author: Johannes Kauffmann <johanneskauffmann@hotmail.com>
Date:   Sat Dec 3 22:19:27 2022 +0100

    contrib: freetype: actually disable bzip2
    
    Regression from d9c9482b253762312bcb5c0ab5043e34bb23575f.
    
    This fixes linking on macOS with static Qt from contribs:
    
    Undefined symbols for architecture x86_64:
      "_BZ2_bzDecompress", referenced from:
          _ft_bzip2_file_fill_output in libfreetype.a(ftbzip2.c.o)
      "_BZ2_bzDecompressEnd", referenced from:
          _ft_bzip2_stream_io in libfreetype.a(ftbzip2.c.o)
          _ft_bzip2_stream_close in libfreetype.a(ftbzip2.c.o)
      "_BZ2_bzDecompressInit", referenced from:
          _FT_Stream_OpenBzip2 in libfreetype.a(ftbzip2.c.o)
          _ft_bzip2_stream_io in libfreetype.a(ftbzip2.c.o)
    ld: symbol(s) not found for architecture x86_64
    
    (cherry picked from commit 0f6b7fab25d8c79f078b0c7b7a98ea4ebe3e2b5a)

commit b46561576c641984171ff714598b412fbc6d66c9
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Sep 26 12:41:42 2022 +0200

    contrib: freetype2: disable building doc and brotli
    
    Fix regression from d9c9482b253762312bcb5c0ab5043e34bb23575f
    
    Ref. #27365
    
    (cherry picked from commit 0afd81965307eb0b767538e9506a3c03661accb6)

commit 47737025415823b484303919e2a73e55769e6315
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Sep 13 12:09:17 2022 +0200

    contrib: freetype2: build with CMake
    
    So we don't use a home made build system that doesn't allow out of tree builds.
    
    (cherry picked from commit d9c9482b253762312bcb5c0ab5043e34bb23575f)

commit 7954edabe247681aaacd97ecbd660910ac88d9f3
Author: Tristan Matthews <tmatth@videolan.org>
Date:   Mon Jul 28 11:23:28 2025 -0400

    contrib: png: update to 1.6.50
    
    (cherry picked from commit debf83ba467c2c302510acdfa4b5ef9049678fae)

commit 29b00a3c0e7e880d6c4bc40b16e53a1414e4011f
Author: Tristan Matthews <tmatth@videolan.org>
Date:   Wed Jun 25 07:13:32 2025 -0400

    contrib: png: update to 1.6.49
    
    This release "includes a fix for a floating-point bug in the setter of the mDCv chunk."
    
    (cherry picked from commit 2d3763a8780ca48ec415f11708d81110fa60558a)

commit d03d8e7f583e81010a09a9da4a0dbb84d0d077e1
Author: Tristan Matthews <tmatth@videolan.org>
Date:   Wed Feb 12 16:40:25 2025 -0500

    contrib: png: update to 1.6.46
    
    (cherry picked from commit d05a600c4b27e28d73ed91aa34714f3027e3da7c)

commit baeaaeec24e34398dab4efd24d0c9a86949688ed
Author: Maxime Chapelet <umxprime@videolabs.io>
Date:   Fri Jan 24 15:24:19 2025 +0100

    contribs: png: disable debug lib suffix for all platforms
    
    Given contribs are bootstrapped with `--disable-optimizations` option,
    the CMAKE flag `-DCMAKE_BUILD_TYPE` is set to `Debug`, and when
    build configuration is set to `Debug` in libpng contrib, it CMAKE
    configuration append a `d` char to the static library name,
    resulting in a lib named `libpng16d.a` instead of `libpng16.a`.
    Then some vlc module depending on libpng aren't able to link
    properly as they can't find their lpng16 dependency.
    
    (cherry picked from commit 9858ba5d19d0aa5dafd779be307f951cb1273589)

commit f56486f751db7c6a01c81a0120f59e8eca94553f
Author: Tristan Matthews <tmatth@videolan.org>
Date:   Thu Dec 12 12:04:49 2024 -0500

    contrib: png: update to libpng 1.6.44
    
    (cherry picked from commit 04f140a9d0c6a40bc999e1fa2f973680d9109b5b)

commit 8ac9d4671b8c476f78527a25374682b86e9bd3cc
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Sep 21 13:40:54 2023 +0200

    contrib: png: fix update from older installed version
    
    When you have an old png+zlib in your path, it was using that
    to detect the PNG/ZLIB incompatibility instead of using the
    local pnglibconf.h
    
    (cherry picked from commit 5a75966b395d13cab0fa082e50e34b36a554840a)

commit 2b8ef26f87fdd159d7c0e3195ec92107d88ef49f
Author: Tristan Matthews <tmatth@videolan.org>
Date:   Sat Jul 15 15:42:10 2023 -0400

    contrib: png: update to 1.6.40
    
    Changes from version 1.6.39 to version 1.6.40
    ---------------------------------------------
    
     * Fixed the eXIf chunk multiplicity checks.
     * Fixed a memory leak in pCAL processing.
     * Corrected the validity report about tRNS inside png_get_valid().
     * Fixed various build issues on *BSD, Mac and Windows.
     * Updated the configurations and the scripts for continuous integration.
     * Cleaned up the code, the build scripts, and the documentation.
    
    See:
    https://sourceforge.net/p/libpng/code/ci/libpng16/tree/ANNOUNCE
    (cherry picked from commit 12787876b36d0db2abefb4c6714585a407ea47c1)

commit a96135c0a2b314ff43c5ccff6ff17bdc8ee9960f
Author: Tristan Matthews <tmatth@videolan.org>
Date:   Tue Jan 10 10:24:23 2023 -0500

    contrib: png: update to 1.6.39
    
    On 32-bit ARM, the cmake default is now -DPNG_ARM_NEON=off so we do runtime
    detection for platforms where it's not already hard enabled.
    
    (cherry picked from commit 2a242c29b2445899584ae09abdba7a55dac7d603)

commit 845eb47467557f4c28c2ba1e92cbb88dd17879b0
Author: Martin Storsjö <martin@martin.st>
Date:   Mon Oct 10 00:24:00 2022 +0300

    contrib: png: Don't require runtime checks for NEON on arm on win32
    
    NEON is always available there, just like on iOS.
    
    This fixes building for Windows on ARM after switching to building
    libpng with CMake - after that change, building failed due to
    "No support for run-time ARM Neon checking; use compile-time options".
    
    (cherry picked from commit a4240eedabe5ef823d929d48449d36c64a71ada8)

commit 8aef6c5ba717e0dd4f67c4f5ca242c61313479b5
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Oct 3 09:49:48 2022 +0200

    contrib: png: update to 1.6.38
    
    * Added configurations and scripts for continuous integration.
    * Fixed various errors in the handling of tRNS, hIST and eXIf.
    * Implemented many stability improvements across all platforms.
    * Updated the internal documentation.
    
    (cherry picked from commit 20bdf55cb5a5903b2c3bc032bf646e3f0b903a64)

commit afb5a980544baa8f0ac9cbb5ba0eac35d1ea3cf4
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Oct 3 09:44:58 2022 +0200

    contrib: png: build with CMake
    
    And don't depend on an outdated automake 1.11 version.
    
    (cherry picked from commit 319339db5a538afe1490038e2bf8c8731cf3a710)

commit 655f0a35e2b336d72a2eda9fe393b27695790f2b
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Apr 10 13:22:49 2024 +0200

    contrib: zlib: disable --version-script on static libraries
    
    According to the documentation it's only useful for shared libraries.
    With recent Android NDK this leads to linking issues with gz_intmax
    In autotools it's only set with LDSHARED.
    
    https://ftp.gnu.org/old-gnu/Manuals/ld-2.9.1/html_chapter/ld_3.html
    (cherry picked from commit e50ca0c0b407195d7d3ecc77fdaccb2ec01eda6d)

commit 16d5a84862ba87639fbfb7b96aa202bf8eb18488
Author: Alexandre Janniaux <ajanni@videolabs.io>
Date:   Mon Feb 12 20:43:26 2024 +0100

    contrib: zlib: bump to 1.3.1
    
    Rewrite the first patch on top of v1.3.1 and simplify it since we always
    need the same name for the static zlib target.
    
    Remove the second patch since there is now a ZLIB_BUILD_EXAMPLES cmake
    switch to disable the examples.
    
    (cherry picked from commit 29fbfc0d75e361293ed8c86b837ac4c761f0839a)

commit e2e42eaaac29db1ff403a6a0304f2839a0280fe6
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Sep 29 14:29:51 2022 +0200

    contrib: zlib: only use the proper libz name for the static library
    
    We don't care about the dynamic library. It should not pollute our build with a
    similar name.
    
    (cherry picked from commit 1419660b5e4cc260adcdaf8d51ae50b3b7cf700a)

commit bc5a81c2e3e647831f9ce4bebc0fc33e41713e5c
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Sep 29 09:45:12 2022 +0200

    contrib: zlib: disable building examples
    
    Hopefully this should fix the odd emscripten random build failure.
    
    (cherry picked from commit cc0c26ab1de415c960788a965a8f0ae47bcbec6c)

commit 114a20915a98ddbfd3c0b8dce9018ee310200e0a
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Sep 22 13:02:40 2022 +0200

    contrib: call sed directly on the files to change
    
    (cherry picked from commit 637d00420fa1a3f4b71215ba869cb5d05bb7bead)

commit 194f5235003f1172e1d3dd752ec4643fc4b0b94b
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Sep 9 09:40:18 2022 +0200

    contrib: zlib: build with CMake
    
    (cherry picked from commit c3af02188c623692d33a703020f65ecf3d18f39e)

commit 77e9b206c6024e6af7c687d302bfcd6e34c3ab31
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Sep 15 14:08:12 2022 +0200

    contrib: use $(MAKE) -C to build
    
    (cherry picked from commit 3ce55c39551fb6188718330b333a1fd24a8cb1ee)

commit dc88699432b582b0d4193d0abd46c7cdca3a5616
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Apr 17 14:31:42 2019 +0200

    wingdi: use a better stretch mode
    
    This gives a much better picture quality.
    
    If the call fails (COLORONCOLOR not supported) this has no effect and the old
    ugly stretch mode is used.
    
    (cherry picked from commit 622389c9)

commit 1fd71e04f1140d3b42555d9a3c101c7e436460c7
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Nov 24 11:09:48 2023 +0100

    mrl_helpers: return the escaped string in mrl_EscapeFragmentIdentifier
    
    We don't need an error code.
    
    (cherry picked from commit 6c9543c4d435d23d16c496589ea2201d9c2d420a)

commit 1e71d438fede23a98bd6da9339e27f0dfa5435aa
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Nov 24 10:26:30 2023 +0100

    modules: set VLC_MALLOC on strings allocated by a memstream
    
    After vlc_memstream_close() the memstream cannot be used anymore.
    
    (cherry picked from commit e52cc89f8077c4cf264faabec470b09cd70d8d9a) (edited)
    edited:
    - the smb2 code doesn't have the extra line ending
    - 3.0 doesn't have the HLS stream output.

commit b2e8eaaf14b3d9e256cedcf4748e7633068a3c6f
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Nov 24 10:21:58 2023 +0100

    core: set VLC_MALLOC on strings allocated by a memstream
    
    After vlc_memstream_close() the memstream cannot be used anymore.
    
    (cherry picked from commit 02b47bc2e4c5e612bc7f38412ade12c0f676f3d9) (edited)
    - vlc_strfplayer is vlc_strfinput in 3.0
    - es_out and vlc_player don't have the related API's in 3.0

commit 7e15be40f6cdca99e66406801995b208bca1e89d
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Nov 24 08:13:39 2023 +0100

    webvtt: don't reset empty memstream pointer
    
    The content is later used with vlc_memstream_write. Passing NULL is undefined.
    On Windows it uses fwrite which doesn't allow passing NULL [1].
    
    [1] https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/fwrite
    
    (cherry picked from commit 932a1c3e9cd476ff650d5a6a497a9aad351e8227)

commit ce3bebaece28fa737364fbeffd6b1fe62e28da4b
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Nov 24 07:25:41 2023 +0100

    modules: fix vlc_memstream_close success checks
    
    It doesn't return VLC_SUCCESS but 0 (even though it's the same thing).
    
    (cherry picked from commit 05761dd35816a6f4086b8f3da9b9ba6684e736ea)

commit eaa8a3c3a0a58bb9ec8caeaf3c1372be3da1b93a
Author: Thomas Guillem <thomas@gllm.fr>
Date:   Thu Jul 24 08:17:22 2025 +0200

    test: demux-run: always print error (on stderr)
    
    (cherry picked from commit 194d83767780313e589da432b574d1f6e1393383)

commit 7492a0e9a0ec6b805072776ed9d3da95f1c80fc1
Author: Marvin Scholz <epirat07@gmail.com>
Date:   Tue Mar 25 15:21:33 2025 +0100

    contrib: speex: do not pass --disable-neon
    
    Speex' configure does not recognize it and warns about it.
    
    This effectively reverts 6860455438177ba8669a2d0738bdd9503abc5cb5
    
    (cherry picked from commit 32412f3161e2cca13d20b9032e9cd5c289426502)

commit 25ef86375dfc87a2d1ed762c898288fabbc48f60
Author: asivery <asivery@protonmail.com>
Date:   Fri Jun 13 01:23:39 2025 +0200

    demux: add A_ATRAC/AT1 support in matroska
    
    Signed-off-by: asivery <asivery@protonmail.com>
    (cherry picked from commit 14217002b528a7334013011d9473a3a4bdf34c75)

commit 2f3633f15953533658eb8d5ed26924bf0fe3b877
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Feb 13 11:37:37 2025 +0100

    demux: asf: remove hardcoded overflow checks
    
    vlc_alloc does check the multiplying is possible.
    
    (cherry picked from commit c0a72e5cda0f8c71f096cfe9008f630ab8ad9607)

commit 4f60d1ac2d53a36a2a098c4ae66eaa1d7c4b7b65
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Jul 11 09:14:19 2023 +0200

    modules: allocate with the table type size
    
    So there can be no mismatch.
    
    (cherry picked from commit 8b2d42c400cbdc4cea05c0149864530e3ba728f4)

commit 60e3b680b52ac81996ef414c5d5fc1da0b0e4566
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Jul 11 09:31:09 2023 +0200

    asf: use the table size to check if the number of streams can fit
    
    This is more logical. The #if check should also use that, but we can't use
    sizeof() here.
    
    (cherry picked from commit a7c77cf44777eaabfbeea756eaacb8ceea8bda36)

commit 64af7294faab7a8affe33d6eb02bb4529281394c
Author: Alexandre Janniaux <ajanni@videolabs.io>
Date:   Thu Jan 30 15:36:31 2025 +0100

    packetizer: av1: fix double free
    
    If the p_extra is freed in the previous branch, it is also freed in this
    branch without being reset to NULL before.
    
    Regression from a95213e20de69d584324f6d0c9f37c7a7cdfe3e3.
    
    (cherry picked from commit fc0325dbe13bb3d7a2fb0438beeb658897e01044)

commit de7cf8f21f4f19c4c535bba8afac5aefbc54deac
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Jun 10 14:57:05 2025 +0200

    css_parser: check allocation errors
    
    (cherry picked from commit 3a90548bc1c85a18d81f14f3ce5aedc5af943b6a)

commit 9fbced240edf4cfd0502cd7344818e1e5f5df702
Author: Thomas Guillem <thomas@gllm.fr>
Date:   Thu Jul 24 11:30:20 2025 +0200

    webvtt: fix null pointer passed in qsort
    
    From UBSAN: null pointer passed as argument 1, which is declared to never be null
    
    (cherry picked from commit b26cb55943993b8060754f9757f8ea354736b8e2)

commit 3fb3d83683b6954247848bbe05aca10967e5c8cb
Author: Steve Lhomme <slhomme@matroska.org>
Date:   Wed Jul 30 10:41:23 2025 +0200

    CI: update the libvlcjni targets to support 16k aligned libc++_shared.so

commit 4f03ee47ef2f37acc4af4649d0ac9f99a572020c
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Jul 25 15:33:31 2025 +0200

    contrib: ebml: use backported versions of string reading
    
    The code is cleaner and doesn't leak local buffers when readFully() emits
    an exception. As in "oss-fuzz 5479158623043584".
    
    Backport sent upstream at https://github.com/Matroska-Org/libebml/pull/323
    
    (cherry picked from commit bee5a09d3e231e125b8bc72d04fc6b62e81533a7)

commit 7ad9339a5fbd0976159cea3e6c568ff0b6835dcc
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Apr 15 16:43:14 2024 +0200

    contrib: zvbi: don't keep the full iconv path
    
    It disturbs libtool.
    
    (cherry picked from commit f0e3a36f562a23fa19be0e84d6a9dc5499433ceb)

commit e05d859a7414a02a4cb4e6f0b107407804e06ac4
Author: Sean McGovern <gseanmcg@gmail.com>
Date:   Sat Sep 4 12:34:47 2021 -0400

    contrib: zvbi: fix __va_copy() usage
    
    (cherry picked from commit beebc0dec083be5cc5583d5356a6ce89e19d27ee)

commit da391be597edb7bebf1f153eb41d567d6ed0fa64
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Nov 24 14:22:32 2023 +0100

    memstream: reset ptr on vlc_memstream_close() error
    
    It's easier to spot of NULL pointer dereference than a use after free.
    
    In the POSIX implementation [1] the status of the pointer is undefined on
    error. In our implementation it's free'd.
    
    In both cases it's better some to use that pointer value after exiting
    vlc_memstream_close().
    
    [1] https://pubs.opengroup.org/onlinepubs/9699919799/functions/open_memstream.html
    
    (cherry picked from commit e957881f713b057b3841a44ec023c404544748d7)
    Signed-off-by: Thomas Guillem <thomas@gllm.fr>

commit cddc7aea18c694a3277ee4432f93f281f8a867de
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Nov 24 08:08:25 2023 +0100

    memstream: do nothing when writing a length of 0
    
    (cherry picked from commit a3749aa6a159636ca844dd3d75567737fbe83954)
    Signed-off-by: Thomas Guillem <thomas@gllm.fr>

commit 5a8d8a88ef6a16a81ed5115e765eb372ce3d53ab
Author: Rémi Denis-Courmont <remi@remlab.net>
Date:   Tue Jul 16 22:49:20 2019 +0300

    memstream: handle overflow
    
    (cherry picked from commit ed7707caffbde23921dedc545694f5d56dd8b877)
    Signed-off-by: Thomas Guillem <thomas@gllm.fr>

commit 09208d78ab928d4d1928570309afc1a19a5bed6b
Author: Rémi Denis-Courmont <remi@remlab.net>
Date:   Tue Jul 16 22:49:12 2019 +0300

    memstream: handle overflow
    
    (cherry picked from commit cd9085186853ff87f13fb5a1cff42787b7639b63)
    Signed-off-by: Thomas Guillem <thomas@gllm.fr>

commit 1763811d7fb7c9ad09fe4598816d09446b3be14f
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Jul 24 11:02:58 2025 +0200

    contrib: add more Android target selection in toolchain.cmake
    
    As done in dbc272a9e65cf197d3e5147763a2373684a23f77 but without the python script.

commit 9f7290dade520b5fb8837df23c3051451c36b0bd
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Jul 24 10:41:57 2025 +0200

    contrib: include the NDK android.toolchain.cmake on Android
    
    Similar to b2ae29b45449e8451a8298f849223f035c484aec but without the python script.

commit 2337fc781e6e8de5c48aee2e111d04e8c185a095
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Jul 23 13:57:46 2025 +0200

    configure: check ffsll is declared in a header
    
    On Android 25 it's a static inline.
    Calling VLC_REPLACE_DECL after AC_REPLACE_FUNCS for the same function should work.

commit 6d76c7dddd762062aa26d9885e839550b2a70717
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Jul 24 08:04:56 2025 +0200

    configure: check swab is declared in a header
    
    On Android 25 it's a static inline.
    Calling VLC_REPLACE_DECL after AC_REPLACE_FUNCS for the same function should work.

commit 798b074e5b27146b3d0cfede568cb6e29a58772f
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Jul 24 08:47:15 2025 +0200

    contribs: put the config.guess/sub in the right folder
    
    UPDATE_AUTOCONFIG puts them in the root but some contribs
    use a different location.
    It's already handled by some contribs but not all added by c5f6f819f8d9554f3ceefead3c990ef48a1a0847.

commit 6edaf9b5a1edbb7ca41326be20dd4b4669493556
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Jul 24 08:45:21 2025 +0200

    contribs: add missing autotools config updates
    
    Not covered by c5f6f819f8d9554f3ceefead3c990ef48a1a0847.

commit daf06b51c8d2573ad5d6ae81bb3aa8b2014e43a2
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Jul 23 13:43:10 2025 +0200

    contrib: live555: disable OpenSSL
    
    As done in 78998cab182bbdbd1915deeead1ad4bc945b514e for VLC 4.

commit 8a04fb720fce6f31cceb0b2a24cc6255bca2694d
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Jul 23 11:15:10 2025 +0200

    contrib: iconv: build before installing

commit c7fa48c6f86e56cc37a26a31e5635a707cc31477
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Jun 21 07:55:14 2024 +0200

    contribs: call UPDATE_AUTOCONFIG for targets using ac_aux_dir_candidates to find config.guess
    
    Or at least using AC_CONFIG_AUX_DIR.
    
    (cherry picked from commit c5f6f819f8d9554f3ceefead3c990ef48a1a0847) (rebased)
    rebased:
    - some files don't exist on 3.0
    - some patches existed in 4.0 not found in 3.0 and vice versa

commit 260dc7cb3060e02d5071df0cbe2a00db2345bca2
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Apr 10 15:37:10 2024 +0200

    contrib: zvbi: fix Android usage of pthread
    
    - pthread_create is not detected properly with the NDK26.
    - pthread_cancel is called but it's not supported by Android, it's probably dead code that is removed during linking
    
    (cherry picked from commit 848b0f08c10480079809c46951809da543fea39c) (rebased)
    rebased:
    - the code around is slightly different

commit 9407d0e1e2c425e2ff717bfbd050c63c0c3a728f
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon May 15 08:19:56 2023 +0200

    contrib: update libiconv to 1.17
    
    (cherry picked from commit 29d9e2b0c42ddfa2b3706a24bc632f98922e3232) (rebased)
    rebased:
    - the code around is slightly different

commit f011f80b2d86b8637b61f9beadd8095dee758e2f
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue May 16 10:17:10 2023 +0200

    contrib: iconv: remove GetFileType UWP patch
    
    GetFileType() is allowed in Win10 UWP.
    
    (cherry picked from commit 23246d980d392d749e510c78a7cf64bdff80fb31) (rebased)
    rebased:
    - the code around is slightly different

commit d6314ba2d8d80a1a25c99a25c6f431ce2b1f3047
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Sep 16 05:45:11 2022 +0200

    contrib: iconv: don't build with forced old inline style
    
    It should have been updated to modern C since then.
    
    (cherry picked from commit afdc39763c86078c0c25d1ce8cfcceed744316b3)

commit a271af6babb2a0b14920e1dabbceb2f326f72ba0
Author: Jean-Baptiste Kempf <jb@videolan.org>
Date:   Sun Feb 20 16:45:44 2022 +0100

    Contribs: update libiconv to 1.16
    
    (cherry picked from commit 8c7c22e325e7e5b3df752fea8d6222251f07309a)

commit 896370b46c46b709b9aefc2cf80da8fe485134bf
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Apr 22 12:19:06 2024 +0200

    contrib: fix the CMake i386 and arm ARCH names
    
    It works for Android and should be the same on other platforms.
    
    (cherry picked from commit 06a9b6b3ac09b856bf6907bb98a3b956ca2998e2) (rebased)
    rebased:
    - the code around is slightly different

commit 438287140143be484503f287ec254206177d2484
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Apr 22 12:17:31 2024 +0200

    contrib: force CMake system to Android for Android
    
    So the the proper system detection happens:
    
    https://github.com/Kitware/CMake/blob/master/Modules/Platform/Android-Determine.cmake
    (cherry picked from commit deb9246cd3ef2543a0237583a487df19b00ea671)

commit 0d21f02c130a261580adfff3df8e12f21e7758b8
Author: Rémi Denis-Courmont <remi@remlab.net>
Date:   Wed Jan 19 18:47:58 2022 +0200

    contrib: cmake: require a system name
    
    Cross-compilation will fail if the system name is not specified, because
    such is CMake's design.
    
    (cherry picked from commit f2e67d22ff313ce44bd60cd534d51ff529ffda00)

commit ce9e5e89a3840f9d21ec8437ac39c3523f367d9c
Author: Rémi Denis-Courmont <remi@remlab.net>
Date:   Wed Jan 19 18:47:34 2022 +0200

    contrib: cmake: set CMAKE_SYSTEM_NAME on Linux
    
    (cherry picked from commit 485a809c4bcbb388f77367d75108ee216561032b)

commit 404d94266b50c8a498b98d3415adfb80d8a55eb3
Author: Alexandre Janniaux <ajanni@videolabs.io>
Date:   Fri Jan 27 16:42:33 2023 +0100

    extras/tools: bump bison to 3.8.2
    
    Fixes #28048
    Fixes videolan/vlc-android#2477
    
    (cherry picked from commit 3a7c80c1fb7167f4ee94d50e76ec8a1545151ef8) (rebased)
    rebased:
    - the code around is slightly different

commit e085a8240816d16a8c3c3b0e2b621ee1bce3a8fb
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Jun 27 08:35:11 2023 +0200

    extras/tools: update gettext to 0.22
    
    (cherry picked from commit acdd200e96e3d8c195729a1440de45df0d077445) (rebased)
    rebased:
    - the code around is slightly different

commit a183a71f189c8efb077b7c0ce5e20705dc5d3a6e
Author: Martin Storsjö <martin@martin.st>
Date:   Thu Jun 14 14:19:39 2018 +0300

    extras: tools: Provide gettext if necessary
    
    Building many contribs requires having autopoint available, and
    having using the version from contribs isn't right when cross compiling.
    
    (cherry picked from commit d1d2759d799442baef78d451d53f8790a8e6a325) (rebased)
    rebased:
    - 3.0 needs ".buildgettext" to be called properly
    - the code around is slightly different

commit c495a9a12249943823a44a2494ff0981c8d39b5a
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Fri Jun 20 16:13:59 2025 +0800

    demux: adaptive: remove trivial setters/getters
    
    (adapted from commit 1d4ecd2c252691b69420ae891b94ddf421b5f462)

commit af3e7af1838e0e0393f68e11abff93ec55a096e6
Author: Astrom Cheng <xifengcun@hotmail.com>
Date:   Fri Jul 4 05:58:50 2025 +0000

    [3.0] demux: flac: prevent seeking logic get stuck

commit 08dae4ad1d6c16df5d25245d6436324456b6130b
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Fri Apr 25 15:56:41 2025 +0700

    xml: Node: remove unneeded includes
    
    (adapted from commit ac37bcc89d6a0b7293168350f7c2c022b37bcd9d)

commit cc09ef58eddb0284b925d618079fd80f6f123b27
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Wed May 7 14:08:39 2025 +0700

    demux: adaptive: return string reference for ContentType
    
    (adapted from commit 05e6bc4a080b16266362276b43ad6c23f722c258)

commit 7008fb63145739b30b0a616cf1f524a6fb44a7f7
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Tue May 27 18:15:00 2025 +0700

    demux: adaptive: fix potential dead loop with non block methods
    
    (cherry picked from commit 62961d2a402a72978f124f2ca904057a4e7b97fb)

commit 5a9459ce2a522c515be1ae2d34c8c8ebd00d98ac
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Fri Jun 6 16:00:35 2025 +0700

    demux: adaptive: correct logics default uxtors
    
    (adapted from commit 7e3ce3d0d5f4dc091ff5a7a42edb93e2f2752473)

commit 33697d7c0a00ede43d4ee29ddc1e7b1f5fc36557
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Fri Jun 6 19:52:25 2025 +0700

    demux: adaptive: fix deletion order between logic & resources
    
    (cherry picked from commit cb509e30da3d54a54c0d5946528a6e350a577c19)

commit 0ef5c1296bda493a733c270e7b0f501ee3a4ca5f
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Wed Jun 18 17:35:01 2025 +0800

    demux: hls: fix byterange offset propagation
    
    refs #29179
    
    (cherry picked from commit c52d819d60090ac41d78604e6455e3deaeffb736)

commit e7cf1c17e66e687c6e3d6ad3d5d1909220a7e77a
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Wed Jun 18 17:25:22 2025 +0800

    demux: hls: fix byterange attribute comment
    
    (cherry picked from commit e367a322a9f268c38a25924d2449af557dc6f563)

commit e4d11f202910a52e5f5dab400e39299b73cb7ab5
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Thu Jun 19 16:11:28 2025 +0800

    demux: adaptive: replace Unset with optional
    
    (adapted from commit af4c229f325dd89c2f8bbb207533a548e667369a)

commit eebc64c395c58bff3b7ba5bccdd32ae2035f8775
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Thu Jun 19 16:08:13 2025 +0800

    demux: adaptive: add std::optional compatibility
    
    (cherry picked from commit 3870be59cdf753c571ab3834d9c8a85547bc635e)

commit 9e304223660f8878f4db70b21adca4820836c21e
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Mon Jun 9 18:35:41 2025 +0700

    demux: hls: add test for subrange continuity
    
    (cherry picked from commit 5503b393ec578aca23fb3cb237ade492ff5586d5)

commit 0598db331e123aa38681380458970c7bfa76d84c
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Mar 31 09:02:37 2025 +0200

    win32/filesystem: use CreateFileW with FILE_SHARE_DELETE in vlc_open()
    
    So the file can be renamed while we read it [^1].
    
    The file permission creation mode is not used anymore.
    Only 0666 and 0600 were used.
    
    Fixes #19700.
    
    [^1]: https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilew#file_share_delete
    
    (cherry picked from commit 73950592f883ff237173837c5574416cb3d0beec)

commit c96fecdf230d18f802222abc3267d645f2120800
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Jun 24 11:34:30 2025 +0200

    direct3d11: fix potential double free
    
    When the pool size doesn't match the input size, the p_sys->resource may change.
    We just want to release the ID3D11Resource we got from OpenSharedResource1().
    
    Issue consecutive to 833b02552a6d6055f1ed1d5f84827ac213db5774.

commit e3463d2eb3423ff5c79c3f67ebe4d5a0a1f336ff
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Sun Jan 22 21:04:08 2023 +0100

    demux: adaptive: fix bogus port discarding condition
    
    (cherry picked from commit 6d65ec658949c63546af2df9758865aeed1a23e5)

commit 7d59fbc7310687f7056d75564569fe2009005562
Author: Khalid Masum <khalid.masum.92@gmail.com>
Date:   Thu May 29 17:50:05 2025 +0600

    contrib: freetype: update to 2.13.1
    
    (cherry picked from commit 1ef06f3349a66e9ec8c6c88dcfa71806d8d2067b)

commit d1fd0eda8d830fcf5e85ee76fdc63c5e0cf7bd80
Author: Johannes Kauffmann <johanneskauffmann@hotmail.com>
Date:   Sat May 27 12:59:26 2023 +0200

    contrib: freetype: update to 2.13.0
    
    (cherry picked from commit 923fc85ac9e6d77904cbccc235cbb7eed93b6fbb)

commit b8678c346501614125ba2093ad670139814c0bac
Author: Tristan Matthews <tmatth@videolan.org>
Date:   Mon Jun 16 14:06:04 2025 -0400

    contrib: ogg: update to ogg 1.3.6
    
    (cherry picked from commit e94baffb23596029e90d535a2a3c79ddf6d9bf54)

commit 38f6ba0f868d4b3fd5229ad63b8730aadcad65c0
Author: Johannes Kauffmann <johanneskauffmann@hotmail.com>
Date:   Wed May 31 23:26:57 2023 +0200

    contrib: ogg: avoid installing documentation
    
    (cherry picked from commit e3c25c0f35cd2e6d0ce9efc7950a1539923d3189)

commit 3c1998d4e191fd9d58e82cdd8785e5db975791b2
Author: Johannes Kauffmann <johanneskauffmann@hotmail.com>
Date:   Tue Jun 17 08:17:46 2025 -0400

    contrib: ogg: update to 1.3.5
    
    (cherry picked from commit 8ae3870ca9e5030ff554a56545c6fa7445bfd876)

commit bb9031aac02b02c24d4d5e31634814f8b88123bf
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Jun 17 08:15:09 2025 -0400

    contrib: ogg: build with CMake

commit a075cd0bf5787e540e4fa957f040f9477c090dbe
Author: Tristan Matthews <tmatth@videolan.org>
Date:   Tue Sep 3 12:15:29 2019 -0400

    contrib: ogg: update to 1.3.4 and fix typedefs for MacOS
    
    (cherry picked from commit 8c7a70b62f200a612ab0aa2f53e2fde090fddc4a)
    (cherry picked from commit 03b3f47bda6f462533c2d8eab74ea44799053b2c)

commit 3d209f05270dc109a5b737c30c9bee3a51206859
Author: Tristan Matthews <tmatth@videolan.org>
Date:   Mon Jun 9 15:21:35 2025 -0400

    contrib: vpx: update to 1.15.2
    
    This release fixes CVE-2025-5283 (bug webm:413411335), and is ABI compatible
    with the previous release.
    
    (cherry picked from commit 5869fc3ef1f33649cd5606117f9692e73a2ea4e4)

commit 5283b2a71f51b8bf21ce90dc7ef9f85c05bedfea
Author: Tristan Matthews <tmatth@videolan.org>
Date:   Thu Apr 10 12:40:39 2025 -0400

    contrib: vpx: update to 1.15.1
    
    The dropped patches have been merged upstream.
    
    (cherry picked from commit 6351a747182cdfee5c2a7341083b6196254a160b)

commit 97d5de37cfd7361fadbd5069133d73949b2d660c
Author: Devin Heitmueller <dheitmueller@ltnglobal.com>
Date:   Sun Jun 1 19:32:51 2025 -0400

    codec/cc: Fix lost CEA-608 pair for DVD captions with truncate flag
    
    If parsing GOP based captions, the truncate field wasn't being
    properly respected, resulting in the last pair being lost if the
    flag was set.  This would cause intermittent caption bytes to be
    missing (e.g. missing characters in rendered captions).
    
    Correct the logic so that the last pair isn't lost, by comparing
    the code against the original ccextractor code it was based on.
    
    Tested with "Sports Night", season 1, disc 1.
    
    Signed-off-by: Devin Heitmueller <dheitmueller@ltnglobal.com>
    (cherry picked from commit 778d9d254ebc5da7f40ecd7ccccd66fc99adc27b)

commit 6ecb42759578469259a497279746cb70f409bb2a
Author: Devin Heitmueller <dheitmueller@ltnglobal.com>
Date:   Sun Jun 1 19:27:15 2025 -0400

    codec/cc: Fix garbled DVD CEA-608 captions with large cc_counts
    
    The GOP parser for captions when found in DVD GOPs had an error
    when determining the CC count, which excluded the top bit (i.e.
    only using the lower four bits of a five bit field).  Thus
    it would work properly if the cc_count was less than 16, but would
    lose the rest of the captions in the GOP.
    
    Parse all five bits of the field.
    
    Signed-off-by: Devin Heitmueller <dheitmueller@ltnglobal.com>
    (cherry picked from commit 067b9da0e62d0c57c2442656c9a196d731ce5bd1)

commit ce409518fe268b5cdaded3ee3df24c698a8a65f1
Author: Khalid Masum <khalid.masum.92@gmail.com>
Date:   Fri Feb 28 14:06:22 2025 +0000

    contrib: cddb: add gcc14 support
    
    Since  GCC14, GCC no longer allows implicitly casting all pointer types
    to all other pointer types. This behavior is now restricted to the
    * type and its qualified variations.
    
    https://www.gnu.org/software/gcc/gcc-14/porting_to.html#incompatible-pointer-types
    
    This causes cddb fail to build on gcc14. This patch fixes that.
    
    (cherry picked from commit 674d2da4f3bb6806a5ba17b9b8106aca7006a1a1)

commit 1f846116c1b15324b0edae18a4b541f619f3bc29
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon May 26 10:49:02 2025 +0200

    contrib libarchive: link for uuid when building with xmllite
    
    Fixes UWP builds of VLC with autotools
    
    (cherry picked from commit d0b1b4aa062ffdcd7644b765b541a9f07419c5bf)

commit 86d9e3403164b0b7d8ce2f9fdcd8366cc7087e2a
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu May 22 06:51:38 2025 +0200

    contrib: libarchive: update to 3.8.0
    
    Fixes some security issues and bugs [^1].
    
    [^1]: https://github.com/libarchive/libarchive/releases/tag/v3.8.0
    
    (cherry picked from commit d942198743f8c059b1bf475bae48b43985b38fe0)

commit 29e47660ced8e478ad4f7db095bd21b1ea9625d1
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu May 22 14:15:41 2025 +0200

    contrib: dvdnav: fix some mismatched reference index/available elements
    
    (cherry picked from commit ae87cc1de201956333635f0df7f6152ce91bd665)

commit 09ded3f4092c662c7e962faf4358e14e292297db
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu May 15 16:45:07 2025 +0200

    libmp4: always read the tfra data into 64 bits variables
    
    We need to handle the worst case scenario anyway.
    It should not take that much more memory and that avoids
    casting pointers.
    
    (cherry picked from commit 3e4bec57cfc24826aca3a80730353017156c14e8)

commit 4991e43d02898079bf65953887528e9ad51dbabf
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue May 20 13:16:16 2025 +0200

    demux: mp4: remove redundant call
    
    The same call is done below.
    
    (cherry picked from commit 33384c7a9493f6671ef3b0954807d9ed048fba98)

commit 3ea20f6266e71323023fbbbb348afe061264b419
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue May 20 13:22:09 2025 +0200

    demux: mp4: only set p_sys->i_nztime once for moov
    
    (cherry picked from commit 656fc6e0094300f970d6ce92af6a65b1f1e10974)

commit db25f697dad261c7207e3fe016b866df2fd4be97
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu May 15 15:30:00 2025 +0200

    demux: mp4: always set the p_sample_offset_pts to i_ctsdelta
    
    The assignment is the same in all if/else cases.
    
    (cherry picked from commit 58bbde65b1116a4784714691a1082646b3d5221e)

commit 1f4c5ba39a572db5126bcfc683843633716c9b1e
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue May 20 12:51:06 2025 +0200

    demux: mp4: handle moof time outside of FragSeekLoadFragment()
    
    (cherry picked from commit a9a8b3d0ded548ba7a20b571b4ece26c7cd508e6)

commit 8cdf86bf97f48c55823ed81a188a30177b2154e8
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Jun 8 14:12:55 2018 +0200

    demux:mp4: the local i_time in FragGetMoofByTfraIndex() is not an mtime_t
    
    (cherry picked from commit c43b6de185878ea645982dcd0e8d1ddee240f769) (edited)
    edited:
    - in 4.0 it was done when mtime_t was still used

commit 6360e4f5f7ab0128a1563ffa717f32d5b7692582
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue May 20 07:52:15 2025 +0200

    demux: ts: fix mismatched comparison timestamp types
    
    i_first_dts is a vlc_tick_t as seen a few lines above.
    
    (cherry picked from commit 6a8fef1d1ffb336760ce817540887816fe63106c) (edited)
    - 4.0 used VLC_TICK_FROM_MS(500) instead of CLOCK_FREQ / 2

commit 37ec4b604d79a8d5dd48577b56219837d91219a9
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue May 20 07:49:59 2025 +0200

    demux: ts: fix check against TS_90KHZ_INVALID
    
    The TS_90KHZ_INVALID should not be any particular value.
    We can only check if it's equal or not.
    
    (cherry picked from commit e96ebb7dfe1c57de73a37f7e94f2642076896a43)

commit f1a8be1010e4f1d0dc08f7b1b6c9cd1dfe1b035e
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue May 20 07:46:13 2025 +0200

    demux: ts: fix comparison between vlc_tick_t and TS_90KHZ_INVALID
    
    (cherry picked from commit 70942381f759c66f887c081ddf6f5bd789b2dc3c)

commit 91bd06609e3d3c87551a8398a27c2a7b6d18caab
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue May 20 07:41:13 2025 +0200

    demux: ts: fix mismatched substraction timestamp types
    
    i_dts is a ts_90khz_t and the other values are vlc_tick_t.
    
    i_first_dts is already set to FROM_SCALE(i_dts) a few lines above.
    
    (cherry picked from commit 29c1ee07a8b7825cdc46494bf17690c374001358)

commit 1f037b17391c1fdc66f1fdd4ccabdacfda187275
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue May 20 07:35:12 2025 +0200

    demux: scte: fix bogus vlc_tick_t conversion
    
    Originally introduced in 7e3dcdd09c2fac64f00acb360d30f24c74894609.
    
    (cherry picked from commit e3adccef03cd3c477cc59628d0ca998e12da0769) (edited)
    edited:
    - 3.0 did not use FROM_SCALE

commit 46637794bea86d6d08d7ce8cfaa82bc44edf1a44
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue May 20 07:30:07 2025 +0200

    demux: ts: use proper invalid ts_90khz_t value
    
    (cherry picked from commit cd5a435254f1586e671aff9603397cda9222de69)

commit 7f7aad34083b52c8fff63279a8ea0e0b3d4e268a
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue May 20 07:23:36 2025 +0200

    demux: ts: fix bogus vlc_tick_t conversion
    
    p_pmt->pcr.i_first_dts and p_block->i_dts are both vlc_tick_t.
    
    Introduced in 68fcf13842229e17c3db26ed62f457219484ff77.
    
    (cherry picked from commit 086758c8c60f6b36b393a94c7f22400a66368bf3)

commit 02013c329df488df030788e03673fcd5b966d0d4
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri May 16 15:42:50 2025 +0200

    subpicture: set regions to full range SDR by default
    
    The caller of subpicture_region_New() can change it afterwards
    in the region format and the picture format.
    By default the values were undefined and might pick the
    colorimetry of the video.
    
    Ref. #27877 and #26180
    
    Similar to 35396660acf211bc481dffb3e2225072a738ea41 adapted to 3.0

commit e8716078976c2592584531ccc6ad42a311f18ad2
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri May 16 15:16:58 2025 +0200

    text_render/svg: set decoded pictures as SDR explictly
    
    (cherry picked from commit e2fa4b9ebcddfd34a73d83f49b2e63fd83731f65) (edited)
    edited:
    - on 3.0 the range is a boolean

commit f08736c2cbd870bd17bd4e39092fc81e3288dc8a
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri May 16 15:15:37 2025 +0200

    text_render/svg: remove unneeded forward declarations
    
    (cherry picked from commit ff0c91ff96cf37981fb1cd6fbf9763cef06b87ad)

commit 60cd6f53732f001ce714ef03d198de16017fb764
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon May 19 11:20:29 2025 +0200

    kate: output SDR full range by default
    
    We don't want to keep the colorimetry of the video.
    
    (cherry picked from commit 68119b28d87d398911f69734512cfd48c0706e0d) (edited)
    edited:
    - adapted the range variable

commit d415d4150836ca6833b53f91fc2cb9209dafef57
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon May 19 10:32:32 2025 +0200

    libass: output SDR full range by default
    
    We don't want to keep the colorimetry of the video.
    Until there's a proper spec for HDR colors.
    
    (cherry picked from commit acf3fb486a5cd6a0444dc683360ade163bbbd5f8) (edited)
    edited:
    - moved the fmt_region init to match 4.0
    - adapted the range variable

commit bff855760f9517b585ec4b549b35a23445784ae7
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon May 19 10:51:04 2025 +0200

    textst: document the palette colors are in limited range
    
    As found in 9.14.4.2.2.1.1 Semantic definition of fields in PDS
    of the Blu-ray specs.
    
    (cherry picked from commit 888438ee92cab44f310e2eaf97f4ab71db578f2d) (edited)
    edited:
    - in 3.0 the p_sys comes from p_dec

commit b715f900596d2d1a7ade91be1592f19a8fc89cf3
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon May 19 11:35:24 2025 +0200

    spudec: output limited range by default
    
    The YUV colors from DVDs are likely in limited range.
    
    (cherry picked from commit e605d5b4696be26805834d581acbe5e9174af652) (edited)
    edited:
    - adapted range variable

commit 6282a01c737b2793ca84d753a65dc62945f3ebd2
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon May 19 09:06:20 2025 +0200

    dvbsub: keep the color range in the region output
    
    (cherry picked from commit fb2f877d1981c4a207d8db58088f7907c1c1cbf4) (edited)
    edited:
    - adapted range variable

commit b6be9a811b0144fbfa8c3b3eb159f74b8b3e2873
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu May 15 10:02:50 2025 +0200

    demux: mp4: only return true in GetMoofTrackDuration with a duration
    
    If for some reason there is no traf, we returned true even though p_duration was never set.
    
    (cherry picked from commit b76b5e73257f92156da825855ac6700a3c22ded2)

commit 78988161fdc66355d04ae9540e7947c970b6ea81
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Thu May 15 16:04:37 2025 +0700

    demux: ts: wrap probing times

commit 751327805cf98c52b77e6b8c55c1d50701be77c4
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Tue Apr 22 18:13:19 2025 +0700

    demux: ts: fix multiple wrapping
    
    refs streams/ts/1fps93hours.ts
    
    (adapted from commit caf3ea133abc93da7d640fbec5243e3478c3e1d8)

commit c43911dea98312874a7639bdc608d9db1f8cfcb7
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Wed May 14 15:18:36 2025 +0700

    demux: ts: temporary fix timestamps wrapping
    
    for tests & before full fix

commit d22791c5d056744f009ea61d4d8f7a026ceb1cff
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Thu Apr 24 13:52:50 2025 +0700

    tests: add timestamps wrapping check
    
    (cherry picked from commit 56b1956461e627eb6c7f650b35fe239aaf21a6ac)

commit 7f2c6b67cf375b593954e32a4d1a658022ab1437
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Wed Apr 9 13:08:17 2025 +0700

    demux: ts: revert native scale changes to fix wrapping
    
    Can never work with timestamp value 0
    
    (adapted from from commit af38707d0e72f81c5e6e0258a91f4718ca7bdf76)

commit ec97822426bbe40ec995223b80e02790f1707372
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Wed Apr 23 12:39:15 2025 +0700

    demux: ts: add TS_90KHZ_INVALID
    
    (adapted from commit cf2f062fdf6ed1050ecb098d7c131daa46110243)

commit 768977963de7a383db581a63302af2ada66499fe
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Tue May 13 19:13:00 2025 +0700

    demux: ts: change stime_t for ts_90khz_t
    
    (adapted from 0a5bd92c5218f6416d498648254356b4fbc258aa)

commit 4e3a0be7c5b0603d02379627f827fb4334fb9365
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Sat Jul 13 17:25:32 2019 +0200

    demux: ts: workaround broken teletext
    
    (adapted from commit 4d37595856b6164c4b9b6ce104ae97f21242295c)

commit 76b66156781a38bf3aeba9554e8fa90fd382b9b1
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Sat Jul 13 17:25:00 2019 +0200

    demux: ts: store last dts on pes struct
    
    (cherry picked from commit cb1c8d6946ee1b08d47551127c45e485ff12ae2a)

commit 6fbb86e004b75a05f26daf3697cb9170a85298cd
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Fri Jan 17 17:59:27 2020 +0100

    test: add PES assembly tests
    
    (adapted from commit cef77e6f7f0d47df92e3ca609da07916dc44a3fa)

commit 8aeda18935f7f07377fce4abb8e17b3b4bc91c88
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Thu Jan 23 18:10:41 2020 +0100

    demux: ts: don't start PES without PUSI
    
    (cherry picked from commit afe64934d2b5f488dd28c52dd654569e534f1721)

commit d3465ce873808d590e60731772c4dd3551640d46
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Wed Jan 22 16:55:40 2020 +0100

    demux: ts: always end PES on PUSI
    
    (cherry picked from commit d7ace86225528b61508845d3bb762c617e3fc2a1)

commit 58d21108d727e5e822133fc13429e8726a88d0e1
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Tue Jan 21 15:35:52 2020 +0100

    demux: ts: don't append empty ts packets into PES (refs #23654)
    
    (cherry picked from commit 8210974f589be933cc9c9150d8d43f2052bce063)

commit 077e2dcad10bca789dfa6bdf439d95b0e318a7ee
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Wed Jan 22 14:06:06 2020 +0100

    demux: ts: fix output from variable->fixed (refs #23654)
    
    (cherry picked from commit 6efb4c78a573f754987a3bb3df107b720c5986bc)

commit e63d73a2f314b89771211c3eb4ae37b4e0023298
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Thu Jan 23 18:48:15 2020 +0100

    demux: ts: replace push with explicit drain
    
    (cherry picked from commit 7413a20bb2dbfd4691731dd8c5c8b2d8ea727385)

commit fd441747440df227373c81e54433e67d59d9315b
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Fri Jan 17 17:17:55 2020 +0100

    demux: ts: split PES processing
    
    (adapted from commit 7ed1257d9d917e486ad58eabb7cde2f46ea199fc)

commit 37b7094ba2dbf1864517fbe9805966e1060ec1a7
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Fri May 4 19:33:51 2018 +0200

    demux: ts: typedef timestamps
    
    (adapted from commit 68fcf13842229e17c3db26ed62f457219484ff77)

commit f854d8174cb6ad1f51b82f646735cbca465c0f49
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Tue May 13 16:42:44 2025 +0700

    demux: ts: fix scale of first_dts

commit e4cf8ccefe49d9a2a4717409e18997f556b84e21
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Fri Apr 27 16:00:09 2018 +0200

    demux: mp4: fix missing traf start
    
    (cherry picked from commit 3fae8409a472c5df3e31b4e9a5ecfcc47d9edb21)

commit 8a7f54566a01a9990a60473b6a2417481a074cce
Author: William Woodruff <william@trailofbits.com>
Date:   Thu Apr 3 21:21:31 2025 -0400

    gnutls: remove manual DH prime bits setting
    
    This sets the DH group to an unnecessarily and
    insecure small size. By removing this function
    call GnuTLS will select an appropriate DH
    group from the priority string which, when
    configured appropriately, will always be
    a 2048-bit or larger group.
    
    Signed-off-by: William Woodruff <william@trailofbits.com>
    (cherry picked from commit 3c9e4df184162940c43fcf1f6e51421fca4e2ac4)
    Signed-off-by: Tristan Matthews <tmatth@videolan.org>

commit 70b0f6f50168dba784cde9dbf6e67a657fa62ff5
Author: Tung Huynh <tung75605@gmail.com>
Date:   Wed May 14 12:25:33 2025 +0000

    [3.0] direct3d11: fetch missing device information when running in UWP

commit 084400e20af8ca762d945719684d0fbadc3f43b0
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon May 12 09:58:22 2025 +0200

    d3d11_scaler: keep the context in the staging picture_sys_t
    
    Since 833b02552a6d6055f1ed1d5f84827ac213db5774 it's used to detect external GPU decoding.

commit 5748ee2f1da8f1495bb0295df9d32ef614ca40a9
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon May 12 08:57:11 2025 +0200

    amf: fix crash when enabling AMF filters on non-AMD GPUs

commit af4d43cd4aa05e59d681fcf230eb1b5c41787d31
Author: Thomas Guillem <thomas@gllm.fr>
Date:   Thu Nov 14 12:44:31 2024 +0100

    libmpeg2: disable by default
    
    This module has a lower priority than avcodec, therefore MPEG2 is almost
    always decoded by avcodec. This module can be used if avcodec fails to
    parse the codec, in that case, there are 3 possibles scenario:
     - libmpeg2 can decode when ffmepg can't (very unlikely)
     - libmpeg2 fails too (likely)
     - Security issue in libmpeg2, possible since this library and module are
       not well tested and supported

commit bfb9e2fccde667cad607c859a7887e67bf6e1b56
Author: Thomas Guillem <thomas@gllm.fr>
Date:   Thu Nov 14 12:44:20 2024 +0100

    dca: disable by default
    
    This module has a lower priority than avcodec, therefore DTS is almost
    always decoded by avcodec. This module can be used if avcodec fails to
    parse the codec, in that case, there are 3 possibles scenario:
     - libdca can decode when ffmepg can't (very unlikely)
     - libdca fails too (likely)
     - Security issue in libdca, possible since this library and module are
       not well tested and supported

commit 3a817551046bee0c17e56649d11d98c71c965a07
Author: Thomas Guillem <thomas@gllm.fr>
Date:   Thu Nov 14 12:44:10 2024 +0100

    a52: disable by default
    
    This module has a lower priority than avcodec, therefore AC3 is almost
    always decoded by avcodec. This module can be used if avcodec fails to
    parse the codec, in that case, there are 3 possibles scenario:
     - liba52 can decode when ffmepg can't (very unlikely)
     - liba52 fails too (likely)
     - Security issue in liba52, possible since this library and module are
       not well tested and supported

commit 504ffcaae914b91c7f61d92f6284f2a37af8b4d5
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Jul 31 07:41:56 2024 +0200

    contrib: gcrypt: use the path to the gpg-error we install
    
    So we don't have to hardcode the PATH.
    
    (cherry picked from commit 2c5e7d3c7738bcc72222b60e41064dea008a26e1) (rebased)
    rebased
    - 3.0 calls disable-docs instead of disable-doc

commit 19f0bba66367e33de1db39439414d75306b50513
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri May 24 08:25:58 2024 +0200

    contrib: gcrypt: don't build command-line tools when cross-compiling
    
    It builds faster and makes prebuilt tarballs smaller.
    
    (cherry picked from commit afff6353250803a37bf58657cc0020c0a9db1d25)

commit 29dcf801388f9962701ec5e56acd403ce3cee0b0
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue May 23 14:32:20 2023 +0200

    contrib: gcrypt: avoid getpid calls on Windows
    
    It's not available in UWP.
    
    (cherry picked from commit cfd40b3f4df13a3c740ff64d3ab35074f462261e) (rebased)
    rebased:
    - 3.0 doesn't depend on $(DEPS_gpg-error)

commit a591316204afa043013399cbaa41227db3927c97
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon May 15 08:59:06 2023 +0200

    contrib: gcrypt: fix UWP build
    
    (cherry picked from commit e428cc3d7f5b476b3fbe38b31c382a0e58917878)

commit 850dd59478d568640318e1f9ff49c6b84c29e5dd
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Oct 12 07:41:59 2022 +0200

    contrib: gcrypt: update to 1.10.1
    
    Enabled blake2 and chacha20 because there are some missing ifdef throughout the
    code to enable/disable some code if they are not set. The easiest fix is to
    just enable them, rather than patching the code.
    
    (cherry picked from commit 8883fd6feadb537cc5b62f41a3c7404c10cb604b) (edited)
    edited:
    - the 3.0 branch didn't have the .S patch
    - the 3.0 branch was already using $(GNUGPG)
    - the 3.0 branch doesn't use MAKEBUILDDIR

commit 4f988b342493165cda2b9b5d6d63261569a953ce
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Apr 8 11:12:00 2022 +0200

    contrib: update mingw-w64 to v10
    
    This is the latest stable release. We can update our Docker images as well.
    
    We can now detect the proper dcomp.h with the installed mingw-w64 version.
    See 50e71ad6fb43c710d64ac4f3945cdd11ccfe5aa5
    
    (cherry picked from commit e3e0854b6dd61d0dde8017257b9e04713a00670a) (edited)
    edited:
    - 3.0 doesn't need the dcomp target
    - 3.0 did not have a SHA512SUMS yet
    - 3.0 was using check_githash for the git version

commit b0e325c06dc89cba29db48331337a342310153c6
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Nov 18 13:43:12 2024 +0100

    contrib: mpcdec: apply all patches
    
    The build reduction patch was added but not called in 22e73a44cf2b707fd0d825ad2eed5e882d003c25.
    
    (cherry picked from commit fc6bc315243345a4798618ccaa3135b61660edca)

commit 3b38641e0d2518692b5222649d04e68381781b8d
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Nov 13 14:29:27 2024 +0100

    contrib: mpcdec: only build libmpcdec
    
    We don't need the rest.
    
    (cherry picked from commit 22e73a44cf2b707fd0d825ad2eed5e882d003c25)

commit d16bcc8589f72366400b6506a56ae6388b3ae1bb
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Nov 13 14:14:22 2024 +0100

    contrib: mpcdec: remove unused MUSE_CONF
    
    Not defined since 48caea17c602e026290b6eef0c3cf994263d4c1d.
    
    (cherry picked from commit 3885cd774689c6127217498e150583adb7d3f150) (edited)
    edited:
    - 3.0 doesn't use HOSTVARS_CMAKE

commit 36405a91076ab889edf5afd331c1ec2a64e41d77
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Apr 17 14:15:35 2024 +0200

    contrib: mpcdec: remove references to the building from SVN
    
    We don't use that anymore. The repository still exists though.
    
    (cherry picked from commit eaa4b3b4678e3a78d6d7d33cb19442678a0352cb)

commit aa299db4a4d23d5a09c35f15fcc86cc8e0ee8ede
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Sep 29 10:13:15 2022 +0200

    contrib: disable test building for all targets
    
    BUILD_TESTING is an option automatically used by CTest and recognized by all
    projects that have some CMake-based tests
    
    (cherry picked from commit 637b57742e89106bc43d5c415190e68f9eb4da30) (edited)
    edited:
    - 3.0 already differentiates CMAKE_BUILD_TYPE
    - 3.0 doesn't build flac with Cmake

commit 698aaa846e48d9bd1ac3fe737818f72bc1354864
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Thu Apr 24 17:06:43 2025 +0700

    demux: mp4: convert and forward Opus extradata
    
    refs #29135
    
    (cherry picked from commit 6ac95c00183ff8f7a8172f216d306a0d56d14b2b)
    Signed-off-by: Tristan Matthews <tmatth@videolan.org>

commit 8c5fd5bedfc2241c9c897b933d053a77d932d7a4
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Tue Sep 24 15:27:56 2024 +0700

    meta: taglib: simplify processing Ogg pictures
    
    (cherry picked from commit e4b04ce37b02cb9c257612b52aaf5abb2b1e14fe)

commit f7eebe130cbd9ca50b81ca77edcd6f3555d4735b
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Mon Sep 23 15:01:22 2024 +0700

    meta: taglib: process FLAC pictures
    
    (cherry picked from commit 02586bac929a2009b16a90d989208ad865cdde8c)

commit e171d11e9095fadd74e58388cfd3d53f53e4fe15
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Mon Sep 23 15:00:40 2024 +0700

    meta: taglib: template default picture lookup
    
    (cherry picked from commit d5f7b25db0ac237319c436ccaa6a237915f1523d)

commit cd434246066cf3b0ef0d98f5418001f6822ddb16
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Mon Sep 23 14:23:16 2024 +0700

    meta: taglib: refactor setting up picture as attachment
    
    (cherry picked from commit 4240ef82cccfd280c868ed84d1ff8d39ad149497)

commit 27f920bc9e6fb3c3a9adde14db23854ff58cd030
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Tue Sep 24 12:37:45 2024 +0700

    meta: move ID3 picture defines to ID3Pictures.h
    
    (cherry picked from commit c344cc44d14feb2938357e47c6eb5703d89dbeb6)

commit 82b241ee2bdffa1fbaa0d4fd3d7dc522e2f9b1d6
Author: Kartik Dua <duakartik40@gmail.com>
Date:   Tue Apr 8 20:25:12 2025 +0530

    Lua : replace recursive logic with iterative approach
    
    Converted recursive implementation to an iterative one to prevent
    stack overflows from deeply nested calls. This enhances stability
    and ensures safer execution for long sequences.
    
    (cherry picked from commit 33e05c8474f431fe735826961e89b38b9f4e3664)

commit 3e1083e7b5510aa9ca955793d01e226a673880e0
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Apr 16 09:21:15 2025 +0200

    contrib: d3d9: consider mingw-w64 v8 has recent enough headers
    
    All mentioned hashes as part of the v8 release.

commit 9e48d6e3e00865878b23d6e075af9f80c49866a5
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Apr 16 09:46:32 2025 +0200

    contrib: d3d9: download already patched d3d9caps.h
    
    The headers found in the videolan tarball cache are outdated.

commit d652d58f34553b302a012ca423d0cc0911614f00
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Apr 16 09:39:08 2025 +0200

    contrib: d3d9: download already patched dxva2api.h
    
    No need a widl an old and patched version.

commit 833b02552a6d6055f1ed1d5f84827ac213db5774
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Mar 24 14:00:23 2025 +0100

    direct3d11: use a shared staging texture for sources from another D3D11
    
    This can happen with a clone video output. The decoder D3D11 device
    is tied to the first display pool or its own. We can copy from GPU to GPU.

commit eeb0578d1661826f3d4be41a059b86862725b145
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Mar 24 13:46:46 2025 +0100

    direct3d11: use a function to create the staging texture

commit e5acf58afb4e3f329c9124ca764a86898b6688f6
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Mar 24 13:32:55 2025 +0100

    d3d11: allow creating shared D3D11 textures

commit bfad92c826e038ea4d11d06e099b12b5595a5d83
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Mar 31 14:25:30 2025 +0200

    contrib: d3d11: consider the headers are OK starting with mingw-w64 v8

commit 82cf66151b27c3cbbe5e3e5ccff1c125e1545cf1
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Mar 24 13:31:07 2025 +0100

    contrib: d3d11: use working headers directly
    
    We don't need to go through widl if we get all the dependent headers.
    
    The headers found in the videolan tarball cache are outdated.

commit 8a3978009382062196b7e4f6734cfeda84f729ff
Author: Marvin Scholz <epirat07@gmail.com>
Date:   Mon Apr 11 17:25:57 2022 +0200

    contrib: build postproc as part of ffmpeg
    
    If GPL is enabled, build postproc together with ffmpeg
    instead of building an ffmpeg-less ancient version with
    numerous bugs.
    
    Should fix crashes on macOS and possibly other OSes when
    postproc is used.
    
    (cherry picked from commit 599191d3a4063d9d69b29f3a9bbd99fbfa636455) (edited)
    - 3.0 didn't have the ranlib patch

commit 74de0fda0bec6507ba1e305f7943150140f9dc44
Author: Thomas Guillem <thomas@gllm.fr>
Date:   Tue Apr 8 15:20:04 2025 +0200

    avcodec: enable AV1-hw only for Windows
    
    To avoid crazy chroma chain configuration that will always fail in the end.

commit 8c339ae3ca02b5a22ed860fa31dead66618be7f5
Author: Thomas Guillem <thomas@gllm.fr>
Date:   Tue Apr 8 15:08:14 2025 +0200

    vout: android: revert window to base values
    
    This fixes OpenGL vout layout when it is used just after with the same
    Android Surface.
    
    This android vout is normally only used with opaque chroma (mediacodec),
    and the opengl one should be used for software rendering.
    
    Nevertheless, this vout could be used for software rendering when the
    OpenGL one failed. This was the case when the avcodec AV1-hw decoder
    requested a VAAPI chroma (via a YUV chroma fallback).
    
    Fixes #29120

commit 0df7b1bef2a46ef1eb73429db6aff3ed6c2156ab
Author: Thomas Guillem <thomas@gllm.fr>
Date:   Tue Apr 8 15:02:11 2025 +0200

    vout: android: remove AndroidWindow_ConfigureJavaSurface
    
    It was a hack for Android 2 and 3, removed since in a long time in vlc-android.

commit 281cbc8548732ed2d4ab20330823d93a8bbf46dc
Author: Fatih Uzunoglu <fuzun54@outlook.com>
Date:   Thu Aug 31 17:14:25 2023 +0300

    qt: add const to psz_config
    
    (cherry picked from commit b55e37761a557c49f8b424a198106fa95fdd702a)

commit e8f8bfe4ed7f404f45c8ca2a0f36dea53d7d5850
Author: Zhao Zhili <quinkblack@foxmail.com>
Date:   Sun Oct 17 00:27:59 2021 +0800

    avcodec: map VLC_CODEC_YUVA_444_12
    
    (cherry picked from commit 51c3da8b001290a2f0513bddbcceb3263166ed90)
    Signed-off-by: Marvin Scholz <epirat07@gmail.com>

commit 58bdf5c693dff12f90824348a867bad3117d722e
Author: Zhao Zhili <quinkblack@foxmail.com>
Date:   Mon Oct 18 15:39:12 2021 +0800

    fourcc: add description for VLC_CODEC_YUVA_444_10B
    
    (cherry picked from commit 8888b173a0286606df83b53bd0602937edac5620)
    Signed-off-by: Marvin Scholz <epirat07@gmail.com>

commit e880afdd335734480ab9a8caac4bd39d73584b77
Author: Zhao Zhili <quinkblack@foxmail.com>
Date:   Sat Oct 16 23:56:20 2021 +0800

    fourcc: add planar Y:U:V:A 4:4:4 12bits
    
    (cherry picked from commit f88c010486dd7a8cf567aac22b70d7c06de271d5)
    Signed-off-by: Marvin Scholz <epirat07@gmail.com>

commit 8236ad0ff91dac00361a8804a4b62c31a98213e7
Author: Marvin Scholz <epirat07@gmail.com>
Date:   Wed Mar 26 03:07:08 2025 +0100

    macosx: fix slider bounds clipping
    
    Fixes the slider not clipping correctly on recent macOS versions when
    built against recent SDKs.
    
    Fix #28953

commit a59723657920230975e925b95f2739db6b0313c7
Author: Marvin Scholz <epirat07@gmail.com>
Date:   Wed Mar 26 03:24:42 2025 +0100

    macosx: env.build.sh: sync with main build script
    
    We target macOS 10.7 for VLC 3.x, so properly reflect that in the
    env.build.sh script as well and sync the list of disabled functions
    with the ones from the main build script to properly catch all of the
    relevant ones.

commit b342676852145fcc1e640630e6617e7628b7fe88
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Mar 20 11:28:34 2025 +0100

    contrib: libarchive: update to 3.7.8
    
    Fixes some CVE's [^1].
    
    [^1]: https://github.com/libarchive/libarchive/releases/tag/v3.7.8
    
    (cherry picked from commit 2804dc2688b0ca6eb7dca7c15b34cbf44f56d729)

commit f115919db1446a03398af4d3febec88629ffa0c2
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu May 25 13:42:56 2023 +0200

    contrib: libarchive: download tarball from GitHub
    
    The hash is unchanged (good).
    
    (cherry picked from commit c340f0b0ae77df1cd89123404f4c052d6c17873c) (rebased)
    rebased:
    - the 3.7.7 had already been cherry-picked without this patch

commit a381bf5bc0883db0edaedbf9d88ef9282b4af055
Author: Johannes Kauffmann <johanneskauffmann@hotmail.com>
Date:   Fri Feb 28 21:38:32 2025 +0100

    substx3g: fix leak on error
    
    (cherry picked from commit 80ca615d96cddb7493ef1183a32c42efc23d0cfe)

commit e5cc1bf6a5b3ff520334c33e8b1b02cadd0180c2
Author: Johannes Kauffmann <johanneskauffmann@hotmail.com>
Date:   Fri Feb 28 20:58:23 2025 +0100

    substx3g: factor error handling
    
    (cherry picked from commit 18b1c9d8fd8ce0a5fbd4274ebe2064b66dea8e2f)

commit ec194c043f301da550a3e835887a410115b26b94
Author: Johannes Kauffmann <johanneskauffmann@hotmail.com>
Date:   Fri Feb 28 21:39:08 2025 +0100

    substx3g: fix file name comment
    
    (cherry picked from commit 576dc57489c40485034b1fd82b0f6ded2f9cde62)

commit 2ad4e0b252d4f96f33d779e2d7f237b29aa5690c
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Mar 10 09:23:00 2025 +0100

    extra/tools: allow ninja to use as many components as needed
    
    That should allow using ninja to build libvlc.so on Android (it uses 300+ .a files).
    
    This is part of ninja 1.12 which doesn't have proper jobserver support.
    
    (cherry picked from commit cf5a1db0bf290948ab7e9c0d64605e49e1209e70)

commit 0f585cf8a21490be778b551e55af8dbdb3dc71f5
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Dec 15 12:00:37 2022 +0100

    extras: tools: update ninja to 1.11.1
    
    (cherry picked from commit f31a7e8fc07bc845f1fd67847066585a6e1149a0) (rebased)
    rebased:
    - the SHA512SUMS has different surrounding values

commit 1f284e03666acf09521566b4d27798f374d4dbfe
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Dec 15 11:46:37 2022 +0100

    extra: tools: use the ninja fork from Kitware
    
    This work, from the CMake makers, supports jobserver and is actively
    maintained.
    
    (cherry picked from commit 270efe5932bbb97cbaec173120ce79173fee0fcb)

commit 6d7029aa047b318ad77a604c68c61b3e84522502
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Nov 10 10:34:02 2023 +0100

    adaptive: fix debug string formatting
    
    These debug messages can be enabled via defines in Debug.hpp.
    
    (cherry picked from commit 88a93fbcb93eea470ca16c28d3c24a9ce9520f16) (edited)
    edited:
    - HTTPConnectionManager.cpp doesn't have some logs in 3.0
    - 3.0 has some mutex unlock after some logs

commit d8715e1ad91bb377fc352e16367b6426e9bf9e4f
Author: Marvin Scholz <epirat07@gmail.com>
Date:   Tue Apr 12 00:15:55 2022 +0200

    demux: adaptive: use correct format specifier
    
    (cherry picked from commit 311e0303c54b7a7afe2a2b8daeb05c2d03a79ed6)

commit 458b19aff577cbab75e4873209895474b133eb3a
Author: Alexandre Janniaux <ajanni@videolabs.io>
Date:   Thu Apr 9 14:56:57 2020 +0200

    aribcam: use %zu formatter for size_t
    
    Fix warnings when size_t is not the same size as a long unsigned int.
    
    (cherry picked from commit 20b485cd901afb5b04e7dd9b74a9d1d97a0ceb85)

commit 141d87953b33b93fd4f6949ea7135cbe12b4dcc8
Author: Rémi Denis-Courmont <remi@remlab.net>
Date:   Sun Apr 14 10:15:11 2019 +0300

    avi: fix format string
    
    (cherry picked from commit 4382fe0f8461b611d35aaec3dc73cace1a1a32f6)

commit ce971ea70a7dad794490ed39ceea28498e706516
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Feb 28 13:18:26 2025 +0100

    demux: subtitle: check the FORMAT= value is a number in mpsub
    
    We don't need vlc_strtof_c() since we already have the float value.
    We also don't need to check what is after the number (a comment for example).
    As long as it's a number it should be FPS. Anything else other than
    "FORMAT=TIME" is bogus. So we don't need to get the remaining part of the string.
    
    (cherry picked from commit a2c276959052b592fb37eeed0968ffeac02f0014) (edited)
    edited:
    - us_strtof has not been renamed to vlc_strtof_c
    - sub-original-fps is called sub-fps on 3.0

commit 8afa165d950382a19536461e3e120cfd9c131ff2
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Mar 4 12:55:09 2025 +0100

    demux: subtitle: don't break when using FPS in mpsub
    
    We still need to look for the wait & duration values after that.
    
    (cherry picked from commit 107de58d1786b47f2c2c7c5591b623140d5b4210) (rebased)
    rebased:
    - sub-original-fps is called sub-fps on 3.0

commit f79221eec8129cf662301d79b1589eb82538930f
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Feb 28 12:58:54 2025 +0100

    demux: subtitle: simplify "FORMAT=TIME*" check
    
    (cherry picked from commit 3c4cff54b5b39b33a785036e746ea0502ac55c14)

commit 089a5c67a08b583ff25a6527c17219b3af167e5e
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Feb 28 12:56:24 2025 +0100

    demux: subtitle: check for the "FORMAT=" string once
    
    (cherry picked from commit 5fa5916a60f5a61f483ca78c8793105686a90189) (rebased)
    rebased:
    - us_strtof has not been renamed to vlc_strtof_c

commit 66feed43aea36fa286173bb69e2b84258fbd699a
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Mar 4 12:28:24 2025 +0100

    demux: subtitle: skip mpsub comment and empty lines early
    
    (cherry picked from commit 8e78d79215fefd3a34154504ff8dc4d3460d282e)

commit 2d3548eee8376afadc544513b6df9efdf01fe304
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Mar 4 12:24:27 2025 +0100

    demux: subtitle: check mpsub timing line early
    
    Most of the time that's the first line we will get.
    If not the line can contain different things other than a FORMAT setting.
    
    And calling vlc_strtof_c without checking the lines contains 2 values
    was bound to use 0 if the line did not actually contain numbers.
    
    (cherry picked from commit dcb0dfcc32f12baaf4ca4b8e9969601d8c847763) (edited)
    edited:
    - us_strtof has not been renamed to vlc_strtof_c

commit a5a1f51050db4d9ee3b1aafdb9ce1108f138904a
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Feb 28 14:26:46 2025 +0100

    demux: subtitle: only set the string terminator on loop exit
    
    No need to set it on each iteration.
    
    (cherry picked from commit 1f9b8484003d74e1b1a6e0bd4c8b738bafd8aa9d)

commit 72958083e31cb5b8ef53361a8da878ab2732af34
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Feb 28 13:13:34 2025 +0100

    demux: subtitle: avoid allocating a dummy string
    
    realloc works fine on NULL.
    The pointer is set in p_subtitle->psz_text which is free'd later.
    It's OK to free a NULL pointer if there wasn't any line to use.
    
    (cherry picked from commit de7e5074734d39a6cfde69a0fe3212b61333a795)

commit 390951f9b862b37439f5d3e33d134c5ad97060e2
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Feb 28 13:12:14 2025 +0100

    demux: subtitle: keep the size of the concatenated string
    
    No need to do a lengthy strlen() call each time the concatenated string grows.
    
    (cherry picked from commit 1e03b716637ff7180a169454ccbf88a2a4f9f8f3)

commit 7208fbbc6c524a98a1e132ce0bda1e013c78f3ec
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Feb 28 13:09:37 2025 +0100

    demux: subtitle: avoid using strcat when we know the string sizes
    
    We're just concatenating the lines in psz_text.
    
    (cherry picked from commit e8f7ac273de7ec0bf2e87dbc8c4cacf0800f9927)

commit 3b16df6e0033bfbeb77f65ae289a69414ea1ef5d
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Feb 28 13:08:54 2025 +0100

    demux: subtitle: only allocate internal psz_text when needed
    
    (cherry picked from commit 3f110c9571560f07ef3ce543410cb5f800c8e84a)

commit 9a7f8217d42ffea5b9e2b11072d2e7fe188e39a9
Author: François Cartegnie <fcvlcdev@free.fr>
Date:   Mon Apr 3 21:51:17 2023 +0200

    demux: subtitle: add missing TS_0 offset
    
    (cherry picked from commit 6dc0701b983082cd8fc7155ca608a8ceff2a0af6) (rebased)
    rebased:
    - us_strtof has not been renamed to vlc_strtof_c

commit d6b72946fd3f7d64a0eec170d6491d1314801d3b
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu May 31 15:20:52 2018 +0200

    modules: transform vlc_tick_t value from seconds with vlc_tick_from_sec
    
    (cherry picked from commit ca5fc95f6366d4c079ec574411934ac52ed8683e) (edited)
    edited:
    - CLOCK_FREQ was not used as 04db84cd9cdace60ce450d269414ac0923dc857f was
    not backported

commit 6639b10151115f3805085dcb6b4b5523b96196b3
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon May 7 14:05:58 2018 +0200

    modules: transform milliseconds value into vlc_tick_t with VLC_TICK_FROM_MS
    
    (cherry picked from commit 25d7af9c59e3a9aac7174c1f4aff595d6808f03b) (edited)
    edited:
    - 3.0 uses mdate/msleep instead of the vlc_tick API

commit 5749ca3d1d47ad2ec3c12c163788d6ee3b7c075e
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Mar 10 08:44:21 2025 +0100

    demux: adaptive: remove local variants of vlc_tick conversions

commit 0558400309a854da4cce44e775f46d4e7017c321
Author: Hugo Beauzée-Luyssen <hugo@beauzee.fr>
Date:   Fri Jun 29 18:16:17 2018 +0200

    vlc_ticks: Simplify C++ integer variants of vlc_tick_from_sec
    
    (cherry picked from commit af03afe3e17069728fac9458fb43ab3921042f82) (edited)
    edited:
    - the file modified is vlc_mtime.h and not vlc_tick.h

commit 6df317b6f731647bb24b00e09fe9d1f4cb425385
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Jun 29 17:56:53 2018 +0200

    vlc_tick: remove C++ long variant of vlc_tick_from_sec()
    
    it collides with the int64_t variant on some platform
    
    (cherry picked from commit 2d4a266663c225b137060b41e37fb7611fe63522) (edited)
    edited:
    - the file modified is vlc_mtime.h and not vlc_tick.h

commit 86b93c7c66688f1c21231abbfc8cbcbac4ab934e
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Jun 22 18:01:09 2018 +0200

    vlc_tick: add helper macros to convert seconds to/from vlc_tick_t
    
    (cherry picked from commit 58a6a21271f8d3db5f48418488c0dece09d94247) (edited)
    edited:
    - the file modified is vlc_mtime.h and not vlc_tick.h

commit 5e823c0c499c32ba14a7444feb5848fc557a9c64
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Jun 1 17:13:12 2018 +0200

    demux: subtitle: use an integer for the mpsub factor
    
    it's never a floating value
    
    (cherry picked from commit 7572803a07fdd5ccfc5afb7e6ada724cb4277883)

commit fed25a62527e02fe6b7cfdbb4f36e19a4a9ae0b4
Author: Marvin Scholz <epirat07@gmail.com>
Date:   Mon Nov 25 16:27:20 2024 +0100

    extras/tools: add /dev/stdin to sha512sum command
    
    This is needed with the sha512sum introduced on recent macOS versions
    and matches what is already done for contribs too.
    
    (cherry picked from commit 2564699fa2c51bb969a2ca0ff76788005dc1968b) (rebased)
    rebased:
    - the code around is slightly different

commit fb5640776c1bebfd110464d3998565a812677ad4
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Mar 5 13:53:18 2025 +0100

    d3d11_deinterlace: remove duplicate D3D11_Create call
    
    It was added in 159ef80cd41bbb24fca51044b09fa73f33382a28
    But it was already there since 74361a31b6b40b554fb61ce59c65e6f84c534c8d.
    
    The order doesn't matter because we rely on D3D11_FilterHoldInstance()
    which already has the DLL loaded.

commit 5eacbb5593827f8798c6e3d9374c70fe3cea3d38
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Mar 5 13:54:37 2025 +0100

    d3d11_filters: hold the D3D11 DLL which the filter is alive
    
    This is similar to 74361a31b6b40b554fb61ce59c65e6f84c534c8d and done
    in the other D3D11 filters.
    
    Fixes #29069

commit e0557cf4de1c1d3dc4300f4ec2ca1e5075aadab8
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Mar 5 13:31:15 2025 +0100

    doc: libvlc: add 's' shortcut to stop playback

commit 9a125ac41427c4293420e440b756679ae3b262dd
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Mar 5 09:01:03 2025 +0100

    doc: libvlc: remove ssize_t definition for MSVC
    
    It's not needed since ab4f2bc2ec72c69fe0220d4f519b67cc5b7fc22f.

commit b64a9b6c754e4c32ad610d891e3d379d4492d6bf
Author: Khalid Masum <khalid.masum.92@gmail.com>
Date:   Mon Feb 24 17:28:20 2025 +0000

    extras: tools: add python 3.13 support to Ninja
    
    Backport a patch from Ninja 1.12 that adds python 3.13
    support. This is necessary because current version of Ninja
    does not work with python 3.13 as pipes module is deprecated.
    
    (cherry picked from commit b8dff0645a6754d6afaf087215d208d3c8c6c307)

commit aed678ebbb47b88de66ce343515b6aadc3ae5c10
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Feb 27 13:13:24 2025 +0100

    freetype: avoid very large fonts in portrait mode
    
    Either when the video is in portrait mode or when the subtitles
    are shown in the black bars and the video area is in portrait mode,
    the text can become very large just because we apply a percentage base on
    the output height.
    
    We switch mode when the height becomes bigger than the width
    so there's a continuity in the ratio when growing/shrinking the
    video in one direction or the other.
    
    (cherry picked from commit e25ec4e25be1f2620ec031d2ef7bf5a09809235d)

commit d2aa58982c9247f44f29a7fe461c3a480aebb053
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Feb 13 08:50:32 2025 +0100

    cvdsub: fix leak on missing PTS
    
    Fixes #28995
    
    (cherry picked from commit 35e67cfa5d3ac3907c2e47a856955300706d6083)

commit b2850c07a01d88e0171f98d9678eb5195cb40165
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Feb 12 14:33:30 2025 +0100

    svcdsub: fix decoded block leaking
    
    A "gathered" SPU is assembled to send to the decoder, and the decoder then handles
    the data from there. But it was never released.
    
    Fixes #28992
    
    (cherry picked from commit f350f64fcbd4df51e2fef8446e8e9cf7c0760f33)

commit 26e42d016f0c4cc059161ee6f005fc80d1ce840e
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Feb 12 13:55:26 2025 +0100

    codec: webvtt: fix leaking cue segments
    
    The p_new element was never added to the chain.
    
    Fixes #28990
    
    (cherry picked from commit 60d9ff2fe65ecb895e67218af7d50bcb0b749bba) (edited)
    edited:
    - the indentation is different on 3.0

commit 51ac114275229615ee21fcc4a4200278896492b1
Author: Ds886 <daniel.ashkenazi@gmail.com>
Date:   Mon Oct 25 08:13:02 2021 +0000

    configure: remove unneeded libtar
    
    (cherry picked from commit 53ec4c4d502f40cccd32c82bcb6484dc943837eb)
    Signed-off-by: Thomas Guillem <thomas@gllm.fr>

commit b12613a80361d190660439627f75a0c965074c3d
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Apr 18 14:12:46 2023 +0200

    include cassert instead of assert.h
    
    cassert is the preferred way in C++. It doesn't contain static_assert
    which is otherwise a keyword.
    
    https://stackoverflow.com/a/43011752/1266123
    https://en.cppreference.com/w/cpp/header/cassert
    https://en.cppreference.com/w/cpp/language/static_assert
    
    (cherry picked from commit 4c99f1a44ab6db4dba475327b2eed90405619bcd) (edited)
    edited:
    - 3.0 has less files in C++ (d3d11, medialibrary, renderer)
    - some Qt files were moved in 4.0

commit bb833e10b1d6502089952973295a3736b52eef3a
Author: Alexandre Janniaux <ajanni@videolabs.io>
Date:   Mon Mar 21 14:49:41 2022 +0100

    avparser: fix missing const
    
    (cherry picked from commit 72992236eda5b11786b30e73a212146060e4f317)

commit 41f1c168a5a9c5ac5c88ecbbe0f8f4ddef8b999f
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Dec 16 09:28:55 2024 +0100

    nfs: fix libnfs API v2 support
    
    Introduced in libnfs 6.0.0.
    
    Co-authored-by: ronnie sahlberg <ronniesahlberg@gmail.com>
    Co-authored-by: Thomas Guillem <thomas@gllm.fr>
    
    (cherry picked from commit a945944c2d50cacfacdd5b16d4ea5e7b4766a9fc)

commit 60b94fcbdbc40bfdcc237b5670f85ae74186185f
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon May 13 15:44:22 2024 +0200

    configure: clean the x262 check and fix typo
    
    (cherry picked from commit 31938ff13aa6d56474e867fc3c4e72df1f66a359) (rebased)
    rebased:
    - the code around/inside is slightly different

commit 672d60bdc4694be97d195e8c15a14917ec53e1a5
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Feb 14 14:40:57 2025 +0100

    demux: libmp4: put VLC_FORMAT in the MP4_BoxXXX declaration
    
    So the compiler can check the callers.
    
    (cherry picked from commit 21aaf77b87ccfb2fedbd5199c71b96fed051e910)

commit 75b68ec0a57a9cdd682cf88c17fabb772dd6bd6b
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Feb 14 14:49:44 2025 +0100

    demux: mp4: use %u with using MP4_BoxGet varargs
    
    (cherry picked from commit bd5c9bc1fc23ff566c03e5e61b7be3085acb85ed) (edited)
    edited:
    - only one location needs a fix on 3.0

commit cd31c1bfffeadfcef8ea6ebf2347fd07e1c9608b
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Feb 18 08:58:24 2025 +0100

    demux: libmp4: add simplified MP4_BoxGet/MP4_BoxCount
    
    Without varargs which is most of the call we use.
    And it won't parse and allocate a new string each time.
    
    (cherry picked from commit 8cf9d34a64d70a6b70aee4ac08f5977e9c2a6173) (edited)
    edited:
    - 3.0 doesn't have heif.c
    - 3.0 has some varargs calls in different places

commit 0e178b899bd82c835134a5e5e515862517434fd7
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Feb 18 08:56:07 2025 +0100

    demux: libmp4: split the code that gets the path and the MP4 box
    
    MP4_BoxGet_Path must always be called with a usable path that won't
    be free'd by MP4_BoxGet_Path().
    
    (cherry picked from commit aef04a7b425fb004286b5e3c18ca55ee7b84876e)

commit 696da7b33eaea16b27c88bec892f476150cc7fec
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Feb 14 14:46:38 2025 +0100

    demux: mp4: avoid passing unused extra parameter to MP4_BoxGet()
    
    The format string doesn't contain any string to replace.
    
    (cherry picked from commit 11723c0906d010aed04f311d51408735508fd9a7) (edited)
    edited:
    - 3.0 needs a similar fix in "tref/chap" handling as 6fd1fbf7582df806079a863773694f3a13ed22ab
      is not backported.

commit fe23f3296c1e2d1e80160f644de1cecc1934f829
Author: Rémi Denis-Courmont <remi@remlab.net>
Date:   Fri May 4 19:35:35 2018 +0300

    mp4: add format attribute
    
    (cherry picked from commit 1a3017ef2dcbc7a3a9cc08299ceec88696f535d1)

commit 5c0f49410deab34af4f37a1327aeb51d9ac007a7
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Feb 18 15:59:14 2025 +0100

    direct3d11: find a usable IDXGIOutput in UWP
    
    GetContainingOutput fails in UWP so we pick any IDXGIOutput for the D3D11 device.
    We can't tell where it is in the screen so we most likely get the first display.
    
    Fixes #29039
    
    Co-authored-by: Tung Huynh <tung75605@gmail.com>

commit 6895dc7f3d2e5e9d86da47107a81f72e8da0f619
Author: Rémi Denis-Courmont <remi@remlab.net>
Date:   Wed Jul 22 17:04:17 2020 +0300

    asf: improve log message
    
    Peeking is an irrelevant implementation detail here.
    
    (cherry picked from commit 788007c8f6a462376a5d9603f78dea3da20881d9)

commit e701467d5ad49c929c8eb57cf4127b39bdaa509e
Author: Zhao Zhili <quinkblack@foxmail.com>
Date:   Thu Sep 20 11:19:01 2018 +0800

    demux: asf: fix log format string
    
    Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
    (cherry picked from commit 1438d0767c842812e502635c320cad4bd178ef62)

commit 739a486caac27da897628b1b13cc27446dc1ca74
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Sep 18 10:16:29 2018 +0200

    demux:asf: process the i_pkt_time in vlc_tick_t instead of milliseconds
    
    (cherry picked from commit fe73d59ce50b98fa7256115de834538389299c52)

commit 1de0d6f88bfe556177f07a82f2f07533038d1b60
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Sep 18 10:18:45 2018 +0200

    demux:asf: handle the i_pkt_time_delta in vlc_tick_t instead of milliseconds
    
    (cherry picked from commit 7d05ad592d0fc5a006c4bb3b7fcfe4402e3d7e43) (rebased)
    rebased:
    - 3.0 doesn't use VLC_TICK_FROM_MSFTIME

commit 44202c22d41d11af5df44a78465bf2dc451d299f
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Jun 7 11:30:04 2018 +0200

    demux:asf: fix the i_preroll_start substracting milliseconds from an mtime
    
    store the preroll in vlc_tick_t instead of milliseconds
    Divide all uses by 1000 for now
    
    SeekIndex was using the value in milliseconds substracted from the vlc_tick_t date.
    
    (cherry picked from commit 120e2cb800da292077e80dc790f323b901a13ff2) (rebased)
    rebased:
    - 3.0 doesn't use msftime_t

commit 66c2e24f432627d3874f62f02df1a38a85a95eb5
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Jun 7 11:26:16 2018 +0200

    demux:asf: store the send_time as an vlc_tick_t rather than milliseconds
    
    Divide all the uses by 1000 for now
    
    (cherry picked from commit cac66afe7f52899bb6b6c7b1f615a6c752bf7e49) (rebased)
    rebased:
    - the code around is slightly different

commit eb9e6c0e892b2735aeba733d0b92e195201cffd8
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Jun 7 10:27:05 2018 +0200

    demux:asf: remove write-only i_extension_pts
    
    (cherry picked from commit c3fbff8aa4e313d8dc6af645f216c949e88dcd26) (rebased)
    rebased:
    - i_payload_pts is already a vlc_tick_t on 3.0 since 3f9fc44176cc5505132977885799fa988c5e7701

commit 5ef2ed124b4bc2ec9b04b54e04ca9323ce838c21
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Jun 22 18:02:36 2018 +0200

    vlc_tick: add helper macros to convert milliseconds to/from vlc_tick_t
    
    (cherry picked from commit 505182d874273dcbfdc10184f450469ee63a96df) (edited)
    edited:
    - the header is still called vlc_mtime.h in 3.0

commit fa5ecdd0ed4b606313b50450e4a64985cb7083d8
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Feb 18 15:06:53 2025 +0100

    rename mtime_t to vlc_tick_t
    
    Keep a copy of vlc_tick_tfor backward compatibility.

commit 3341555e06fd6db3c4e2cdf1a05c0451a6b043af
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Jun 7 11:31:58 2018 +0200

    demux:asf: the preroll start is in mtime_t
    
    (cherry picked from commit 96d5784c855aa3ab52446453472d9654c0086c84)

commit 0c0430b699c05d26eb867ef78a4d37a17d5493e3
Author: Thomas Guillem <thomas@gllm.fr>
Date:   Mon Feb 17 15:47:32 2025 +0100

    compat: test stdckdint
    
    Test C23 header, clang/gcc builtins and compat versions.
    
    (cherry picked from commit a7ff7c3c00d4bcd3e1230f46a18485b43af0672b)
    Signed-off-by: Thomas Guillem <thomas@gllm.fr>

commit 79146a8a366b2f46a41f9d57c742a4b9227259b5
Author: Thomas Guillem <thomas@gllm.fr>
Date:   Mon Feb 17 15:13:11 2025 +0100

    compat: stdckdint: handle signed cases
    
    (cherry picked from commit 9cab61e7fe0f8d54673228e40bedb35be8c4abf9)
    Signed-off-by: Thomas Guillem <thomas@gllm.fr>

commit ba82dcd25f7ba5e77a5ff782a306dea5e3c48343
Author: Rémi Denis-Courmont <remi@remlab.net>
Date:   Sun Feb 18 15:14:34 2024 +0200

    stdckdint: add compatibility header
    
    This only implements unsigned types for now, as there are no known use
    cases for signed checked arithmetic as of yet. The macros will safely
    error out at compilation time if signed types are misused.
    
    (cherry picked from commit 38c10291760e55aa6ba4713be5ec1d37138a3bd9)
    Signed-off-by: Thomas Guillem <thomas@gllm.fr>

commit 7b9c6bf309d9da4c22b3605608893a0af9b73ce2
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Feb 19 13:18:08 2025 +0100

    qt: use QWheelEvent::DefaultDeltasPerStep instead of hardcoded values
    
    The constant was added in [^1] in Qt 5.5 which is the minimum
    we support.
    
    [^1]: https://github.com/qt/qtbase/commit/aac6cda8041bc039efbffef5235a6f84bcae326a

commit cf4f31f5c1cad4d11b1460f99e774189990e6f30
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Dec 17 08:57:05 2024 +0100

    qt: get the screens geometry using screens()
    
    Gettting the desktop() object is deprecated and removed in Qt6 [^1].
    
    targetScreen() is always within the boundaries of QGuiApplication::screens().length()
    or -1. And that's always the value used in controller.cpp.
    
    [^1]: https://doc.qt.io/qt-6/widgets-changes-qt6.html#qdesktopwidget-and-qapplication-desktop

commit fc2b1f6d5b1fbac0fc1698da668ea0bd45103d6b
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Dec 17 09:06:11 2024 +0100

    qt: use screenAt() to find the screen at a given position
    
    Gettting the desktop() object is deprecated and removed in Qt6 [^1].
    
    [^1]: https://doc.qt.io/qt-6/widgets-changes-qt6.html#qdesktopwidget-and-qapplication-desktop

commit 855a266757791de5d4d44ee21d96181a785d479c
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Dec 16 14:48:15 2024 +0100

    qt: use availableGeometry() from the primaryscreen
    
    Gettting the desktop() object is deprecated and removed in Qt6 [^1].
    
    [^1]: https://doc.qt.io/qt-6/widgets-changes-qt6.html#qdesktopwidget-and-qapplication-desktop

commit f82e97c9b400e5981af710e1fbe18fc595f20fbf
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Dec 17 08:50:57 2024 +0100

    qt: use screens() to get the list of screen
    
    Gettting the desktop() object is deprecated and removed in Qt6 [^1].
    
    [^1]: https://doc.qt.io/qt-6/widgets-changes-qt6.html#qdesktopwidget-and-qapplication-desktop

commit 1e28616a7ed5662b926a6166dbf069e6cb615815
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Dec 17 08:22:48 2024 +0100

    qt: use QEnterEvent with enterEvent() in Qt6

commit acad49d6dff6aeca59d657b4c29847f23581033a
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Dec 17 08:15:16 2024 +0100

    qt: disable statusBar() usage if Qt is not built with it
    
    We can't remove the unused methods because we don't have the proper
    check in moc.

commit 2e2cf95735958ead637e365110de0dcbc3c3c642
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Dec 20 10:51:48 2024 +0100

    qt: remove unused showBuffering()
    
    Removed in 4.0 in 92539782be07770312eeb6549b50a72c86879729.

commit 9d22c80f819408014be0a24c67059aa22831b712
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Dec 16 14:54:48 2024 +0100

    qt: use QAbstractNativeEventFilter
    
    Instead of deprecated nativeEvent() method.

commit 0713a59ad9836ae100fef924c16ec4971de2d7e8
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Dec 18 09:04:18 2024 +0100

    qt: merge MainInterfaceWin32::nativeEvent() and MainInterfaceWin32::winEvent()
    
    No need for an extra method.

commit ec38184b7dc20670a9a91a382f8b0de58e00abbe
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Dec 17 16:12:27 2024 +0100

    qt: use QMouseEvent::globalPosition() instead of QMouseEvent::globalX/Y()
    
    globalPosition() doesn't exist in Qt5 but globalPos() is the same thing [^2].
    
    It's deprecated in Qt 5.15 [^1], since 5.0 [^3], and removed in Qt 6.
    Although the deprecation was delayed to 5.15 because of a Qt3D issue [^4], that
    we don't use.
    We use a replacement is suggested in [^1].
    
    The commit log of [^3] even mentions its deprecated "since Qt4 times".
    
    [^1]: https://doc.qt.io/qt-6.2/qmouseevent-obsolete.html#globalX
    [^2]: https://doc.qt.io/qt-5/qmouseevent.html#globalPos
    [^3]: https://github.com/qt/qtbase/commit/7d29807296cb7ccc7f3459e106d74f93a321c493
    [^4]: https://github.com/qt/qtbase/commit/8dc45d5b7cd9637f28b2d872a834266b991bf434

commit 3e2e63bcc38635766168560b0e26513782fb8355
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Dec 17 13:42:42 2024 +0100

    qt: use QWheelEvent::angleDelta() instead of QWheelEvent::orientation()
    
    It's deprecated in Qt 5.15 [^1], since 5.0 [^2], and removed in Qt 6.
    Although the deprecation was delayed to 5.15 because of a Qt3D issue [^3], that
    we don't use.
    We use a replacement is suggested in [^1].
    
    The commit log of [^2] even mentions its deprecated "since Qt4 times".
    
    The code is slightly similar to what is found in qtWheelEventToVLCKey().
    And borrows from 7498ac55db73dec778d97de88a758707964ebdc7.
    
    [^1]: https://doc.qt.io/qt-5/qwheelevent-obsolete.html#orientation
    [^2]: https://github.com/qt/qtbase/commit/7d29807296cb7ccc7f3459e106d74f93a321c493
    [^3]: https://github.com/qt/qtbase/commit/8dc45d5b7cd9637f28b2d872a834266b991bf434

commit 39742c0b27cbd28e584d59b28b666d41aeaa23ee
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Dec 17 13:35:16 2024 +0100

    qt: use Qt::MiddleButton instead of Qt::MidButton
    
    It's deprecated in Qt 5.15 [^1], since 4.7, and removed in Qt 6.
    
    [^1]: https://github.com/qt/qtbase/commit/6ee6c52b57a0fbe9df00b30616afd90476ebdfd6

commit 2d21d237be8b5609ecb7b00eee2a16043c2340fa
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Dec 17 13:29:09 2024 +0100

    qt: use QWheelEvent::angleDelta() instead of QWheelEvent::delta()
    
    It's deprecated in Qt 5.15 [^1], since 5.0 [^2], and removed in Qt 6.
    Although the deprecation was delayed to 5.15 because of a Qt3D issue [^3], that
    we don't use.
    We use a replacement is suggested in [^1].
    
    The commit log of [^2] even mentions its deprecated "since Qt4 times".
    
    [^1]: https://doc.qt.io/qt-5/qwheelevent-obsolete.html#delta
    [^2]: https://github.com/qt/qtbase/commit/7d29807296cb7ccc7f3459e106d74f93a321c493
    [^3]: https://github.com/qt/qtbase/commit/8dc45d5b7cd9637f28b2d872a834266b991bf434

commit 7ae9caeb96f0387e4c6786b798ddb694c78da6a8
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Dec 17 13:19:54 2024 +0100

    qt: use QAbstractItemModel::index() instead of QModelIndex::child()
    
    It's deprecated in Qt 5.15 [^1], since 5.8 [^2], and removed in Qt 6.
    We use a replacement is suggested in [^1].
    
    The commit log of [^2] even mentions its deprecated "since Qt4 times".
    
    [^1]: https://doc.qt.io/qt-5/qmodelindex-obsolete.html#child
    [^2]: https://github.com/qt/qtbase/commit/8dc45d5b7cd9637f28b2d872a834266b991bf434

commit 02de7fdafe7da0bdcc2389391b9647d1f9f6ed5f
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Dec 17 13:10:52 2024 +0100

    qt: use QPixmapCache::find(QPixmap*) instead of QPixmapCache::find(QPixmap&)
    
    It's deprecated in Qt 5.15 [^1], since 5.13 [^2], and removed in Qt 6.
    
    The commit log of [^2] even mentions its deprecated "since Qt4 times".
    
    [^1]: https://doc.qt.io/qt-5/qpixmapcache-obsolete.html#find
    [^2]: https://github.com/qt/qtbase/commit/daee9af969a04a2919a948ba1f5d314626925a9a

commit 55ad77f4c1e912d0187844917c1c0b0010669f2f
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Dec 17 11:54:44 2024 +0100

    qt: remove Qt::WA_MacBrushedMetal
    
    It's deprecated in Qt 5.15 [^1], since 5.14 [^2], and removed in Qt 6.
    
    The commit log of [^2] even mentions its deprecated for "a log time".
    
    [^1]: https://doc.qt.io/qt-5/qt.html#WidgetAttribute-enum
    [^2]: https://github.com/qt/qtbase/commit/4f6eb43898aa14fef5f3a54966b340188271d85e

commit b811be7a3be63d5c1b9da8ae96039a07f7bf61c5
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Dec 17 15:58:32 2024 +0100

    qt: use QRandomGenerator instead of qrand()
    
    It's deprecated since Qt 5.15 [^1], and removed in Qt 6.
    
    The commit log of [^2] even mentions its deprecated "in the documentation for a while".
    
    The QRandomGenerator class was added in Qt 5.10 [^3] so we can't use it
    before that.
    
    [^1]: https://doc.qt.io/qt-5/qtglobal-obsolete.html#qrand
    [^2]: https://github.com/qt/qtbase/commit/b3c0e9afa0041d4d45e47880732deda1dd1013b9
    [^3]: https://doc.qt.io/qt-5/qrandomgenerator.html

commit 71693edd4cf1f3c9ab9fe39099886b664ae7bf84
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Dec 17 10:59:17 2024 +0100

    qt: use QTreeWidgetItem::setExpanded() instead of QTreeWidget::InfoTree->setItemExpanded()
    
    It's deprecated in Qt 5.15 [^1], since 5.13 [^2], and removed in Qt 6.
    
    The commit log of [^2] even mentions its deprecated for "a long time".
    
    [^1]: https://doc.qt.io/qt-5/qtreewidget-obsolete.html#setItemExpanded
    [^2]: https://github.com/qt/qtbase/commit/76bb804405f424708fffec502788995ea91206b8

commit b392e3456f27f6bd2cb572bb190befb046a7f104
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Dec 17 10:11:30 2024 +0100

    qt: use QPalette::window() instead of QPalette::background()
    
    It's deprecated and the replacement suggested in the doc [^1].
    
    It's deprecated in Qt 5.15 [^1], since 5.13 [^2], and removed in Qt 6.
    
    The commit log of [^2] even mentions its deprecated for all Qt5 but was not
    marked as such yet.
    
    [^1]: https://doc.qt.io/qt-5/qpainter.html#RenderHint-enum
    [^2]: https://github.com/qt/qtbase/commit/4c522e0226da1bcc67a585130e3b2a976be128fd

commit 2c43e321f246e1ef4588400cfb77e95d05a2a0ca
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Dec 10 07:33:06 2024 +0100

    qt: remove deprecated timespec
    
    Will be gone in 6.10. The replacement Timezone was added in 6.7.
    And we don't need to set it unless the display format uses a timezone [^1] + [^2].
    
    This avoids this kind of warnings:
    ```
    ./gui/qt/ui/open.h:205:27: warning: 'setTimeSpec' is deprecated: Use setTimeZone() instead [-Wdeprecated-declarations]
      205 |         stopTimeTimeEdit->setTimeSpec(Qt::LocalTime);
          |                           ^
    /mnt/s/sources/build/win64-llvm18/contrib/x86_64-w64-mingw32ucrt/include/QtWidgets/qdatetimeedit.h:134:5: note: 'setTimeSpec' has been explicitly marked deprecated here
      134 |     QT_DEPRECATED_VERSION_X_6_10("Use setTimeZone() instead")
          |     ^
    /mnt/s/sources/build/win64-llvm18/contrib/x86_64-w64-mingw32ucrt/include/QtCore/qtdeprecationmarkers.h:187:45: note: expanded from macro 'QT_DEPRECATED_VERSION_X_6_10'
      187 | # define QT_DEPRECATED_VERSION_X_6_10(text) QT_DEPRECATED_X(text)
          |                                             ^
    /mnt/s/sources/build/win64-llvm18/contrib/x86_64-w64-mingw32ucrt/include/QtCore/qtdeprecationmarkers.h:29:33: note: expanded from macro 'QT_DEPRECATED_X'
       29 | #  define QT_DEPRECATED_X(text) Q_DECL_DEPRECATED_X(text)
          |                                 ^
    /mnt/s/sources/build/win64-llvm18/contrib/x86_64-w64-mingw32ucrt/include/QtCore/qcompilerdetection.h:1000:36: note: expanded from macro 'Q_DECL_DEPRECATED_X'
     1000 | #  define Q_DECL_DEPRECATED_X(x) [[deprecated(x)]]
          |                                    ^
    ```
    
    [^1]: https://doc.qt.io/qt-6/qdatetimeedit.html#timeZone-prop
    [^2]: https://doc.qt.io/qt-6/qtime.html#toString
    
    (cherry picked from commit 3c07c3369a5313b2d79e95dec20c1f6a1041ad23) (edited)
    edited:
    - the file was moved in 4.0

commit fffeec5ce15d2036b288df85fd5fdfea9ce0ae31
Author: Fatih Uzunoglu <fuzun54@outlook.com>
Date:   Tue Oct 22 16:45:32 2024 +0300

    qt: define QT_NO_CAST_FROM_BYTEARRAY
    
    It is dangerous to have implicit casting between
    QByteArray and pointer types.
    
    (cherry picked from commit 18f4f954ae044089df4b95d37eb874e9a8629417) (edited)
    edited:
    - 3.0 doesn't have meson
    - the CPP flags are different on 3.0
    - 3.0 uses p_intf with config_PutPsz()
    - some files modified in 4.0 don't exist on 3.0

commit c780832579dcc28d674d4d94a890ca9f5251e462
Author: Fatih Uzunoglu <fuzun54@outlook.com>
Date:   Tue Oct 22 17:22:50 2024 +0300

    qt: use QT_USE_QSTRINGBUILDER
    
    (cherry picked from commit 0450706563e262c5728ff159241ec276fc359969) (edited)
    edited:
    - 3.0 doesn't have meson
    - the CPP flags are different on 3.0

commit adacb4ff6d96781b2ae2dffd56022ad886d4a05d
Author: Fatih Uzunoglu <fuzun54@outlook.com>
Date:   Fri Sep 8 15:46:52 2023 +0300

    qt: proper format handling for indeterministic integer type
    
    (cherry picked from commit 283b2b483802a6369347477f51c68068268cce20) (edited)
    edited:
    - the file was moved in 4.0

commit 548889c14217cc0a8ebd1152c5845c6d3064b111
Author: Johannes Kauffmann <johanneskauffmann@hotmail.com>
Date:   Fri Aug 26 21:56:23 2022 +0000

    qt: purge remaining use of Q_DECL_OVERRIDE
    
    (cherry picked from commit 258921fd9eb54275a0b25806c800bf039f082002) (edited)
    edited:
    - many files were moved in 4.0

commit edd971323433b7440d24020f89a2fc5c38537f6b
Author: Lyndon Brown <jnqnfe@gmail.com>
Date:   Sun Mar 6 05:57:28 2022 +0000

    qt: check cdda module exists before handling cdda specific option
    
    Fixes #26492.
    
    (cherry picked from commit fdf0eaa4fcbcda71017d0ef528b310774b35a2a2) (edited)
    edited:
    - the file was moved in 4.0
    - 3.0 uses p_intf with config_GetPsz()

commit 692d3bb7822121f2f78d4679cb03bb34325da47c
Author: Marvin Scholz <epirat07@gmail.com>
Date:   Fri Jul 26 21:32:46 2019 +0200

    qt: add missing override specifier
    
    Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
    (cherry picked from commit 52d261a014748f7aa404df0be437af31cda27bf5) (edited)
    edited:
    - 3.0 doesn't have setupVoutWindow() in components/voutwindow/qvoutwindowdummy.hpp

commit fa92546494eb6a16351f7dab6ebb53e329c127be
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Feb 5 09:52:36 2025 +0100

    qt: use QString::fromWCharArray() to translate widows WCHAR strings
    
    No need to translate to UTF-8 first (which is also not used as such later).
    
    (cherry picked from commit 65b9fe623a57a0368ac2a620410b6f037c7a0c48) (edited)
    edited:
    - the file was moved in 4.0

commit d77b9e1dd2ecef2d6b0b593662fd40584e99814f
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Feb 5 13:01:28 2025 +0100

    qt: keep the module name as a QString
    
    So we don't have to release it manually.
    
    This should be backported as Qt5 with QT_USE_QSTRINGBUILDER
    doesn't like the + in onUpdate().
    For some reason Qt6 is OK with that.
    
    (cherry picked from commit e063d116ed6832b2b5c4463e980935ba09ddb082) (edited)
    edited:
    - the file was moved in 4.0

commit 0c699ef96efdd11b16f05d811f446c24e01bc063
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Feb 7 12:53:52 2025 +0100

    qt: use QStringLiteral with constant string concatenation
    
    Qt5 with QT_USE_QSTRINGBUILDER doesn't like the +.

commit a031af8522d7cc1ad03eb7985e4ca60fd031eabc
Author: Rémi Denis-Courmont <remi@remlab.net>
Date:   Mon Jan 31 19:17:16 2022 +0200

    configure: look for backtrace() in libexecinfo (fixes #26562)
    
    Fixes linking on *BSD's.
    
    (cherry picked from commit b3179e1e0993b8c15b735c93282c7675632c183c)

commit 0f5199a5ca322cbd785b7f534955428e604d6836
Author: Thomas Guillem <thomas@gllm.fr>
Date:   Mon Feb 17 03:38:34 2025 -0500

    libass: fix fontconfig detection
    
    Fixes fontconfig test as the header path is not passed in and the header
    is not found.
    
    (cherry picked from commit d19599c42141eaf72cae9a0cb21b5889cd01c860)

commit ac807d2c8574c292a34c51e000c1554f372aa618
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Feb 13 09:42:06 2025 +0100

    caf: don't keep extra data for an unknown codec
    
    The codec ID is set in ReadDescChunk(). And according to the error before using it:
    
    > The audio description chunk must be the first chunk
    
    We should not be using codec data if we don't have the codec.
    The file will eventually fail with this error, but we don't need to
    copy bogus data before that.
    
    Fixes #29012
    
    (cherry picked from commit b3ec88d53167d4a3383db43328f10abcc454cebe)

commit 3758d15c000c9ec10711ca7e9580e43ba09601df
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Feb 13 11:36:21 2025 +0100

    demux: asf: fix local buffer leak
    
    Fixes #28998
    
    (cherry picked from commit 430792dc3f9f0e7bb526c38564f57e3b7fab4a0a)

commit 33a49638866b7aca6d767da3751b940849c9512c
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Feb 5 08:23:58 2025 +0100

    contrib: dvdnav: fix bogus test in patch
    
    Only the cellN values above nr_of_cells + 1 should be rejected,
    just as with pgN and nr_of_programs + 1 in the other patch.
    
    (cherry picked from commit 0ddf69feccd687f0a694aeeefbc31c76074103ec)

commit 120f41a5741fc502b1a73d835093212cccbcb87d
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Feb 7 11:09:54 2025 +0100

    picture_pool: fully initialize the test video format
    
    video_format_Setup() doesn't intialize all the fields.
    
    (cherry picked from commit 20ba271df1def00217592499c55551fe87d87d43)

commit 8678d1e317a9e57e1f52a74229106a93573a4e90
Author: Tristan Matthews <tmatth@videolan.org>
Date:   Wed Feb 5 10:52:24 2025 -0500

    packetizer: flac: avoid integer overflow
    
    Fixes #29010
    Fixes https://issues.oss-fuzz.com/issues/42503720
    
    found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/vlc
    (cherry picked from commit d0100b92ac9997fece08052b2abb90e4f519ae3a)

commit 83da242d70834cbcd63b730df754ec2b3aff5597
Author: Tristan Matthews <tmatth@videolan.org>
Date:   Fri Feb 7 14:50:52 2025 -0500

    packetizer: flac: convert read_utf8 to unsigned
    
    Rationale: this is what the standard implementation (libFLAC) is doing and
    there is no need to consider negative samples/frame numbers.
    
    (cherry picked from commit fd378b20470d916d839ea2f65faa6036c16e759d)

commit 3e64644242783c68892262b11c178a1c668ab14a
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Jan 29 09:23:41 2024 +0100

    qt: remove virtual on override methods
    
    It's implied.
    
    (cherry picked from commit 324b9f5a730318b9206f5061db7825d738e3e63b) (edited)
    - the files moved in 4.0
    - a lot of 4.0 files are not in 3.0

commit 1b50b8af51de10d546a137f2c04210a8d20effb0
Author: Johannes Kauffmann <johanneskauffmann@hotmail.com>
Date:   Fri Aug 26 21:53:03 2022 +0000

    qt: egp: use override
    
    (cherry picked from commit 5d9b04653b939a8f7e93c50f49248515633b4455) (edited)
    edited:
    - the files moved in 4.0

commit a572d691d7ba23af39189e7ddb737aea01b459b0
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Dec 17 15:41:59 2024 +0100

    qt: use override+virtual
    
    from 2abc4460ce175e812670b551e12412ee427786f2

commit 4e5531106becf8cca985dbb458f33cdfd29dad7f
Author: Fatih Uzunoglu <fuzun54@outlook.com>
Date:   Mon Sep 4 19:42:14 2023 +0300

    qt: use QTimeZone::systemTimeZone() instead of QTimeZone::utc()
    
    (cherry picked from commit a1b6ba86ca054298425e93d8dc669e9e811a3f40) (edited)
    edited:
    - the code in 3.0 has a check for Qt 5.8
    - 3.0 doesn't have mlrecentsmodel.cpp, mlurlmodel.cpp and networkmediamodel.cpp
    - the files were moved in 4.0

commit 6cf18cc55213569c28bc4bac8bfaf597f628950e
Author: Fatih Uzunoglu <fuzun54@outlook.com>
Date:   Fri Sep 1 14:22:07 2023 +0300

    qt: use QRegularExpression instead of QRegex
    
    Co-authored-by: Pierre Lamot <pierre@videolabs.io>
    (cherry picked from commit d32667992e3fca21f49d35e6294b581d4443d3ad) (edited)
    edited:
    - the files were moved in 4.0
    - 3.0 doesn't have sortfilterproxymodel.cpp
    - 3.0 already backport 37480bc2294f58881f4dfa49b5e0204a64bc7cba

commit a22fe6c9468ba48e130a5d277f5423d6d95ebe57
Author: Fatih Uzunoglu <fuzun54@outlook.com>
Date:   Fri Sep 1 14:13:22 2023 +0300

    qt: use different overload for QDateTime::fromSecsSinceEpoch()
    
    Before Qt 6.5, it is necessary to provide the timezone explicitly.
    
    (cherry picked from commit cfef77dd5da1ae259e2bf7937e6e05846f39dd15) (edited)
    edited:
    - the code in 3.0 has a check for Qt 5.8
    - 3.0 doesn't have mlrecentsmodel.cpp, mlurlmodel.cpp and networkmediamodel.cpp
    - files were moved in 4.0

commit 3293e98afff2ab1dac1bfcc3f41647b8d01cec9e
Author: Ilkka Ollakka <ileoo@videolan.org>
Date:   Sat May 6 10:42:05 2023 +0300

    qt: remove QDirModel include
    
    It has been deprecated since qt4.7 and only use seemed to be in commented out code
    
    (cherry picked from commit 9d4e884c7452f1919dfc1d264c683778cc60d630) (edited)
    edited:
    - the file was moved in 4.0

commit 66f095c3aac1fe03a915803ba77a43f817c95cab
Author: Ilkka Ollakka <ileoo@videolan.org>
Date:   Sat Mar 4 13:12:20 2023 +0200

    qt: replace setMargin with setContentsMargins
    
    setMargin has been deprecated and shouldn't be used
    
    (cherry picked from commit ed986711c159499b873157d4e5d4a53026d94719) (edited)
    edited:
    - files were moved in 4.0

commit 29e931a9c711c6d1fce400a705187611bc0a4e0e
Author: Ilkka Ollakka <ileoo@videolan.org>
Date:   Sat Mar 4 12:58:04 2023 +0200

    qt: convert fromTime_t to fromSecsSinceEpoch
    
    fromTime_t has been deprecated and fromSecsSinceEpoch looks like drop-in replacement in our use
    
    (cherry picked from commit 8a5bcc93c08d714f82e25a60461dd7fa88e443b5) (edited)
    edited:
    - 3.0 doesn't have mlrecentsmodel.cpp and mlurlmodel.cpp
    - the files were moved in 4.0
    - the API is only available since Qt 5.8

commit d2d422907dbc98d7fe04ebe43c9320041aad50e5
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Jan 24 09:14:12 2023 +0100

    qt: fix UTF-8 string usage
    
    (cherry picked from commit bbb9f6a07adfd20c544d29198ea2fec601bf3e62) (edited)
    edited:
    - 3.0 doesn't have expert_model.cpp
    - files were moved in 4.0

commit 732b92b61aad7514c1c3bbcb917eb0aa88731ca5
Author: Pierre Lamot <pierre@videolabs.io>
Date:   Wed Jan 18 09:26:44 2023 +0100

    qt: fix ambiguous string construction
    
    (cherry picked from commit a8d3ae63820ade765c1e21c1d8d44ab37c396e81) (edited)
    edited:
    - the file was moved in 4.0

commit 8e8a41ac42d481898068283cc025d28e417ed983
Author: Johannes Kauffmann <johanneskauffmann@hotmail.com>
Date:   Sun Aug 7 09:41:39 2022 +0000

    qt: open_panels: add missing override
    
    (cherry picked from commit 64f86598c61f5666379c180a311626b89eff0979) (edited)
    edited:
    - the file was moved in 4.0

commit 9399cc218cccdea08791f30f00cabab91410bf88
Author: Alexandre Janniaux <ajanni@videolabs.io>
Date:   Fri May 20 14:45:30 2022 +0200

    qt: preferences_widgets: use override
    
    ... instead of Q_DECL_OVERRIDE, since it always expand to override for
    >=C++11 configuration, and the module uses C++11 anyway.
    
    (cherry picked from commit 8d838e7ea2abe99dbb4a51d5e3212524767c0689) (edited)
    edited:
    - only a few select methods were updated and they are different in 3.0 but on
      the same classes

commit ec16474cbad171fa1c09dfbe1c3fe12a53a24cf4
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Dec 17 09:54:57 2024 +0100

    qt: add missing includes

commit 0d53ece64d595352b28b2fed21099ea6ce41e066
Author: Lyndon Brown <jnqnfe@gmail.com>
Date:   Wed Feb 23 01:07:25 2022 +0000

    qt: purge more redundant includes
    
    Note that in some cases they have been changed to forward declarations, and
    in some they have been moved, for instance inclusion of `<QUrl>` was moved
    from `qt.hpp` to where it was needed.
    
    (cherry picked from commit b86a9ce6833c17f37d87b30be0b5181a06d6ac6b) (edited)
    edited:
    - 4.0 has more files
    - some files were moved in 4.0

commit 674f3b58cecbd1f6c23318e96b1d50bba6ac0c04
Author: Marvin Scholz <epirat07@gmail.com>
Date:   Wed Dec 8 00:07:54 2021 +0100

    gui/qt: do not use deprecated SystemLocaleLongDate
    
    (cherry picked from commit dcb97734fd4597a6b648f3b55ba7af6c5b7ce269) (edited)
    edited:
    - the file was moved in 4.0

commit 928c8e9f638f9ee7317fab5c9bcf541b1743cf1f
Author: Fatih Uzunoglu <fuzun54@outlook.com>
Date:   Fri Feb 12 00:23:35 2021 +0300

    qt: fix QDateTime warning when Qt 5.14 is used
    
    Signed-off-by: Pierre Lamot <pierre@videolabs.io>
    (cherry picked from commit 9da7c8c4f9d2f90c151decc0ec61a6db474f850d) (edited)
    edited:
    - the file was moved in 4.0

commit 2043530875d855d0d3b1eb9aa74c00e01282518b
Author: Fatih Uzunoglu <fuzun54@outlook.com>
Date:   Fri Feb 12 00:23:34 2021 +0300

    qt: use Qt::SkipEmptyParts in newer Qt version
    
    It's gone in recent versions of Qt.
    
    (cherry picked from commit ecebe9fc1db5c9952e64a1d8b31ac5026a096ac0) (edited)
    edited:
    - the change was also needed in controller.cpp and bookmarks.cpp
    - 3.0 doesn't have playercontrolbarmodel.cpp

commit 9072173b468e88429e27165e05a4b9585420c596
Author: Pierre Lamot <pierre@videolabs.io>
Date:   Thu May 28 11:47:49 2020 +0200

    qt: using QMap as multimap is deprecated in Qt5.15
    
    (cherry picked from commit 78708b273d07c5387c30772de365674dc690b5dc) (edited)
    edited:
    - 3.0 doesn't have navigation_history.cpp
    - the const iterator was using the wrong type

commit 880ae34d4b12d6bc046d1c1296e0341c654202df
Author: Pierre Lamot <pierre@videolabs.io>
Date:   Thu May 28 10:04:45 2020 +0200

    qt: constructing QFlags from int is deprecated since Qt 5.15
    
      Zero initializing can be done with default constructor. here the default
      value of the parameter.
    
    (cherry picked from commit f2d32344cfe9638f48981e067d0d94bfe95bf4d7) (edited)
    edited:
    - the files were moved on 4.0

commit 952f7990086b036449e99d5fc3a1a22d464f9d78
Author: Pierre Lamot <pierre@videolabs.io>
Date:   Thu May 28 10:04:25 2020 +0200

    qt: QGraphicsView::setMatrix is deprecated since Qt 5.15
    
    (cherry picked from commit be856f33c6798067816a4e224786cc7d5d84c99f) (edited)
    edited:
    - the file was moved on 4.0

commit 5a48655d9e51696c669350d8cbaa9a72a7873be6
Author: Pierre Lamot <pierre@videolabs.io>
Date:   Wed May 27 11:06:39 2020 +0200

    qt: QLinkedList is deprecated in Qt 5.15
    
    (cherry picked from commit 28bc7efdabd040b8d66eb17ffbbacaefcb1a8d4f) (edited)
    edited:
    - the files were moved on 4.0

commit f537d0e1063c76d1d0d96839f31d32efa511c517
Author: Alexandre Janniaux <ajanni@videolabs.io>
Date:   Sun Feb 23 20:34:24 2020 +0100

    qt: messages: use C++ atomic instead of Qt's
    
    It removes a deprecation warning on QBasicAtomicInteger<T>::load which
    is not solvable with Qt 5.12 version at the same time.
    
    Signed-off-by: Marvin Scholz <epirat07@gmail.com>
    (cherry picked from commit c5e302585ee0e02080400fde79a9aa27de01e2a9) (edited)
    edited:
    - the file was moved on 4.0

commit 6f0a9ec6792db90d54b876262ec141624bb8217d
Author: Alexandre Janniaux <ajanni@videolabs.io>
Date:   Sun Jan 19 16:39:05 2020 +0100

    qt: info_panels: replace deprecated QString::sprintf
    
    QString::sprintf is deprecated in Qt 5.14, so use QString::setNum
    instead. As we always use the same precision, width and format, enforce
    it in the macro itself too.
    
    Signed-off-by: Thomas Guillem <thomas@gllm.fr>
    (cherry picked from commit 50d57469219f82981856a18a2698cf349e9b951c) (edited)
    edited:
    - on 4.0 the stats come from a local variable

commit de46ad7eef90aaba778a5e6e2459ea79fa1356f0
Author: Alexandre Janniaux <ajanni@videolabs.io>
Date:   Thu Jan 9 00:56:34 2020 +0100

    qt: replace deprecated qVariantFromValue by QVariant::fromValue
    
    They are warned as obsolete in Qt 5.14, and were historic workaround
    for MSVC builds.
    
    Signed-off-by: Thomas Guillem <thomas@gllm.fr>
    (cherry picked from commit f8aa7058fab0452024a0b769f549d9e663a9cde8) (edited)
    edited:
    - the file was moved in 4.0

commit d7b0eeb143b25fc48048de889f42fa7f6978f60a
Author: Alexandre Janniaux <ajanni@videolabs.io>
Date:   Thu Jul 25 01:14:53 2019 +0200

    qt: extended_panels: replace deprecated QFontMetrics::width
    
    Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
    (cherry picked from commit 5a62d2aa2fdfd76ce9aa96dc17975f1ec90b0a07) (edited)
    edited:
    - horizontalAdvance() was added in 5.11 https://doc.qt.io/qt-5/qfontmetrics.html#horizontalAdvance

commit cdf0eaad2773b89c58907deace0af43446d264c9
Author: Alexandre Janniaux <ajanni@videolabs.io>
Date:   Thu Jul 25 01:14:52 2019 +0200

    qt: EPGChannels: replace deprecated QFontMetrics::width
    
    Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
    (cherry picked from commit 9a11d6198baf46f4a42ab33f87b6688532815a0f) (edited)
    edited:
    - the API is only available since Qt 5.11

commit 86eff076ad405ac26b5d4031dc761d8480bbb42d
Author: Alexandre Janniaux <ajanni@videolabs.io>
Date:   Thu Jul 25 01:14:51 2019 +0200

    qt: EPGChannels: use std::sort instead of qSort
    
    Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
    (cherry picked from commit c49140dcff3a2ba2729cec8756c7f78b198d50c9)

commit 812fdf1050e75cbb5ae58d92aac60ac47e8268fe
Author: Marvin Scholz <epirat07@gmail.com>
Date:   Tue Aug 21 02:33:11 2018 +0200

    gui/qt: Fix invalid widget in buddy
    
    This fixes the warning: "Buddy assignment is not a valid widget" caused
    by referencing an invalid widget as buddy for the mmdevice label.
    
    (cherry picked from commit a7f623dd3225b2a07532142660184a046d1fa920)

commit 71ad405fde6a00fa0b139d57cd152a9b78a8b9b8
Author: Tristan Matthews <tmatth@videolan.org>
Date:   Mon Jan 20 11:13:48 2025 -0500

    contrib: dav1d: update to 1.5.1
    
    1.5.1 is a minor release of dav1d, focusing on speed optimizations and
    on stack reduction.
    
    Notable optimizations happened on SSSE3, ARM32/ARM64, RISC-V and power-PC.
    A possible deadlock was also fixed.
    
    (cherry picked from commit 00fb0120934881d297eeb0e4a13e1acd0ef75e12)

commit e56013eb889ea436054792be57bc5983e6247592
Author: Tristan Matthews <tmatth@videolan.org>
Date:   Mon Oct 21 23:01:13 2024 -0400

    contrib: dav1d: update to 1.5.0
    
    1.5.0 is a major release of dav1d, that adds numerous optimizations on
    all platforms, x86, ARM, PPC, Risc-V, Loogarch, making it the fastest
    release ever.
    
    (cherry picked from commit 6e4895f39c5e33b65abd1656758babe8612919ef)

commit 7d9556076c73705896c3efe79d3a1f53b264c404
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Jan 24 08:11:35 2025 +0100

    contrib: dvdcss: require GPL to build
    
    It's only picked as a dependency from the dvdread contrib which also requires GPL.
    But it's cleaner to make it explicit.
    
    (cherry picked from commit cf9f8a3516e22e5ce1972318c82631649fa2a7e5) (rebased)
    rebased:
    - 3.0 doesn't use the simplified autotools macros

commit 1c4ba2065162f76532e0f4dd84935d54b44770d1
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Jan 24 13:50:53 2025 +0100

    contrib: dvdnav: turn assert+exit into silent discard
    
    This fixes playback on some bogus DVDs.
    
    (cherry picked from commit ef256ba8acde2a159b58ead454a5f8a96824e521)

commit 9342d4c96de520d4fc711fb432e85ff4cc58ccab
Author: Alexandre Janniaux <ajanni@videolabs.io>
Date:   Sun Dec 8 22:43:37 2024 +0100

    Makefile.am: fix installation regression
    
    Automake doesn't generate automatic rules when a rule already exist in
    the file, except if it cannot detect it. Adding the
    `install-fooLTLIBRARIES: install-pkglibLTLIBRARIES` rule for audio
    outputs, video outputs and vdpau broke the installation.
    
    Adding `$(install-fooLTLIBRARIES): install-pkglibLTLIBRARIES` also makes
    automake unhappy because of the variable name looking suspiciously close
    to the target it generates, so a version without the dash is used for
    the variable name in the rule. With this, the install target is
    preserved but the dependency also exists in the output.
    
    (cherry picked from commit 0b9f3f836f1c678e6d101f62545a8edaba16dcd0) (rebased)
    rebased:
    - the code around is slightly different

commit 42b95ec9e81e77f3ae0178f8e67434ed67bf2c60
Author: Alexandre Janniaux <ajanni@videolabs.io>
Date:   Sun Dec 1 06:25:29 2024 +0100

    Makefile.am: enforce pkglib dependency order for install
    
    During installation, no dependencies existed between the targets being
    installed and the targets being relinked against the installed version,
    which made the following race condition:
    
        ../doltlibtool   --mode=install /usr/bin/install -c   libvlc_pipewire.la libvlc_pulse.la libvlc_vdpau.la libvlc_xcb_events.la '/builds/videolan/vlc/vlc-4.0.0-dev/_inst/lib/vlc'
        libtool: install: (cd /builds/videolan/vlc/vlc-4.0.0-dev/_build/sub/modules; /bin/bash "/builds/videolan/vlc/vlc-4.0.0-dev/_build/sub/modules/../libtool"  --silent --tag CC --mode=relink gcc -g -O2 -pthread -Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wvolatile-register-var -Wformat -Wformat-security -Wduplicated-branches -Wduplicated-cond -Wbad-function-cast -Wwrite-strings -Wmissing-prototypes -Werror-implicit-function-declaration -Winit-self -Wlogical-op -Wshadow=local -Wmultistatement-macros -pipe -Werror=missing-field-initializers -Werror=format -Werror=incompatible-pointer-types -Werror=restrict -Werror=int-conversion -Werror=implicit-int -Werror=return-mismatch -Werror=declaration-missing-parameter-type -fvisibility=hidden -fno-math-errno -funsafe-math-optimizations -fno-rounding-math -fno-signaling-nans -fcx-limited-range -funroll-loops -fstack-protector-strong -avoid-version -module -export-symbols-regex "^vlc_entry" -shrext .so -no-undefined ../compat/libcompat.la ../src/libvlccore.la -Wl,-z,defs -o libvdpau_instance_plugin.la -rpath /builds/videolan/vlc/vlc-4.0.0-dev/_inst/lib/vlc/plugins/vdpau hw/vdpau/libvdpau_instance_plugin_la-device.lo libvlc_vdpau.la -lSM -lICE -lX11 -lanl )
        libtool: install: /usr/bin/install -c .libs/libvlc_vdpau.so.0.0.0 /builds/videolan/vlc/vlc-4.0.0-dev/_inst/lib/vlc/libvlc_vdpau.so.0.0.0
        /usr/bin/ld: cannot find -lvlc_vdpau: No such file or directory
        libtool: install: (cd /builds/videolan/vlc/vlc-4.0.0-dev/_inst/lib/vlc && { ln -s -f libvlc_vdpau.so.0.0.0 libvlc_vdpau.so.0 || { rm -f libvlc_vdpau.so.0 && ln -s libvlc_vdpau.so.0.0.0 libvlc_vdpau.so.0; }; })
        collect2: error: ld returned 1 exit status
        libtool: install: (cd /builds/videolan/vlc/vlc-4.0.0-dev/_inst/lib/vlc && { ln -s -f libvlc_vdpau.so.0.0.0 libvlc_vdpau.so || { rm -f libvlc_vdpau.so && ln -s libvlc_vdpau.so.0.0.0 libvlc_vdpau.so; }; })
        ----------------------------------------------------------------------
        libtool:   error: error: relink 'libvdpau_instance_plugin.la' with the above command before installing it
        libtool: install: /usr/bin/install -c .libs/libvlc_vdpau.lai /builds/videolan/vlc/vlc-4.0.0-dev/_inst/lib/vlc/libvlc_vdpau.la
        make[6]: *** [Makefile:15527: install-vdpauLTLIBRARIES] Error 1
    
    Here, with the thread number, we have:
     - (1) doltlibtool installing the pkglibs (install-exec-am).
     - (2) in parallel, libtool relinking the vdpau instance plugin.
     - (1) libtool starts to be called for "relinking" (which is only
           installing there) with version 0.0.0.
     - (2) libtool tried to run the linker but it failed because
           libvlc_vdpau.so doesn't exist yet on the target prefix.
     - (1) libtool .0.0.0 links to the major version shortcut .0 for
           libvlc_vdpau.
     - (1) libtool .0.0.0 links to the unversioned shortcut for
           libvlc_vdpau.
    
    So the pkglibs were not installed before installing the plugins linking
    them and it was racy whether automake succeeded in installing vlc_vdpau
    before or not. This could apply to any pkglib being used from plugins.
    
    This patch ensure the pkglibs are installed before relinking the plugins
    for vpdau, same must be done for each other pkglib usage location.
    
    Note that install-vdpauLTLIBRARIES itself will install each target from
    vdpau_LTLIBRARIES serially in the order they are defined, so there would
    be no race inside the same LTLIBRARIES variables, but the different
    LTLIBRARIES variables are processed in parallel themselves.
    
    Fixes #28374
    
    (cherry picked from commit 056d7349a559cb63b456505bb11c08a4910452aa) (rebased)
    rebased:
    - the code around is slightly different

commit 63245fd383f51132a127e80f25b77c0531265d93
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Jan 13 10:35:07 2025 +0100

    x265: fix API signature with x265 4.1
    
    They changed the API in c69c113960834400545bc4bce2830ff51dcb86b3
    And then reverted it in
    78e5b703b186fe184bf91bb37df82f64059b3f61
    
    The X265_BUILD is how you can tell the x265 version(s). But they didn't change
    the values in these commits.
    
    - X265_BUILD was 210 when the API was changed
    - X265_BUILD was 214 when the API was reverted

commit 33fb3b37d066d28db592ed683d6240346e4bae2e
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Jan 14 15:51:36 2025 +0100

    package/win32: only use start-no-unused-arguments with Clang14 and up
    
    It generates compilation errors before as it's not supported.
    
    (cherry picked from commit f9041c3467f0cd63fac456af5fe840d2137d1b68) (rebased)
    rebased:
    - 3.0 has winstore compat above

commit 2fd25d46a710b997c653218ceae172ed764d1077
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Jan 9 15:58:00 2025 +0100

    package/win32: favor the static version of winpthread with clang
    
    Just like we favor the static version of libunwind.
    
    We don't need any extra flags for the compiler. It's all handled in the linker.
    
    Ref. #28903
    
    (cherry picked from commit cd7e35c6f05d401268b72bf51077cf47295ae7f2)

commit 6fdf53a02d0536600da78c25fdc3646588cd88e7
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Nov 7 15:51:15 2024 +0100

    package/win32: use "-n" instead of "! -z" tests
    
    (cherry picked from commit d897981340cb55002a19c5d44b007d6ade2c53da) (edited)
    edited:
    - 3.0 had more/in different places

commit f9091cb9dbf35e5e4464e95fd45bd036b52bf3a3
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Nov 4 14:52:43 2024 +0100

    package/win32: enable PDB for contrib binaries
    
    This way it's enabled the same way for all the code we build.
    
    (cherry picked from commit 2c2eb681922e4e2c5aba3f8cc77dfe83cd185563)

commit d78d32477b7d32209b678d9ad84e65123efe390c
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Nov 4 11:08:41 2024 +0100

    package/win32: don't issue a wanring when -gcodeview is not used
    
    This may trigger some compiler detection in some contribs.
    The warning is issued when linking through the compiler.
    
    (cherry picked from commit 112d5c78615a507373bc649f2fed432c91f717e4)

commit 9b387eb416c58dba1954400f18cd41e775762ade
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Nov 4 11:04:52 2024 +0100

    package/win32: pass -lwindowsapp with -Wl in VLC_LDFLAGS
    
    Only used in UWP builds.
    
    (cherry picked from commit 619dff36e3da20c3f63acd52566191187a9cf2f1) (edited)
    edited:
    - 3.0 has winstorecompat library

commit 1469c780bc60043a9957ed1e62f12fc8c56730bf
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Nov 4 10:07:01 2024 +0100

    package/win32: don't discard all unused args in UWP
    
    Only ignore the options we add locally.
    This is how it's done in the llvm-mingw wrappers.
    
    (cherry picked from commit 1539eac31284dab504e4f9b8436924f9aef4843a) (rebased)
    rebased:
    - 3.0 has winstore compat below

commit 75467401cbdf0ac48cca4847a414c48c5f3d9bec
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Nov 4 08:35:18 2024 +0100

    package/win32: build all C++ with the static (LLVM) runtime
    
    Otherwise it may use the dynamic libunwind (as found in meson).
    
    Don't emit errors if it's not using (when only compiling). Some contribs don't like that.
    
    (cherry picked from commit 90488d3508de2571b3dd2942e295a616085bb482) (edited)
    edited:
    - 3.0 doesn't have meson support

commit 0b9f605d014b2a8ccf352a854b9cf8a9d720db6b
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Oct 16 12:07:51 2024 +0200

    package/win32: always export the pkg-config to use
    
    We did the detection, we know what we should use.
    
    (cherry picked from commit 55d616000698179ade1b9b534e5f9df4c4c15420)

commit 47882e7fdaf84d6677335306ea2fc9d068c9c1f6
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Oct 15 12:46:06 2024 +0200

    package/win32: always use -gcodeview when using PDB
    
    So it applies to autotools and meson builds.
    It's currently forced in the configure script.
    
    (cherry picked from commit e324c59cf4bfd4a51a61e09c3309f6ea35914d29)

commit c2be5fa5575caa18c2f67e541fb3c6dbed57937b
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Oct 9 14:38:37 2024 +0200

    package/win32: use config.mak to pass custom flags to contribs
    
    (cherry picked from commit c272db053a3600f6bf05aa1f4b658faf49932d46) (edited)
    edited:
    - 3.0 builds .luac instead of tools

commit 6a72fcb7903a894ac7d8c5447264f3f2af4c50fe
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Oct 9 14:12:54 2024 +0200

    package/win32: pass the PKG_CONFIG/PKG_CONFIG_LIBDIR without exporting them
    
    (cherry picked from commit 60a8da05dbef41eeaa4bfca777d353126f7eeb92) (edited)
    edited:
    - 3.0 builds .luac instead of tools

commit 479deb4781093e46f8e5c0f6c6050daac630d347
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Oct 9 14:12:17 2024 +0200

    package/win32: set PKG_CONFIG/PKG_CONFIG_LIBDIR variables before building contribs
    
    (cherry picked from commit f341ca78edbed2c1c82d4b9f877b615c3108a970) (edited)
    edited:
    - in 3.0 it was placed after the configure message

commit 93d0458eeac43b22edb2918c44d5ac46cc141406
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Oct 9 14:05:20 2024 +0200

    package/win32: use internal PKG_CONFIG/PKG_CONFIG_LIBDIR variables
    
    For now we keep exporting the usual names
    
    (cherry picked from commit 64297f36b4422c420403467582d713b22f7c784f) (rebased)
    rebased:
    - the code around is slightly different

commit 73fd8ad9e72f733fe154a6dba2807df4efa19141
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Oct 9 13:56:13 2024 +0200

    package/win32: pass the AR/RANLIB without exporting them
    
    (cherry picked from commit 1a9fe27e756b6b0cf7d6e89281547d0e8ddfa236) (edited)
    edited:
    - 3.0 builds .luac instead of tools

commit 849625f87a260f5f15e453330586806712b2c91b
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Oct 9 12:14:23 2024 +0200

    package/win32: pass the xxxFLAGS without exporting them
    
    (cherry picked from commit 9165d99ce980dac3432a1683792c7ed0f6325617) (edited)
    edited:
    - 3.0 builds .luac instead of tools
    - 3.0 doesn't use SHORTARCH

commit 5daf369d238f93493f760331a5afb1ab9964c2f3
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Oct 9 12:08:02 2024 +0200

    package/win32: use internal xxxFLAGS variables
    
    For now we keep exporting the usual names
    
    (cherry picked from commit 5e67a886d832097973ee3208fe3f2b1feb58b22e) (edited)
    edited:
    - 3.0 has winstorecompat library and define

commit 72c38b8e93f68048c0527aedaaf61b4b0e072fd2
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Oct 9 13:50:06 2024 +0200

    package/win32: don't export HAVE_WINSTORE
    
    The contribs and VLC have their own way of detecting/unabling winstore builds.
    
    (cherry picked from commit 7f7405c94dce140a885d41fc4bde2f1a1dbe178f) (rebased)
    rebased:
    - qt the code around is slightly different

commit 62e4fb06b25010c4dbf8eaacf3491197d9da692a
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Oct 9 13:55:42 2024 +0200

    package/win32: use internal AR/RANLIB variables
    
    For now we keep exporting the usual names
    
    (cherry picked from commit 4290a69d913ac47c53c275be2e6c77e9ef67c3d7)

commit 7b5b2e9be871d4b7a3c511f0745ef7a657031fce
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Apr 3 09:59:09 2024 +0200

    win32: build.sh: show the list of packages after the prebuilt is done
    
    So we know the tools that need to be built from there.
    
    (cherry picked from commit 41bbcde5ec71881f99d85c78df6839a3a7438b6b)

commit 8cbd74e74f893dee6cbfa9fe5c8e0a1ef83bcfc4
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri May 12 13:38:58 2023 +0200

    package/win32: use the proper triplet for uwp
    
    The mingw-w64 LLVM packages use XXX-w64-mingw32uwp for UWP targets.
    
    This will enable HAVE_WINSTORE in contribs.
    
    (cherry picked from commit f0b8e4413c1ad898a7f0045fe5cf2e683f6fb932)

commit c9a8fba4885fbcc00663f2662c79c30e391d8a7e
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Jan 26 15:05:28 2023 +0100

    package/win32: avoid verbose errors when checking for clang
    
    (cherry picked from commit 98f77b7ea18628e2ec2d35f570fa1e138d3bdf76)

commit e65c51c4c64386e015b0f87bb5f9dadf85fba9cc
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Sep 27 11:44:42 2022 +0200

    package/win32: build.sh: build contribs locally if prebuilt failed
    
    (cherry picked from commit 8998fca08bcd6662ee59b5cea3b7192245c31055) (edited)
    edited:
    - 3.0 doesn't have the tools target, it just builds .luac

commit 9a37865b44ce5c28a34b4acf4f7325db2c6a7bc0
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Sep 23 13:16:31 2022 +0200

    contrib: win32: always shows the list of know contribs before building
    
    We also want to know about native tools that may or may not be there.
    
    (cherry picked from commit aca4094634c01d8ec768df14a80d23e80cf00d9e)

commit 077266d1aa73bdcfac4330d08c631c1fb73422b2
Author: Marvin Scholz <epirat07@gmail.com>
Date:   Fri Oct 11 13:10:16 2019 +0200

    package/win32: Fix indentation
    
    (cherry picked from commit 27f7dfcc5aa636b98a5d24f9c6e3ce754f8fe2e6)

commit a7056120d6c8878117ea7a1bc7a45bd30ac05551
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Jan 16 15:29:55 2025 +0100

    Revert "package/win32: don't force windowsappcompat in contribs"
    
    This reverts commit 0fe8d0385a259993e731a95ceef813cd816d1e90.
    
    This is still needed for 3.0 contribs.

commit 7e988ea031c6f386cd733fa3117b1cf6d8c33ba2
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Jan 14 13:15:26 2025 +0100

    avformat: get the palette side data
    
    (cherry picked from commit 53858f99d4c334bc131800292a8709173769c882) (rebased)
    rebased:
    - 3.0 doesn't carry DolbyVision metadata
    - the code around is slightly different

commit eb35d13760a1f469d9619480cdbad1da5353a712
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Jan 15 07:04:31 2025 +0100

    avformat: use a flag to tell if the matrix is flipped
    
    If it's flipped, it's modifying the source matrix inside the codec
    which doesn't seem right...
    
    (cherry picked from commit 0e208650bb10528c4caeb0a8ecfb3a4d460de36f)

commit d4bcfefe780cdfc157cc4cc77c93e186bf87184b
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Jan 15 07:07:11 2025 +0100

    avformat: pass a const AVStream in side data getters
    
    (cherry picked from commit 27e327e78458261870fd99d0195f41ac4a8bd1f7) (edited)
    edited:
    - 3.0 doesn't carry DolbyVision metadata

commit bb8d03182c5be77dc634d806dcbc2e25ea727d54
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Jan 14 12:12:58 2025 +0100

    avformat: use av_packet_side_data_get() instead of deprecated av_stream_get_side_data()
    
    (cherry picked from commit de0cf6297d50ad21543719092f1a8a14b0a66931) (edited)
    edited:
    - 3.0 doesn't carry DolbyVision metadata

commit 349ab812fa579497ab7b856073d07fda6b9ac51e
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Jan 15 06:49:02 2025 +0100

    avformat: add a helper to read stream side data
    
    av_packet_side_data_get() was introduced in lavc 60.29.100 [^1].
    av_stream_get_side_data() is deprecated and will be removed in the future.
    
     [^1] https://github.com/FFmpeg/FFmpeg/commit/74279227dd28d01b447edb8e617a545982171c2c
    
    (cherry picked from commit d3f5c8746f2884a46d8421cd051dc74b25000870)

commit 9c1c856d042fe3fbc25f47a3b7a6b79eea533ebd
Author: Vittorio Giovara <vittorio.giovara@gmail.com>
Date:   Tue Feb 26 18:20:22 2019 -0500

    demux/avformat: Apply flip operations from the display matrix
    
    (cherry picked from commit 6903d3a77520d9ae110f112c7ba9010612f5d36a)

commit 4f91d136416cc04c2bcc4ea99b49d66f9be48aea
Author: Vittorio Giovara <vittorio.giovara@gmail.com>
Date:   Tue Feb 26 17:00:32 2019 -0500

    demux/avformat: Prioritize side data rotation rather than metadata one
    
    The side data API will offer a more accurate representation of the
    rendering operations in the next commit.
    
    (cherry picked from commit 1997cec8abd801bbf4ebcae72db28ab8277f221c)

commit 43e848065c13a533e3fa48578ddfe78172d80dc8
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Jan 14 11:54:56 2025 +0100

    avcodec/encoder: use avcodec_free_context in place of avcodec_close()
    
    avcodec_close() has been discouraged since 2016 [^1].
    The internal closing we need under lock is done inside avcodec_free_context().
    
    [^1] https://github.com/FFmpeg/FFmpeg/commit/1cc24d749569a42510399a29b034f7a77bdec34e
    
    (cherry picked from commit cda249f4ffd150539dfc145b7ee2fcaca7ab67c3)

commit 82cee41e0a0f6c0d32e758865ae10058bb461c27
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Jan 14 11:46:41 2025 +0100

    avcodec/encoder: use AV_CODEC_CONFIG_SAMPLE_FORMAT to get supported sample formats
    
    p_codec->sample_fmts is deprecated.
    It both cases the array was ending with AV_SAMPLE_FMT_NONE.
    
    (cherry picked from commit f20c48050e0b4f42269ff4e0340c8c430712a691)

commit 9f5ad85d441b098f7ef9a6076e4359ac8cb76c04
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Jan 14 11:43:34 2025 +0100

    avcodec/encoder: use AV_CODEC_CONFIG_PIX_FORMAT to get supported pixel formats
    
    p_codec->pix_fmts is deprecated.
    It both cases the array was ending with AV_PIX_FMT_NONE.
    
    (cherry picked from commit 5e11c8f387f3c135d9aa2e36fd0ee81774917404) (edited)
    edited:
    - 3.0 was using PixelFormat instead of AVPixelFormat

commit 5815fdd7eacda254299bcb8200afd17458015e9c
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Jan 14 11:40:33 2025 +0100

    avcodec/encoder: use AV_CODEC_CONFIG_FRAME_RATE to get supported frame rates
    
    p_codec->supported_framerates is deprecated.
    
    (cherry picked from commit e1f4cc8240f62c37aeb2d1fed8b6b4073f35d433) (rebased)
    rebased:
    - the code around is slightly different

commit 2748c79f9e793c283353e41bcd0d1edb014b75ff
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Jan 14 11:25:05 2025 +0100

    avcodec/encoder: use frame flags instead of fields
    
    The structure fields are deprecated.
    It was introduced in lavu 58.7.100.
    
    (cherry picked from commit 44dfaf630c9b1b536797917e619c8eba0aa40b6c)

commit 2f0e6205d6c9f3091be37c007c6932cc6edcfe20
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Jan 14 11:13:38 2025 +0100

    avcodec: use AV_CODEC_PROP_FIELDS to tell the number of ticks
    
    codecs sending 2 fields set the flag, otherwise it's one field.
    
    ticks_per_frame is deprecated and will be removed in the next major API bump.
    
    (cherry picked from commit 47b878be880242637aea7a0ea2fa0aa4d6794cde) (rebased)
    rebased:
    - the code around is slightly different

commit c0da09ef7059349760bcdf49b94ed9bf690582aa
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Jan 14 11:00:38 2025 +0100

    avcodec: don't assume ticks_per_frame can be 0
    
    The documentation says it's either 1 or 2.
    I verified this is the case in FFmpeg 7.1. Only h264dec, mpeg12dec, mpegvideo_parser, vc1 set it.
    
    (cherry picked from commit 2f5c860459f9d72a42b55cf0d0df4dc9b0eb0de5) (edited)
    edited:
    - p_sys is accessed via dec->p_sys on 3.0

commit 38c5c239a8729f8d04430f41dfc677ade0f22ad1
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Jan 16 10:41:18 2025 +0100

    contrib: vpx: put extra configuration flags in VPX_CONF
    
    (cherry picked from commit eae7e7673d0a52da34226e036d5ef482f16ae31c)

commit 92e5139211d7ad418c548597bdc9c368b8c3c706
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Jan 15 08:42:56 2025 +0100

    contrib: vpx: build out of tree with more threads
    
    Integrates backports of:
    - 3ce55c39551fb6188718330b333a1fd24a8cb1ee
    - 697a2fcda3321c44f0ef2898b513851ba699ade7
    - d4c40209e85d51e1681a9aa8b7d38d0eb4caf39a
    - aa530aec17403e0971ea5af17ba07001c65a3d50
    - 8d0461dd448142545aa447d45edf1c226153ddf0

commit bb0ee3fc738050c4792ea5d1027a51bcf72d1db9
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Jan 15 07:55:11 2025 +0100

    contrib: vpx: remove redundant option on iOS
    
    It's already set in the global VPX_CONF
    
    (cherry picked from commit 2aeb39a816882af33e8cee1e01d69ba59224df65) (rebased)
    rebased:
    - the call was located in a different place on 3.0

commit 6732c761ccce450c40374e81016d6e6fd5a0c52f
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Jan 15 07:40:44 2025 +0100

    contrib: vpx: only force mstackrealign for x86 targets
    
    And it should be done on all OS.
    
    (cherry picked from commit 4fe2e588ee85195417cf191229cb5b092cd5157c)

commit 477a1ea3c207805c443f78ec9bc850602cbe3a62
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Jan 15 07:39:08 2025 +0100

    contrib: vpx: always pass the CFLAGS
    
    On Windows it doesn't contain the flags for PDB or UWP.
    If we want CFLAGS for all contribs we build, that includes libvpx.
    
    (cherry picked from commit 5e251ce24749f84c8785ca2a004f06e835aaebea) (edited)
    edited:
    - 3.0 doesn't have emscripten
    - the darwin code is different from master since 7a5400bcb5031cd1f0b9298116f55bd0fe5540c3

commit 8508e57ed70fefb790be62a7ad329c714d5a1c5b
Author: Rémi Denis-Courmont <remi@remlab.net>
Date:   Sat Sep 30 11:15:28 2023 +0300

    contrib: vpx: restrict architectures
    
    VPX has an exclusive list of supported instruction sets.
    
    This follows it, unblocking contrib builds on other targets.
    
    (cherry picked from commit 293601d23044498ae6fd3d06020e9b2db07d326f) (rebased)
    rebased:
    - on 3.0 this was done when 1.13.1 was used

commit 30863c9be35350076c33d3f8735ab88f9aa9d86e
Author: Sean McGovern <gseanmcg@gmail.com>
Date:   Wed Aug 23 17:00:48 2023 -0400

    contrib: vpx: trust the value of ARCH when setting VPX_ARCH
    
    (cherry picked from commit 973bccb6d6cbb71dc97de4ee22eeb6a61ca7f3f3)

commit bed63dc2271fadf57a7993468ea36dd72eef49c7
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Thu Sep 15 13:21:07 2022 +0200

    contrib: vpx: remove unused VPX_CFLAGS variable
    
    (cherry picked from commit 6fe9dfe0e6b17a1a9175ab2940a2feda1fec4372) (rebased)
    rebased:
    - the code before is slightly different

commit 1b7f95710df22597a388da0a53186348b4d4df06
Author: Alexandre Janniaux <ajanni@videolabs.io>
Date:   Thu Apr 30 11:39:14 2020 +0200

    contrib: vpx: remove strip step and fix debug symbols
    
    Without CONFIG_DEBUG set, libvpx is calling `$(STRIP) --strip-debug`
    on the final library and removes the debug symbols from it. With the
    variable set, it becomes a simple copy operation.
    
    In addition, debug symbols should be enabled for all builds since we
    strip in the end, so as to have the debug symbols in a separate file
    when doing releases. In case we build with optimization, remove the
    assertions.
    
    (cherry picked from commit 52e22b96239cc3784aa13495be92f5f3ce591bf1) (rebased)
    rebased:
    - the code before is slightly different

commit ac6a290ecb7f0af6571854dc49658253f7ec5b73
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Jan 14 15:14:50 2025 +0100

    contrib: vpx: force using winpthreads
    
    We even have the dependency.
    This is only necessary for 3.0 which needs to build for XP.

commit 10aa0e6e1bba557409c9173c89dd3a9c199fccd4
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Jan 10 08:24:30 2025 +0100

    contrib: modplug: reference libc++ for all Clang compilations
    
    Not just the Apple ones.
    
    (cherry picked from commit 7b43acff4f2c342d51a604ae29e34c078e5d188e)

commit 385482369ccaa575b0730e4e83789dc4b7dd04d9
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Jan 10 13:15:55 2025 +0100

    contrib: x265: fix -Wl,-l: linker flag escaping in implicit libraries
    
    (cherry picked from commit 49eb55d9b9df8b2720e53375a4064368f0b9e3e2)

commit 1ced7e0ca56d85276088c8edad234a8d2dd8e883
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Jan 10 13:27:29 2025 +0100

    contrib: x265: use proper patch format for old fixes
    
    (cherry picked from commit 9800e3deada25cd4cf162d034f8c5b358543ae65) (rebased)
    rebased:
    - the 3.0 patches around are slightly different

commit 8795b3c2c80b3383464a5864222b0cc2928dfecb
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Oct 16 10:49:41 2024 +0200

    contrib: x265: fix libunwind usage when static linking
    
    It ends up with
    - set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "atomic;m;-l:libunwind.a;dl;c;-l:libunwind.a;dl")
    - set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "windowsapp;windowsapp;ucrt;windowsapp;ucrtapp;c++;mingw32;-l:libunwind.a;moldname;mingwex;mingw32;-l:libunwind.a;moldname;mingwex")
    
    (cherry picked from commit 517bf7f5c3cd7c1a6742c0f7e23758f3178e201c) (rebased)
    rebased:
    - the 3.0 patches around are slightly different

commit 8e5a9c8e2e3215f79874b299810ba87ae69d9200
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Jan 10 13:15:17 2025 +0100

    contrib: srt: fix -Wl,-l: linker flag escaping in implicit libraries
    
    (cherry picked from commit 248ddae0d5a394f503b632204ec20931f7b8a263)

commit f9032333897a6cab7c5eea16187f412456c827a2
Author: Tristan Matthews <tmatth@videolan.org>
Date:   Wed Oct 25 10:53:49 2023 -0400

    contrib: srt: update to 1.5.3
    
    (cherry picked from commit 409e9fc82cac40899daf4923b81a1a4d5de8b767)

commit 33b3f658f164427700f5b66405e663c8b99905ac
Author: Johannes Kauffmann <johanneskauffmann@hotmail.com>
Date:   Fri Jul 28 21:54:40 2023 +0200

    contrib: srt: update to 1.5.2
    
    (cherry picked from commit 2e741d956d39ec261c078c1379fdd51603a1a501) (rebased)
    rebased:
    - the 3.0 code around is slightly different

commit 163a896c17f58d112c80279ce48e456927a53e10
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Tue Jun 27 14:10:36 2023 +0200

    contrib: srt: disable build if license is not matched
    
    We need nettle and gmp and they can't be used with the LGPLv2 license.
    
    (cherry picked from commit 82faf7932af044cd93c841bc2e53c26216fe0d07) (rebased)
    rebased:
    - the minimum srt on 3.0 is different

commit b4c46271697a683723d97a999925e6e3b687c9ad
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Jan 10 12:59:30 2025 +0100

    contrib: srt: use the MOVE call
    
    (cherry picked from commit 252472aa6b4ed54994f1d186718f956234837b1e) (rebased)
    rebased:
    - the 3.0 patching around is slightly different

commit d308bfe6673519d7120f831d250057a0bd460949
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Jan 10 12:51:51 2025 +0100

    contrib: chromaprint: fix -Wl,-l: linker flag escaping in implicit libraries
    
    (cherry picked from commit 17cb1afc962f605484a789f009b185436d69e0e3)

commit eb50de7a3e2d5e910dc92a66f541138da28ca1a7
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Oct 16 10:53:19 2024 +0200

    contrib: chromaprint: fix libunwind usage when static linking
    
    It ends up with
    - set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "atomic;m;-l:libunwind.a;dl;c;-l:libunwind.a;dl")
    - set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "windowsapp;windowsapp;ucrt;windowsapp;ucrtapp;c++;mingw32;-l:libunwind.a;moldname;mingwex;mingw32;-l:libunwind.a;moldname;mingwex")
    
    (cherry picked from commit fe40fb7f4e14c1c6b87b78adf17943f94605f742)

commit 63ed2193b7580ab25f8c5de6d2f5a3a3e090712e
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Jan 10 12:52:47 2025 +0100

    contrib: chromaprint: use proper patch format for library fixes
    
    (cherry picked from commit 27acbe02e8effd926dab89decb097f1dd8fae630)

commit 10964add5fcc86ff739ce5af489093c2fbe442cd
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Jan 10 11:53:23 2025 +0100

    contrib: gme: fix -Wl,-l: linker flag escaping in implicit libraries
    
    (cherry picked from commit 3c60f1462213c4b38aba0488378913cc8c6c38f7)

commit cf6e1f9eebacb832b8633e88ec360547100ae9ce
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Jan 10 11:54:01 2025 +0100

    contrib: gme: use proper patch format for underrun
    
    (cherry picked from commit a57a1c040861b4ec137c3e19161ad4dcc6f93d04)

commit 72a3bd8786be6acf730a1035525e1d6abe35d118
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Mon Sep 5 13:57:43 2022 +0200

    contrib: gme: use CMAKE_CXX_IMPLICIT_LINK_LIBRARIES to get the C++ runtime
    
    And since we need to patch the pkg-config, add libm from there as well.
    
    (cherry picked from commit 740d93a609150ec938610ab250dbe8f1e8979c9a) (rebased)
    rebased:
    - 3.0 already contains the 8205482c3ad8436c244f04b7a09e94b7acf9c66e backport

commit 92c8c6a94cab3c4bc2240c78fd64e856d8a04a81
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Fri Jan 10 11:01:47 2025 +0100

    contrib: gme: switch to github
    
    This is the new official home.
    
    (cherry picked from commit 5e125e3ab3f331dc276219eb30a5cf78af6de4a8) (rebased)
    rebased:
    - the 3.0 patching around is slightly different

commit daa0ff26f001acf889bb07648dfb8cfe82290ec5
Author: Steve Lhomme <robux4@ycbcr.xyz>
Date:   Wed Mar 13 09:18:21 2019 +0100

    contrib: use winstorecompat when building for Windows Store
    
    Many contribs use forbidden APIs that are mapped to valid APIs in the
    winstorecompat. We make sure they map to these calls with the define and
    linking with the matching library.
    
    (cherry picked from commit 8a7939228feef676cfafd5cd45d2fea9c4bb941f) (rebased)
    rebased:
    - the code around is slightly different

commit 7b58309ae72af83d2053bd88f0529e7addaddc6f
Author: Vikram Kangotra <vikramkangotra8055@gmail.com>
Date:   Mon Dec 23 03:03:31 2024 +0530

    win32: Prevent VLC from registering as the default player for MIDI files
    
    This commit resolves an issue where the installation of VLC on Windows
    unintentionally designated it as the default application for MIDI files.
    Given that Windows supports MIDI playback natively through Windows Media
    Player and that VLC requires a SoundFont for proper MIDI playback, this
    change ensures that VLC does not disrupt the default MIDI file associations,
    maintaining the expected user experience.
    
    Fixes: #27464
    (cherry picked from commit dd4f9152118af3667f3befa568f20ed6e4cf4fb3)

commit ba5dc03aecc1d96f81b76838f845ebde7348cf62
Author: David Rosca <nowrep@gmail.com>
Date:   Fri Dec 20 20:24:36 2024 +0100

    avcodec: vaapi: Support VAAPI with latest FFmpeg
