--- /dev/null
+Report-With: libvlc-bin libvlc5 libvlccore8 vlc vlc-bin vlc-data vlc-l10n vlc-plugin-access-extra vlc-plugin-base vlc-plugin-fluidsynth vlc-plugin-jack vlc-plugin-notify vlc-plugin-qt vlc-plugin-skins2 vlc-plugin-svg vlc-plugin-video-output vlc-plugin-video-splitter vlc-plugin-visualization
--- /dev/null
+Debugging and bug reporting advices:
+
+VLC media player is highly modular. So in case a feature is not working
+at all, you need to check that the module handling it is present.
+
+ * Make sure that the plugins cache in /usr/lib/*/vlc/plugins/plugins.dat is
+ up-to-date. Run "/usr/lib/$MA/vlc/vlc-cache-gen /usr/lib/$MA/vlc/plugins"
+ as root to regenerate the cache where $MA the arch triplet (e.g.
+ x86_64-linux-gnu on amd64).
+
+ * If you have set custom plugin paths (e.g. with VLC_PLUGIN_PATH), remove
+ caches in these paths.
+
+ * Check that modules are correctly loaded: "vlc -vvv --color --list"
+ If you have yellow warning lines at the top, that could well be the
+ problem.
+
+ * If you have installed libraries from other repositories (e.g. to use
+ allegedly patent-encumbred encoders), revert to the official Debian
+ libraries before reporting a bug.
+
+The debug log of vlc ("vlc -vvv <your usual options>") is very useful for
+the developers, do include it in your report.
+
+When reporting a crash, please install the corresponding -dbgsym packages
+and produe a backtrace with gdb. See
+https://wiki.debian.org/HowToGetABacktrace for details.
--- /dev/null
+vlc (3.0.21-7) unstable; urgency=medium
+
+ * debian/patches: Fix build with x265 4.1
+
+ -- Sebastian Ramacher <sramacher@debian.org> Tue, 21 Jan 2025 19:02:47 +0100
+
+vlc (3.0.21-6) unstable; urgency=medium
+
+ * debian/patches: Update to 3.0.21-1-385-g7b58309ae7
+ * Ignore win32 and compat changes
+ * Replace taglib 2.x patches with upstream changes
+ * debian/: Re-enable VAAPI support (Closes: #1021601, #1013898)
+
+ -- Sebastian Ramacher <sramacher@debian.org> Tue, 14 Jan 2025 23:09:47 +0100
+
+vlc (3.0.21-5) unstable; urgency=medium
+
+ * Fix changelog of 3.0.21-3
+ * debian/patches: Split patches into upstream and Arch patch
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sat, 11 Jan 2025 10:55:36 +0100
+
+vlc (3.0.21-4) unstable; urgency=medium
+
+ * Team upload.
+ * Upload to unstable.
+ * debian/patches/0014-Taglib-1.x-and-2.x-compat-fix.patch:
+ Update patch to fix FTBFS on ARM architectures.
+ * debian/control: Update build-dependency package name:
+ + libtag1-dev => libtag-dev.
+
+ -- Boyuan Yang <byang@debian.org> Fri, 10 Jan 2025 22:33:36 -0500
+
+vlc (3.0.21-4~exp1) experimental; urgency=medium
+
+ * Team upload.
+ * Force rebuild with taglib 2.x.
+
+ -- Boyuan Yang <byang@debian.org> Fri, 10 Jan 2025 11:21:32 -0500
+
+vlc (3.0.21-3) unstable; urgency=medium
+
+ * Team upload.
+
+ [ Sebastian Ramacher ]
+ * debian/clean: Clean luac files (Closes: #1047601)
+
+ [ Boyuan Yang ]
+ * debian/patches/0014-Taglib-1.x-and-2.x-compat-fix.patch:
+ Add patch to fix compatibility with both Taglib 1.x and 2.x.
+
+ -- Boyuan Yang <byang@debian.org> Fri, 10 Jan 2025 11:06:11 -0500
+
+vlc (3.0.21-2) unstable; urgency=medium
+
+ * debian/patches: Apply WIP patches for ffmpeg 7.0 support (Closes:
+ #1072456)
+
+ -- Sebastian Ramacher <sramacher@debian.org> Thu, 15 Aug 2024 12:11:01 +0200
+
+vlc (3.0.21-1) unstable; urgency=medium
+
+ * New upstream version 3.0.21
+ * debian/patches: Refresh patches
+ * debian/control: Replace obsolete packages with their new versions
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sun, 09 Jun 2024 18:01:08 +0200
+
+vlc (3.0.20-4) unstable; urgency=medium
+
+ [ Bastian Germann ]
+ * Drop OMX support (see #1065623)
+ * Drop kFreeBSD support
+
+ [ Sebastian Ramacher ]
+ * debian/:
+ - Complete omxil removal
+ - Complete kfreebsd support removal
+ * debian/control: Bump Standards-Version
+
+ -- Sebastian Ramacher <sramacher@debian.org> Thu, 11 Apr 2024 22:16:25 +0200
+
+vlc (3.0.20-3) unstable; urgency=medium
+
+ * debian/control: Add missing dpkg-dev BD for time_t
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sat, 02 Mar 2024 10:55:19 +0100
+
+vlc (3.0.20-2) unstable; urgency=medium
+
+ * debian/patches: Bump module ABI for time_t transition
+
+ -- Sebastian Ramacher <sramacher@debian.org> Wed, 28 Feb 2024 23:55:54 +0100
+
+vlc (3.0.20-1) unstable; urgency=medium
+
+ * New upstream version 3.0.20.
+
+ -- Mateusz Łukasik <mati75@linuxmint.pl> Wed, 01 Nov 2023 20:58:55 +0100
+
+vlc (3.0.19-1) unstable; urgency=medium
+
+ * New upstream version 3.0.19
+ * debian/patches: Drop patches from upstream
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sat, 14 Oct 2023 19:52:05 +0200
+
+vlc (3.0.18-4) unstable; urgency=medium
+
+ [ Pino Toscano ]
+ * d/vlc-plugin-base.install: drop non-existing files
+ * d/rules: drop "libva" from "removeplugins" for all the archs
+ * d/vlc-plugin-video-output: mark vaapi plugins as "libva"
+
+ [ Sebastian Ramacher ]
+ * debian/: Disable libplacebo. libplacebo 6 is too new for vlc.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Mon, 31 Jul 2023 23:47:01 +0200
+
+vlc (3.0.18-3) unstable; urgency=medium
+
+ * debian/control: Bump Standards-Version
+ * debian/: Disable SDL support (Closes: #1038590)
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sat, 01 Jul 2023 19:24:56 +0200
+
+vlc (3.0.18-2) unstable; urgency=medium
+
+ * debian/patches: Apply upstream patch for flac playback issues
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sun, 04 Dec 2022 22:11:55 +0100
+
+vlc (3.0.18-1) unstable; urgency=medium
+
+ * New upstream version 3.0.18
+
+ -- Mateusz Łukasik <mati75@linuxmint.pl> Wed, 23 Nov 2022 19:50:35 +0100
+
+vlc (3.0.18~rc2-1) unstable; urgency=medium
+
+ * New upstream version 3.0.18~rc2
+ * debian/control: Remove patches included upstream
+
+ -- Sebastian Ramacher <sramacher@debian.org> Mon, 10 Oct 2022 08:44:18 +0200
+
+vlc (3.0.17.4-5) unstable; urgency=medium
+
+ * debian/rules:
+ - Revert "Disable libva support"
+ - Do not pass any libva flags (Closes: #1021032) (LP: #1991418)
+
+ -- Sebastian Ramacher <sramacher@debian.org> Mon, 03 Oct 2022 22:07:16 +0200
+
+vlc (3.0.17.4-4) unstable; urgency=medium
+
+ * debian/control: Bump Standards-Version
+ * debian/: Disable libva support
+ vlc's libva support and ffmpeg 5.0 are not compatible.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Thu, 23 Jun 2022 10:39:09 +0200
+
+vlc (3.0.17.4-3) unstable; urgency=medium
+
+ * debian/control: Move vlc-plugin-pipewire to Suggests
+ The pipewire plugin fails to recognize some configurations where pipewire
+ is available but not used as sound server.
+ * debian/patches: Fix build with caca 0.99.beta20
+
+ -- Sebastian Ramacher <sramacher@debian.org> Fri, 17 Jun 2022 19:37:03 +0200
+
+vlc (3.0.17.4-2) unstable; urgency=medium
+
+ * debian/patches: Apply upstream patches to fix build with dav1d 1.0.0
+ (Closes: #1008609)
+ * debian/control: Recommend vlc-plugin-pipewire
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sun, 15 May 2022 13:47:10 +0200
+
+vlc (3.0.17.4-1) unstable; urgency=medium
+
+ * New upstream version 3.0.17.4
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sat, 23 Apr 2022 15:37:39 +0200
+
+vlc (3.0.17.3-1) unstable; urgency=medium
+
+ * New upstream version 3.0.17.3
+ * debian/
+ - Revert "Disable srt until the package is fixed" (Closes: #983109)
+ Thanks to Florian Ernst
+ - Move srt output plugin to vlc-plugin-access-extra
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sun, 13 Mar 2022 12:41:41 +0100
+
+vlc (3.0.17-1) unstable; urgency=medium
+
+ * New upstream version 3.0.17
+ - Fix build with ffmpeg 5.0 (Closes: #1004584)
+ * debian/control:
+ - Switch to libidn-dev
+ - Bump BD on libopenmpt-modplug-dev
+ - Bump Standards-Version
+ * debian/copyright:
+ - Add missing text to BSD-2-clause
+ - Update copyright for 3.0.17
+ * debian/patches: Refresh patches
+ * debian/rules: Set VLC_COMPILE_BY and VLC_COMPILE_HOST (Closes: #990246)
+ * debian/: Update lintian override
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sat, 12 Mar 2022 20:40:54 +0100
+
+vlc (3.0.16-1) unstable; urgency=medium
+
+ * Upload to unstable
+ * New upstream release
+
+ -- Sebastian Ramacher <sramacher@debian.org> Mon, 21 Jun 2021 21:07:16 +0200
+
+vlc (3.0.15-1) experimental; urgency=medium
+
+ [ Mateusz Łukasik ]
+ * New upstream release
+ - Fix remote code execution through crafted playlist
+ (VideoLAN-SB-VLC-3013)
+ * Remove patches included upstream.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Thu, 17 Jun 2021 23:38:35 +0200
+
+vlc (3.0.12-3) unstable; urgency=medium
+
+ * debian/patches: Apply upstream patches to prevent process freeze on exit
+ (Closes: #916595) (LP: #1819543)
+
+ -- Sebastian Ramacher <sramacher@debian.org> Tue, 09 Mar 2021 17:42:00 +0100
+
+vlc (3.0.12-2) unstable; urgency=medium
+
+ * debian/: Disable live555 plugin due to #981439
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sun, 31 Jan 2021 11:40:59 +0100
+
+vlc (3.0.12-1) unstable; urgency=medium
+
+ * New upstream release
+ - mkv: Fix heap-based buffer overflow (CVE-2020-26664) (Closes: #979676)
+ * debian/control:
+ - Switch to libshout-dev
+ - Bump Standards-Version
+ * debian/patches: Refresh patches
+ * debian/vlc-plugins-base.install: Install RIST access plugins
+
+ -- Sebastian Ramacher <sramacher@debian.org> Mon, 18 Jan 2021 17:13:21 +0100
+
+vlc (3.0.11.1-3) unstable; urgency=medium
+
+ * debian/patches: Apply upstream patches to fix build with Qt 5.15 (Closes:
+ #972157)
+
+ -- Sebastian Ramacher <sramacher@debian.org> Wed, 21 Oct 2020 21:14:33 +0200
+
+vlc (3.0.11.1-2) unstable; urgency=medium
+
+ * debian/control:
+ - Remove unsed B-D
+ - Switch to libdc1394-dev
+ - Add Suggests and Recommends on the remaining packages (Closes: #970596)
+
+ -- Sebastian Ramacher <sramacher@debian.org> Tue, 22 Sep 2020 23:11:26 +0200
+
+vlc (3.0.11.1-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Sebastian Ramacher <sramacher@debian.org> Fri, 31 Jul 2020 19:05:40 +0200
+
+vlc (3.0.11-4) unstable; urgency=medium
+
+ * debian/libvlc-bin.postinst: Redirect vlc-cache-gen output to stderr
+ * debian/tests: Run vlc-cache-gen with gdb if plugins.dat is missing
+
+ -- Sebastian Ramacher <sramacher@debian.org> Mon, 20 Jul 2020 22:45:52 +0200
+
+vlc (3.0.11-3) unstable; urgency=medium
+
+ * debian/patches: Disable cache generation
+
+ -- Sebastian Ramacher <sramacher@debian.org> Tue, 07 Jul 2020 00:19:43 +0200
+
+vlc (3.0.11-2) unstable; urgency=medium
+
+ * debian/: Use dav1d instead of aom for decoding AV1 videos
+ * debian/rules: Remove -Wl,--as-needed
+
+ -- Sebastian Ramacher <sramacher@debian.org> Fri, 03 Jul 2020 23:34:33 +0200
+
+vlc (3.0.11-1) unstable; urgency=high
+
+ * New upstream release
+ - Fix a heap-based buffer overflow in hxxx_nall (CVE-2020-13428)
+
+ -- Sebastian Ramacher <sramacher@debian.org> Mon, 15 Jun 2020 22:47:37 +0200
+
+vlc (3.0.10-2) unstable; urgency=medium
+
+ * debian/:
+ - Bump debhleper compat to 13
+ - Disable srt until the package is fixed
+ - Build omxil plugin only on Raspbian (Closes: #957915)
+
+ -- Sebastian Ramacher <sramacher@debian.org> Thu, 11 Jun 2020 23:36:54 +0200
+
+vlc (3.0.10-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Sebastian Ramacher <sramacher@debian.org> Mon, 27 Apr 2020 22:10:09 +0200
+
+vlc (3.0.9.2-1) unstable; urgency=medium
+
+ * New upstream release
+ * debian/patches: Remove patches integrated upstream
+ * debian/copyright:
+ - Bump copyright years
+ - Update files
+ * debian/upstream/signing-key.asc: Re-export upstream's signing key
+
+ -- Sebastian Ramacher <sramacher@debian.org> Thu, 09 Apr 2020 21:29:44 +0200
+
+vlc (3.0.8-4) unstable; urgency=medium
+
+ * debian/control: Bump Standards-Version
+ * debian/upstream: Apply upstream patches for chromecast support in avahi
+ * debian/: Disable microdns plugin
+
+ -- Sebastian Ramacher <sramacher@debian.org> Thu, 27 Feb 2020 21:44:49 +0100
+
+vlc (3.0.8-3) unstable; urgency=medium
+
+ * debian/control:
+ - Replace libfreetype6-dev with libfreetype-dev
+ - Bump Standards-Version
+ * debian/: Build srt access plugin
+
+ -- Sebastian Ramacher <sramacher@debian.org> Mon, 18 Nov 2019 22:38:08 +0100
+
+vlc (3.0.8-2) unstable; urgency=medium
+
+ * debian/: Revert "Switch back to libmodplug-dev since vlc now requires
+ 0.8.9.". Patch configure.ac instead.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Mon, 19 Aug 2019 21:07:34 +0200
+
+vlc (3.0.8-1) unstable; urgency=medium
+
+ * New upstream release.
+ - Fix a buffer overflow in the MKV demuxer (CVE-2019-14970)
+ - Fix a read buffer overflow in the avcodec decoder (CVE-2019-13962)
+ - Fix a read buffer overflow in the OGG demuxer (CVE-2019-14437,
+ CVE-2019-14438)
+ - Fix a read buffer overflow in the ASF demuxer (CVE-2019-14776)
+ - Fix a use after free in the MKV demuxer (CVE-2019-14777, CVE-2019-14778)
+ - Fix a use after free in the ASF demuxer (CVE-2019-14533)
+ - Fix a null dereference in the ASF demuxer (CVE-2019-14534)
+ - Fix a division by zero in the CAF demuxer (CVE-2019-14498)
+ - Fix a division by zero in the ASF demuxer (CVE-2019-14535)
+ * debian/: Remove crystalhd plugin. libcrystalhd-dev is scheduled for
+ removal.
+ * debian/patches: Remove patches included upstream.
+ * debian/control: Switch back to libmodplug-dev since vlc now requires
+ 0.8.9.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Mon, 19 Aug 2019 18:50:39 +0200
+
+vlc (3.0.7.1-3) unstable; urgency=medium
+
+ * debian/patches: Apply upstream patch to fix SIGFPE when playing DVDs.
+ (Closes: #929491, #923017, #932182)
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sat, 20 Jul 2019 10:17:45 +0200
+
+vlc (3.0.7.1-2) unstable; urgency=medium
+
+ * debian/: Remove obsolete maintscripts.
+ * debian/control:
+ - Remove obsolete transitional package.
+ - Remove obsolete Breaks+Replaces.
+ - Bump Standards-Version.
+ * debian/patches: Apply upstream patches to
+ - unbreak rendering in subsvtt.
+ - fix integer underflows in mp4. (CVE-2019-13602) (Closes: #932131)
+
+ -- Sebastian Ramacher <sramacher@debian.org> Mon, 15 Jul 2019 19:55:05 +0200
+
+vlc (3.0.7.1-1) unstable; urgency=medium
+
+ * New upstream release.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Mon, 24 Jun 2019 09:08:03 +0200
+
+vlc (3.0.7-1) unstable; urgency=high
+
+ * New upstream release.
+ - Fix multiple integer overflows.
+ - Fix multiple buffer overflows.
+ - Fix use-after-free issue.
+ - Fix NULL pointer dereference.
+ - Fix other memory access bugs and infinite loops.
+ * debian/rules: Be explicit about --enable-debug/disable-debug.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Fri, 07 Jun 2019 01:08:14 +0200
+
+vlc (3.0.6-1) unstable; urgency=medium
+
+ * New upstream release.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Thu, 10 Jan 2019 20:03:32 +0100
+
+vlc (3.0.5-2) unstable; urgency=medium
+
+ * debian/control: Bump libbluray-dev to >= 1.0.0.
+ * debian/: Bump debhelper compat to 12.
+ * debian/copyright: Remove paragraphs for no longer existing files.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Fri, 04 Jan 2019 18:08:58 +0100
+
+vlc (3.0.5-1) unstable; urgency=medium
+
+ [ Mateusz Łukasik ]
+ * New upstream release:
+ - Remove patches included upstream.
+
+ [ Sebastian Ramacher ]
+ * debian/control: Bump Standards-Version.
+ * debian/vlc-plugin-base.install: Install 10-bit x264 plugin.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Thu, 27 Dec 2018 19:11:50 +0100
+
+vlc (3.0.4-4) unstable; urgency=medium
+
+ * debian/patches: Apply upstream patch to fix integer underflow
+ (CVE-2018-19857). (Closes: #915760)
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sun, 09 Dec 2018 21:02:57 +0100
+
+vlc (3.0.4-3) unstable; urgency=medium
+
+ * debian/patches: Add support for libplacebo 0.6.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Thu, 11 Oct 2018 18:53:22 +0200
+
+vlc (3.0.4-2) unstable; urgency=medium
+
+ * debian/: Build AOM plugin.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Thu, 20 Sep 2018 20:08:29 +0200
+
+vlc (3.0.4-1) unstable; urgency=medium
+
+ * New upstream release.
+ - Fix OpenGL output for single plane devices. (LP: #1774119)
+ - Decode AV1 streams. (LP: #1789715)
+ * debian/patches: Drop patches merged upstream.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Fri, 31 Aug 2018 19:35:02 +0200
+
+vlc (3.0.3-1-4) unstable; urgency=medium
+
+ * Bump Standards-Version
+ * debian/patches: Apply upstream patch for x264 155 support.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Thu, 30 Aug 2018 23:03:27 +0200
+
+vlc (3.0.3-1-3) unstable; urgency=medium
+
+ * debian/: Enable libspatialaudio.
+ * debian/control: Bump Standards-Version.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sat, 04 Aug 2018 18:26:19 +0200
+
+vlc (3.0.3-1-2) unstable; urgency=medium
+
+ * debian/patches: Apply upstream patch to fix build with Qt 5.11.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Thu, 19 Jul 2018 19:08:55 +0200
+
+vlc (3.0.3-1-1) unstable; urgency=high
+
+ * New upstream version.
+ - mkv: Fix NULL pointer access. (CVE-2018-11529)
+ * debian/bug-presubj: No longer include -f.
+ * debian/bug-control: Remove Submit-As.
+ * debian/patches: Backport upstream patch for fribidi 1.0.x.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Wed, 18 Jul 2018 13:44:16 +0200
+
+vlc (3.0.3-2) unstable; urgency=medium
+
+ * debian/patches: Fix build on riscv64 (Closes: #901577)
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sat, 30 Jun 2018 10:01:23 +0200
+
+vlc (3.0.3-1) unstable; urgency=medium
+
+ * New upstream release.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Mon, 28 May 2018 23:51:35 +0200
+
+vlc (3.0.2-1) unstable; urgency=medium
+
+ [ Felipe Sateler ]
+ * Change maintainer address to debian-multimedia@lists.debian.org
+
+ [ Sebastian Ramacher ]
+ * New upstream version.
+ * debian/rules: Install correct changelog.
+ * debian/control: Bump Standards-Version.
+ * debian/patches: Remove patched included upstream.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Tue, 24 Apr 2018 16:52:12 +0200
+
+vlc (3.0.1-3) unstable; urgency=medium
+
+ * debian/control: Re-add some Breaks+Replaces to help Ubuntu reduce the diff
+ and be able to handle upgrades from 16.04 to 18.04. (LP: #1753111,
+ #1749916)
+ * debian/rules:
+ - Re-enable Chromecast plugin on Ubuntu. Apparently it works now.
+ - Fix typo to really build with all hardening options enabled.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sun, 11 Mar 2018 21:52:05 +0100
+
+vlc (3.0.1-2) unstable; urgency=medium
+
+ * debian/patch: Add missing files for arm64.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Fri, 02 Mar 2018 16:28:28 +0100
+
+vlc (3.0.1-1) unstable; urgency=medium
+
+ * New upstream release.
+ * debian/control: Bump libplacebo-dev B-D to 0.2.1 (required by upstream).
+
+ -- Sebastian Ramacher <sramacher@debian.org> Thu, 01 Mar 2018 11:32:12 +0100
+
+vlc (3.0.0-1) unstable; urgency=medium
+
+ * New upstream release.
+ * debian/*.symbols:
+ - Bump all newly introduced symbols to version 3.0.0.
+ - Add new symbols.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Fri, 09 Feb 2018 16:40:34 +0100
+
+vlc (3.0.0~rc8-1) unstable; urgency=medium
+
+ * New upstream release candidate.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Thu, 01 Feb 2018 20:00:43 +0100
+
+vlc (3.0.0~rc7-2) unstable; urgency=medium
+
+ * debian/: Disable freerdp plugin. freerdp2 is currently not supported.
+ (Closes: #888323)
+
+ -- Sebastian Ramacher <sramacher@debian.org> Thu, 25 Jan 2018 00:15:17 +0100
+
+vlc (3.0.0~rc7-1) unstable; urgency=medium
+
+ * New upstream release candidate.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Wed, 24 Jan 2018 22:34:33 +0100
+
+vlc (3.0.0~rc6-1) unstable; urgency=medium
+
+ [ Helmut Grohne ]
+ * debian/control: Annotate Build-Depends: python3 with :native. (Closes:
+ #887440)
+
+ [ Sebastian Ramacher ]
+ * New upstream release candidate.
+ * debian/rules:
+ - Handle vendor consistently.
+ - Remove workaround for some resources.
+ * debian/vlc-plugin-base.install: Install lua byte code.
+ * debian/libvlc-bin.postinst.in: Exit early if plugins directory does not
+ exist. (Closes: #887621)
+
+ -- Sebastian Ramacher <sramacher@debian.org> Thu, 18 Jan 2018 22:31:56 +0100
+
+vlc (3.0.0~rc5-1) unstable; urgency=medium
+
+ * New upstream release candidate.
+ - Fix crash in full-screen mode. (LP: #1740078)
+ * debian/copyright: Update copyright years.
+ * debian/patches: Removed, included upstream.
+ - debian/control: Demote vlc-l10n from Depends to Recommends.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Thu, 11 Jan 2018 19:41:02 +0100
+
+vlc (3.0.0~rc4-3) unstable; urgency=medium
+
+ * debian/control:
+ - Move to salsa.debian.org
+ - Remove obsolete Pre-Depends.
+ * debian/NEWS: Remove old NEWS from pre 2.x.
+ * debian/:
+ - Move documentation to /usr/share/doc/$mainpkg as recommended by policy.
+ - Bump debhelper compat to 11.
+ * debian/copyright: Bump copyright years.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sat, 06 Jan 2018 14:17:42 +0100
+
+vlc (3.0.0~rc4-2) unstable; urgency=medium
+
+ * debian/control: Add Breaks on phonon-backend-vlc to ensure proper
+ upgrades.
+ * debian/rules: Do not build chromecast plugin on Ubuntu. It fails due to
+ issues involving Mir and protobuf.
+ * debian/: Enable libplacebo.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Fri, 05 Jan 2018 09:51:06 +0100
+
+vlc (3.0.0~rc4-1) unstable; urgency=medium
+
+ * New upstream release candidate.
+ * debian/control: Bump Standards-Version.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sat, 30 Dec 2017 18:56:14 +0100
+
+vlc (3.0.0~rc2-2) unstable; urgency=medium
+
+ * debian/*.maintscript: Fix symlink to directory conversions.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Wed, 20 Dec 2017 21:48:00 +0100
+
+vlc (3.0.0~rc2-1) unstable; urgency=medium
+
+ * Upload to unstable.
+ * New upstream release candidate.
+ * debian/tests/control: Update list of plugin packages.
+ * debian/patches: Removed, no longer needed.
+ * debian/vlc-plugin-access-extra.install: Drop no longer built plugin.
+ * debian/*.symbols: Add new symbols and bump versions of new symbols to
+ 3.0.0~rc2.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Tue, 19 Dec 2017 23:34:22 +0100
+
+vlc (3.0.0~rc1-1) experimental; urgency=medium
+
+ * New upstream release candidate.
+ * debian/control: Move Breaks+Replaces to correct package. (Closes: #884063)
+ * debian/:
+ - Mark more plugins only built on linux-any.
+ - Switch libnotify plugin to GTK+ 3.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Mon, 11 Dec 2017 21:46:02 +0100
+
+vlc (3.0.0~rc1~20171210-2) experimental; urgency=medium
+
+ * debian/rules: Ensure tighter dependencies on libraries.
+ * debian/: Build wayland plugins only on linux-any.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sun, 10 Dec 2017 19:17:48 +0100
+
+vlc (3.0.0~rc1~20171210-1) experimental; urgency=medium
+
+ * New upstream snapshot.
+ * debian/: Install nfs plugin only on linux-any.
+ * debian/*.symbols: Add new symbols.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sun, 10 Dec 2017 13:11:23 +0100
+
+vlc (3.0.0~rc1~20171206-1) experimental; urgency=medium
+
+ * New upstream snapshot.
+ - Install vlc_interface.h. (Closes: #768808)
+ - Fix stuttering with ALSA output. (Closes: #734100) (LP: #1639479)
+ - Fix CRC errors in some FLAC files. (Closes: #772503)
+ - Add support for Wayland. (Closes: #857769) (LP: #1720901)
+ - Better support for HLS. (Closes: #792647)
+ - Update VLSub. (Closes: #868236)
+ - Re-write UPnP discovery. (LP: #977277, #1318262)
+ - Complete porting to Qt 5. (LP: #1576175)
+ - Fix issues with green borders. (Closes: #765969) (LP: #1405166)
+ * Remove embedded ffmpeg copy. (LP: #1546078)
+ * SONAME bump: libvlccore8 -> libvlccore9.
+ * debian/patches: Drop all patches.
+ * debian/libvlc-bin.postinst.in: Skip plugin cache generation if no plugins
+ are installed. (Closes: #878026)
+ * debian/:
+ - Drop vlc-plugin-zvbi package and merge into vlc-plugin-base. ffmpeg
+ already depends on libzvbi anyway.
+ - Update installed plugins.
+ - Track plugin ABI.
+ * debian/copyright:
+ - Convert to CF 1.0.
+ - Update copyright information.
+ * debian/control:
+ - Bump Standards-Versios.
+ - Set Rules-Requires-Root: no.
+ - Remove vlc-plugin-sdl.
+ - Turn vlc-plugin-zvbi into a transitional package.
+ - New Build-Depends: bison, flex, libarchive-dev, libaribb24-dev,
+ libharfbuzz-dev, libmicrodns-dev, libmpg123-dev, libnfs-dev,
+ libprotobuf-dev, libqt5svg5-dev, libsecret-1-dev, libsoxr-dev,
+ libsystemd-dev, protobuf-compiler, qtbase5-prive-dev, wayland-protocols.
+ - Removed Build-Depends: libcdio-dev.
+ * debian/*.symbols: Add new symbols.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Thu, 07 Dec 2017 00:23:24 +0100
+
+vlc (2.2.6-6) unstable; urgency=medium
+
+ * Update to ffmpeg 2.8.13.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Tue, 05 Sep 2017 19:37:57 +0200
+
+vlc (2.2.6-5) unstable; urgency=medium
+
+ * debian/control: Bump Standards-Version.
+ * debian/patches: Add support for libupnp 1.8. (Closes: #868936)
+
+ -- Sebastian Ramacher <sramacher@debian.org> Wed, 30 Aug 2017 20:57:06 +0200
+
+vlc (2.2.6-4) unstable; urgency=medium
+
+ * debian/upstream: Add DEP-12 metadata.
+ * debian/control:
+ - Restrict Recommends on vlc-plugin-samba to linux-any kfreebsd-any.
+ - Switch to timgm6mb-soundfont. (Closes: #870790)
+ - Bump Standards-Version.
+ * debian/{rules,control,vlc-plugin-base}: No longer build directfb plugin.
+ directfb upstream is inactive and the plugin got removed for vlc 3.0.
+ * debian/vlc-plugin-base.lintian-overrides: Override
+ shlibs-with-non-pic-code. See lintian overrides of ffmpeg for more
+ details.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sat, 12 Aug 2017 12:56:58 +0200
+
+vlc (2.2.6-3) unstable; urgency=medium
+
+ [ Mateusz Łukasik ]
+ * debian/patches: avcodec: Check visible sizes (CVE-2017-10699).
+
+ [ Sebastian Ramacher ]
+ * debian/patches: flac: Fix heap write overflow on frame format change.
+ (CVE-2017-9300)
+
+ -- Sebastian Ramacher <sramacher@debian.org> Tue, 11 Jul 2017 21:35:32 +0200
+
+vlc (2.2.6-2) unstable; urgency=medium
+
+ * Upload to unstable.
+ * Update to ffmpeg 2.8.12.
+ * debian/control:
+ - Remove Build-Conflicts.
+ - Bump Standards-Version.
+ * debian/rules: Build with hardening=+all.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sun, 18 Jun 2017 18:15:34 +0200
+
+vlc (2.2.6-1) experimental; urgency=medium
+
+ * New upstream release.
+ - demuxer: Fix heap buffer overflows (CVE-2017-8312).
+
+ -- Sebastian Ramacher <sramacher@debian.org> Wed, 24 May 2017 17:35:55 +0200
+
+vlc (2.2.5.1-1) experimental; urgency=medium
+
+ [ Mateusz Łukasik ]
+ * New upstream release.
+
+ [ Sebastian Ramacher ]
+ * debian/patches: Refreshed.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sat, 13 May 2017 15:04:10 +0200
+
+vlc (2.2.5-4) experimental; urgency=medium
+
+ * debian/rules: Revert "Also enable NEON on arm64". (LP: #1685444)
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sun, 23 Apr 2017 15:52:57 +0200
+
+vlc (2.2.5-3) experimental; urgency=medium
+
+ * Fix typos in changelog.
+ * debian/rules: Also enable NEON on arm64.
+ * debian/control: Build-Conflict with Qt in experimental to work around
+ #858762.
+ * debian/patches:
+ - Use gbp-pq for patch management.
+ - Apply upstream patch for WebVTT support. (Closes: #858963)
+
+ -- Sebastian Ramacher <sramacher@debian.org> Fri, 07 Apr 2017 19:01:02 +0200
+
+vlc (2.2.5-2) experimental; urgency=medium
+
+ [ Mateusz Łukasik ]
+ * debian/{control,rules,vlc-plugin-video-output.install}: Disable OpenGL
+ ES 1 support, mesa has dropped it. (Closes: #855117)
+
+ [ Sebastian Ramacher ]
+ * debian/: Major package clean up.
+ - Remove vlc-nox binary package.
+ - Update tests to new package layout.
+ - Remove obsolete Breaks+Replaces.
+ * debian/rules: Be explicit about GLES 1
+ * debian/{rules,libvlc-bin.*}: Fix warning about non-empty directory
+ (Closes: #854928)
+
+ -- Sebastian Ramacher <sramacher@debian.org> Thu, 23 Mar 2017 17:56:16 +0100
+
+vlc (2.2.5-1) unstable; urgency=medium
+
+ * New upstream releases. (Closes: #850529)
+ * debian/patches:
+ - fix-translation.patch: Refreshed.
+ - Removed patches taken from upstream included in 2.2.5.
+ * debian/*.maintscript: Bump all versions to 2.2.5-1~z. This is necessary to
+ properly handle symlink to directory conversions once 2.2.5 is available
+ in jessie.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sun, 19 Mar 2017 21:50:23 +0100
+
+vlc (2.2.4-14) unstable; urgency=medium
+
+ [ Mateusz Łukasik ]
+ * Update to ffmpeg 2.8.11.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Tue, 14 Feb 2017 20:17:50 +0100
+
+vlc (2.2.4-13) unstable; urgency=medium
+
+ * debian/control: Switch to libopenmpt's libmodplug compat layer.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Wed, 11 Jan 2017 19:50:54 +0100
+
+vlc (2.2.4-12) unstable; urgency=medium
+
+ * Update to ffmpeg 2.8.10.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Tue, 03 Jan 2017 21:11:29 +0100
+
+vlc (2.2.4-11) unstable; urgency=medium
+
+ * debian/patches: Apply upstream to fix VLSub incorrectly announcing HTTP
+ 1.1 support. (Closes: #847559)
+ * debian/control: Make vlc-plugin-skins2 depend on vlc-plugin-qt.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sun, 18 Dec 2016 21:29:12 +0100
+
+vlc (2.2.4-10) unstable; urgency=medium
+
+ * debian/{control,*.links,*.install}: Move qvlc and svlc binaries to
+ vlc-plugin-qt and vlc-plugin-skins2. Also add vlc-bin to Recommends.
+ (Closes: #841530)
+ * Update to ffmpeg 2.8.9.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sun, 04 Dec 2016 15:12:16 +0100
+
+vlc (2.2.4-9) unstable; urgency=medium
+
+ * debian/control: Drop dh_buildinfo. This is now automatically recorded by
+ dpkg.
+ * debian/bug-control: Update list of packages.
+ * debian/{control,rules,vlc-plugin-base.install}: Remove libschroedinger
+ plugin since the library is about to be removed. See #845037 for details.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Tue, 22 Nov 2016 00:16:46 +0100
+
+vlc (2.2.4-8) unstable; urgency=medium
+
+ * debian/NEWS: Remove NEWS entry on package split. On upgrade, new
+ Recommends are installed by apt anyway.
+ * debian/control:
+ - Switch from liblircclient-dev to liblirc-dev.
+ - Remove shlibs:Depends from vlc's Depends.
+ * debian/rules: Add --disable-neon when building with noopt.
+ * debian/patches:
+ - drop-check-qt-check.patch: Remove obsolete patches.
+ - multiple: Add upstream patches to generate default skins2 skin
+ reproducibly. (Closes: #841525)
+
+ -- Sebastian Ramacher <sramacher@debian.org> Tue, 01 Nov 2016 13:34:46 +0100
+
+vlc (2.2.4-7) unstable; urgency=medium
+
+ * Split plugins and binaries into different packages. (Closes: #513177)
+ - libvlc-bin: constains vlc-cache-gen and triggers plugin cache
+ generation.
+ - vlc-bin: the VLC binaries.
+ - vlc-plugin-base: "base" set of plugins.
+ - vlc-plugin-qt: the Qt interface.
+ - vlc-plugin-skins2: the Skins2 interface.
+ - vlc-plugin-access-extra: extra access plugins.
+ - vlc-plugin-visualization: visualization plugins.
+ - vlc-plugin-video-splitter: video splitter plugins.
+ - vlc-plugin-video-output: video output plugins.
+ - vlc-l10n: translations.
+ - vlc: contains desktop integration and pulls in most plugins as before.
+ - vlc-nox: transitional dummy package
+ * Move libraries and plugins to multi-arch locations.
+ - debian/control:
+ + Add M-A: same for library and plugin packages.
+ + Remove most Breaks and Replaces as they are now obsolete.
+ - debian/rules: Do not override libdir.
+ - debian/*.{lintian-overrides,install}: Update paths for M-A locations.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Wed, 19 Oct 2016 17:59:18 +0200
+
+vlc (2.2.4-6) unstable; urgency=medium
+
+ * debian/*.maintscript: Bump all versions to fix symlink-to-directory
+ conversions. (Closes: #814646)
+
+ -- Sebastian Ramacher <sramacher@debian.org> Fri, 23 Sep 2016 21:08:42 +0200
+
+vlc (2.2.4-5) unstable; urgency=medium
+
+ * Update ffmpeg to 2.8.8.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Wed, 21 Sep 2016 20:29:03 +0200
+
+vlc (2.2.4-4) unstable; urgency=medium
+
+ [ Pino Toscano ]
+ * Install solid actions in Frameworks location. (Closes: #834884)
+
+ [ Sebastian Ramacher ]
+ * Bump debhelper compat to 10.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Tue, 13 Sep 2016 21:29:23 +0200
+
+vlc (2.2.4-3) unstable; urgency=medium
+
+ [ Mateusz Łukasik ]
+ * debian/control:
+ - Remove Clément Stenac from Uploaders. Thanks for your job!
+
+ [ Sebastian Ramacher ]
+ * debian/patches/{vlc_atomic*,Fix-build-using-old-GCC-intrinsics}.patch: Fix
+ FTBFS with GCC 6 (Closes: #831199)
+
+ -- Sebastian Ramacher <sramacher@debian.org> Fri, 29 Jul 2016 00:52:06 +0200
+
+vlc (2.2.4-2) unstable; urgency=medium
+
+ * Build ffmpeg without libopenjpeg (Closes: #826827)
+ - debian/control: Remove libopenjpeg-dev from B-D.
+ - debian/rules: Build ffmpeg with --disable-libopenjpeg.
+ * debian/rules: Revert workaround for zsh completion build failures on
+ powerpc. The underlying issue seems to be fixed.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sat, 11 Jun 2016 11:44:37 +0200
+
+vlc (2.2.4-1) unstable; urgency=medium
+
+ * New upstream release.
+ * debian/patches:
+ - g711-fix-dangling-pointer-fixes-16909.patch,
+ adpcm-reject-invalid-QuickTime-IMA-files.patch, zsh-completion.patch,
+ frenchtv-links.patch, fix-Hurd-build.patch,
+ the-Hurd-also-uses-the-.so-extension-for-libraries.patch: Removed, all
+ included upstream.
+ - generated-mimetypes.patch: Upstream patch for auto-generated list of
+ mime types. (Closes: #822245)
+ * debian/{rules,vlc-nox.install}: No longer install old BluRay access
+ plugin. (LP: #864933)
+ * debian/rules: No longer disable i686 optimization on i386 architectures.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sun, 05 Jun 2016 16:08:54 +0200
+
+vlc (2.2.3-2) unstable; urgency=medium
+
+ * debian/patches:
+ - g711-fix-dangling-pointer-fixes-16909.patch: Upstream patch to fix issue
+ with some WAV files.
+ - adpcm-reject-invalid-QuickTime-IMA-files.patch: Apply upstream patch for
+ CVE-2016-5108. (Closes: #825728)
+ * debian/rules: Reduce libX11 and libxcb linkage to a warning. Moving the
+ ffmpeg and libtheora plugins to vlc does not make much sense.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sun, 29 May 2016 13:09:00 +0200
+
+vlc (2.2.3-1) unstable; urgency=medium
+
+ [ Mateusz Łukasik ]
+ * New upstream release.
+ * debian/patches:
+ - Refresh fix-translation.patch: remove parts included upstream.
+ - Remove qt4-Fix-resume-where-you-left-off.patch,
+ qt4-input_manager-Always-reset-lastURI-when-stopping.patch,
+ avcodec-pass-consistent-dimensions-to-hardware-decod.patch: included
+ upstream.
+ - Add drop-check-qt-check.patch: to ignore check qt version.
+
+ [ Sebastian Ramacher ]
+ * debian/patches: Fix build on hurd-i386. Thanks to Samuel Thibault. (Closes:
+ #765578)
+ * Update ffmpeg to 2.8.7.
+ * debian/vlc{,-nox}.lintian-overrides: Override embedded-libary.
+ * debian/source/lintian-overrides: Update overrides.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Mon, 02 May 2016 22:55:00 +0200
+
+vlc (2.2.2-6) unstable; urgency=medium
+
+ * Use embedded copy of ffmpeg 2.8.6. (Closes: #803868)
+ * debian/rules:
+ * Explicitly disable gst-decode.
+ * Enable sndio plugin.
+ * Drop unnecessary override.
+ * Fix noopt handling.
+ * debian/vlc{-nox}.install: Filter plugins with a helper script.
+ * debian/control: Bump Standards-Version.
+ * debian/watch: Update to version 4.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Mon, 18 Apr 2016 01:00:56 +0200
+
+vlc (2.2.2-5) unstable; urgency=medium
+
+ * debian/patches:
+ - qt4-Fix-resume-where-you-left-off.patch,
+ qt4-input_manager-Always-reset-lastURI-when-stopping.patch: Apply
+ upstream patches to fix issues with "resume playback" feature.
+ - avcodec-pass-consistent-dimensions-to-hardware-decod.patch: Apply
+ upstream patch to fix hardware decoding with libvdpau-va-gl.
+ (Closes: #813370)
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sun, 13 Mar 2016 21:43:11 +0100
+
+vlc (2.2.2-4) unstable; urgency=medium
+
+ * debian/patches/fix-translation.patch: Fix translation of Shortcuts.
+ (Closes: #814258)
+ * debian/*.maintscript: Switch from absolute to relative paths to better
+ handle symlink chains. (Closes: #814646)
+
+ -- Sebastian Ramacher <sramacher@debian.org> Wed, 17 Feb 2016 20:21:32 +0100
+
+vlc (2.2.2-3) unstable; urgency=medium
+
+ * debian/*.maintscript: Handle all cases.
+ * debian/patches/zsh-completion.patch: Upstream patch to fix zsh completion
+ generation.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Thu, 04 Feb 2016 20:53:28 +0100
+
+vlc (2.2.2-2) unstable; urgency=medium
+
+ * debian/*.maintscript: Handle more symlink to directory conversions.
+ * debian/rules: Do not fail to build if zsh completion fails to generate.
+ This is a temporary workaround for a FTBFS on praetorius.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Wed, 03 Feb 2016 18:37:02 +0100
+
+vlc (2.2.2-1) unstable; urgency=medium
+
+ * New upstream release.
+ - pulse: compute latency correctly if negative. (Closes: #784640)
+ - Fix build failure with newer libdvdread-dev. (Closes: #797207)
+ * Migrate to automatic debug packages.
+ * Tell reportbug to report bugs against src:vlc and install reportbug
+ control files in every package.
+ * Remove some of the /usr/share/doc/<pkg> symlinks to clean up dependencies.
+ * debian/vlc.menu: Removed since vlc contains a desktop file.
+ * debian/rules:
+ - Remove some parts that are handled by dpkg-dev and debhelper.
+ - Install NEWS as upstream changelog.
+ - Remove options passed twice to configure.
+ * debian/README.{Debian,source}: Removed, outdated.
+ * debian/libvlc-dev.examples: Install programming examples.
+ * debian/{vlc.,source/}lintian-overrides: Override false positives.
+ * debian/NEWS: Fix spelling error.
+ * debian/control: Update Vcs-Git.
+ * debian/patches:
+ - Removed all patches applied upstream.
+ - freenchtv-links.patch: Fix links to French TV icons. Thanks to Mathieu
+ Malaterre (Closes: #782229).
+ * debian/libvlc5.symbols: Bump version of libvlc_event_type_name for new
+ event names.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Mon, 01 Feb 2016 20:43:05 +0100
+
+vlc (2.2.1-5) unstable; urgency=medium
+
+ * debian/control:
+ - Update Breaks + Replaces. (Closes: #799594)
+ - Remove vlc-plugin-pulse from Description.
+ - Add libxi-dev to B-D for debian/patches/unsubscribe-disable-motion.patch.
+ * Add DEP-8 tests
+ * debian/libvlccore8.bug-control: Update libavutil package name.
+ * debian/libvlccore8.bug-presubj: Mention global plugins cache and
+ VLC_PLUGIN_PATH. (Closes: #801439)
+ * debian/patches:
+ - unsubscribe-disable-motion.patch: Unsubscribe disable motion and
+ XI2 mouse events. Fixes mouse event issues with Qt 5.5.
+ - alsa-fix-changing-audio-device.patch: Fix changing of audio devices.
+ (Closes: #801448)
+ * debian/vlc-data.{postinst,maintscript}, debian/vlc.postinst: Remove
+ obsolete maintainer scripts.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Tue, 27 Oct 2015 23:45:06 +0100
+
+vlc (2.2.1-4) unstable; urgency=medium
+
+ * debian/control:
+ - No longer suggest videolan-doc. It is very outdated.
+ - Remove transitional vlc-plugin-pulse package.
+ - Remove obsolete Breaks and Replaces.
+ * debian/libvlccore8.symbols: Bump version requirements for meta data change
+ (Closes: #798763, #798899)
+
+ -- Sebastian Ramacher <sramacher@debian.org> Mon, 14 Sep 2015 01:07:44 +0200
+
+vlc (2.2.1-3) unstable; urgency=high
+
+ * debian/patches/demux-mp4-correctly-match-release-function.patch: Apply
+ upstream patch to fix CVE-2015-5949. (Closes: #796255)
+
+ -- Sebastian Ramacher <sramacher@debian.org> Fri, 21 Aug 2015 08:22:53 +0200
+
+vlc (2.2.1-2) unstable; urgency=medium
+
+ * debian/rules:
+ - Enable svgdec plugin
+ - Remove obsolete dh_builddeb override.
+ - Explicitly pass --enable-sdl-image.
+ * debian/control:
+ - Switch Build-Depends from Qt4 to Qt5.
+ - Remove obsolete Breaks+Replaces.
+ - Drop libdvbpsi5-dev from Build-Depends.
+ - Add libcairo2-dev to Build-Depends for svgdec plugin.
+ * debian/vlc.install.in: Install svgdec plugin.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Tue, 02 Jun 2015 22:15:28 +0200
+
+vlc (2.2.1-1) unstable; urgency=medium
+
+ [ Sebastian Ramacher ]
+ * Regenerate plugin cache using triggers. (Closes: #755154) (LP: #1328466)
+ - debian/vlc-nox.postinst: Run vlc-cache-gen.
+ - debian/vlc-nox.postrm: Remove generated cache.
+ - debian/rules: remove plugins.dat generated during the build.
+ - debian/vlc-nox.install.in: Do not install pre-generated plugins.dat.
+ * debian/control: Add libx265-dev and zsh to Build-Depends.
+ * debian/rules:
+ - Build with -Wl,--as-needed.
+ - Enable x265 plugin.
+ - Build zsh completion. (Closes: #316357)
+ * debian/vlc-nox.install.in:
+ - Install x265 plugin.
+
+ [ Mateusz Łukasik ]
+ * New upstream release.
+ * debian/patches:
+ - Remove codec-schroedinger-fix-potential-buffer-overflow.patch
+ -- included upstream.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sat, 25 Apr 2015 11:57:32 +0200
+
+vlc (2.2.0-1) unstable; urgency=medium
+
+ [ Helmut Grohne ]
+ * Add versioned depends on libvlccore8 to libvlc5 which shares
+ /usr/share/doc to comply with Debian policy 12.3. (Closes: #779251)
+
+ [ Mateusz Łukasik ]
+ * New upstream release. (Closes: #757462, #780476)
+ - Fix various (potentially exploitable) heap overflows and heap buffer
+ overflows in different demuxers (LP: #1390491)
+ * Drop patches included upstream:
+ - demux-mp4-fix-buffer-overflow-in-parsing-of-string-b.patch
+ - stream_out-rtp-don-t-use-VLA-for-user-controlled-dat.patch
+ * Disable build samba plugin on hurd for fix FTBFS. (Closes: #765578)
+
+ [ Benjamin Drung ]
+ * Point Vcs-Browser to cgit instead of gitweb.
+ * Drop removed --enable-glx configure flag.
+
+ -- Benjamin Drung <bdrung@debian.org> Mon, 06 Apr 2015 21:27:42 +0200
+
+vlc (2.2.0~rc2-2) unstable; urgency=medium
+
+ * debian/patches: Apply upstream patches for security vulnerabilities.
+ (Closes: #775866)
+ - codec-schroedinger-fix-potential-buffer-overflow.patch: fix potential
+ buffer overflow. (CVE-2014-9629)
+ - demux-mp4-fix-buffer-overflow-in-parsing-of-string-b.patch: fix buffer
+ overflow in parsing of string boxes. (CVE-2014-9626, CVE-2014-9627,
+ CVE-2014-9628)
+ - stream_out-rtp-don-t-use-VLA-for-user-controlled-dat.patch: don't use
+ VLA for user controlled data. (CVE-2014-9630)
+
+ -- Sebastian Ramacher <sramacher@debian.org> Wed, 21 Jan 2015 22:41:57 +0100
+
+vlc (2.2.0~rc2-1) unstable; urgency=medium
+
+ * New upstream release.
+ - Fix segfault in ASCII art plugin. (Closes: #768873)
+ - Fix selection of left/right channel in stereo mode. (Closes: #765830)
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sun, 23 Nov 2014 13:14:07 +0100
+
+vlc (2.2.0~rc1-1) unstable; urgency=low
+
+ * New upstream release.
+ * debian/vlc-nox.install.in: Correctly install sftp plugin.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Fri, 07 Nov 2014 17:26:34 +0100
+
+vlc (2.2.0~pre4-2) unstable; urgency=medium
+
+ * Revert "Disable FreeRDP plugin". (Closes: #764294)
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sun, 26 Oct 2014 00:02:11 +0200
+
+vlc (2.2.0~pre4-1) unstable; urgency=medium
+
+ * New upstream release.
+ - Add video/ogg and audio/ogg to desktop file. (Closes: #762564)
+ - Fix output issues with VDPAU. (Closes: #759818)
+
+ -- Sebastian Ramacher <sramacher@debian.org> Tue, 07 Oct 2014 00:26:32 +0200
+
+vlc (2.2.0~pre3-1) unstable; urgency=medium
+
+ [ Mateusz Łukasik ]
+ * Fix typo in changelog
+
+ [ Benjamin Drung ]
+ * New upstream release.
+ * Disable vpx plugin (not needed when having libavcodec)
+ * Remove hurd.patch, because this is a bug in Hurd and not in VLC.
+ * Disable OSS on Linux (Use ALSA on Linux instead of OSS.)
+
+ [ Sebastian Ramacher ]
+ * Disable FreeRDP plugin as requested by the Release Team because FreeRDP is
+ currently broken. This allows us to finish the libav and libvlccore
+ transition. As soon as FreeRDP is fixed, this change can be reverted:
+ - debian/control: Remove libfreerdp-dev from Build-Depends.
+ - debian/rules: Build with --disable-freerdp.
+ - debian/vlc.install: Do not install the FreeRDP plugin.
+ * debian/control:
+ - Remove libdirac-dev from Build-Depends. It is no longer needed.
+ - Bump Standards-Version. No changes required.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Sat, 27 Sep 2014 18:13:50 +0200
+
+vlc (2.2.0~pre2-4) unstable; urgency=medium
+
+ * debian/vlc-nox.install.in: libi420_yuy2_altivec_plugin.so moved to
+ video_chroma. Fixes package build failure on powerpc.
+ * Enable shine and vpx plugins:
+ - debian/control: Add libshine-dev and libvpx-dev to B-D.
+ - debian/rules: Pass --enable-shine and --enable-vpx.
+ - debian/vlc-nox.install.in: Install new plugins.
+ * debian/rules: Explicitly disable libtar support.
+ * debian/control: Lower Recommends: libdvdcss2 to Suggests to comply with
+ Policy §2.2.1. Thanks to Thorsten Alteholz.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Mon, 25 Aug 2014 22:58:42 +0200
+
+vlc (2.2.0~pre2-3) unstable; urgency=medium
+
+ [ Sebastian Ramacher ]
+ * debian/control:
+ - Bump libavcodec-dev to >= 6:9 to make sure VDPAU decoding is available.
+ (Closes: #728039)
+ - Make Breaks and Replaces backport friendly.
+ - Fix description of the transitional vlc-plugin-pulse package.
+ - Added to Build-Depends: libegl1-mesa-dev, libvncserver-dev (>= 0.9.9),
+ libgles1-mesa-dev, libgles2-mesa-dev.
+ - Bump required versions in Build-Depends: libdbus-1-dev, libpulse-dev,
+ libtag1-dev.
+ * debian/rules:
+ - Fix post{inst,rm}-has-useless-call-to-ldconfig lintian warning.
+ - Enable OpenGL ES v1 and v2 plugins.
+ - Enable VNC plugin support.
+ - Disable svgdev plugin until libcairo2-dev >= 1.13 is available.
+ - Rename configure options that are no longer available (--enable-dirac)
+ and update nameing changes (--enable-libfreerdp -> --enable-freerdp,
+ --disable-quicksync -> --disable-mfx).
+ * debian/vlc-nox.links: Fix broken /usr/share/bug/vlc-nox symlink.
+
+ [ Benjamin Drung ]
+ * Bump required versions of libbluray-dev and libopus-dev (according to
+ configure).
+
+ -- Sebastian Ramacher <sramacher@debian.org> Wed, 20 Aug 2014 01:54:32 +0200
+
+vlc (2.2.0~pre2-2) unstable; urgency=medium
+
+ * Add vlc-plugin-samba package shipping the Samba plugin. (Closes: #729238)
+ - debian/control: Add new vlc-plugin-samba package and add it to vlc's
+ Recommends.
+ - debian/vlc-{nox,plugin-samba}.install: Move Samba plugin to
+ vlc-plugin-samba.
+ * Remove vlc-plugin-pulse and put PulseAudio plugins to vlc.
+ - debian/control: Turn vlc-plugin-pulse into a transitional package and
+ remove it from vlc's Recommends.
+ - debian/vlc-{plugin-pulse,}.install: Move PulseAudio plugins to vlc.
+ * debian/rules: Improve check if plugins from vlc-nox are linked against
+ libX11 or libxcb.
+ * debian/vlc{-nox,}.install.in: Move RDP plugin to vlc to get rid of all
+ libX11 and libxcb dependencies in vlc-nox.
+ * debian/control:
+ - Remove obsolete Replaces.
+ - Remove obsolete Pre-Depends. dpkg (>= 1.15.6+) is even available in
+ squeeze.
+ - Mention all plugin packages in the Description.
+ - Explicitly list libdbus-1-dev in Build-Depends.
+ - Add myself to Uploaders.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Tue, 19 Aug 2014 21:12:27 +0200
+
+vlc (2.2.0~pre2-1) unstable; urgency=medium
+
+ [ Sebastian Ramacher ]
+ * debian/patches/freerdp-1.1.0-beta2-API.patch: Apply upstream patch to
+ support FreeRDP 1.1.0-beta2 API. (Closes: #757951)
+
+ [ Reinhard Tartler ]
+ * New upstream release.
+ - Fixes incorrect usage of AVFrame (Closes: #756329)
+ - Fixes compilation against newer freerdp: (Closes: #758382, 757951)
+ * Bump requirements on libdvdnav and libdvdread
+ * Fixes compilation against libav11 (Closes: #758203)
+ * Drop patches merged upstream
+ * Refresh Hurd patch
+ * Update installation paths for several modules
+ * Disable libtar support (Closes: #737534)
+ * Follow upstream SONAME bump libvlccore7 -> libvlccore8
+
+ -- Reinhard Tartler <siretart@tauware.de> Sat, 16 Aug 2014 18:39:45 -0400
+
+vlc (2.1.5-1) unstable; urgency=medium
+
+ [ Benjamin Drung ]
+ * New upstream release.
+ * Add FFmpeg libraries as alternative build dependencies to libav.
+ * Enable VDPAU hardware decoder support.
+
+ [ Mateusz Łukasik ]
+ * Fix FTBFS on hurd. (Closes: #742183)
+
+ -- Benjamin Drung <bdrung@debian.org> Mon, 19 May 2014 13:56:41 +0200
+
+vlc (2.1.4-1) unstable; urgency=medium
+
+ * New upstream release (Closes: #742625, LP: #1276650)
+ * SECURITY UPDATE: crafted ASF file handling integer divide-by-zero DoS
+ - CVE-2014-1684
+ (Closes: #743033)
+
+ -- Benjamin Drung <bdrung@debian.org> Sun, 11 May 2014 00:57:13 +0200
+
+vlc (2.1.2-2) unstable; urgency=medium
+
+ * Team upload.
+ * debian/vlc-data.postinst: Check if a directory exists before trying to
+ remove it. (Closes: #732806)
+
+ -- Sebastian Ramacher <sramacher@debian.org> Tue, 31 Dec 2013 15:19:27 +0100
+
+vlc (2.1.2-1) unstable; urgency=medium
+
+ [ Benjamin Drung ]
+ * New upstream release.
+ - Fix build failure with freetype 2.5.1 (Closes: #731513)
+ * Add gpg signature check to watch file.
+
+ [ Mateusz Łukasik ]
+ * Bump Standards-Version to 3.9.5 (no changes needed).
+
+ -- Benjamin Drung <bdrung@debian.org> Sat, 21 Dec 2013 21:18:56 +0100
+
+vlc (2.1.1-1) unstable; urgency=low
+
+ * New upstream release.
+ * Drop altivec patch (fixed upstream).
+ * Remove obsolete conffiles (Closes: #703750).
+
+ -- Benjamin Drung <bdrung@debian.org> Mon, 18 Nov 2013 21:46:53 +0100
+
+vlc (2.1.0-2) unstable; urgency=high
+
+ * Remove mmx and sse2 plugins on non-x86 hardware. (Closes: #727831)
+ * Disable Video4Linux2 on kFreeBSD due to a build failure. (Closes: #728130)
+ * Switch to debhelper 9.
+ * Update minimum version of build dependencies.
+ * Explicitly disable plugins that we do not build.
+ * Fix build failure on powerpc by correcting the detection of compiler flags
+ for altivec.
+ * Drop link-binaries-with-c++.patch.
+ * Remove the libvaapi plugin from vlc if libva is disabled.
+ * Enable libva on kFreeBSD.
+
+ -- Benjamin Drung <bdrung@debian.org> Tue, 29 Oct 2013 01:55:40 +0100
+
+vlc (2.1.0-1) unstable; urgency=high
+
+ * New major upstream release. (Closes: #436339, #632965, #642187,
+ #698023, #593735, #724734, #665732, #700752, #704941, #708953,
+ #712935, #398167, #646200, #679654, #654955, LP: #982953, #301193,
+ #986785, #1038303, #1109026, #530797, #667584, #938621, #671031,
+ #1080847, #1157384, #1173943)
+ * Security: Fix buffer overflow in the mp4a packetizer CVE-2013-4388
+ (Closes: #726528)
+ * Drop configure-m4-undefine.patch. (code in question doesn't exist)
+ * Drop dvbpsi.patch. (no longer needed)
+ * Drop v4l-kfreebsd.patch. (no longer needed)
+ * pnap-grammar.patch: Fix spelling/grammar in 2.1's PNAP dialog.
+ * Remove static dependency on libproxy and add runtime dependency for
+ libproxy as per upstream changes.
+ * Use -mtune instead of --with-tuning, as it was removed.
+ * SONAME bump for libvlccore5 to libvlccore7.
+ * Update symbols for libvlc5 and libvlccore7.
+ * Update file lists to account for new/renamed/removed modules.
+ * Add missing Breaks and Replaces for libavcodec_plugin.so move.
+ * Disable the static library.
+ * Bump to lua5.2.
+ * Update debian/copyright to include LGPL where relevant, in response
+ to the VLC 2.1 relicensing.
+
+ -- Edward Wang <edward.c.wang@compdigitec.com> Sun, 06 Oct 2013 11:12:25 -0400
+
+vlc (2.0.8-1) unstable; urgency=low
+
+ * New upstream release.
+ * Drop fix-ftbfs-flac-1.3.patch (applied upstream).
+
+ -- Benjamin Drung <bdrung@debian.org> Thu, 01 Aug 2013 14:19:42 +0200
+
+vlc (2.0.7-4) unstable; urgency=low
+
+ * Team upload.
+
+ [ Reinhard Tartler ]
+ * Remove Sam Hocevar from uploaders on his request
+
+ [ Sebastian Ramacher ]
+ * debian/patches/dvbpsi.patch: Backport patches from upstream to allow
+ building with libdvbpsi 1.0.0. (Closes: #715520)
+ * debian/patches/configure-m4-undefine.patch: Prevent m4 errors during
+ dh_autoreconf.
+
+ -- Sebastian Ramacher <sramacher@debian.org> Wed, 24 Jul 2013 16:24:06 +0200
+
+vlc (2.0.7-3) unstable; urgency=low
+
+ * Drop unused build-dependencies on libglib2.0-0, libsvga1-dev,
+ libx11-xcb-dev, and libxt-dev. (Closes: #713989)
+
+ -- Benjamin Drung <bdrung@debian.org> Mon, 24 Jun 2013 23:07:03 +0200
+
+vlc (2.0.7-2) unstable; urgency=medium
+
+ * Fix FTBFS with FLAC 1.3, Closes: #712687
+
+ -- Reinhard Tartler <siretart@tauware.de> Wed, 19 Jun 2013 07:38:18 +0200
+
+vlc (2.0.7-1) unstable; urgency=low
+
+ * New upstream release.
+ * Update watch file.
+
+ -- Benjamin Drung <bdrung@debian.org> Tue, 04 Jun 2013 00:19:49 +0200
+
+vlc (2.0.6-1) unstable; urgency=low
+
+ * New upstream release (LP: #1166189).
+ * Drop backported man page patch.
+
+ -- Benjamin Drung <bdrung@debian.org> Mon, 08 Apr 2013 15:47:10 +0200
+
+vlc (2.0.5-2) unstable; urgency=low
+
+ * Bump Standards-Version to 3.9.4 (no changes needed).
+ * Override false positive hardening-no-fortify-functions lintian warnings.
+ * Fix build failure on powerpcspe. Thanks to Roland Stigge. (Closes: #701830)
+ * Backport man page update to correct title DVD syntax. (Closes: #691957)
+ * Fix apport hook. Thanks to Dmitry Shachnev. (Closes: #702942)
+
+ -- Benjamin Drung <bdrung@debian.org> Fri, 22 Mar 2013 13:37:54 +0100
+
+vlc (2.0.5-1) unstable; urgency=low
+
+ * New upstream release.
+ * Don't let libvlc-dev depend on libvlccore-dev.
+
+ -- Benjamin Drung <bdrung@debian.org> Thu, 13 Dec 2012 11:07:35 +0100
+
+vlc (2.0.4-1) unstable; urgency=low
+
+ * New upstream release.
+ - Fix crashes (LP: #947156, #958462, #960020, #979490, #1033682)
+ - Correct default encoding for Hebrew subtitles (LP: #1051552)
+ * Drop backported bp-fix-hang-caused-by-notify.patch.
+ * Build the sftp access and Opus codec plugin and add them to vlc-nox.
+
+ -- Benjamin Drung <bdrung@debian.org> Thu, 18 Oct 2012 18:59:03 +0200
+
+vlc (2.0.3-3) unstable; urgency=low
+
+ * debian/vlc.postinst: Fix directory to symlink upgrade in postinst.
+ Thanks to David Prévot <taffit@debian.org> (Closes: #687657)
+ * debian/vlc.preinst: Remove insufficient fix to #613121 (similar issue).
+ Thanks to David Prévot for the patch.
+ * Cherry-pick fix for VLC hang caused by the notify plugin. (Closes: #662628,
+ LP: #970447)
+ * Drop alternative dependency on transitional ttf-freefont.
+
+ -- Benjamin Drung <bdrung@debian.org> Thu, 04 Oct 2012 20:59:21 +0200
+
+vlc (2.0.3-2) unstable; urgency=low
+
+ * debian/rules: Use xz compression for binary packages.
+ Thanks to Ansgar Burchardt <ansgar@debian.org> (Closes: #683836)
+ * Add version to vlc-nox dependency of vlc-plugin-sdl (consistent with other
+ plug-ins).
+
+ -- Benjamin Drung <bdrung@debian.org> Sat, 18 Aug 2012 17:45:01 +0200
+
+vlc (2.0.3-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Benjamin Drung <bdrung@debian.org> Sat, 21 Jul 2012 17:52:21 +0200
+
+vlc (2.0.2-2) unstable; urgency=low
+
+ * Add missing epoch to libqt4-dev build dependency.
+ * Drop libggi2-dev from build dependencies (not needed any more).
+ (Closes: #680237)
+ * The dependency ttf-freefont was renamed to fonts-freefont-ttf.
+
+ -- Benjamin Drung <bdrung@debian.org> Sat, 07 Jul 2012 19:13:07 +0200
+
+vlc (2.0.2-1) unstable; urgency=medium
+
+ [ Edward Wang ]
+ * New upstream release (Closes: #679625, #664279, LP: #689122, #936488,
+ #942126, #971106, #972615, #973051, #987231, #995003, #998538).
+ - Fix Ogg Heap buffer overflow. Thanks to Hugo Beauzée-Luyssen
+ * Add the crystalhd plugin to the vlc distribution.
+ * libcaca_plugin.so now depends on X11 in this release, so it must
+ be installed under vlc (versus vlc-nox).
+
+ [ Reinhard Tartler ]
+ * Urgency set to medium because a security issue is fixed in this release
+
+ [ Benjamin Drung ]
+ * Add new plugins to vlc-nox:
+ - crystalhd (Linux amd64 and i386 only)
+ - directfb
+ - fbosd (Linux only)
+ - omxil (Linux only)
+ * Add build dependencies for new plugins.
+ * Add new symbols to libvlccore5.
+ * Switch to debhelper 8.
+
+ -- Benjamin Drung <bdrung@debian.org> Sat, 30 Jun 2012 18:39:41 +0200
+
+vlc (2.0.1-4) unstable; urgency=high
+
+ * Add missing Breaks and Replaces for moving the documentation from vlc-data
+ away from /usr/share/doc/vlc before converting the directory into a symlink.
+ (Closes: #665743)
+
+ -- Benjamin Drung <bdrung@debian.org> Fri, 30 Mar 2012 01:56:37 +0200
+
+vlc (2.0.1-3) unstable; urgency=high
+
+ * Replace symlink by directory in /usr/share/doc/vlc-nox.
+ (Closes: #665743, LP: #964449)
+
+ -- Benjamin Drung <bdrung@debian.org> Wed, 28 Mar 2012 13:29:37 +0200
+
+vlc (2.0.1-2) unstable; urgency=high
+
+ * Really add the preinst from Didier Raboud to vlc to drop it's doc directory
+ before unpacking a symlink to vlc-nox's over it. (Closes: #613121, #662217)
+
+ -- Benjamin Drung <bdrung@debian.org> Sat, 24 Mar 2012 01:33:03 +0100
+
+vlc (2.0.1-1) unstable; urgency=high
+
+ * New upstream release (LP: #931318, #943014, #947814).
+ * Change build dependency from libpng12-dev to libpng-dev. (Closes: #662539)
+ * Add --enable-dbus to configure flags.
+ * Drop patches that were backported and accepted by upstream.
+ * Add missing libxinerama-dev build dependency for the Skins2 interface.
+ * Add libgtk2.0-dev back to build dependencies for the notify plugin.
+ * Set urgency to high for security fixes.
+
+ -- Benjamin Drung <bdrung@debian.org> Fri, 23 Mar 2012 19:03:52 +0100
+
+vlc (2.0.0-6) unstable; urgency=high
+
+ * Fix FTBFS on kFreeBSD (Closes: #661819):
+ - Drop --as-needed as it breaks the build fix for kFreeBSD.
+ - Enable linsys only on Linux and exclude the plugins from non-Linux.
+ Thanks to Cyril Brulebois for the patch.
+ - Adapt the vlc-cache-gen linking patch from Sam Hocevar to also link
+ vlc with the C++ standard library.
+ * Set urgency to high for the RC bug fix.
+
+ -- Benjamin Drung <bdrung@debian.org> Thu, 01 Mar 2012 22:28:30 +0100
+
+vlc (2.0.0-5) unstable; urgency=low
+
+ * Rewrite v4l kfreebsd patch.
+ * Link vlc-cache-gen with the C++ standard library. (Closes: #660934, #660935)
+ * Enable hardened build flags through dpkg-buildflags. (Closes: #658030)
+
+ -- Benjamin Drung <bdrung@debian.org> Thu, 01 Mar 2012 13:37:41 +0100
+
+vlc (2.0.0-4) unstable; urgency=low
+
+ * Enable and install Open Sound System (OSS) plugin.
+ * Fix configure flag from --enable-libv4l2 to --enable-v4l2.
+
+ -- Benjamin Drung <bdrung@debian.org> Tue, 28 Feb 2012 23:31:14 +0100
+
+vlc (2.0.0-3) unstable; urgency=low
+
+ * Fix v4l2 build failure on kfreebsd. (Closes: #660935)
+
+ -- Benjamin Drung <bdrung@debian.org> Sun, 26 Feb 2012 18:03:39 +0100
+
+vlc (2.0.0-2) unstable; urgency=low
+
+ * Remove nasm and yasm form build dependencies (they are not used).
+ * Bump Standards-Version to 3.9.3, no changes needed.
+ * Backport patch from upstream to the fix build failures on kfreebsd.
+ (Closes: #660935)
+ * altivec-cflags.patch: Add missing CFLAGS_* variables to pass the "-maltivec"
+ flag. This should fix the build failure on powerpc. (Closes: #660936)
+
+ -- Benjamin Drung <bdrung@debian.org> Sun, 26 Feb 2012 01:26:21 +0100
+
+vlc (2.0.0-1) unstable; urgency=low
+
+ * New upstream release (Closes: #499381, #573064, #624027, LP: #455825,
+ #573775, #695882, #705151, #708448, #738381, #743581, #747757, #817924,
+ #931083).
+ * Remove dropped mozilla-plugin-vlc, vlc-plugin-ggi, and vlc-plugin-svgalib.
+ The Mozilla browser plug-in is now provided by a separate source tarball.
+ * Add new plugins to and remove dropped plugins from vlc-nox.
+ * Add new and remove dropped build dependencies:
+ + libbluray-dev (for Blu-ray support)
+ + libresid-builder-dev
+ + libsamplerate0-dev
+ + libsidplay2-dev
+ + lbspeexdsp-dev
+ + libxcb-composite0-dev
+ - libgtk2.0-dev
+ - xulrunner-dev
+ * vlc-plugin-fluidsynth depends on fluid-soundfont-gm or
+ musescore-soundfont-gm for having a sound font for playing MIDI files.
+ * Drop all patches (they were either backported or accepted by upstream).
+ * Update symbols for libvlc5.
+ * Install plugins.dat instead of running vlc-cache-gen in postinst.
+ * Update minimum version of build dependencies.
+ * Change Build-Dependency from libupnp3-dev to unversioned libupnp-dev.
+ (Closes: #656831)
+
+ -- Benjamin Drung <bdrung@debian.org> Sat, 18 Feb 2012 01:29:48 +0100
+
+vlc (1.1.13-1) unstable; urgency=low
+
+ * New upstream release (Closes: #604687).
+ * Drop backported patches and patches that were accepted by upstream.
+ * Refresh remaining patches.
+ * Add mailcap entry for Ogg Video (Closes: #651662).
+
+ -- Benjamin Drung <bdrung@debian.org> Sat, 31 Dec 2011 13:42:26 +0100
+
+vlc (1.1.12-3) unstable; urgency=low
+
+ [ Didier Raboud ]
+ * Install v4l2 modules on kfreebsd-*. (Closes: #648090)
+
+ [ Benjamin Drung ]
+ * Explicitly enable v4l2 on kfreebsd and build depend on libv4l-dev.
+ * Fix build failure with Iceweasel/Firefox 8.0. Thanks to Mathieu
+ Trudel-Lapierre for backporting the upstream patch.
+
+ -- Benjamin Drung <bdrung@debian.org> Thu, 17 Nov 2011 00:10:53 +0100
+
+vlc (1.1.12-2.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Add a preinst to vlc to drop it's doc directory before unpacking a
+ symlink to vlc-nox's over it. (Closes: #613121)
+
+ -- Didier Raboud <odyx@debian.org> Mon, 07 Nov 2011 16:40:10 +0100
+
+vlc (1.1.12-2) unstable; urgency=low
+
+ * Apply patches from upstream's 1.1 maintenance branch.
+ - Turn on XVideo color key automatic painting (fix upstream #4643)
+ - Set channel map when using PulseAudio 1.0
+ - Translation updates
+
+ -- Benjamin Drung <bdrung@debian.org> Thu, 13 Oct 2011 20:17:03 +0200
+
+vlc (1.1.12-1) unstable; urgency=low
+
+ * New upstream release.
+ - Multiple fixes and improved synchronization for PulseAudio support
+ (Closes: #601826, LP: #805807).
+ - Fix segmentation fault (LP: #803006).
+ - Addd GenericName entries to desktop file (Closes: #640911).
+ - Do not ignore the --quiet flag (Closes: #531975).
+ - Fix vlc runs xdg-screensaver with signal child blocked (Closes: #640245).
+ - Fix crashes when trying to play youtube URLs (Closes: #641507).
+ * Drop xulrunner-1.9.1.patch (accepted upstream).
+ * Refresh 200_osdmenu_paths.patch.
+ * Fix typo in vlc.desktop: Name[nn] -> GenericName[nn].
+
+ -- Benjamin Drung <bdrung@debian.org> Fri, 07 Oct 2011 01:21:06 +0200
+
+vlc (1.1.11-2) unstable; urgency=low
+
+ * Use linux-any instead of hardcoded list of non-Linux architectures.
+ (Closes: #634726)
+ * Build and install the libx264 plugin.
+ * Add firefox-dev as alternative build dependency to xulrunner-dev for Ubuntu.
+ * Build with "--with-mozilla-pkg=mozilla-plugin" rather than
+ "--with-mozilla-pkg=libxul". The plugin doesn't appear to be using XPCOM,
+ and shouldn't be linking against Mozilla libs. Thanks to Chris Coulson.
+
+ -- Benjamin Drung <bdrung@debian.org> Tue, 26 Jul 2011 20:11:10 +0200
+
+vlc (1.1.11-1) unstable; urgency=high
+
+ * New upstream release.
+ - Fix heap overflow in RealMedia plugin (Closes: #633674, LP: #807486)
+ - Fix heap overflow in AVI plugin (Closes: #633675, LP: #807488)
+ * Call dh_autoreconf with --as-needed and drop 052_as-needed.patch.
+ * Drop backported patches.
+ * Drop libschroedinger weaken patch (upstream weakened it to 1.0.6).
+ * Refresh remaining patches.
+
+ -- Benjamin Drung <bdrung@debian.org> Mon, 18 Jul 2011 10:26:56 +0200
+
+vlc (1.1.10-1) unstable; urgency=high
+
+ [ Benjamin Drung ]
+ * New upstream release.
+ - Security: Fix XSPF integer overflow (CVE-2011-2194) (LP: #795410)
+ - Improve .desktop file:
+ - Add smb as supported protocol (Closes: #622879, LP: #737192)
+ - add video/webm to supported MIME formats (LP: #769463)
+ - Fix libdvdread errors while playing ogg files (Closes: #622935)
+ - Support three channels in pulseaudio output plugin (LP: 743478)
+ - PulseAudio output re-written due to unstability of the current one
+ (LP: #743323)
+ - Fix crashes (LP: #754497, #785979)
+ - Qt: allow drag and drop of any URL, not just a local file (LP: #664030)
+ - Fix libvlcplugin.so: undefined symbol: NPP_Initialize (LP: #722690)
+ * Refresh patches.
+ * Drop as-needed patch due to autoreconf run.
+ * Backport PulseAudio build fix.
+ * Add GNOME MIME types for Ogg Vorbis and Ogg Theora (Closes: #629619).
+ * Mention potcast support in package description (Closes: #488771).
+
+ [ Reinhard Tartler ]
+ * run autoreconf on the buildds
+ * Weaken dependencies on libschroedinger
+
+ -- Benjamin Drung <bdrung@debian.org> Sat, 11 Jun 2011 19:32:24 +0200
+
+vlc (1.1.9-1) unstable; urgency=medium
+
+ * New upstream release.
+ - Fix heap corruption in MP4 demuxer (LP: #756368).
+ - Fix fullscreen controller has no background in KDE4 (LP: #661020).
+ * Refresh patches and drop backported VideoLAN-SA-1103.patch.
+ * Adjust the vlc lintian-overrides for the latest lintian version.
+
+ -- Benjamin Drung <bdrung@debian.org> Thu, 14 Apr 2011 11:18:57 +0200
+
+vlc (1.1.8-3) unstable; urgency=medium
+
+ * Fix heap corruption in MP4 demuxer
+ - VideoLAN-SA-1103
+ - Thanks to Rémi Denis-Courmont
+ * Set urgency to medium
+ * Set policy to 3.9.2 (no change needed)
+
+ -- Christophe Mutricy <xtophe@videolan.org> Mon, 11 Apr 2011 22:12:15 +0100
+
+vlc (1.1.8-2) unstable; urgency=low
+
+ * Require libschroedinger >= 1.0.10 (Closes: #619858)
+ * Relax libmatroska-dev versionned b-depedency
+
+ -- Christophe Mutricy <xtophe@videolan.org> Mon, 28 Mar 2011 23:18:04 +0100
+
+vlc (1.1.8-1) unstable; urgency=low
+
+ * New upstream release.
+ - Fix a busy loop and socket leak in lua (Closes: #607869).
+ * Refresh xulrunner patch.
+ * Drop backported libmatroska 1.1 patch.
+
+ -- Benjamin Drung <bdrung@debian.org> Thu, 24 Mar 2011 14:14:36 +0100
+
+vlc (1.1.7-4) unstable; urgency=low
+
+ * v4l is gone from the linux 2.6.38 kernel. Build only v4l2.
+
+ -- Benjamin Drung <bdrung@debian.org> Sat, 19 Mar 2011 22:29:04 +0100
+
+vlc (1.1.7-3) unstable; urgency=low
+
+ * adjust debian/source/local-options to team guidelines
+ * Fix building against libmatroska 1.1, Closes: #614088
+ * Add myself to Uploaders.
+ * build against libmatroska 1.1.0
+
+ -- Reinhard Tartler <siretart@tauware.de> Sun, 06 Mar 2011 11:16:48 +0100
+
+vlc (1.1.7-2) unstable; urgency=low
+
+ * Upload to unstable.
+ * Make vlc compatible with xulrunner 1.9.1.
+
+ -- Benjamin Drung <bdrung@debian.org> Mon, 07 Feb 2011 23:16:02 +0100
+
+vlc (1.1.7-1) experimental; urgency=low
+
+ * New upstream release.
+ * Update debian/watch.
+ * Drop backported patch and refresh remaining patches.
+
+ -- Benjamin Drung <bdrung@debian.org> Mon, 31 Jan 2011 23:25:12 +0100
+
+vlc (1.1.6-1) experimental; urgency=low
+
+ [ Reinhard Tartler ]
+ * Tighten some build dependencies (Closes: #605638)
+
+ [ Benjamin Drung ]
+ * New upstream release.
+ - Fix heap buffer overflow in Real demuxer (CVE-2010-3907) (LP: #690173)
+ - Fix blue face issue with X11 ouput (LP: #665298)
+ - Fix crash with SIGSEGV in QMetaObject::activate() (LP: #448082)
+ - Fix heap overflow in CDG decoder and XML heap corruption (LP: #707154)
+ * Drop backported patches.
+ * Tighten more build dependencies after reviewing configure.ac.
+ * Update my email address.
+ * Add lirc build failure fix patch.
+ * Build depends on libgtk2.0-dev for notify module.
+
+ -- Benjamin Drung <bdrung@debian.org> Mon, 24 Jan 2011 23:16:54 +0100
+
+vlc (1.1.5-3) experimental; urgency=low
+
+ * Apply upstream fix for KDE device actions. (LP: #542293)
+
+ -- Benjamin Drung <bdrung@ubuntu.com> Fri, 26 Nov 2010 00:26:15 +0100
+
+vlc (1.1.5-2) experimental; urgency=low
+
+ [ Reinhard Tartler ]
+ * fix Breaks/Replaces for moving avcodec module around (Closes: #603912)
+
+ [ Benjamin Drung ]
+ * Fix KDE device action file locations. (LP: #542293) - thanks to Lari Natri
+ * Fixed wrong aspect ratio in transcoded image from webcam.
+ (Closes: #603888, LP: #672304)
+
+ -- Benjamin Drung <bdrung@ubuntu.com> Wed, 24 Nov 2010 00:19:39 +0100
+
+vlc (1.1.5-1) experimental; urgency=low
+
+ * New upstream release.
+ * Fix path typo in NEWS file. (Closes: #599314)
+ * Install all docs into /usr/share/doc/vlc-nox and link the vlc doc dir to it.
+ * Recommend xdg-utils, because xdg-screensaver is required for disabling
+ the screensaver. (Closes: #436339)
+ * Add libxscreensaver plugin to vlc.
+ * Add new symbol to libvlc5.
+
+ -- Benjamin Drung <bdrung@ubuntu.com> Sun, 14 Nov 2010 21:27:56 +0100
+
+vlc (1.1.4-1) experimental; urgency=low
+
+ [ Christophe Mutricy ]
+ * New upstream bugfix release
+ + Remove unneeded patch
+
+ [ Benjamin Drung ]
+ * Symlink corresponding FreeSans system font instead of linking to DejaVu.
+
+ -- Benjamin Drung <bdrung@ubuntu.com> Sun, 05 Sep 2010 01:47:07 +0200
+
+vlc (1.1.3-2) experimental; urgency=low
+
+ [ Christophe Mutricy ]
+ * Depends on xulrunner-dev >= 1.9.2
+ * Activate VA-API (Closes: #587792, LP: #539406)
+
+ [ Benjamin Drung ]
+ * Switch to dh7.
+ * Move libavcodec plugin from vlc-nox to vlc.
+ * Add Xb-Npp header to mozilla-plugin-vlc package. (Not doing anything
+ on Debian at the moment, see #484010)
+ * Add apport hook to include more VLC dependencies in bug reports and
+ install it on Ubuntu.
+
+ -- Benjamin Drung <bdrung@ubuntu.com> Thu, 19 Aug 2010 22:27:45 +0200
+
+vlc (1.1.3-1) unstable; urgency=medium
+
+ [ Benjamin Drung ]
+ * New upstream release.
+ + Fix insufficient input validation in TagLib plugin.
+ (VideoLAN-SA-1004, CVE-2010-2937) (Closes: #592669, LP: #616510)
+ + Set urgency to medium
+ * 502_xulrunner_191.diff: Shorten, split into two parts, and refresh it.
+ * Drop 102_dejavu_font.diff and depend on ttf-freefont instead of ttf-
+ dejavu-core. ttf-freefont is very likely to be present on a Debian
+ box, because cups depends on it.
+ * Drop 501_decrease_alsa_buffer.diff. The pulseaudio output module has
+ a higher priority than the ALSA output plugin and should be used on
+ pulseaudio systems.
+
+ [ Reinhard Tartler ]
+ * add DM-Upload-Allowed field to debian/control
+
+ -- Reinhard Tartler <siretart@tauware.de> Fri, 20 Aug 2010 06:59:17 +0200
+
+vlc (1.1.2-1) unstable; urgency=low
+
+ [ Christophe Mutricy ]
+ * New upstream release
+ * Also check for libxcb
+ * Move xcb_apps SD to vlc
+ * Re-enable the modplug module and require the fixed version
+ (Closes: #589890, #590787)
+ * Fix location of icons in vlc.menu (Closes: #590294)
+ thanks to Juhapekka Tolvanen
+ * Split the notify plugin to not depend on GTK+ (Closes: #590504)
+ thanks to Viktar Vauchkevich
+
+ [ Benjamin Drung ]
+ * Add proper Breaks and Replaces to vlc and vlc-plugin-notify.
+ * Bump Standards-Version to 3.9.1 (no changes required).
+
+ -- Benjamin Drung <bdrung@ubuntu.com> Tue, 03 Aug 2010 01:38:17 +0200
+
+vlc (1.1.1-1) unstable; urgency=low
+
+ * New upstream release
+ + Remove patches merged upstream
+ + Add new symbols in libvlc5
+ * Explicit the split of vlc-plugin-zvbi in debian/changelog (Closes:
+ #588468)
+ * Disable modplug as libmodplug in sid is buggy (see #588465)
+ * Add comment about merging in README.source
+
+ -- Christophe Mutricy <xtophe@videolan.org> Thu, 22 Jul 2010 00:36:00 +0200
+
+vlc (1.1.0-4) unstable; urgency=low
+
+ * also move udev to the list of linux specific features
+ * alphabetize configure switches
+ * fix kfreebsd ftbfs in access file module (Closes: #588655)
+ * forcefully disable alsa on kFreeBSD
+
+ -- Reinhard Tartler <siretart@tauware.de> Sat, 10 Jul 2010 19:39:57 -0400
+
+vlc (1.1.0-3) unstable; urgency=low
+
+ * really enable dc1394 only for Linux, Closes: #588410
+
+ -- Reinhard Tartler <siretart@tauware.de> Fri, 09 Jul 2010 15:18:08 -0400
+
+vlc (1.1.0-2) unstable; urgency=low
+
+ * libdc1394 is linux specific.
+ * Fix FTBFS on arm with patch cherry-picked from upstream
+ * Set policy to 3.9.0 (no change needed)
+
+ -- Christophe Mutricy <xtophe@videolan.org> Wed, 07 Jul 2010 22:52:17 +0100
+
+vlc (1.1.0-1) unstable; urgency=low
+
+ [ Christophe Mutricy ]
+ * New upstream version 1.1.0 (Closes: #586760, LP: #597108)
+ * Fixes many bugs (Closes: #572151, #578917, #526088, #572914, #503377;
+ LP: #206152, #261001, #281478, #282215, #282966, #283379, #283855,
+ #285681, #287263, #328064, #328861, #346631, #356006, #356908, #357595,
+ #358461, #362793, #368599, #375854, #380077, #383443, #403135, #403657,
+ #403802, #414069, #415396, #416294, #419915, #422797, #425975, #427247,
+ #435225, #439271, #442038, #444795, #453928, #459515, #461443, #465687,
+ #466418, #476478, #482440, #491151, #491601, #514915, #517329, #517496,
+ #537627, #539406, #542293, #549029, #549902, #550468, #550485, #550599,
+ #551482, #553503, #554277, #556440, #560167, #564964, #566347, #568750,
+ #570666, #582785, #584009, #586692, #587528)
+ * SONAME changes
+ * Update symbols files
+ * Refresh patches and remove the ones merged upstream
+ * rules:
+ * Disable projectm and sqlite
+ * Upstream Makefile install icons at the good place, simplify debian/rules
+ * Specify where to install solids files
+ * Install the optim only if present
+ * Make sure we have useful build log
+ * *.install: reflect new modules path and add new files
+ * Add a trigger to generate the modules' cache as root.
+ * Update the doc which get installed
+ * control:
+ * Prefer a recent libdvbpsi
+ * add lua5.1 to have luac
+ * Add more build-dep: xcb*, dirac, dc1394
+ * Patch to allow compilation with xul 1.9.1
+ * Remove unneeded -V for dh_makeshlibs
+ * Use configure option instead of patching
+ * Use dh_bugfiles and update the bug control file
+ * Don't advertise deprecated package in vlc's manpage
+ * Add some news about lua and zvbi
+ * Move the luahttp's .hosts to /etc/vlc
+
+ [ Benjamin Drung ]
+ * Switch to dpkg-source 3.0 (quilt) format.
+ * Disable portaudio module.
+ * Update symbols files.
+ * Cleanup clean rule and other parts of debian/rules.
+ * Remove default values from git-buildpackage config.
+ * Change installation of man pages.
+ * Remove unused ${shlibs:Depends}.
+ * Sort Build-Depends and Depends.
+ * Remove unused libhal-dev from Build-Depends (Closes: #580407).
+ * Remove unused --enable-release configure flag.
+ * Remove unused Build-Depends libid3tag0-dev, libsysfs-dev, and libxv-dev.
+ * Provide VBI teletext plugin (Closes: #563873) - thanks to László
+ Benedek <benedekl@gmail.com> for the patch.
+ * Split the VBI teletext module to its own package vlc-plugin-zvbi.
+ * Enable atmo, fluidsynth (separate package), libproxy (Closes: #532110),
+ kate (Closes: #563464), and mtp plugin.
+ * Comment disabled features.
+ * Explicitly enable or disable features.
+ * Vcs-Browser link to summary page.
+ * Convert patch header to DEP-3 and add DEP-3 to 502_xulrunner_191.diff.
+ * Add myself to Uploaders.
+ * Drop --sourcedir=debian/tmp from dh_install.
+
+ -- Christophe Mutricy <xtophe@videolan.org> Thu, 24 Jun 2010 22:01:26 +0100
+
+vlc (1.0.6-1) unstable; urgency=low
+
+ * New upstream version 1.0.6
+ + VideoLAN-SA-1003
+ + Closes: #578799
+ + LP: #408719, #464715, #465560, #502637, #525278, #542943, #568859
+ * RTMP access module has been removed (vlc-nox.install, NEWS.Debian)
+ * Remove patches merged upstream
+
+ -- Christophe Mutricy <xtophe@videolan.org> Fri, 23 Apr 2010 11:49:18 +0200
+
+vlc (1.0.5-2) unstable; urgency=medium
+
+ [ Christophe Mutricy ]
+ * Install reportbug files also in vlc-data (LP: #472893)
+ * Fix symlinks
+ * vlc-data Replaces very old vlc as well as vlc-nox (Closes: #570749)
+ * Set urgency to medium as we fix RC bug
+ * Fix crash on malformed rtmp stream. (Closes: #569151)
+ * Fix crash in FTP url handling (LP: #465560)
+
+ [ Benjamin Drung ]
+ * Install icons in all available sizes (LP: #521744).
+
+ -- Christophe Mutricy <xtophe@videolan.org> Tue, 02 Mar 2010 00:30:56 +0100
+
+vlc (1.0.5-1) unstable; urgency=low
+
+ * New upstream version 1.0.5
+ + Closes: #556666, #565044
+
+ [ Reinhard Tartler ]
+ * Remove excessive replaces relationship
+ * Update for menu subpolicy, Closes: #564218
+
+ [ Christophe Mutricy ]
+ * NEWS.Debian: Use version present in Changelog
+ * Add comments to overrides file
+ * Add misc:Depends to vlc-data's Depends
+ * Refresh patches
+
+ [ Benjamin Drung ]
+ * Formatting improvements; thanks to Gerfried Fuchs for the patch
+ (Closes: #566384).
+ * Bump Standards-Version to 3.8.4, no changes required.
+
+ -- Christophe Mutricy <xtophe@videolan.org> Sat, 13 Feb 2010 15:52:30 +0000
+
+vlc (1.0.4-2) unstable; urgency=low
+
+ * Report libavutil50 presence the correct way
+ * Move back hotkeys to vlc-nox (Closes: #563477)
+ * Fix Replaces/Conflicts version so that upgrade work (Closes:
+ #563476, #563483)
+ * Add patch taken from upstream to fix jack input with jack2 (Closes:
+ #532339) - thanks to Adrian Knoth
+ * Disable access_dv on non-Linux archs
+
+ -- Christophe Mutricy <xtophe@videolan.org> Tue, 05 Jan 2010 23:31:56 +0100
+
+vlc (1.0.4-1) unstable; urgency=low
+
+ * New upstream release
+ + According to upstream, no longer overlaps kde and xfce panels in
+ fullscreen mode, Closes: #562601, LP: #453173
+
+ [ Christophe Mutricy ]
+ * libavutil50 seems to be troublesome. Add it to bugs/control
+ * Add a vlc-plugin-svg package (Closes: #560009)
+ * Switch to xulrunner-dev (Closes: #555915)
+ * Activate the global hotkey module (Closes: #548916)
+ * Mention other maintainers and that the binaries are GPL v3 as we
+ link with LGPL v3 libraries (LP: #489093)
+ * Build-depend on a recent enough live555 to avoid comma vs. decimal
+ point problem (Closes: #539946)
+
+ [ Benjamin Drung ]
+ * Recommend vlc-plugin-pulse for vlc, so that pulse can be used as
+ default output.
+
+ [ Whoopie ]
+ * Enable CDDB in the CDDA module (LP: #439131)
+ * Enable DV support (LP: #392115)
+
+ [ Benjamin Drung ]
+ * Fix typos, that are reported by lintian.
+ * Sort confflags in debian/rules
+ * Split normal configure flags from feature configure flags
+
+ -- Christophe Mutricy <xtophe@videolan.org> Wed, 30 Dec 2009 12:56:49 +0100
+
+vlc (1.0.3-1) unstable; urgency=low
+
+ * New upstream release
+
+ [ Reinhard Tartler ]
+ * Decrease alsa buffer size. That improves the behaviour of the alsa output
+ module on pulseaudio system. But note that vlc-plugin-pulse provides a
+ native pulseaudio output module (Closes: #472811, LP: #243152)
+
+ [ Christophe Mutricy ]
+ * No longer need to build an extra libvlccore without altivec
+ * Add the upnp access module (LP: #172938)
+ * Activate the new udev SD module on linux archs
+
+ -- Christophe Mutricy <xtophe@videolan.org> Thu, 05 Nov 2009 12:39:35 +0100
+
+vlc (1.0.2-1) unstable; urgency=high
+
+ * New upstream release
+ + Fix some stack overflows in MP4, ASF and AVI demuxers
+ (VideoLAN-SA-0902, CVE pending)(urgency=high)
+ + Closes: #540145, #542108
+ * Fix kfreebsd FTBFS and simplify (Closes: #545863)
+ Thanks to Petr Salinger
+ * Fix Hurd install
+ * Update libvlccore symbol file
+ * Remove libass API patch
+ * Remove uneeded build-deps
+
+ -- Christophe Mutricy <xtophe@videolan.org> Sun, 20 Sep 2009 01:08:41 +0200
+
+vlc (1.0.1-2) unstable; urgency=low
+
+ * Fix typo in debian/changelog
+ * Allow building against libass 0.9.7
+ * Don't try to install v4l2 modules on kfreebsd
+ * Set policy to 3.8.3 (no change needed)
+ * No need of qt4-dev-tools
+ * Add a README.source about quilt
+ * Disable some modules (kate, mtp, fluidsynth)
+ * Don't distribute the *.install-kfreebsd* files as they are generated
+
+ -- Christophe Mutricy <xtophe@videolan.org> Sun, 06 Sep 2009 19:07:24 +0200
+
+vlc (1.0.1-1) unstable; urgency=low
+
+ * New upstream bugfix version
+ + Fix integer underflow in Real RTSP (DZC-2009-001, CVE pending)
+ + Fix crashes in xspf files handler (LP: #365638)
+
+ [ Reinhard Tartler ]
+ * Add versioned build dependency on libschroedinger-dev
+
+ [ Christophe Mutricy ]
+ * Really build altivec-free libvlccore (Closes: #523035)
+ * Depends on libdvbpsi5-dev and protect against future renaming of
+ libdvbpsi development package
+ * Remove patches applied upstream
+
+ -- Christophe Mutricy <xtophe@videolan.org> Wed, 29 Jul 2009 00:21:39 +0200
+
+vlc (1.0.0-1) unstable; urgency=low
+
+ * New Upstream Release
+ + Closes: #536081, LP: #396548
+ + Refresh patches
+ * no longer closes when pausing from the notification area, LP: #371515
+ * fix encoding bug when opening subtitles with non-latin characters,
+ LP: #394449
+ * Don't install the alsa and OSS access module on kfreeBSD (Closes:
+ #535101) - thanks to Javier Mendez Gomez
+ * Force at least libvlc 1.0.0 becasue of tha soname change of
+ libvlccore
+ * Delete a symbols who was present by mistake.
+ * No need for dh_desktop. It's a no-op
+ * New standard version. No change needed
+ * Fix make distclean. New patch taken from upstream
+ * Upstream make distcheck has been fixed. No need to save Changelog
+
+ -- Christophe Mutricy <xtophe@videolan.org> Thu, 09 Jul 2009 13:04:20 +0000
+
+vlc (1.0.0~rc2-1) experimental; urgency=low
+
+ * New Upstream Release Candidate
+ + Closes: #527010, #491441, #508618, #522824
+ * Delete patches which were picked from upstream
+ * Refresh patches
+ * Remove vlc-plugin-esd and vlc-plugin-arts as they have been removed
+ by upstream
+ * SONAME change for libvlccore
+ * Add new symbols for libvlc2
+ * Fix static libs compile
+ * Use vlc-wrapper manpage from upstream
+ * vlc.install: add drawable and screen was renamed x11_screen
+ * vlc-nox.install: Add and remove modules added/removed upstream
+ * Point out in NEWS the modules renamed or splited
+ * Add links to upstream NEWS and co in vlc-nox
+ * Version the depedency of libvlcore2 on vlc-data
+ * Remove unnecessary "Section:" in debian/control
+
+ -- Christophe Mutricy <xtophe@videolan.org> Wed, 03 Jun 2009 17:55:10 +0200
+
+vlc (0.9.9a-3) unstable; urgency=medium
+
+ * Correct typo in 0.9.9a-2 changelog entry
+ * Disable more optimization with DEB_BUILD_OPTIONS=noopt
+ * Cache the configure test results as we're running configure several
+ times
+ * Fix building as root
+ * Fix the clean target
+ * Remove unexistant config options
+ * Better check commad line
+ * Use all the procs on i386 and amd64
+ * Build a version of libvlccore without altivec (Closes: #523035)
+ * Fix typo (thanks to Salvatore Bonaccorso)(Closes: #528044)
+ * Reword the command line to get full logs in bug/presubj (Closes: #527012)
+ * Remove duplicate "extended Settings" entry in context menu
+ (Closes: #526603) - thanks to Matt Kraai
+ * Disable the logging facility in the javascript of moz plugin
+ This was a privacy hole. (urgency=medium)(Closes: #529633)
+ * Patch to support libmpc new API (Closes: #476375) - thanks to Yavor
+ Doganov
+ * Disable-maintener mode
+ * Make sure unpatch is last in the clean target
+
+ -- Christophe Mutricy <xtophe@videolan.org> Sat, 06 Jun 2009 16:56:16 +0200
+
+vlc (0.9.9a-2) unstable; urgency=medium
+
+ * Security fix
+ * The default /usr/share/http/{old}/.hosts was wrong in VLC 0.9.8 and 0.9.9.
+ World access of the http interface was possible when activated in
+ contradiction of what is said in Changelog.Debian and NEWS.Debian.
+
+ -- Christophe Mutricy <xtophe@videolan.org> Tue, 07 Apr 2009 23:06:48 +0200
+
+vlc (0.9.9a-1) unstable; urgency=low
+
+ * New upstream version 0.9.9a
+ + Closes: #520149, #522170, #522185, #522554
+ + Update symbol files
+ * Fix some typo in bug/presubj
+ * Remove some Replaces/Conflicts against version not in etch
+ * Move the caca module to vlc-nox
+ + Re-add some Replaces/Conflicts
+ + Closes: #522040
+
+ -- Christophe Mutricy <xtophe@videolan.org> Fri, 03 Apr 2009 00:12:49 +0200
+
+vlc (0.9.8a-3) unstable; urgency=low
+
+ [ Reinhard Tartler ]
+ * fix typo in '--enable-maintainer-mode' (Closes: #517155)
+
+ [ Christophe Mutricy ]
+ * Fix build on non-Linux arch
+ * Fix cross-compilation
+ * VLC is GPV v2 or later. So point to v2 of the GPL
+ * We can use debhelper v7 without trouble
+ * Add lintian overrides.
+ * Set policy to 3.8.1
+ * debian/patches/*
+ + Prune doc/fortunes.txt from personnal attack (Closes: #401560,
+ #518300)
+ + Delete unused patches
+ + Add comments to the patches
+ * Move to the video and debug sections
+
+ -- Christophe Mutricy <xtophe@videolan.org> Sun, 15 Mar 2009 16:50:18 +0000
+
+vlc (0.9.8a-2) unstable; urgency=low
+
+ * Upload to unstable
+ * Rebuild against new libraries (Closes: #516316, #516731)
+ * Move packaging to Git
+ + Add a conf file for git-buildpackage
+ + Reflect change to git in Vcs fields
+ + Ignore file generated by dpkg-buildpackage
+ * Disable the DV access module until it's ported to the new API
+ * Move http/.hosts to /etc (Closes: #501791)
+ * Improve some short descriptions
+ * Depends on debhelper >7
+ * Fix for 2 builds in a row
+ * Add a note in NEWS about running as root and vlc-wrapper (Closes: #507872)
+
+ -- Christophe Mutricy <xtophe@videolan.org> Tue, 24 Feb 2009 16:00:31 +0100
+
+vlc (0.9.8a-1) experimental; urgency=low
+
+ * New upstream release
+ + Fix integer overflow in Real demux (VideoLAN SA-2008-11, CVE-2008-5276)
+ * Enable RealRTSP access module
+ * Depends on libv4l-dev to add support of some webcam
+ * Don't rebootstrap. The packages causing troubles previously have been fixed
+
+ -- Christophe Mutricy <xtophe@videolan.org> Wed, 03 Dec 2008 20:20:52 +0100
+
+vlc (0.9.6-1) experimental; urgency=low
+
+ [ Reinhard Tartler ]
+ * Build against libass. Closes: #499063, LP: #210354, #199870
+ * Explicitly build against libdca in debian/rules
+ * Tighten build depends on a libass-dev version that ships without .la file
+
+ [ Christophe Mutricy ]
+ * New bugfix upstream releases
+ + Remove 402_tivo_overflow.diff
+ + Fix buffer overflow in CUE demuxer (Closes: #504639)
+ + Fix buffer overflow in Realtext decoder
+ * Honor DEB_BUILD_OPTIONS
+ * Rebootstrap in order to avoid problem with .la
+
+ -- Christophe Mutricy <xtophe@videolan.org> Sat, 08 Nov 2008 03:14:29 +0100
+
+vlc (0.9.4-2) experimental; urgency=low
+
+ * Fix buffer overflow in Tivo demuxer
+ + Closes: #502726, VideoLAN SA-0809
+ + 402_tivo_overflow.diff taken from upstream
+ * Better xinerama fullscreen behaviour
+ + 401_detect_xinerama_fullscreen.diff taken from upstream
+ * Builddepends on libcursesw5-dev rather than libcurses5-dev
+ for proper wide char handling
+
+ -- Christophe Mutricy <xtophe@videolan.org> Mon, 20 Oct 2008 23:23:46 +0200
+
+vlc (0.9.4-1) experimental; urgency=low
+
+ * New upstream bugfix version
+ * rules: Pass the debian version in configure.ac so that the cache
+ is invalidated between binary version
+ * control: Don't forget commas in builddep list
+
+ -- Christophe Mutricy <xtophe@videolan.org> Tue, 07 Oct 2008 00:17:30 +0200
+
+vlc (0.9.3-1) experimental; urgency=low
+
+ [ Christophe Mutricy ]
+ * New upstream release
+ * Build-depends on libdca-dev
+ * vlc-nox.install
+ + Be more general for the memcopy modules.
+ Fix a FTBFS on non-intel arch (Closes: #499860).
+ * Sort builddep list
+
+ [ Reinhard Tartler ]
+ * remove spurious conflicts on libvlc2. LP: #274614
+
+ -- Christophe Mutricy <xtophe@videolan.org> Fri, 26 Sep 2008 23:49:48 +0200
+
+vlc (0.9.2-1) experimental; urgency=low
+
+ [ Christophe Mutricy ]
+ * New upstream release
+ + Soname changed
+ + Bugs fixed upstream: Closes: #487646, #298150, #325069, #392292,
+ #458004, #470903, #458004, #423121
+ + new upstream fixes various crasher bugs reported in ubuntu:
+ LP: #189575, #113927, #103741, #111615, #107899, #112076, #198916, 221428,
+ #91679, #96978, #123589, #133528, #231621, #259025
+ + plays files with '+' in its name, LP: #239431, #217305
+ + New packages: libvlccore0, libvlccore-dev, vlc-plugin-pulse
+ (Closes: #471069)
+ + Build-depends on libswsale-dev, libshout3-dev, libxpm-dev,
+ zlib1g-dev, liblua5.1-0-dev, libschroedinger-dev, libtag1-dev,
+ libqt4-dev, libqt4-dev-tools and pkg-config. (Closes: #461324)
+ + time display no longer incomplete, LP: #193445
+ + fixed volume bar behavior, LP: #250041
+ + shout support closes LP: #127594, #84098,
+ + Install new modules:
+ - vlc-nox: alphamask, blendbench, bluescreen, canvas, cc, cdg, chain,
+ colorthres, croppadd, dynamicoverlay, erase, faad, gaussianblur, grain,
+ inhibit, lua, memcpy*, mmap, osd_parser, puzzle, remoteosd, rtmp,
+ schroedinger, sharpen, stats, subusf, t140, telepathy, v4l2, vmem
+ - vlc: qt4
+ - vlc-plugin-jack: access_jack
+ + Distribute the .pc for libvlc and vlc-plugin (Closes: #289507)
+ + Remove wx interface and glide plugin as they've been dropped by upstream
+ LP: #205325, #88487, #90603, #150380
+ + The Python and java bindings are no longer part of the upstream tarballs
+ (Closes: #469011)
+ + Temporarly disable libdca module until a pkg with the new
+ API get in unstable
+ + Delete or refresh patches
+ + New patches:
+ - 052_as-needed taken from bug #347650 to teach libtool about
+ -Wl,--as-needed
+ * Install the skins DTD and the default skins it's only 113kB
+ * Improve watch file
+ * Add a vlc-data package for /usr/share (13 MB)
+ * Add a vlc-dbg package (Closes: #491564)
+ * Sort vlc.install and vlc-nox.install
+
+ [ Mohammed Adnène Trojette ]
+ * Add myself to Uploaders.
+ * debian/control:
+ + Add proper conflicts/replaces to vlc-data with mozilla-plugin-vlc.
+ + Add proper conflicts/replaces to vlc with vlc-nox.
+
+
+ -- Christophe Mutricy <xtophe@videolan.org> Wed, 17 Sep 2008 00:49:48 +0200
+
+vlc (0.8.6.i-2) experimental; urgency=high
+
+ [ Loic Minier ]
+ * Fix changelog entries for 0.8.6.h-2 and 0.8.6.h-3.
+ * Bump up Standards-Version to 3.8.0.
+
+ [ Christophe Mutricy ]
+ * Security: Fix integer overflow in mms module (CVE-2008-3794)
+ (Closes: #496265)(407-mms-overflow.diff taken from upstream)
+
+ [ Sam Hocevar ]
+ * debian/patches/300_manpage_syntax.diff: fix vlc-config.1 syntax.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Tue, 26 Aug 2008 23:25:13 +0000
+
+vlc (0.8.6.i-1) experimental; urgency=low
+
+ * New upstream release.
+ - Refresh patch 010_iceape and change it to only patch the name of the .pc
+ files, keep using FIREFOX_CFLAGS and _LIBS etc. as to allow us to only
+ run autoconf, not automake.
+ - Drop patch 401-CVE-2008-2430, merged upstream.
+ - Update and rename patch 050_bootstrap to 900_autoconf.
+
+ -- Loic Minier <lool@dooz.org> Fri, 22 Aug 2008 19:13:30 +0200
+vlc (0.8.6.h-5) unstable; urgency=high
+
+ * Acknowledge NMU by Nico Golde. Thanks.
+ * Fix buffer overflow in CUE demuxer (Closes: #504639)
+
+ -- Christophe Mutricy <xtophe@videolan.org> Wed, 05 Nov 2008 22:02:06 +0100
+
+vlc (0.8.6.h-4.1) unstable; urgency=high
+
+ * Non-maintainer upload by the Security Team.
+ * Fix integer overflows that could possibly lead to arbitrary
+ code execution (CVE-2008-4686.diff; Closes: #503118).
+
+ -- Nico Golde <nion@debian.org> Mon, 03 Nov 2008 14:41:58 +0100
+
+vlc (0.8.6.h-4) unstable; urgency=high
+
+ * Security: Fix integer overflow in mms module
+ (Closes: #496265)(407-mms-overflow.diff taken from upstream)
+
+ -- Christophe Mutricy <xtophe@videolan.org> Mon, 25 Aug 2008 01:07:27 +0100
+
+vlc (0.8.6.h-3) unstable; urgency=low
+
+ * Minor cleanups.
+ * Use DEB_HOST_ARCH instead of DEB_BUILD_ARCH in rules.
+ * Use objdump -x instead of ldd to check for links on libX11 as ldd might
+ resolve libvlc to the system's version if the system has libvlc installed;
+ closes: #495730.
+
+ -- Loic Minier <lool@dooz.org> Fri, 22 Aug 2008 19:46:35 +0200
+
+vlc (0.8.6.h-2) unstable; urgency=high
+
+ * Fix integer overflow in TTA (CVE-2008-3732) (405-CVE-2008-3732.diff)
+ * Fix crashes in Live555 (406-live555-crash.diff)
+ * Switch to libdc1394-22-dev (Closes: #484695)
+
+ -- Christophe Mutricy <xtophe@videolan.org> Thu, 21 Aug 2008 20:19:39 +0100
+
+vlc (0.8.6.h-1) unstable; urgency=high
+
+ [ Christophe Mutricy ]
+ * Acknowledge NMU by Nico Golde. Thanks.
+ * Acknowledge NMU by Mike Hommey. Thanks.
+ * New security upstream release
+ - Fix buffer overflow (CVE-2008-1881)
+ - Fix out of bound array access (CVE-2008-1769)
+ - Fix various integer overflow in MP4 demuxer, Cinepak, RTSP
+ (CVE-2008-1489, CVE-2008-1768)
+ - Remove 105_min_mkv.patch, 400-CVE-2008-1489.diff and
+ 401-CVE-2008-0073.diff, 402-CVE-2008-1881, 403-CVE-2008-1768.diff
+ and 404-CVE-2008-1881 integrated upstream
+ * Remove old transitional packages: vlc-plugin-alsa and wxvlc
+ (Closes: #477543, #477545)
+ * Add some magic for reportbug to ask people to remove their plugin cache
+ and get the info for vlc-nox and libvlc0 also.
+
+ [ Reinhard Tartler ]
+ * added a watch file
+ * new upstream release, refreshing patches
+
+ [ Christophe Mutricy ]
+ * Fix buffer overflow in Wav demux.(CVE-2008-2430)(Closes: #489004)
+ (Patch taken from upstream: 401-CVE-2008-2430.diff)
+
+ -- Christophe Mutricy <xtophe@videolan.org> Sat, 05 Jul 2008 23:45:15 +0100
+
+vlc (0.8.6.e-2.3) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * debian/control: Build depend on iceape-dev >= 1.1.9-4 instead of
+ libxul-dev (Closes: #480812).
+ * debian/patches/010_iceape.diff: configure.ac changes to allow to build
+ against iceape.
+ * debian/patches/050_bootstrap.diff: Corresponding configure changes.
+ * debian/patches/series: Added 010_iceape.diff.
+
+ -- Mike Hommey <glandium@debian.org> Fri, 23 May 2008 21:11:07 +0200
+
+vlc (0.8.6.e-2.1) unstable; urgency=high
+
+ * Non-maintainer upload by the Security Team.
+ * This update addresses the following security issues:
+ - CVE-2008-1769: out-of-bounds array access and memory corruption
+ via a crafted cinepak file (Closes: #478140).
+ - CVE-2008-1768: multiple integer overflow triggering buffer overflows
+ in the mp4 and real demuxer and the cinepak codec (Closes: #478140).
+ - CVE-2008-1881: stack-based buffer overflow in subtitle parsing leading
+ to arbitrary code execution via crafted subtitle file (Closes: #477805).
+
+ -- Nico Golde <nion@debian.org> Sun, 27 Apr 2008 16:17:49 +0200
+
+vlc (0.8.6.e-2) unstable; urgency=high
+
+ [ Christophe Mutricy ]
+ * Acknowledge NMU by Nico Golde. Thanks
+ * New patch taken from upstream to fix an arbitrary code execution.
+ CVE-2008-0073 (Closes: #473057)
+ * New patch to fix FTBS in MKV module
+
+ [ Loic Minier ]
+ * Mention CVE id in 0.8.6.e-1.1.
+
+ -- Christophe Mutricy <xtophe@videolan.org> Sat, 29 Mar 2008 15:04:28 +0000
+
+vlc (0.8.6.e-1.1) unstable; urgency=high
+
+ * Non-maintainer upload by the Security Team.
+ * Fix Integer overflow in MP4_ReadBox_rdrf function
+ that triggers a heap-based buffer overflow via a
+ large atom length value (Closes: #472635); CVE-2008-1489.
+
+ -- Nico Golde <nion@debian.org> Wed, 26 Mar 2008 13:21:44 +0100
+
+vlc (0.8.6.e-1) unstable; urgency=high
+
+ [ Christophe Mutricy ]
+ * New security upstream release
+ - CORE-2008-0130, VideoLAN-SA-0802, CVE-2008-0986: Arbitrary memory
+ overwrite in the MP4 demuxer (Closes: #467652)
+ - Others security fixes already included in the Debian package
+ - Xshm detection fix (Closes: #404361)
+ - Alsa 5.1 fixes
+ - DTS to S/PDIF fixes
+ * patches/
+ - delete the uneeded sec-* patches
+ - delete 100_no_wx_update.diff as the update "feature" has been removed
+ upstream
+
+ [ Loic Minier ]
+ * Urgency high for security bugfix.
+
+ -- Christophe Mutricy <xtophe@videolan.org> Mon, 25 Feb 2008 23:35:24 +0000
+
+vlc (0.8.6.c-6) unstable; urgency=high
+
+ [ Nico Golde ]
+ * This update addresses the following security issues (Closes: #461544).
+ - CVE-2008-0295: Heap-based buffer overflow in real_sdpplin.c
+ which could lead to user-assisted arbitrary code execution
+ via crafted SDP data.
+ - CVE-2008-0296: Heap-based buffer overflow in libaccess_realrtsp plugin
+ which might lead to arbitrary code execution via a crafted RTSP server.
+
+ [ Loic Minier ]
+ * Merge above changes by Nico Golde.
+
+ -- Loic Minier <lool@dooz.org> Mon, 21 Jan 2008 16:16:51 +0100
+
+vlc (0.8.6.c-5) unstable; urgency=low
+
+ [ Christophe Mutricy ]
+ * New vlc-plugin-jack pkg with jack audio_output module
+ (closes: #402252, #444992)
+ * Make all the symlink for /usr/share/${pkg} point to /usr/share/doc/vlc-nox
+ as the plugins depends on vlc-nox and not vlc
+ * debian/control: dpkg-shlibdeps gives the correct depends for
+ vlc-plugin-glide. So drop the hardcoded depends on libglide2
+ * debian/rules: dpkg-shlibdeps now behaves better with libraries without
+ versionned symbol file.
+
+ [ Sam Hocevar ]
+ * debian/control:
+ + Dropped the libcdio-dev versioned build-dep to ease backports.
+
+ [ Loic Minier ]
+ * Ack NMU by Nico Golde; thanks!
+ * Wrap more deps.
+ * Also build vlc-plugin-svgalib package on amd64 as well; build-dep on
+ libsvga1-dev on amd64 too; --enable-svgalib on amd64.
+ * Drop debian/*.dirs.
+ * Only pass --host to configure if DEB_BUILD_GNU_TYPE and DEB_HOST_GNU_TYPE
+ differ.
+ * Pass --quiltrc /dev/null to quilt and use $(QUILT) to invoke quilt.
+ * Bump up Debhelper compatibility level to 6; drop dpkg-dev build-dep.
+ * Add /svn to Vcs-Svn.
+ * Don't run ./vlc as a test if nocheck is given.
+ * Cleanup rules.
+ * Drop vlc-plugin-alsa and wxvlc /u/s/d symlinks as these are dummy packages
+ anyway.
+ * Update menu file.
+
+ -- Loic Minier <lool@dooz.org> Fri, 11 Jan 2008 17:32:36 +0100
+
+vlc (0.8.6.c-4.1) unstable; urgency=high
+
+ * Non-maintainer upload by security team.
+ * This update addresses the following security issues
+ (CVE ids pending; Closes: #458318):
+ - Fix format string issue in internal webserver that could lead to
+ to arbitrary code execution (sec-httpd_formatstring.diff).
+ - Disable m3u EXTVLCOPT parsing if no command line option is specified
+ (--m3u-extvlcopt) to prevent browser plugins to control stream output
+ and thus overwriting arbitrary files of the user running vlc
+ (sec-vlcopt_support.diff).
+ - Fix stack-based buffer overflow in subtitle parsing
+ (sec-subtitle_buffer_overflow.diff).
+ - Fix NULL pointer dereference in the rtsp/rtp module by checking return
+ of the httpd_MsgGet function (sec-rtsp_remote_dos.diff).
+
+ -- Nico Golde <nion@debian.org> Fri, 11 Jan 2008 15:05:10 +0100
+
+vlc (0.8.6.c-4) unstable; urgency=high
+
+ [ Loic Minier ]
+ * Wrap build-deps and deps.
+ * Only suggest videolan-doc; closes: #451914.
+
+ [ Christophe Mutricy ]
+ * Use Vcs- instead of Xs-Vcs-
+ * Add Homepage field to control
+ * Use --ignore-missing-info with dpkg-shlibdeps as glide doesn't provide a
+ versionned .shlibs
+
+ [ Sam Hocevar ]
+ * debian/control:
+ + Build-depend on a newer libcdio-dev to transition to the newer binary
+ packages (Closes: #456390, #456403, #453823).
+ + Depend on ttf-dejavu-core instead of ttf-dejavu (Closes: #445580).
+ + Set policy to 3.7.3.
+ * debian/rules:
+ + Don’t ignore make distclean errors.
+ + Call dh_desktop to register desktop files.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Sat, 15 Dec 2007 12:33:48 +0000
+
+vlc (0.8.6.c-3) unstable; urgency=high
+
+ * debian/control:
+ + Removed now useless linux-libc-dev build-dependency (Closes: #430710),
+ thanks to Steve Langasek.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Thu, 05 Jul 2007 10:13:42 +0200
+
+vlc (0.8.6.c-2) unstable; urgency=high
+
+ [ Loic Minier ]
+ * Merge the never uploaded 0.8.6.a.debian-7 changelog entry into 0.8.6.c-1.
+
+ [ Christophe Mutricy ]
+ * Build-depends on linux-libc-dev rather than linux-kernel-headers
+ (Closes: #430710 )
+
+ [ Sam Hocevar ]
+ * debian/control:
+ + Build-depend on newer libavcodec libraries.
+ + Build-depend on newer libflac-dev.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Wed, 04 Jul 2007 22:31:32 +0200
+
+vlc (0.8.6.c-1) unstable; urgency=high
+
+ [ Loic Minier ]
+ * New patch, 107_gcc-4.3, fixes missing include causing a build failure with
+ GCC 4.3; thanks Martin Michlmayr; closes: #417750.
+
+ [ Christophe Mutricy ]
+ * No longer build the x264 module as libx264 has been removed from Sid
+ (Closes: #424649, #427283).
+ * New patch, 108_flac-1.1.3 taken from upstream to fix building with
+ libflac8 (Closes: #426673).
+ * Rebuild against new libavcodec and libavformat (Closes: #427573).
+
+ [ Fathi Boudra, Christophe Mutricy ]
+ * New upstream release (Closes: #424915):
+ + multiple format string vulnerabilities (VideoLAN-SA-0207).
+ (Closes: #429726)
+ + media player unspecified Denial Of Service vulnerability (CVE-2007-0256).
+ (Closes: #407290)
+ + missing includes to fix FTBFS with GCC 4.3.0. (Closes: #417750)
+ + fullscreen opens a normal window instead of going fullscreen on amd64.
+ (Closes: #405035)
+ + fix building with libflac8. (Closes: #426673)
+ + The following patches are no longer necessary:
+ 105_audio_format_crash.diff
+ 106_xshm_check.diff
+ 107_gcc-4.3.diff
+ 108_flac-1.1.3.diff
+
+ [ Sam Hocevar ]
+ * Install libtelx_plugin.so in vlc-nox package.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Tue, 26 Jun 2007 01:41:02 +0200
+
+vlc (0.8.6.a.debian-6) unstable; urgency=low
+
+ * Rebuilt package against packages that are in unstable (Closes: #415446).
+
+ * debian/control:
+ + Use ${binary:Version} instead of ${Source-Version}.
+ + Build-depend on dpkg-dev (>= 1.13.19).
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Tue, 20 Mar 2007 14:50:43 +0100
+
+vlc (0.8.6.a.debian-5) unstable; urgency=low
+
+ * Refreshed and renamed all patches.
+
+ * debian/control:
+ + Set pkg-multimedia-maintainers as main maintainer.
+ + Fixed Vcs fields.
+ * debian/compat:
+ + Set compat to 5.
+ * debian/rules:
+ + Big cleanup.
+ + Distribute libvlc.a again.
+ + Switch to AM_MAINTAINER_MODE instead of touching all files.
+
+ * debian/patches/106_xshm_check.diff:
+ + New patch. Don't crash if XShmAttach fails, instead fall back to
+ normal X images (Closes: #404361).
+
+ * debian/patches/300_manpage_syntax.diff:
+ + New patch. Fix dvd:// syntax in manpage (Closes: #412372) and add
+ mention of the videolan-doc package.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Sat, 17 Mar 2007 19:46:52 +0100
+
+vlc (0.8.6.a.debian-4) unstable; urgency=low
+
+ * *sigh*, libfaad-dev build-depend was in fact missing.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Tue, 13 Mar 2007 10:39:04 +0100
+
+vlc (0.8.6.a.debian-3) unstable; urgency=low
+
+ * debian/control:
+ + Add XS-Vcs-Browser field.
+ + Build-depend on libx264-dev.
+ + Build-depend on libfaad-dev.
+ * debian/rules:
+ + Now that they're in unstable, no longer build our custom x264 and faad2.
+
+ * debian/patches/030_audio_format_crash.diff:
+ + Patch from upstream to fix multiple crashes with audio conversions.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Mon, 12 Mar 2007 16:41:06 +0100
+
+vlc (0.8.6.a.debian-2) unstable; urgency=high
+
+ * debian/patches/021_x264_powerpc.diff:
+ + Patch from upstream to fix FTBFS on PowerPC (Closes: #411438).
+ * debian/rules:
+ + Fix a kFreeBSD FTBFS, courtesy of Petr Salinger (Closes: #399713).
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Wed, 21 Feb 2007 12:12:02 +0100
+
+vlc (0.8.6.a.debian-1) unstable; urgency=high
+
+ * New upstream bugfix release.
+ * Most of our patches are now in sync with upstream. Removed:
+ + 000_bootstrap.diff
+ + 000_ltmain.diff
+ + patch-badly-initialised-data-0.8.6debian-0.8.6a.diff
+ + patch-configure.ac-syntax-0.8.6debian-0.8.6a.diff
+ + patch-documentation-0.8.6debian-0.8.6a.diff
+ + patch-i422-yuy2-crash-0.8.6debian-0.8.6a.diff
+ + patch-integer-signedness-0.8.6debian-0.8.6a.diff
+ + patch-logo-filter-crash-0.8.6debian-0.8.6a.diff
+ + patch-memory-leaks-0.8.6debian-0.8.6a.diff
+ + patch-missing-locks-0.8.6debian-0.8.6a.diff
+ + patch-mjpeg-separator-0.8.6debian-0.8.6a.diff
+ + patch-mozilla-plugin-0.8.6debian-0.8.6a.diff
+ + patch-network-protocols-fixes-0.8.6debian-0.8.6a.diff
+ + patch-playlist-crash-0.8.6debian-0.8.6a.diff
+ + patch-po-0.8.6debian-0.8.6a.diff
+ + patch-private-libcaca-0.8.6debian-0.8.6a.diff
+ + patch-remove-debug-messages-0.8.6debian-0.8.6a.diff
+ + patch-sanitise-javascript-0.8.6debian-0.8.6a.diff
+ + patch-sanity-checks-0.8.6debian-0.8.6a.diff
+ + patch-sdl-image-priority-0.8.6debian-0.8.6a.diff
+ + patch-utf8-0.8.6debian-0.8.6a.diff
+ + patch-version-information-0.8.6debian-0.8.6a.diff
+ + MOAB-02-01-2007-CVE-2007-0017.patch
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Thu, 11 Jan 2007 18:17:41 +0100
+
+vlc (0.8.6-svn20061012.debian-2) unstable; urgency=high
+
+ * Maintainer upload.
+ * Acknowledge previous NMUs by Andreas Barth. Thanks.
+ (Closes: #405425, #400720, #403022).
+
+ * debian/control:
+ + Put back mozilla-plugin-vlc package.
+
+ * debian/rules:
+ + Build with mediacontrol bindings, needed for the Mozilla plugin.
+
+ * 020_kfreebsd.diff:
+ + New patch courtesy of Petr Salinger. Fix a GNU/kFreeBSD FTBFS
+ (Closes: #399713).
+
+ * patch-configure.ac-syntax-0.8.6debian-0.8.6a.diff:
+ + Fix "CFAGS" to "CFLAGS" in configure.ac.
+
+ * patch-documentation-0.8.6debian-0.8.6a.diff:
+ + Documentation, translation and error messages updates.
+
+ * patch-network-protocols-fixes-0.8.6debian-0.8.6a.diff:
+ + Various fixes for the IPv4, IPv6, SAP and HTTP protocols.
+
+ * patch-po-0.8.6debian-0.8.6a.diff:
+ + Translation updates.
+
+ * patch-version-information-0.8.6debian-0.8.6a.diff:
+ + Set version information to 0.8.6a, even if it's not really our real
+ version, to make it clear that the security issues were fixed.
+
+ * patch-mozilla-plugin-0.8.6debian-0.8.6a.diff:
+ + Proper fix for the Mozilla plugin (Closes: #400720, #403022).
+
+ * 000_bootstrap.diff:
+ + Rebootstrap tarball because of changes to configure.ac.
+
+ * patch-badly-initialised-data-0.8.6debian-0.8.6a.diff:
+ + Fix various badly initialised variables in the code.
+
+ * patch-i422-yuy2-crash-0.8.6debian-0.8.6a.diff:
+ + Fix a crash in the I422-YUY2 chroma conversion.
+
+ * patch-integer-signedness-0.8.6debian-0.8.6a.diff:
+ + Fix integer signedness issues in the variable code.
+
+ * patch-logo-filter-crash-0.8.6debian-0.8.6a.diff:
+ + Fix a crash in the logo filter.
+
+ * patch-memory-leaks-0.8.6debian-0.8.6a.diff:
+ + Fix various memory leaks.
+
+ * patch-missing-locks-0.8.6debian-0.8.6a.diff:
+ + Add missing mutex locks.
+
+ * patch-mjpeg-separator-0.8.6debian-0.8.6a.diff:
+ + Fix MJPEG format support.
+
+ * patch-playlist-crash-0.8.6debian-0.8.6a.diff:
+ + Fix a crash in the playlist code.
+
+ * patch-private-libcaca-0.8.6debian-0.8.6a.diff:
+ + Do not use private libcaca symbols.
+
+ * patch-remove-debug-messages-0.8.6debian-0.8.6a.diff:
+ + Disable debug messages and spurious messages to stderr.
+
+ * patch-sanitise-javascript-0.8.6debian-0.8.6a.diff:
+ + Fix the javascript string sanitising.
+
+ * patch-sanity-checks-0.8.6debian-0.8.6a.diff:
+ + Various sanity checks for untrusted data.
+
+ * patch-sdl-image-priority-0.8.6debian-0.8.6a.diff:
+ + Downgraded the sdl-image plugin priority.
+
+ * patch-utf8-0.8.6debian-0.8.6a.diff:
+ + Fix Unicode support in GUIs and file access.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Mon, 8 Jan 2007 09:43:07 +0100
+
+vlc (0.8.6-svn20061012.debian-1.2) unstable; urgency=high
+
+ * Non-maintainer upload.
+ * Fix format string vulnerability with patch
+ MOAB-02-01-2007-CVE-2007-0017.patch, CVE-2007-0017. Closes: #405425
+
+ -- Andreas Barth <aba@not.so.argh.org> Sat, 6 Jan 2007 23:07:51 +0000
+
+vlc (0.8.6-svn20061012.debian-1.1) unstable; urgency=high
+
+ * Non-maintainer upload.
+ * remove broken package mozilla-plugin-vlc. Closes: #400720, #403022
+
+ -- Andreas Barth <aba@not.so.argh.org> Sat, 23 Dec 2006 19:17:40 +0000
+
+vlc (0.8.6-svn20061101.debian-1) UNRELEASED; urgency=high
+
+ * New upstream SVN snapshot.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Wed, 1 Nov 2006 10:50:17 +0100
+
+vlc (0.8.6-svn20061012.debian-1) unstable; urgency=low
+
+ * New upstream SVN snapshot.
+ * Upstream fixed the BadWindow request issue (Closes: #392207).
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Thu, 12 Oct 2006 20:43:45 +0200
+
+vlc (0.8.6-svn20061008.debian-1) unstable; urgency=high
+
+ * New upstream SVN snapshot. Fixes a heap smashing bug.
+ * debian/control:
+ + Build-depend on libgtk2.0-dev to work around #388521 (Closes: #391739).
+ + Replace XS-X-Vcs-Svn with -XS-Vcs-Svn.
+
+ * debian/patches/020_notify.diff:
+ + Fix notify support. Thanks to Christophe Mutricy.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Sun, 8 Oct 2006 18:54:30 +0200
+
+vlc (0.8.6-svn20061001.debian-4) unstable; urgency=low
+
+ * Build-depend on libnotify and explicitly activate the libnotify plugin
+ (Closes: #391308).
+ * Re-enable DV support. libraw1394 is not waiting for us anyway.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Fri, 6 Oct 2006 10:24:26 +0200
+
+vlc (0.8.6-svn20061001.debian-2) unstable; urgency=high
+
+ * Temporarily disable DV support because the libraw1394 transition does
+ not look like it will happen soon.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Wed, 4 Oct 2006 14:00:16 +0200
+
+vlc (0.8.6-svn20061001.debian-1) unstable; urgency=low
+
+ * New upstream SVN snapshot.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Sun, 1 Oct 2006 17:57:57 +0200
+
+vlc (0.8.6-svn20060925.debian-1) unstable; urgency=low
+
+ [ Sam Hocevar ]
+ * New upstrean SVN snapshot.
+ * This release fixes issues with the French Freebox device (Closes: #388332).
+
+ * debian/control:
+ + Added Clément Stenac to the uploaders.
+
+ * 020_certificates_paths.diff:
+ + New patch from upstream that looks for SSL certificates in
+ /etc/ssl/certs/ca-certificates.crt (Closes: #365239).
+
+ [ Clément Stenac ]
+ * Add VCS information to control
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Mon, 25 Sep 2006 14:00:46 +0200
+
+vlc (0.8.6-svn20060918.debian-1) unstable; urgency=low
+
+ * New upstream SVN snapshot, with a slightly saner version number.
+ * debian/rules:
+ + Call dh_install with -si so that it does not try to install files that
+ are not for us (Closes: #387873).
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Mon, 18 Sep 2006 12:38:26 +0200
+
+vlc (0.8.6-svn20060911.0.8.5-1-svn.debian-5) unstable; urgency=low
+
+ * debian/control:
+ + Added proper conflicts/replaces to the libvlc0 package because it
+ overwrites files from old vlc packages (Closes: #387844).
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Sun, 17 Sep 2006 01:38:24 +0200
+
+vlc (0.8.6-svn20060911.0.8.5-1-svn.debian-4) unstable; urgency=low
+
+ * debian/control:
+ + Add libsdl-image1.2-dev to the build-dependencies.
+ + Shorten short descriptions and add “without X support” to the vlc-nox
+ short description.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Sat, 16 Sep 2006 20:08:53 +0200
+
+vlc (0.8.6-svn20060911.0.8.5-1-svn.debian-3) unstable; urgency=low
+
+ * debian/control:
+ + Distribute libvlc0 in a separate package.
+ + Created vlc-nox package that contains VLC and all its non-X related
+ plugins.
+ * debian/rules:
+ + Use dh_install.
+ + Bail out with an error if a plugin from vlc-nox got linked to libX11.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Thu, 14 Sep 2006 18:39:59 +0200
+
+vlc (0.8.6-svn20060911.0.8.5-1-svn.debian-2) unstable; urgency=low
+
+ * debian/patches/000_dup_builtins.diff:
+ + Fix a powerpc FTBFS due to duplicate libraries in link lines.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Mon, 11 Sep 2006 18:32:04 +0200
+
+vlc (0.8.6-svn20060911.0.8.5-1-svn.debian-1) unstable; urgency=low
+
+ * New upstream SVN snapshot, fixes an amd64 FTBFS.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Mon, 11 Sep 2006 13:56:19 +0200
+
+vlc (0.8.6-svn20060910.0.8.5-1-svn.debian-1) unstable; urgency=low
+
+ * New upstream SVN snapshot, from the forthcoming 0.8.5-1 branch.
+ * This branch's playlist window does not crash like the 0.8.6 does
+ (Closes: #375213, #385036, #384869).
+
+ * Upstream fixed implicit pointer functions (Closes: #385192).
+ * Upstream's x264 build system now uses config.guess instead of uname to
+ detect system and CPU types (Closes: #385535).
+ * Upstream removed debug messages from the ts plugin (Closes: #385008,
+ Closes: #385323).
+ * Aspect ration in mkv files was fixed (Closes: #385876).
+
+ * debian/control:
+ + Build-depend on libcaca-dev (>= 0.99.beta4-1) so that we no longer pull
+ useless build dependencies (Closes: #385536).
+ + Have VLC depend on ttf-dejavu again. It's used for subtitles and the
+ default skin.
+ * debian/copyright:
+ + Full copyright holders and license audit (Closes: #324978).
+ * debian/rules:
+ + No longer install old copyright files (Closes: #385200).
+ + Re-activated the speex module (Closes: #386204).
+ + Don't install TTF fonts, use the ones from ttf-dejavu instead.
+
+ * debian/patches/020_freetype_font.diff:
+ + Renamed this patch into 020_dejavu_font.diff and made it use dejavu
+ fonts.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Sun, 10 Sep 2006 19:02:17 +0200
+
+vlc (0.8.6-svn20060823.debian-3) unstable; urgency=low
+
+ * debian/control:
+ + Added missing build-dep on libdc1394-13-dev (Closes: #384568, #384582).
+ + Build-depend on a newer libcaca for better colour ASCII rendering.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Fri, 25 Aug 2006 11:19:00 +0200
+
+vlc (0.8.6-svn20060823.debian-2) unstable; urgency=low
+
+ * debian/control:
+ + Added missing build-dep on libraw1394-dev.
+ * debian/rules:
+ + Replaced --enable-livedotcom with --enable-live555.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Fri, 25 Aug 2006 09:37:47 +0200
+
+vlc (0.8.6-svn20060823.debian-1) unstable; urgency=low
+
+ * New upstream SVN snapshot.
+ * debian/rules:
+ + Distribute a shared version of libvlc.
+ + Activated the twolame encoder.
+ * debian/control:
+ + Build-depend on a newer libavcodec so as to get WMV3 decoding support.
+ + Cleaned up package dependencies a bit.
+
+ * debian/patches/000_ltmain.diff:
+ + Work around libtool not wanting to install our plugins.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Thu, 24 Aug 2006 18:06:12 +0200
+
+vlc (0.8.5.debian-2) unstable; urgency=low
+
+ * debian/rules:
+ + Fix generation of Arch: all transition packages.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Wed, 7 Jun 2006 14:46:22 +0200
+
+vlc (0.8.5.debian-1) unstable; urgency=low
+
+ * New upstream release (Closes: #364934).
+ * This release no longer disables audio input if the v4l video device does
+ not advertise an audio device (Closes: #316377).
+ * This release fixes PPC asm compilation issues in x264 (Closes: #366965).
+
+ * debian/control:
+ + Merged wxvlc and vlc-plugin-alsa into vlc to get rid of circular
+ dependencies (Closes: #365816).
+ + Set policy to 3.7.2.
+ + libxosd-dev is installable again; build-depend on it (Closes: #364937).
+
+ * debian/patches/030_x264_altivec.diff:
+ * debian/patches/030_x264_armvl.diff:
+ + Patches applied upstream. Removed.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Tue, 23 May 2006 16:15:56 +0200
+
+vlc (0.8.5-test3.debian-3) unstable; urgency=low
+
+ * debian/control:
+ + Build-depend on libdvdread-dev (>= 0.9.5) because libdvdread3-dev just
+ disappeared (Closes: #364681).
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Tue, 25 Apr 2006 09:05:45 +0200
+
+vlc (0.8.5-test3.debian-2) unstable; urgency=low
+
+ * debian/control:
+ + Added missing libavc1394-dev build-dependency.
+
+ * debian/patches/030_x264_altivec.diff:
+ + Fixed illegal implicit casts of vector types.
+
+ * debian/patches/030_x264_armvl.diff:
+ + Added support for the armv4l CPU.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Mon, 24 Apr 2006 20:45:16 +0200
+
+vlc (0.8.5-test3.debian-1) unstable; urgency=low
+
+ * New upstream release.
+
+ * Upstream fixed many bugs:
+ + Fixed the CPU features used by the deinterlace plugin and no
+ longer crashes on non-SSE machines (Closes: #363153).
+ + Properly build on amd64 wrt PIC (Closes: #339372, #330146, #330154).
+ + Fixed the double pane in settings dialog issue (Closes: #343031).
+ + Help flags now adapt to the locale and help formatting was fixed
+ (Closes: #347278).
+ + HTTP streaming no longer fails (Closes: #352599).
+ + Memory leak fixed (Closes: #359655).
+ + x264 build system supports ppc64 and mips64 (Closes: #361452, #358233).
+ + OGG muxing was fixed (Closes: #364321).
+
+ * debian/control:
+ + Removed legacy dummy packages.
+ + Switched from dpatch to quilt.
+ + Removed now useless build-dependency on gcc-snapshot (Closes: #361729).
+ + Ditto for xlibs-static-pic (Closes: #364265).
+ + Build-depend on newer ffmpeg libraries so that we dynamically link
+ against them.
+ + Build-depend on newer Matroska libraries to fix .mkv support
+ (Closes: #348404).
+ + Build-depend on libxul-dev and xulrunner instead of mozilla-dev.
+ + Build-depend on newer live555 libraries.
+ + Depend on vlc-plugin-alsa.
+ + Removed the ttf-freefont dependency (Closes: #353459, #362071).
+
+ * debian/vlc.mime:
+ + Fixed broken templates (Closes: #354101).
+
+ * debian/patches/010_no-wx-updates.diff:
+ + Created from old dpatch. Disables broken "check for updates" button.
+
+ * debian/patches/010_osdmenu-paths.diff
+ + Created from old dpatch. Fixes file paths for OSD plugin.
+
+ * debian/patches/020_xulrunner.diff:
+ + Build using XULrunner (Closes: #364381).
+
+ * debian/patches/020_freetype_font:
+ + Do not hardcode the default font, let VLC find one itself.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Mon, 24 Apr 2006 18:10:10 +0200
+
+vlc (0.8.4.debian-2) unstable; urgency=low
+
+ * debian/rules:
+ + Enable zeroconf/bonjour support (Closes: #348085).
+ + Enable musepack decoding support.
+ + Enable VCD navigation support.
+ * debian/control:
+ + Build-depend on more recent versions of libavcodec to fix CVE-2005-4048.
+ + Build-depend on libhal-dev (>= 0.5.5.1-3) for the dbus transition.
+ + Build-depend on libavahi-client-dev.
+ + Build-depend on libmpcdec-dev.
+ + Build-depend on libsysfs-dev so that the MP4 module can get an iPod’s
+ version number.
+ + Build-depend on libvcdinfo-dev.
+ * debian/vlc.mime:
+ + Put flags after the command, as per mailcap(5) (Closes: #340434).
+
+ * src/libvlc.c configure.ac modules/services_discovery/hal.c:
+ + Backported HAL 0.5 patch from upstream, thanks to Clément Stenac and
+ Loïc Minier. As a result, we now build and install again on unstable
+ (Closes: #332927, #347598, #347847).
+ * extras/x264/configure:
+ + Support the armv5tel platform.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Sun, 22 Jan 2006 12:08:42 +0100
+
+vlc (0.8.4.debian-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Sat, 26 Nov 2005 19:55:09 +0100
+
+vlc (0.8.4-test2-2) unstable; urgency=low
+
+ * extras/x264/configure:
+ + Teach the configure script about the Alpha platform.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Fri, 11 Nov 2005 18:49:31 +0100
+
+vlc (0.8.4-test2-1) unstable; urgency=low
+
+ * New upstream release.
+ * debian/control:
+ + Build-depend on a newer version of gnutls (Closes: #335774).
+ + Replaced occurrences of "wxwindows" with "wxwidgets" (Closes: #330141).
+ * debian/rules:
+ + Use dh_buildinfo because of all the static libraries we use.
+ * Upstream fixed the wx code so that it builds with newer versions of the
+ library (Closes: #332282, #332773).
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Fri, 11 Nov 2005 10:41:35 +0100
+
+vlc (0.8.4-svn20050920-3) unstable; urgency=low
+
+ * configure.ac:
+ + Fixed a bug in the gnomevfs plugin configuration.
+ * debian/rules:
+ + Explicitly disable the GnomeVFS plugin (Closes: #329317).
+ * debian/control:
+ + Buuild-depend on yasm on amd64.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Wed, 21 Sep 2005 11:36:24 +0200
+
+vlc (0.8.4-svn20050920-2) unstable; urgency=low
+
+ * configure:
+ + Fixed the powerpc build with gcc-4.x.
+ * extras/x264/configure:
+ + Added missing Debian architectures to the configure script.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Tue, 20 Sep 2005 17:46:35 +0200
+
+vlc (0.8.4-svn20050920-1) unstable; urgency=low
+
+ * New SVN snapshot.
+ * configure.ac:
+ + Upstream fixed the AltiVec build on PPC.
+ * debian/control:
+ + Build-depend on a newer version of libavcodec. mp2v and mp1v encoders
+ work again (Closes: #324840).
+ + Build-depend on gcc-snapshot on i386 and amd64, because currently only
+ that version of gcc properly builds some of the MMX modules.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Tue, 20 Sep 2005 13:43:41 +0200
+
+vlc (0.8.4-svn20050823-2) unstable; urgency=low
+
+ * debian/control:
+ + Build-depend on libflac-dev (>= 1.1.2-3) because of the soname
+ change (Closes: #325948).
+ * debian/copyright:
+ + Fixed the FSF address.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Thu, 1 Sep 2005 12:36:10 +0200
+
+vlc (0.8.4-svn20050823-1) unstable; urgency=low
+
+ * New SVN snapshot.
+ * debian/control:
+ + Build-depend on libsmbclient-dev.
+ + Build-depend on libwxgtk2.6-dev (Closes: #285373), which means the
+ interface now works with non-UTF8 locales (Closes: #308770, #322665).
+ + Build-depend on a newer version of libavcodec.
+ * debian/rules:
+ + Activated SMB client support.
+ + Install desktop files in usr/share/applications instead of
+ usr/share/gnome/apps/Multimedia.
+ * debian/patches/00list:
+ + 20_no-wx-updates.dpatch: disabled the update check.
+ + 20_interfaces.dpatch: disabled deprecated patch.
+ * configure.ac:
+ + Fixes powerpc build.
+ * include/network.h src/misc/net.c:
+ + Fixes HTTP input (Closes: #322757).
+ + Fixes URL encoding in the RTSP module (Closes: #323813).
+ * modules/gui/skins2 modules/gui/wxwidgets:
+ + Fixes a compilation issue on 64-bit architectures (Closes: #324031).
+ * modules/visualization/xosd.c:
+ + Fixes libxosd initialisation (Closes: #324039).
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Mon, 22 Aug 2005 14:43:48 +0200
+
+vlc (0.8.4-svn20050810-2) unstable; urgency=low
+
+ * debian/control:
+ + Build-depend on libarts1-dev (>= 1.4.2-1).
+ + Build-depend on a newer version of libavcodec.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Tue, 16 Aug 2005 17:36:21 +0200
+
+vlc (0.8.4-svn20050810-1) unstable; urgency=low
+
+ * New SVN snapshot.
+ * Rebuilt against libaa1 and new wxWin and SDL packages to complete the
+ aalib transition (Closes: #320874) and make the packages installable again
+ (Closes: #319292, #319598, #321461, #322166, #317380).
+ * debian/rules:
+ + Use DEB_BUILD_ARCH_CPU instead of DEB_BUILD_GNU_CPU.
+ * debian/vlc.desktop:
+ + Added desktop file, thanks to Mantas Kriauciunas (Closes: #290612).
+ * debian/control:
+ + Removed unused dummy packages (Closes: #321988, #322003, #322013).
+ + Build-depend on libmatroska-dev (>= 0.7.7).
+ + Build-depend on libwxgtk2.4-dev (>= 2.4.4).
+ + Build-depend on libdvbpsi4-dev instead of libdvbpsi3-dev.
+ * Build-depend on libsdl1.2-dev (>= 1.2.7+1.2.8cvs20041007-5.3).
+ + Build-depend on a newer version of libmatroska-dev and mozilla-dev
+ because of the C++ transition.
+ + Build-depend on libsvga1-dev instead of svgalib1-dev.
+ * This snapshot no longer uses tune=opteron on amd64 (Closes: #316161).
+ * The SVN version adds support for Freebox users (Closes: #317035).
+ * Various gcc-4.x FTBFS were fixed upstream (Closes: #317055).
+ * mozilla/support/npunix.c: fixed undeclared NPP_GetJavaClass
+ (Closes: #317067).
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Wed, 10 Aug 2005 16:18:37 +0200
+
+vlc (0.8.2-1) unstable; urgency=low
+
+ * New upstream release.
+ * This version fixes the random playlist parsing (Closes: #308375), encodes
+ non-ASCII characters in RTSP requests (Closes: #279735) and fixes an issue
+ with large files (Closes: #306110).
+ * debian/control:
+ + Set policy to 3.6.2.1.
+ + Build-depend on libpng12-dev, xlibmesa-gl-dev.
+ + Build-depend on a more recent ffmpeg library set, to fix nasty visual
+ artifacts with post-processing (Closes: #300220).
+ + mozilla-plugin-vlc recommends mozilla-firefox in addition to
+ mozilla-browser (Closes: #308723).
+ + Now that sarge is out, removed legacy packages that disappeared in woody.
+ * debian/rules:
+ + Activated PNG output support.
+ + Activated GLX output support.
+ * The NEWS file documents the changed behaviour for SAP (Closes: #303262).
+ * Minor typo fixed in the manpage (Closes: #300339).
+ * po/de.po: merged corrections from Jens Seidel (Closes: #313890).
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Sun, 26 Jun 2005 16:28:19 +0200
+
+vlc (0.8.1.svn20050314-1) unstable; urgency=low
+
+ * More recent SVN snapshot.
+ * This snapshot fixes issues in modules/gui/wxwindows/streamout.cpp that
+ caused FTBFS on 64-bit architectures (Closes: #289923).
+ * debian/control:
+ + Build-depend on new libmatroska and libavcodec versions.
+ + Unfortunate return to wxwidgets 2.4 until 2.5 enters testing.
+ + Upgraded libflac-dev build dependency to (>= 1.1.1-5) to resolve
+ dependency issues (Closes: #298067).
+ * debian/vlc.mime: merged Guido Guenther’s contribution (Closes: #297261).
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Mon, 14 Mar 2005 10:53:59 +0100
+
+vlc (0.8.1-3) unstable; urgency=low
+
+ * debian/control:
+ + Build-depend on fixed ffmpeg packages (Closes: #289444).
+ + Build-depend on a newer libflac-dev so that resulting packages use
+ libflac6 (Closes: #289490).
+ * modules/gui/wxwindows/open.cpp:
+ + Compilation fix for 64 bits systems.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Mon, 10 Jan 2005 11:10:02 +0100
+
+vlc (0.8.1-2) unstable; urgency=low
+
+ * debian/control:
+ + Use ffmpeg from Debian instead of the contrib one.
+ + Use wxgtk2.5 instead of 2.4.
+ + Activated the ncurses UI (Closes: #286962).
+ * debian/gnome-vlc.desktop debian/gvlc.desktop:
+ + Fixed the icon location.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Thu, 6 Jan 2005 18:00:00 +0100
+
+vlc (0.8.1-1) unstable; urgency=low
+
+ * New upstream release.
+ * debian/gnome-vlc.desktop:
+ + Fixed program path (Closes: #280290).
+ * debian/control:
+ + Require an up-to-date liblivemedia.
+ + Build-depend on libgnutls11-dev.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Sun, 14 Nov 2004 22:21:23 +0100
+
+vlc (0.8.0.final-1) unstable; urgency=low
+
+ * Final 0.8.0 upstream release.
+ * src/misc/modules.c:
+ + Fixed a startup issue with the svlc shortcut (Closes: #274376).
+ * debian/control:
+ + Suggest the Mozilla and ALSA plugins. Only mentioned the others in
+ the package description because they are not of notable usefulness
+ (Closes: #275160).
+ * modules/access/http.c:
+ + Fix HTTP proxy handling (Closes: #278381).
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Wed, 3 Nov 2004 14:52:05 +0100
+
+vlc (0.8.0-test1-1) unstable; urgency=high
+
+ * New upstream tarball.
+ * debian/rules:
+ + Fixed previously broken DVD support.
+ + Removed currently broken Speex support.
+ * debian/control:
+ + Build-depend on libdvdnav.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Sat, 4 Sep 2004 02:32:49 +0200
+
+vlc (0.7.2.svn20040827-1) unstable; urgency=high
+
+ * New SVN snapshot.
+ * debian/rules:
+ + Activated x264 support.
+ + Re-enabled libmodplug support.
+ + Build PIC plugins even on x86.
+ + Disabled SLP because its code is broken.
+ + Disabled the GNOME, Qt, GTK+ and KDE interfaces in favour of the
+ WxWidgets one.
+ + Activated HAL support.
+ * debian/control:
+ + Force the vlc-plugin-arts dependencies.
+ + Build-depend on jam and nasm because of x264.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Fri, 27 Aug 2004 21:31:13 +0200
+
+vlc (0.7.2.final-11) unstable; urgency=medium
+
+ * configure.ac:
+ + Fixed an LDFLAGS/CFLAGS confusion.
+ + Don't use -finline-limit since it now tries to inline functions that
+ have not been explicitely inlined (Closes: #265673).
+ * debian/patches/20_configure.dpatch:
+ + Don't manage this patch with dpatch since it causes ownership issues.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Sun, 15 Aug 2004 01:35:35 +0200
+
+vlc (0.7.2.final-10) unstable; urgency=medium
+
+ * The "I hope I got it right this time" upload.
+ * configure.ac:
+ + Use -maltivec -mabi=altivec for the memcpyaltivec and deinterlace
+ plugins on PowerPC.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Tue, 10 Aug 2004 18:01:47 +0200
+
+vlc (0.7.2.final-9) unstable; urgency=low
+
+ * debian/control:
+ + Added a missing dpatch build dependency (Closes: #263363).
+ + Removed the modplug plugin until libmodplug-dev enters Debian.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Tue, 10 Aug 2004 11:01:15 +0200
+
+vlc (0.7.2.final-8) unstable; urgency=low
+
+ * debian/control:
+ + Added a missing dpatch build dependency.
+ * configure.ac:
+ + Fixed the powerpc build by conditionally re-enabling -maltivec
+ -mabi=altivec.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Fri, 30 Jul 2004 00:05:58 +0200
+
+vlc (0.7.2.final-7) unstable; urgency=low
+
+ * debian/rules:
+ + Switch build system to dpatch.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Thu, 29 Jul 2004 17:03:51 +0200
+
+vlc (0.7.2.final-6) unstable; urgency=low
+
+ * configure.ac: don't use -maltivec -mabi=altivec, because we don't want
+ to trigger AltiVec optimisations in our generic code (Closes: #256578,
+ Closes: #260819).
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Fri, 23 Jul 2004 17:21:21 +0200
+
+vlc (0.7.2.final-5) unstable; urgency=low
+
+ * debian/control:
+ + Build-depend on libdvbpsi3-dev, so that we can get rid of the previous
+ versions of this library.
+ + Recommend the videolan-doc package.
+ + Build-conflict on libavcodec-dev, just in case it enters Sid at an
+ unappropriate moment.
+ * debian/README.Debian:
+ + Removed mention of the libmpeg2 tree, which we no longer provide.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Tue, 20 Jul 2004 11:25:17 +0200
+
+vlc (0.7.2.final-4) unstable; urgency=low
+
+ * debian/rules:
+ + Activated Theora support (Closes: #259061).
+ + Re-enabled the KDE plugin (Closes: #258295).
+ * debian/control:
+ + Set policy to 3.6.1.1.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Tue, 13 Jul 2004 00:21:20 +0200
+
+vlc (0.7.2.final-3) unstable; urgency=low
+
+ * extras/ffmpeg/configure: fixed HPPA architecture detection.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Fri, 25 Jun 2004 11:55:33 +0200
+
+vlc (0.7.2.final-2) unstable; urgency=low
+
+ * extras/ffmpeg/libavcodec/svq1.c: fixed vector/vect namespace issues on
+ powerpc.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Tue, 22 Jun 2004 15:21:09 +0200
+
+vlc (0.7.2.final-1) unstable; urgency=low
+
+ * New upstream release.
+ * Temporarily disabled the KDE GUI plugin.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Sat, 29 May 2004 00:06:48 -0300
+
+vlc (0.7.2-test2-1) unstable; urgency=low
+
+ * New upstream snapshot.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Thu, 6 May 2004 11:11:25 +0200
+
+vlc (0.7.2-test1-4) unstable; urgency=low
+
+ * extras/ffmpeg/libacvodec/Makefile:
+ + Fixed a PARISC/HPPA mix-up.
+ * src/interface/interface.c:
+ + Removed the "switch interface" menu due to wxwin's utter bugosity.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Fri, 30 Apr 2004 13:15:59 +0200
+
+vlc (0.7.2-test1-3) unstable; urgency=low
+
+ * configure.ac:
+ + Link DTS plugins with libdts_pic.a, not libdts.a.
+ * debian/control:
+ + Build-depend on libid3tag0-dev for ID3 tag support.
+ + Made vlc depend on wxvlc for the moment.
+ * extras/ffmpeg/libacvodec/Makefile:
+ + Build motion_est.c with -O1.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Fri, 30 Apr 2004 10:49:59 +0200
+
+vlc (0.7.2-test1-2) unstable; urgency=low
+
+ * debian/control:
+ + Build-depend on libxml2-dev.
+ * extras/ffmpeg/libavcodec/ppc/dsputil_altivec.c:
+ + Syntax fixes for powerpc.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Wed, 28 Apr 2004 12:49:18 +0200
+
+vlc (0.7.2-test1-1) unstable; urgency=low
+
+ * New SVN snapshot.
+ * The skinned interface is now the default one (Closes: #245210).
+ * debian/control:
+ + Removed the libdv2-dev build-dependency.
+ + Set the liblivemedia-dev build-dependency to (>= 2004.04.23-1).
+ + Set the libmatroska-dev build-dependency to (>= 0.7.0).
+ + Build-depend on libfribidi-dev.
+ + Build-depend on libcdio-dev.
+ + Build-depend on libmodplug-dev.
+ * debian/rules:
+ + Activated fribidi support.
+ + Activated CDDA support via libcdio.
+ + Activated MOD support.
+ * configure.ac:
+ + Re-enabled i420_yuy2_altivec.
+ * src/interface/interface.c:
+ + Disable unavailable interfaces from the switch menu (Closes: #245209).
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Mon, 26 Apr 2004 16:30:25 +0200
+
+vlc (0.7.1-7) unstable; urgency=high
+
+ * debian/control:
+ + Override kdelibs4's shlibs value to get VLC into testing.
+ + No longer build-depend on dvb-dev.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Tue, 20 Apr 2004 18:00:40 +0200
+
+vlc (0.7.1-6) unstable; urgency=low
+
+ * debian/control:
+ + Removed the build dependency on gcc-3.2 because gcc-3.3 no longer ICEs
+ on ppc/mpegvideo_altivec.o (Closes: #236442).
+ + Build depend on fixed libsdl1.2-dev (>= 1.2.7-5).
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Tue, 6 Apr 2004 10:27:35 +0200
+
+vlc (0.7.1-5) unstable; urgency=low
+
+ * debian/control:
+ + Added a build-dependency on libaudiofile-dev to fix the m68k build.
+ * debian/rules:
+ + Added symlinks for mozilla-firefox (Closes: #239352).
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Tue, 30 Mar 2004 23:10:20 +0200
+
+vlc (0.7.1-4) unstable; urgency=medium
+
+ * extras/ffmpeg/libavcodec/ppc/mpegvideo_ppc.c:
+ + Replaced fprintf() with av_log() to fix the powerpc build.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Sun, 21 Mar 2004 13:59:07 +0100
+
+vlc (0.7.1-3) unstable; urgency=medium
+
+ * debian/rules:
+ + Activated DTS decoding support.
+ * debian/control:
+ + Build-depend on libx11-dev, libxext-dev, libxt-dev instead of xlibs-dev.
+ + Build-depend on libxv-dev, xlibs-static-pic instead of xlibs-pic.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Sat, 20 Mar 2004 18:13:43 +0100
+
+vlc (0.7.1-2) unstable; urgency=medium
+
+ * debian/control:
+ + Build-depend on zlib1g-dev because ffmpeg uses it by default.
+ * configure.ac:
+ + Add -lz to the link flags for plugins that use ffmpeg.
+ + Disabled i420_yuy2_altivec for now, because it only has a C version of
+ the AltiVec routines.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Thu, 4 Mar 2004 17:34:58 +0100
+
+vlc (0.7.1-1) unstable; urgency=medium
+
+ * New upstream release.
+ * debian/copyright:
+ + Added faad2 and ffmpeg authors to the copyright (Closes: #212766).
+ * mozilla/vlcplugin.h:
+ + Added the 'video/x-ms-asf' MIME type to the plugin (Closes: #232690).
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Wed, 3 Mar 2004 10:47:21 +0100
+
+vlc (0.7.0-3) unstable; urgency=medium
+
+ * ppc/mpegvideo_altivec.c:
+ + Build this file with GCC 3.2 to work around an ICE.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Wed, 21 Jan 2004 15:36:30 +0100
+
+vlc (0.7.0-2) unstable; urgency=low
+
+ * debian/rules:
+ + Look for faad in extras/faad2, not extras/faad.
+ * modules/demux/mkv.cpp:
+ + Updated mkv module for the latest Matroska version (Closes: #227923).
+ * modules/video_output/caca.c:
+ + Updated caca module for the latest libcaca version.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Tue, 20 Jan 2004 18:30:58 +0100
+
+vlc (0.7.0-1) unstable; urgency=low
+
+ * New upstream release.
+ * debian/control:
+ + Build-depend on fixed dvb-dev packages.
+ + Build-depend on fixed linux-kernel-headers packages.
+ * debian/rules:
+ + Look for faad in extras/faad2, not extras/faad.
+ + Enable postprocessing in the ffmpeg configuration.
+ + Activated libcaca video output.
+ * doc/vlc.1:
+ + Fixed a minor typo (Closes: #223605).
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Sun, 4 Jan 2004 03:29:22 +0100
+
+vlc (0.6.2+cvs20031030-2) unstable; urgency=low
+
+ * debian/control:
+ + Build-depend on a newer wxwindows version to avoid incompatibilities.
+ + Build-depend on linux-kernel-headers and build-conflict on dvb-dev
+ because these packages cannot be installed together.
+ * debian/rules:
+ + Temporarily disabled the framebuffer video output plugin because of
+ current code errors in linux-kernel-headers.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Sat, 1 Nov 2003 11:01:40 +0100
+
+vlc (0.6.2+cvs20031030-1) unstable; urgency=low
+
+ * New CVS snapshot.
+ * debian/rules:
+ + Disabled the deprecated satellite plugin; the dvb plugin is now
+ the recommended one (Closes: #216367).
+ + Don't install fortunes in /usr/share/games, they are too private for
+ common mortals (Closes: #212856). They are still available in the
+ /usr/share/doc/vlc directory though.
+ + Activated the speex codec.
+ + Activated the PVR input module.
+ * debian/control:
+ + Depend on ttf-freefont for subtitles.
+ + Upgraded debhelper build-dependency to (>= 4.0).
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Fri, 31 Oct 2003 11:08:57 +0100
+
+vlc (0.6.2-3) unstable; urgency=low
+
+ * debian/control:
+ + Set libxosd-dev build-dependency to (>= 2.2.4-1.3) because previous
+ versions were broken on s390 (Closes: #208383).
+ + Rewrote long descriptions (Closes: #209602, #209615, #209628, #209636,
+ Closes: #209774, #209914, #210028, #210095).
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Mon, 15 Sep 2003 21:28:43 +0200
+
+vlc (0.6.2-2) unstable; urgency=low
+
+ * debian/control:
+ + Set libmatroska-dev build-dependency to (>= 0.5.0-3) because previous
+ versions were broken on platforms where PIC/non-PIC cannot be mixed in
+ objects (Closes: #208383).
+ + Set policy to 3.6.1.0.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Fri, 5 Sep 2003 02:32:54 +0200
+
+vlc (0.6.2-1) unstable; urgency=low
+
+ * New upstream release.
+ * debian/control:
+ + Added a build-dependency on freetype6-dev.
+ + Added a build-dependency on libdvbpsi2-dev.
+ + We now recommend gnome-vlc | wxvlc.
+ + We now suggest fortune-mod.
+ * This release now uses libfreetype to render subtitles, and we recommend
+ ttf-freefont | ttf-thryomanes, so that the old .rle font is no longer
+ needed (Closes: #203013).
+ * extras/faad:
+ + aclocal-1.6 && autoconf && automake-1.6 -a -c -f && libtoolize -c -f
+ * extras/faad/common/mp4v2:
+ + aclocal-1.4 && autoconf && autoheader && automake-1.4 --foreign -a -c \
+ && libtoolize -c -f
+ * extras/mpeg2dec:
+ + aclocal-1.7 && autoconf && automake-1.7 -a -c && libtoolize -c -f
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Tue, 2 Sep 2003 10:45:24 +0200
+
+vlc (0.6.0+cvs-20030716-2) unstable; urgency=low
+
+ * debian/control:
+ + Updated debhelper build-dependency to (>= 3.4.4) because we now
+ use debian/compat.
+ + Use ${misc:Depends} everywhere.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Wed, 16 Jul 2003 16:55:31 +0200
+
+vlc (0.6.0+cvs-20030716-1) unstable; urgency=low
+
+ * New CVS snapshot.
+ * debian/control:
+ + Set policy to 3.6.0. No changes required.
+ + Extended the package description.
+ * modules/video_output/x11/xcommon.c:
+ + Fix for crashes in the Mozilla plugin (Closes: #200920).
+ * mozilla/*:
+ + Compilation fixes for Mozilla 1.4 headers (Closes: #201093).
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Wed, 16 Jul 2003 16:55:31 +0200
+
+vlc (0.6.0+cvs-20030705-1) unstable; urgency=low
+
+ * New CVS snapshot.
+ + Includes previous Debian fixes.
+ + Errors in plugins now properly trigger build abort so that no build
+ failures are missed. Thanks to LaMont Jones for pointing out the problem.
+ * debian/rules:
+ + Enabled Matroska support.
+ + Only build builtins in the first compile pass so that we don't mix PIC
+ and non-PIC code (Closes: #199968). Phew, I hope I got it right this
+ time.
+ * extras/ffmpeg:
+ + Re-applied the Alpha build fix from 0.6.0+cvs-20030627-2 that had
+ disappeared in 0.6.0+cvs-20030703-1.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Sat, 5 Jul 2003 01:09:11 +0200
+
+vlc (0.6.0+cvs-20030703-1) unstable; urgency=low
+
+ * New CVS snapshot.
+ + Includes previous Debian fixes.
+ + Build should be a bit faster now.
+ * extras/faad:
+ + aclocal-1.6 && autoconf && automake-1.6 -a -c -f && libtoolize -c -f
+ * extras/faad/common/id3lib:
+ + mkdir doc examples
+ + aclocal-1.4 && autoconf && automake-1.4 -a -c && libtoolize -c -f
+ * extras/mpeg2dec:
+ + aclocal-1.7 && autoconf && automake-1.7 -a -c && libtoolize -c -f
+ + Fixes build on parisc (Closes: #199693).
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Thu, 3 Jul 2003 11:25:57 +0200
+
+vlc (0.6.0+cvs-20030627-2) unstable; urgency=low
+
+ * extras/ffmpeg:
+ + Fixed compilation for Alpha.
+ * debian/rules:
+ + Enabled the video4linux input plugin (Closes: #199427).
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Sun, 29 Jun 2003 21:12:10 +0200
+
+vlc (0.6.0+cvs-20030627-1) unstable; urgency=low
+
+ * New upstream release.
+ * debian/rules:
+ + Replaced $(DEB_BUILD_ARCH) with `dpkg-architecture -qDEB_BUILD_GNU_CPU`
+ so that the rules can be called directly.
+ + Use the -s flag instead of -a so that debhelper properly handles the
+ i386-only plugin packages.
+ + Split the build rule into configure and build.
+ * debian/control:
+ + Removed leading "a"s from package descriptions.
+ + Set policy to 3.5.10.
+
+ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Sat, 21 Jun 2003 17:55:07 +0200
+
+vlc (0.5.3-3) unstable; urgency=low
+
+ * Built-in modules were linked twice in the mozilla plugin; removed the
+ non-PIC ones (Closes: #194384).
+
+ -- Samuel Hocevar <sam@zoy.org> Fri, 23 May 2003 11:15:19 +0200
+
+vlc (0.5.3-2) unstable; urgency=low
+
+ * Changed the libvlc0-dev section to libdevel.
+ * We now build the static objects twice: once the normal way before we
+ link them with VLC, and once with -fPIC so that they can be linked to
+ the Mozilla plugin.
+ * Updated extras/faad/config.{sub,guess}.
+
+ -- Samuel Hocevar <sam@zoy.org> Fri, 14 Apr 2003 15:14:07 +0200
+
+vlc (0.5.3-1) unstable; urgency=low
+
+ * New upstream release.
+ * Fixed a clock skew issue in debian/rules.
+
+ -- Samuel Hocevar <sam@zoy.org> Tue, 8 Apr 2003 15:20:20 +0100
+
+vlc (0.5.2-4) unstable; urgency=low
+
+ * Changed the section of gnome-vlc and kvlc according to new Debian
+ archive sections.
+ * Updated woody-buildpackage so that packages say "stable".
+
+ -- Samuel Hocevar <sam@zoy.org> Tue, 1 Apr 2003 18:08:01 +0200
+
+vlc (0.5.2-3) unstable; urgency=low
+
+ * Added explicit dependencies on vlc to legacy packages to make linda and
+ lintian happier.
+ * Added correct versioned build-dependency on debhelper.
+ * Updated the autotools helper files in extras/faad.
+
+ -- Samuel Hocevar <sam@zoy.org> Wed, 26 Mar 2003 02:50:34 +0100
+
+vlc (0.5.2-2) unstable; urgency=low
+
+ * Bumped up standards version to 0.5.9.0.
+ * Added build-dependencies on libidl0 and libglib2.0-0 to work around
+ mozilla-dev's currently broken dependencies.
+ * We now link against libdvdread3 instead of libdvdread2.
+
+ -- Samuel Hocevar <sam@zoy.org> Tue, 25 Mar 2003 23:21:51 +0100
+
+vlc (0.5.2-1) unstable; urgency=low
+
+ * New upstream release.
+ * Removed vlc-plugin-dvb, vlc-plugin-xosd, vlc-plugin-aa, vlc-plugin-lirc and
+ vlc-plugin-dv packages because the dependencies are quite small, and merged
+ them into the main vlc package.
+ * Removed the vlc-mad, vlc-arts, vlc-lirc and vlc-aa legacy packages because
+ they were not in woody.
+
+ -- Samuel Hocevar <sam@zoy.org> Tue, 11 Mar 2003 20:32:36 +0100
+
+vlc (0.5.1-1) unstable; urgency=low
+
+ * New upstream release.
+ * The vlc-glide package is now Architecture: i386 only.
+ * The vlc-plugin-mad package Provides: mp3-decoder.
+ * The deprecated vlc-* packages have a proper link to /usr/share/doc/vlc/.
+
+ -- Samuel Hocevar <sam@zoy.org> Sat, 15 Feb 2003 03:43:33 +0100
+
+vlc (0.5.0-1) unstable; urgency=low
+
+ * New upstream release (Closes: #157166).
+ * Audio MPEG and A52 decoders now use external libraries (libmad, liba52).
+ * Build-Depends are now valid (Closes: #147103).
+ * More robust AVI parser (Closes: #158037).
+ * An issue with X taking more and more CPU was fixed (Closes: #153286).
+ * Package now includes a NEWS file.
+ * New package containing a Mozilla plugin.
+ * New codec packages: Ogg/Vorbis, DV.
+ * New GUI package: wxvlc (wxWindows).
+ * New debian/woody-buildpackage file that can be used to build Woody
+ packages.
+ * Made the GNOME desktop entries more user-friendly (Closes: #149749).
+
+ -- Samuel Hocevar <sam@zoy.org> Thu, 4 Jul 2002 17:44:25 +0200
+
+vlc (0.4.1-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Samuel Hocevar <sam@zoy.org> Mon, 3 Jun 2002 23:43:35 +0200
+
+vlc (0.4.0-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Samuel Hocevar <sam@zoy.org> Thu, 23 May 2002 01:27:05 +0200
+
+vlc (0.3.1-1) unstable; urgency=low
+
+ * New upstream release.
+ * Fixes a crash in the Gtk+ interface.
+
+ -- Samuel Hocevar <sam@zoy.org> Thu, 18 Apr 2002 06:43:42 +0200
+
+vlc (0.3.0-1) unstable; urgency=low
+
+ * New upstream release.
+ * Reworked Gtk interface (Closes: #138732), with a working preferences
+ dialog (Closes: #134142, #134147).
+ * The ALSA plugin now supports S/PDIF (Closes: #118301).
+
+ -- Samuel Hocevar <sam@zoy.org> Sat, 6 Apr 2002 04:27:50 +0200
+
+vlc (0.2.92-8) unstable; urgency=high
+
+ * Only link with libXv.a if libXv_pic.a wasn't found, which fixes
+ package builds on sid.
+ * Added -ffunction-sections to the compilation of mpeg_vdec.a when
+ the architecture is hppa.
+
+ -- Samuel Hocevar <sam@zoy.org> Sun, 6 Jan 2002 06:56:08 +0100
+
+vlc (0.2.92-7) unstable; urgency=high
+
+ * Fixed configure.in so that it doesn't fail on hppa.
+ * Fixed a symbol resolution issue that made vlc crash when libdvdcss
+ was installed.
+
+ -- Samuel Hocevar <sam@zoy.org> Sat, 5 Jan 2002 03:46:23 +0100
+
+vlc (0.2.92-6) unstable; urgency=high
+
+ * Attempt to fix IA64 and hppa builds.
+
+ -- Samuel Hocevar <sam@zoy.org> Fri, 4 Jan 2002 14:11:02 +0100
+
+vlc (0.2.92-5) unstable; urgency=high
+
+ * Many fixes imported from the 0.2.92 upstream release (VCD input,
+ buffer management, decoder error management).
+ * Removed a stupid dependency on libc6 which prevented the package
+ from being built on alpha.
+
+ -- Samuel Hocevar <sam@zoy.org> Wed, 2 Jan 2002 04:16:44 +0100
+
+vlc (0.2.92-4) unstable; urgency=high
+
+ * Put debian/control and debian/rules in sync again (Closes: #126697).
+ * Replaced the 48x48 XPM icons with 32x32 icons to comply with policy
+ (Closes: #126939).
+ * Don't spawn the Gtk+ or the Gnome interface if no $DISPLAY variable is
+ present, which fixes the framebuffer output (Closes: #101753).
+
+ -- Samuel Hocevar <sam@zoy.org> Sun, 30 Dec 2001 02:59:01 +0100
+
+vlc (0.2.92-3) unstable; urgency=high
+
+ * Removed references to vlc-mad (Closes: #126194).
+
+ -- Samuel Hocevar <sam@zoy.org> Sat, 22 Dec 2001 21:04:27 +0100
+
+vlc (0.2.92-2) unstable; urgency=high
+
+ * Bumped urgency to high to get this stable version into testing; all
+ reported critical bugs were fixed.
+ * Bumped Standards-Version to 3.5.6.
+ * Fixed a PowerPC compilation issue.
+ * Fixed a crash in the VCD input.
+
+ -- Samuel Hocevar <sam@zoy.org> Thu, 20 Dec 2001 23:24:21 +0100
+
+vlc (0.2.92-1) unstable; urgency=low
+
+ * Using the stable 0.2.92 CVS branch, has lots of stability fixes.
+ * Disabled broken ALSA audio output (Closes: #110869, #119846).
+ * Changed configure.in so that vlc is linked against libXv.a,
+ not xvideo.so and sdl.so (Closes: #111790).
+ * Added versioned build-dep to libasound2-dev (Closes: #121057).
+
+ -- Samuel Hocevar <sam@zoy.org> Wed, 19 Dec 2001 17:06:44 +0100
+
+vlc (0.2.91-2) unstable; urgency=low
+
+ * Added "Video" menu hints (Closes: #121036).
+
+ -- Samuel Hocevar <sam@zoy.org> Sun, 25 Nov 2001 02:25:34 +0100
+
+vlc (0.2.91-1) unstable; urgency=low
+
+ * New upstream release.
+ * This release fixes IFO parsing issues (Closes: #119369).
+ * vlc will dlopen() an installed libdvdcss if available, to play
+ encrypted DVDs (Closes: #89856).
+ * vlc is now in sync with the official libdvdcss (Closes: #118194).
+
+ -- Samuel Hocevar <sam@zoy.org> Mon, 12 Nov 2001 17:14:29 +0100
+
+vlc (0.2.90-3) unstable; urgency=low
+
+ * Added stricter Build-Depends on libsdl1.2-dev (Closes: #117180).
+
+ -- Samuel Hocevar <sam@zoy.org> Fri, 26 Oct 2001 16:06:01 +0200
+
+vlc (0.2.90-2) unstable; urgency=low
+
+ * Various upstream bugfixes.
+ * Compiled against libsdl1.2-debian (Closes: #116709).
+
+ -- Samuel Hocevar <sam@zoy.org> Tue, 23 Oct 2001 02:09:39 +0200
+
+vlc (0.2.90-1) unstable; urgency=low
+
+ * Fixed syntax error in build dependencies (Closes: #109722).
+ * XVideo module now compiled as built-in, to avoid PIC and non-PIC
+ code collision (Closes: #111790).
+
+ -- Samuel Hocevar <sam@zoy.org> Wed, 10 Oct 2001 15:00:29 +0200
+
+vlc (0.2.83-2) unstable; urgency=low
+
+ * Fixed build dependencies for architectures not supporting libasound2
+ (Closes: #109722).
+
+ -- Samuel Hocevar <sam@zoy.org> Fri, 24 Aug 2001 12:47:45 +0200
+
+vlc (0.2.83-1) unstable; urgency=low
+
+ * New upstream release.
+ * Activated subtitles in overlay mode (Closes: #97471).
+
+ -- Samuel Hocevar <sam@zoy.org> Wed, 22 Aug 2001 15:18:01 +0200
+
+vlc (0.2.82-1) unstable; urgency=low
+
+ * New upstream release.
+ * Fixed broken manpage symlinks (Closes: #99561).
+
+ -- Samuel Hocevar <sam@zoy.org> Tue, 7 Aug 2001 12:39:16 +0200
+
+vlc (0.2.81-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Samuel Hocevar <sam@zoy.org> Sat, 28 Jul 2001 04:13:57 +0200
+
+vlc (0.2.80-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Samuel Hocevar <sam@zoy.org> Tue, 5 Jun 2001 04:41:06 +0200
+
+vlc (0.2.73-2) unstable; urgency=low
+
+ * We now build without MMX in the main application (Closes: #96036).
+
+ -- Samuel Hocevar <sam@zoy.org> Fri, 4 May 2001 07:13:04 +0200
+
+vlc (0.2.73-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Samuel Hocevar <sam@zoy.org> Sat, 28 Apr 2001 07:02:35 +0200
+
+vlc (0.2.72-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Samuel Hocevar <sam@zoy.org> Mon, 16 Apr 2001 14:33:53 +0200
+
+vlc (0.2.71-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Samuel Hocevar <sam@zoy.org> Fri, 13 Apr 2001 08:13:26 +0200
+
+vlc (0.2.70-1) unstable; urgency=low
+
+ * New upstream release.
+ * Non-i386 package builds really fixed (Closes: #89285).
+
+ -- Samuel Hocevar <sam@zoy.org> Sat, 7 Apr 2001 05:52:00 +0200
+
+vlc (0.2.63-3) unstable; urgency=low
+
+ * Added versioned conflicts/replaces to vlc-gtk (Closes: #88796).
+
+ -- Samuel Hocevar <sam@zoy.org> Wed, 7 Mar 2001 20:47:48 +0100
+
+vlc (0.2.63-2) unstable; urgency=low
+
+ * Glide shouldn't cause any non-x86 problems anymore (Closes: #88583).
+
+ -- Samuel Hocevar <sam@zoy.org> Mon, 5 Mar 2001 12:50:28 +0100
+
+vlc (0.2.63-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Samuel Hocevar <sam@zoy.org> Mon, 5 Mar 2001 00:41:16 +0100
+
+vlc (0.2.62-2) unstable; urgency=low
+
+ * Removed a few lintian warnings.
+
+ -- Samuel Hocevar <sam@zoy.org> Sat, 3 Mar 2001 10:29:31 +0100
+
+vlc (0.2.62-1) unstable; urgency=low
+
+ * New release. Glide and GGI packages build again.
+ * Updated vlc.1 manpage (Closes: #87478).
+ * Fixed debian/control (Closes: #83707).
+ * The framebuffer plugin doesn't hijack ^C anymore (Closes: #87500).
+
+ -- Samuel Hocevar <sam@zoy.org> Fri, 2 Mar 2001 17:32:24 +0100
+
+vlc (0.2.61-1) unstable; urgency=low
+
+ * New release. The package build works again.
+
+ -- Samuel Hocevar <sam@zoy.org> Fri, 16 Feb 2001 08:09:59 +0100
+
+vlc (0.2.60-1) unstable; urgency=low
+
+ * New release. The package build is most presumably FUBAR.
+
+ -- Samuel Hocevar <sam@zoy.org> Wed, 14 Feb 2001 08:33:46 +0100
+
+vlc (0.2.50nocss-1) unstable; urgency=low
+
+ * Only build vlc-glide under x86 (Closes: #84046).
+ * Switched PentiumPro optimization off (Closes: #83707).
+
+ -- Samuel Hocevar <sam@zoy.org> Mon, 5 Feb 2001 20:49:15 +0100
+
+vlc (0.2.50-1) unstable; urgency=low
+
+ * Unstable release.
+
+ -- Samuel Hocevar <sam@zoy.org> Wed, 31 Jan 2001 04:30:37 +0100
+
+vlc (0.1.99i) unstable; urgency=low
+
+ * Fixed the framerate display
+
+ -- Samuel Hocevar <sam@zoy.org> Tue, 24 Oct 2000 11:08:01 +0200
+
+vlc (0.1.99i) unstable; urgency=low
+
+ * fixed the support for field pictures, which involved a few dozens
+ bugs in the video parser and video decoder.
+ * renamed an inconsistent variable in src/input/input_file.c.
+ * added support for I+ synchro (all Is and the first P).
+ * fixed a motion compensation bug which generated some distortion
+ on B images.
+ * fixed a motion compensation bug for skipped macroblocks.
+ * fixed a synchro bug for field images.
+ * fixed the --server option which didn't work if a ~/.vlcrc existed.
+
+ -- Samuel Hocevar <sam@via.ecp.fr> Mon, 28 Aug 2000 02:34:18 +0200
+
+vlc (0.1.99h) unstable; urgency=low
+
+ * added support for the SDL vout : the --display fullscreen allows
+ fullscreen when possible. Disabled by default.
+ * updated debian directory to build vlc-sdl.
+ * removed CCFLAGS flags which were improperly used.
+ * added hints for powerpc build.
+ * fixed the input_file exit bug.
+ * removed the frame statistics output.
+ * removed a verbose message in intf_sdl.c.
+ * added a few sanity checks in the audio mpeg and ac3 decoders.
+ * temporarily got rid of vlc.channels.
+
+ -- Samuel Hocevar <sam@via.ecp.fr> Tue, 22 Aug 2000 01:31:58 +0200
+
+vlc (0.1.99g) unstable; urgency=low
+
+ * removed all "*vlc" aliases except "gvlc" and "fbvlc". The other sucked.
+ * new --synchro flag which lets you force which images are decoded.
+ * fixed 32bpp MMX YUV, made the comments clearer, removed an emms.
+ * now scaling is on by default, so that people won't tell that the vlc
+ cannot do scaling :-)
+ * fixed 8bpp YUV.
+ * fixed the fscked up Bresenham algorithm in all YUV functions.
+ * fixed a dumb bug in the Makefile that prevented inclusion of the
+ -march=pentium directive. thanks Meuuh, blame sam.
+ * separate Debian packages
+
+ -- Samuel Hocevar <sam@via.ecp.fr> Wed, 16 Aug 2000 01:07:14 +0200
+
+vlc (0.1.99f) unstable; urgency=low
+
+ * plugin detection now works
+ * "gvlc", "fbvlc", "ggivlc" aliases now work
+ * fixed functions that weren't properly inlined
+ * removed bloat from the MMX YUV plugin
+ * vlc.init becomes ~/.vlcrc
+ * removed float operations in the video decoder, and all emms asm functions
+ * borrowed linuxvideo's MMX motion compensation
+ * fixed an undefined symbol in the MMX YUV plugin
+
+ -- Samuel Hocevar <sam@via.ecp.fr> Tue, 8 Aug 2000 11:24:01 +0200
+
+vlc (0.1.99e) unstable; urgency=low
+
+ * new bitstream syntax and slight performance increase
+
+ -- Samuel Hocevar <sam@via.ecp.fr> Thu, 20 Jul 2000 15:14:06 +0200
+
+vlc (0.1.99d) unstable; urgency=low
+
+ * .deb is now more lintian-friendly
+ * removed a few useless warning messages
+ * new plugin API
+ * plugin auto-detection
+ * removed the default --enable-ppro option because it didn't work on K6-2
+ * the framebuffer client now leaves the console in a working state
+ * the dithered 8 bpp YUV transformation works again (blame bbp !)
+ * the YUV transformations are now plugins as well
+ * alternative symlinks like gvlc, fbvlc are now created at compile time
+ * borrowed libmpeg2's GPLed MMX YUV transformations (16 and 32 bits)
+ * fixed an endianness problem which occurred on iMacs
+
+ -- Samuel Hocevar <sam@via.ecp.fr> Wed, 12 Jul 2000 01:24:40 +0200
+
+vlc (0.1.99c) unstable; urgency=low
+
+ * Caught Delete Window event in Gnome and X11 modes
+ * Fixed manpage
+ * GGI output now works
+ * Fixed a segfault on exit for the Gnome plugin
+ * Sound support almost works under BeOS
+
+ -- Samuel Hocevar <sam@via.ecp.fr> Tue, 20 Jun 2000 03:01:12 +0200
+
+vlc (0.1.99b) unstable; urgency=low
+
+ * Added a ChangeLog file
+ * Updated the VLAN code
+ * Fixed a bug preventing to quit
+
+ -- Samuel Hocevar <sam@via.ecp.fr> Sat, 17 Jun 2000 03:46:16 +0200
+
+vlc (0.1.99a) unstable; urgency=low
+
+ * Fixed some compile flag errors
+
+ -- Samuel Hocevar <sam@via.ecp.fr> Thu, 15 Jun 2000 20:48:54 +0200
+
+vlc (0.1.99-1) unstable; urgency=low
+
+ * Initial Release.
+
+ -- Samuel Hocevar <sam@via.ecp.fr> Mon, 13 Mar 2000 02:21:45 +0100
--- /dev/null
+extras/analyser/vlc
+extras/analyser/zsh_gen
+debian/libvlc-bin.postinst
+debian/libvlc-bin.postrm
+debian/libvlc-bin.triggers
+debian/shlibs.local
+share/lua/extensions/*.luac
+share/lua/intf/*.luac
+share/lua/intf/modules/*.luac
+share/lua/meta/art/*.luac
+share/lua/meta/reader/filename.luac
+share/lua/modules/*.luac
+share/lua/playlist/*.luac
+share/lua/sd/*.luac
--- /dev/null
+Source: vlc
+Section: video
+Priority: optional
+Maintainer: Debian Multimedia Maintainers <debian-multimedia@lists.debian.org>
+Uploaders:
+ Loic Minier <lool@dooz.org>,
+ Christophe Mutricy <xtophe@videolan.org>,
+ Mohammed Adnène Trojette <adn+deb@diwi.org>,
+ Reinhard Tartler <siretart@tauware.de>,
+ Benjamin Drung <bdrung@debian.org>,
+ Edward Wang <edward.c.wang@compdigitec.com>,
+ Mateusz Łukasik <mati75@linuxmint.pl>,
+ Sebastian Ramacher <sramacher@debian.org>
+Build-Depends:
+ autopoint,
+ bison,
+ debhelper-compat (= 13),
+ dpkg-dev (>= 1.22.5),
+ gettext,
+ flex,
+ liba52-0.7.4-dev,
+ libaa1-dev,
+ libarchive-dev (>= 3.1.0),
+ libaribb24-dev,
+ libasound2-dev (>= 1.0.24) [linux-any],
+ libass-dev (>= 0.9.8),
+ libavahi-client-dev,
+ libavc1394-dev (>= 0.5.3) [linux-any],
+ libavcodec-dev (>= 7:3.0),
+ libavformat-dev (>= 7:3.0),
+ libbluray-dev (>= 1:1.0.0),
+ libcaca-dev (>= 0.99.beta4),
+ libcairo2-dev (>= 1.13.1),
+ libcddb2-dev,
+ libchromaprint-dev (>= 0.6.0),
+ libdav1d-dev,
+ libdbus-1-dev (>= 1.6.0),
+ libdc1394-dev (>= 2.1.0) [linux-any],
+ libdca-dev,
+ libdvbpsi-dev (>= 1.2.0),
+ libdvdnav-dev (>= 4.9.0),
+ libdvdread-dev (>= 4.9.0),
+ libebml-dev (>= 1.3.6),
+ libegl1-mesa-dev,
+ libfaad-dev,
+ libflac-dev (>= 1.1.2-3),
+ libfluidsynth-dev (>= 1.1.2),
+ libfreetype-dev,
+ libfribidi-dev,
+ libgl-dev,
+ libgles2-mesa-dev,
+ libgnutls28-dev (>= 3.3.6),
+ libgtk-3-dev,
+ libharfbuzz-dev,
+ libidn-dev,
+ libiso9660-dev (>= 0.72),
+ libjack-jackd2-dev | libjack-dev,
+ libkate-dev (>= 0.3.0),
+ liblirc-dev,
+ liblua5.2-dev,
+ libmad0-dev,
+ libmatroska-dev (>= 1.0.0),
+ libmpcdec-dev,
+ libmpeg2-4-dev,
+ libmpg123-dev,
+ libmtp-dev (>= 1.0.0),
+ libncurses-dev,
+ libnfs-dev (>= 1.10.0) [linux-any],
+ libnotify-dev,
+ libogg-dev (>= 1.0),
+ libopenmpt-modplug-dev (>= 0.8.9) | libmodplug-dev (>= 1:0.8.9),
+ libopus-dev (>= 1.0.3),
+ libpng-dev,
+ libpostproc-dev (>= 7:3.0),
+ libprotobuf-dev (>= 2.5.0),
+ libpulse-dev (>= 1.0),
+ libqt5svg5-dev,
+ libqt5x11extras5-dev,
+ libraw1394-dev (>= 2.0.1) [linux-any],
+ libresid-builder-dev,
+ librsvg2-dev,
+ libsamplerate0-dev,
+ libsecret-1-dev,
+ libshine-dev (>= 3.0.0),
+ libshout-dev,
+ libsidplay2-dev,
+ libsmbclient-dev [!hurd-any],
+ libsoxr-dev (>= 0.1.2),
+ libspatialaudio-dev,
+ libspeex-dev (>= 1.0.5),
+ libspeexdsp-dev (>= 1.0.5),
+ libsrt-gnutls-dev,
+ libssh2-1-dev,
+ libswscale-dev (>= 7:3.0),
+ libsystemd-dev [linux-any],
+ libtag-dev (>= 2.0),
+ libtheora-dev (>= 1.0),
+ libtwolame-dev (>= 0.3.8),
+ libudev-dev [linux-any],
+ libupnp-dev,
+ libv4l-dev [linux-any],
+ libva-dev [linux-any],
+ libvcdinfo-dev (>= 0.7.22),
+ libvdpau-dev,
+ libvncserver-dev (>= 0.9.9),
+ libvorbis-dev,
+ libx11-dev,
+ libx264-dev (>= 2:0.86),
+ libx265-dev,
+ libxcb-composite0-dev,
+ libxcb-keysyms1-dev (>= 0.3.4),
+ libxcb-randr0-dev (>= 1.3),
+ libxcb-shm0-dev,
+ libxcb-xv0-dev (>= 1.1.90.1),
+ libxcb1-dev (>= 1.6),
+ libxext-dev,
+ libxi-dev,
+ libxinerama-dev,
+ libxml2-dev,
+ libxpm-dev,
+ libzvbi-dev (>= 0.2.28),
+ lua5.2,
+ pkgconf,
+ protobuf-compiler,
+ python3:native,
+ qtbase5-dev (>= 5.6),
+ qtbase5-private-dev (>= 5.6),
+ wayland-protocols [linux-any],
+ zlib1g-dev,
+ zsh
+Standards-Version: 4.7.0
+Homepage: https://www.videolan.org/vlc/
+Vcs-Git: https://salsa.debian.org/multimedia-team/vlc.git
+Vcs-Browser: https://salsa.debian.org/multimedia-team/vlc
+Rules-Requires-Root: no
+
+Package: vlc
+Architecture: any
+Depends:
+ vlc-bin (= ${binary:Version}),
+ vlc-plugin-base (= ${binary:Version}),
+ vlc-plugin-qt (= ${binary:Version}),
+ vlc-plugin-video-output (= ${binary:Version}),
+ ${misc:Depends}
+Recommends:
+ vlc-l10n (= ${source:Version}),
+ vlc-plugin-access-extra (= ${binary:Version}),
+ vlc-plugin-notify (= ${binary:Version}),
+ vlc-plugin-samba (= ${binary:Version}) [linux-any],
+ vlc-plugin-skins2 (= ${binary:Version}),
+ vlc-plugin-video-splitter (= ${binary:Version}),
+ vlc-plugin-visualization (= ${binary:Version})
+Suggests:
+ vlc-plugin-fluidsynth (= ${source:Version}),
+ vlc-plugin-jack (= ${source:Version}),
+ vlc-plugin-pipewire [linux-any],
+ vlc-plugin-svg (= ${source:Version})
+Provides: mp3-decoder
+Description: multimedia player and streamer
+ VLC is the VideoLAN project's media player. It plays MPEG, MPEG-2, MPEG-4,
+ DivX, MOV, WMV, QuickTime, WebM, FLAC, MP3, Ogg/Vorbis files, DVDs, VCDs,
+ podcasts, and multimedia streams from various network sources.
+ .
+ VLC can also be used as a streaming server that duplicates the stream it
+ reads and multicasts them through the network to other clients, or serves
+ them through HTTP.
+ .
+ VLC has support for on-the-fly transcoding of audio and video formats, either
+ for broadcasting purposes or for movie format transformations. Support for
+ most output methods is provided by this package, but features can be added by
+ installing additional plugins:
+ * vlc-plugin-access-extra
+ * vlc-plugin-fluidsynth
+ * vlc-plugin-jack
+ * vlc-plugin-notify
+ * vlc-plugin-samba
+ * vlc-plugin-skins2
+ * vlc-plugin-svg
+ * vlc-plugin-video-splitter
+ * vlc-plugin-visualization
+
+Package: libvlc-dev
+Section: libdevel
+Architecture: any
+Multi-Arch: same
+Depends:
+ libvlc5 (= ${binary:Version}),
+ ${misc:Depends}
+Description: development files for libvlc
+ This package contains headers and a static library required to build
+ standalone applications that use VLC features.
+ .
+ VLC is the VideoLAN project's media player. It plays MPEG, MPEG-2, MPEG-4,
+ DivX, MOV, WMV, QuickTime, WebM, FLAC, MP3, Ogg/Vorbis files, DVDs, VCDs,
+ podcasts, and multimedia streams from various network sources.
+
+Package: libvlc5
+Section: libs
+Architecture: any
+Multi-Arch: same
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends}
+Recommends: libvlc-bin (= ${binary:Version})
+Description: multimedia player and streamer library
+ VLC is the VideoLAN project's media player. It plays MPEG, MPEG-2, MPEG-4,
+ DivX, MOV, WMV, QuickTime, WebM, FLAC, MP3, Ogg/Vorbis files, DVDs, VCDs,
+ podcasts, and multimedia streams from various network sources.
+ .
+ This package contains the shared library required by applications using VLC
+ features.
+
+Package: libvlccore-dev
+Section: libdevel
+Architecture: any
+Multi-Arch: same
+Depends:
+ libvlccore9 (= ${binary:Version}),
+ ${misc:Depends}
+Description: development files for libvlccore
+ VLC is the VideoLAN project's media player. It plays MPEG, MPEG-2, MPEG-4,
+ DivX, MOV, WMV, QuickTime, WebM, FLAC, MP3, Ogg/Vorbis files, DVDs, VCDs,
+ podcasts, and multimedia streams from various network sources.
+ .
+ This package contains headers and a static library required to build plugins
+ for VLC.
+
+Package: libvlccore9
+Section: libs
+Multi-Arch: same
+Architecture: any
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends}
+Recommends: libproxy-tools
+Provides: ${vlc:PluginABI}
+Description: base library for VLC and its modules
+ VLC is the VideoLAN project's media player. It plays MPEG, MPEG-2, MPEG-4,
+ DivX, MOV, WMV, QuickTime, WebM, FLAC, MP3, Ogg/Vorbis files, DVDs, VCDs,
+ podcasts, and multimedia streams from various network sources.
+ .
+ This package contains the shared library required by VLC modules and libvlc.
+
+Package: libvlc-bin
+Architecture: any
+Multi-Arch: same
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends}
+Description: tools for VLC's base library
+ VLC is the VideoLAN project's media player. It plays MPEG, MPEG-2, MPEG-4,
+ DivX, MOV, WMV, QuickTime, WebM, FLAC, MP3, Ogg/Vorbis files, DVDs, VCDs,
+ podcasts, and multimedia streams from various network sources.
+ .
+ This package contains the vlc-cache-gen binary.
+
+Package: vlc-bin
+Architecture: any
+Depends:
+ libvlc-bin (= ${binary:Version}),
+ ${misc:Depends},
+ ${shlibs:Depends}
+Description: binaries from VLC
+ VLC is the VideoLAN project's media player. It plays MPEG, MPEG-2, MPEG-4,
+ DivX, MOV, WMV, QuickTime, WebM, FLAC, MP3, Ogg/Vorbis files, DVDs, VCDs,
+ podcasts, and multimedia streams from various network sources.
+ .
+ This package contains the VLC's binaries.
+
+Package: vlc-data
+Architecture: all
+Multi-Arch: foreign
+Depends: ${misc:Depends}
+Description: common data for VLC
+ VLC is the VideoLAN project's media player. It plays MPEG, MPEG-2, MPEG-4,
+ DivX, MOV, WMV, QuickTime, WebM, FLAC, MP3, Ogg/Vorbis files, DVDs, VCDs,
+ podcasts, and multimedia streams from various network sources.
+ .
+ This package contains HTTP interface files, and Lua scripts for VLC media
+ player.
+
+Package: vlc-l10n
+Section: localization
+Architecture: all
+Multi-Arch: foreign
+Depends: ${misc:Depends}
+Description: translations for VLC
+ VLC is the VideoLAN project's media player. It plays MPEG, MPEG-2, MPEG-4,
+ DivX, MOV, WMV, QuickTime, WebM, FLAC, MP3, Ogg/Vorbis files, DVDs, VCDs,
+ podcasts, and multimedia streams from various network sources.
+ .
+ This package contains localisations for VLC media player.
+
+Package: vlc-plugin-base
+Architecture: any
+Multi-Arch: same
+Depends:
+ vlc-data (= ${source:Version}),
+ ${misc:Depends},
+ ${shlibs:Depends},
+ ${vlc:PluginABI}
+Recommends: xdg-utils
+Suggests: libdvdcss2
+Description: multimedia player and streamer (base plugins)
+ VLC is the VideoLAN project's media player. It plays MPEG, MPEG-2, MPEG-4,
+ DivX, MOV, WMV, QuickTime, WebM, FLAC, MP3, Ogg/Vorbis files, DVDs, VCDs,
+ podcasts, and multimedia streams from various network sources.
+ .
+ This package contains most plugins which are shipped in more specialied plugin
+ packages.
+
+Package: vlc-plugin-access-extra
+Architecture: any
+Multi-Arch: same
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+ ${vlc:PluginABI}
+Enhances: vlc
+Description: multimedia player and streamer (extra access plugins)
+ VLC is the VideoLAN project's media player. It plays MPEG, MPEG-2, MPEG-4,
+ DivX, MOV, WMV, QuickTime, WebM, FLAC, MP3, Ogg/Vorbis files, DVDs, VCDs,
+ podcasts, and multimedia streams from various network sources.
+ .
+ This package contains additional access plugins.
+
+Package: vlc-plugin-video-output
+Architecture: any
+Multi-Arch: same
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+ ${vlc:PluginABI}
+Enhances: vlc
+Description: multimedia player and streamer (video output plugins)
+ VLC is the VideoLAN project's media player. It plays MPEG, MPEG-2, MPEG-4,
+ DivX, MOV, WMV, QuickTime, WebM, FLAC, MP3, Ogg/Vorbis files, DVDs, VCDs,
+ podcasts, and multimedia streams from various network sources.
+ .
+ This package contains the video output plugins.
+
+Package: vlc-plugin-video-splitter
+Architecture: any
+Multi-Arch: same
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+ ${vlc:PluginABI}
+Enhances: vlc
+Description: multimedia player and streamer (video splitter plugins)
+ VLC is the VideoLAN project's media player. It plays MPEG, MPEG-2, MPEG-4,
+ DivX, MOV, WMV, QuickTime, WebM, FLAC, MP3, Ogg/Vorbis files, DVDs, VCDs,
+ podcasts, and multimedia streams from various network sources.
+ .
+ This package contains the video splitter plugins.
+
+Package: vlc-plugin-visualization
+Architecture: any
+Multi-Arch: same
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+ ${vlc:PluginABI}
+Enhances: vlc
+Description: multimedia player and streamer (visualization plugins)
+ VLC is the VideoLAN project's media player. It plays MPEG, MPEG-2, MPEG-4,
+ DivX, MOV, WMV, QuickTime, WebM, FLAC, MP3, Ogg/Vorbis files, DVDs, VCDs,
+ podcasts, and multimedia streams from various network sources.
+ .
+ This package contains the visualization plugins.
+
+Package: vlc-plugin-skins2
+Architecture: any
+Multi-Arch: same
+Depends:
+ fonts-freefont-ttf,
+ vlc-plugin-qt (= ${binary:Version}),
+ ${misc:Depends},
+ ${shlibs:Depends},
+ ${vlc:PluginABI}
+Recommends: vlc-bin
+Enhances: vlc
+Description: multimedia player and streamer (Skins2 plugin)
+ VLC is the VideoLAN project's media player. It plays MPEG, MPEG-2, MPEG-4,
+ DivX, MOV, WMV, QuickTime, WebM, FLAC, MP3, Ogg/Vorbis files, DVDs, VCDs,
+ podcasts, and multimedia streams from various network sources.
+ .
+ This package contains VLC's Skins2 interface.
+
+Package: vlc-plugin-qt
+Architecture: any
+Multi-Arch: same
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+ ${vlc:PluginABI}
+Recommends: vlc-bin
+Description: multimedia player and streamer (Qt plugin)
+ VLC is the VideoLAN project's media player. It plays MPEG, MPEG-2, MPEG-4,
+ DivX, MOV, WMV, QuickTime, WebM, FLAC, MP3, Ogg/Vorbis files, DVDs, VCDs,
+ podcasts, and multimedia streams from various network sources.
+ .
+ This package contains VLC's Qt interface.
+
+Package: vlc-plugin-fluidsynth
+Architecture: any
+Multi-Arch: same
+Depends:
+ fluid-soundfont-gm | timgm6mb-soundfont,
+ ${misc:Depends},
+ ${shlibs:Depends},
+ ${vlc:PluginABI}
+Enhances: vlc
+Description: FluidSynth plugin for VLC
+ VLC is the VideoLAN project's media player. It plays MPEG, MPEG-2, MPEG-4,
+ DivX, MOV, WMV, QuickTime, WebM, FLAC, MP3, Ogg/Vorbis files, DVDs, VCDs,
+ podcasts, and multimedia streams from various network sources.
+ .
+ This plugin adds support for playing MIDI file via the FluidSynth software
+ synthesizer to the VLC media player.
+
+Package: vlc-plugin-jack
+Architecture: any
+Multi-Arch: same
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+ ${vlc:PluginABI}
+Enhances: vlc
+Description: JACK audio plugins for VLC
+ VLC is the VideoLAN project's media player. It plays MPEG, MPEG-2, MPEG-4,
+ DivX, MOV, WMV, QuickTime, WebM, FLAC, MP3, Ogg/Vorbis files, DVDs, VCDs,
+ podcasts, and multimedia streams from various network sources.
+ .
+ These plugins add support for JACK to the VLC media player. To
+ activate the audio output module, use the `--aout jack' flag or
+ select the `jack' audio output plugin from the preferences menu.
+ For the jack input, use `vlc jack://channels=...:ports=...'
+
+Package: vlc-plugin-notify
+Architecture: any
+Multi-Arch: same
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+ ${vlc:PluginABI}
+Enhances: vlc
+Description: LibNotify plugin for VLC
+ VLC is the VideoLAN project's media player. It plays MPEG, MPEG-2, MPEG-4,
+ DivX, MOV, WMV, QuickTime, WebM, FLAC, MP3, Ogg/Vorbis files, DVDs, VCDs,
+ podcasts, and multimedia streams from various network sources.
+ .
+ This plugin adds support for libnotify track change notification to the
+ VLC media player.
+
+Package: vlc-plugin-svg
+Architecture: any
+Multi-Arch: same
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+ ${vlc:PluginABI}
+Enhances: vlc
+Description: SVG plugin for VLC
+ VLC is the VideoLAN project's media player. It plays MPEG, MPEG-2, MPEG-4,
+ DivX, MOV, WMV, QuickTime, WebM, FLAC, MP3, Ogg/Vorbis files, DVDs, VCDs,
+ podcasts, and multimedia streams from various network sources.
+ .
+ This plugin allows you to render SVG graphics on top of the video. It is a text
+ renderer, and must be activated through the '--text-renderer svg' option. When
+ sent non-SVG data, it will convert it to SVG using a template that can be
+ specified by the svg-template-file option.
+
+Package: vlc-plugin-samba
+Architecture: linux-any
+Multi-Arch: same
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+ ${vlc:PluginABI}
+Enhances: vlc
+Description: Samba plugin for VLC
+ VLC is the VideoLAN project's media player. It plays MPEG, MPEG-2, MPEG-4,
+ DivX, MOV, WMV, QuickTime, WebM, FLAC, MP3, Ogg/Vorbis files, DVDs, VCDs,
+ podcasts, and multimedia streams from various network sources.
+ .
+ This plugin adds support to access Samba shares from the VLC media player.
--- /dev/null
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: vlc
+Upstream-Source: https://www.videolan.org
+
+Files: *
+Copyright: 1999, AT&T Laboratories Cambridge
+ 2013, Alex Merry
+ 2010, Antoine Cellerier
+ 2005-2006, Canonical Ltd, and Rosetta Contributors
+ 2008-2015, Cédric Valmary
+ 2016, Collection
+ 2004, Daniel Molkentin
+ 2003, Daniel Moreno
+ 2009, Eirik U. Birkeland
+ 2008-2015, Éric Lassauge
+ 2011-2015, Felix Paul Kühne
+ 1989-1999,2002-2009 Free Software Foundation, Inc
+ 2013, Guillaume Le Maout
+ 2012, John Freed
+ 2009, Jon Stødle
+ 2009, Laurent Aimar
+ 2006-2009, M2X
+ 2006, Michael Niedermayer
+ 2007-2012, Mirsal Ennaime
+ 2008-2010, Pierre d'Herbemont
+ 2006-2014, Rafaël Carré
+ 2002, RealVNC Ltd
+ 2005-2016, Rémi Denis-Courmont
+ 2007, Savoir-faire Linux
+ 2007, Société des arts technologiques
+ 2008-2015, Tòni Galhard
+ 1998-2022, VideoLAN team and VLC authors
+ 2002-2004, the xine project
+ 2018-2019, Haivision Systems Inc.
+License: GPL-2+
+
+Files: bin/override.c
+ compat/aligned_alloc.c
+ compat/asprintf.c
+ compat/atof.c
+ compat/atoll.c
+ compat/dirfd.c
+ compat/fdopendir.c
+ compat/ffsll.c
+ compat/flockfile.c
+ compat/freeaddrinfo.c
+ compat/fsync.c
+ compat/gai_strerror.c
+ compat/getdelim.c
+ compat/getpid.c
+ compat/gettimeofday.c
+ compat/gmtime_r.c
+ compat/inet_pton.c
+ compat/lldiv.c
+ compat/localtime_r.c
+ compat/nrand48.c
+ compat/pathconf.c
+ compat/poll.c
+ compat/realpath.c
+ compat/recvmsg.c
+ compat/rewind.c
+ compat/sendmsg.c
+ compat/setenv.c
+ compat/sigwait.c
+ compat/sincos.c
+ compat/strcasecmp.c
+ compat/strcasestr.c
+ compat/strdup.c
+ compat/strlcpy.c
+ compat/strndup.c
+ compat/strnlen.c
+ compat/strnstr.c
+ compat/strsep.c
+ compat/strtof.c
+ compat/strtok_r.c
+ compat/strtoll.c
+ compat/strverscmp.c
+ compat/swab.c
+ compat/test/*
+ compat/timegm.c
+ compat/timespec_get.c
+ compat/vasprintf.c
+ contrib/src/d3d11/dxgi1_3.idl
+ contrib/src/d3d11/dxgi1_4.idl
+ contrib/src/d3d11/dxgi1_5.idl
+ contrib/src/d3d11/dxgi1_6.idl
+ extras/package/macosx/codesign.sh
+ include/vlc/*
+ include/vlc_access.h
+ include/vlc_actions.h
+ include/vlc_addons.h
+ include/vlc_aout.h
+ include/vlc_aout_volume.h
+ include/vlc_arrays.h
+ include/vlc_atomic.h
+ include/vlc_avcodec.h
+ include/vlc_bits.h
+ include/vlc_block.h
+ include/vlc_block_helper.h
+ include/vlc_boxes.h
+ include/vlc_charset.h
+ include/vlc_codec.h
+ include/vlc_codecs.h
+ include/vlc_common.h
+ include/vlc_config.h
+ include/vlc_config_cat.h
+ include/vlc_configuration.h
+ include/vlc_cpu.h
+ include/vlc_demux.h
+ include/vlc_dialog.h
+ include/vlc_epg.h
+ include/vlc_es.h
+ include/vlc_es_out.h
+ include/vlc_events.h
+ include/vlc_extensions.h
+ include/vlc_filter.h
+ include/vlc_fingerprinter.h
+ include/vlc_fixups.h
+ include/vlc_fourcc.h
+ include/vlc_fs.h
+ include/vlc_gcrypt.h
+ include/vlc_http.h
+ include/vlc_httpd.h
+ include/vlc_image.h
+ include/vlc_inhibit.h
+ include/vlc_input.h
+ include/vlc_input_item.h
+ include/vlc_interface.h
+ include/vlc_interrupt.h
+ include/vlc_intf_strings.h
+ include/vlc_iso_lang.h
+ include/vlc_keystore.h
+ include/vlc_main.h
+ include/vlc_md5.h
+ include/vlc_media_library.h
+ include/vlc_memory.h
+ include/vlc_memstream.h
+ include/vlc_messages.h
+ include/vlc_meta.h
+ include/vlc_meta_fetcher.h
+ include/vlc_mime.h
+ include/vlc_modules.h
+ include/vlc_mouse.h
+ include/vlc_mtime.h
+ include/vlc_network.h
+ include/vlc_objects.h
+ include/vlc_opengl.h
+ include/vlc_picture.h
+ include/vlc_picture_fifo.h
+ include/vlc_picture_pool.h
+ include/vlc_playlist.h
+ include/vlc_plugin.h
+ include/vlc_probe.h
+ include/vlc_rand.h
+ include/vlc_renderer_discovery.h
+ include/vlc_services_discovery.h
+ include/vlc_sout.h
+ include/vlc_spu.h
+ include/vlc_stream.h
+ include/vlc_stream_extractor.h
+ include/vlc_strings.h
+ include/vlc_subpicture.h
+ include/vlc_text_style.h
+ include/vlc_threads.h
+ include/vlc_timestamp_helper.h
+ include/vlc_tls.h
+ include/vlc_url.h
+ include/vlc_variables.h
+ include/vlc_video_splitter.h
+ include/vlc_viewpoint.h
+ include/vlc_vlm.h
+ include/vlc_vod.h
+ include/vlc_vout.h
+ include/vlc_vout_display.h
+ include/vlc_vout_osd.h
+ include/vlc_vout_window.h
+ include/vlc_vout_wrapper.h
+ include/vlc_xlib.h
+ include/vlc_xml.h
+ lib/audio.c
+ lib/core.c
+ lib/dialog.c
+ lib/error.c
+ lib/event.c
+ lib/libvlc_internal.h
+ lib/log.c
+ lib/media.c
+ lib/media_discoverer.c
+ lib/media_internal.h
+ lib/media_library.c
+ lib/media_list.c
+ lib/media_list_internal.h
+ lib/media_list_path.h
+ lib/media_list_player.c
+ lib/media_player.c
+ lib/media_player_internal.h
+ lib/playlist.c
+ lib/renderer_discoverer.c
+ lib/renderer_discoverer_internal.h
+ lib/video.c
+ lib/vlm.c
+ modules/access/alsa.c
+ modules/access/attachment.c
+ modules/access/avcapture.m
+ modules/access/avio.c
+ modules/access/avio.h
+ modules/access/bluray.c
+ modules/access/cdda.c
+ modules/access/concat.c
+ modules/access/dc1394.c
+ modules/access/dcp/*
+ modules/access/decklink.cpp
+ modules/access/directory.c
+ modules/access/dshow/*
+ modules/access/dsm/*
+ modules/access/dtv/*
+ modules/access/dv.c
+ modules/access/dvb/*
+ modules/access/dvdnav.c
+ modules/access/dvdread.c
+ modules/access/file.c
+ modules/access/fs.c
+ modules/access/fs.h
+ modules/access/ftp.c
+ modules/access/http.c
+ modules/access/http/access.c
+ modules/access/http/chunked.c
+ modules/access/http/chunked_test.c
+ modules/access/http/conn.h
+ modules/access/http/connmgr.c
+ modules/access/http/connmgr.h
+ modules/access/http/file.c
+ modules/access/http/file.h
+ modules/access/http/file_test.c
+ modules/access/http/h1conn.c
+ modules/access/http/h1conn_test.c
+ modules/access/http/h2conn.c
+ modules/access/http/h2conn_test.c
+ modules/access/http/h2frame.c
+ modules/access/http/h2frame.h
+ modules/access/http/h2frame_test.c
+ modules/access/http/h2output.c
+ modules/access/http/h2output.h
+ modules/access/http/h2output_test.c
+ modules/access/http/hpack.c
+ modules/access/http/hpack.h
+ modules/access/http/hpackenc.c
+ modules/access/http/live.c
+ modules/access/http/live.h
+ modules/access/http/message.c
+ modules/access/http/message.h
+ modules/access/http/message_test.c
+ modules/access/http/resource.c
+ modules/access/http/resource.h
+ modules/access/http/transport.h
+ modules/access/http/tunnel.c
+ modules/access/http/tunnel_test.c
+ modules/access/idummy.c
+ modules/access/imem-access.c
+ modules/access/imem.c
+ modules/access/jack.c
+ modules/access/linsys/*
+ modules/access/live555.cpp
+ modules/access/mms/*
+ modules/access/mtp.c
+ modules/access/nfs.c
+ modules/access/oss.c
+ modules/access/pulse.c
+ modules/access/rdp.c
+ modules/access/rtp/input.c
+ modules/access/rtp/rtp.c
+ modules/access/rtp/rtp.h
+ modules/access/rtp/session.c
+ modules/access/rtp/srtp-test-aes.c
+ modules/access/rtp/srtp-test-recv.c
+ modules/access/rtp/srtp.c
+ modules/access/rtp/srtp.h
+ modules/access/rtp/xiph.c
+ modules/access/satip.c
+ modules/access/screen/mac.c
+ modules/access/screen/screen.c
+ modules/access/screen/screen.h
+ modules/access/screen/win32.c
+ modules/access/screen/xcb.c
+ modules/access/sdi.c
+ modules/access/sdi.h
+ modules/access/sdp.c
+ modules/access/sftp.c
+ modules/access/shm.c
+ modules/access/smb.c
+ modules/access/smb_common.h
+ modules/access/srt.c
+ modules/access/tcp.c
+ modules/access/timecode.c
+ modules/access/udp.c
+ modules/access/v4l2/*
+ modules/access/vcd/*
+ modules/access/vdr.c
+ modules/access/vnc.c
+ modules/access/wasapi.c
+ modules/access_output/dummy.c
+ modules/access_output/file.c
+ modules/access_output/http.c
+ modules/access_output/livehttp.c
+ modules/access_output/shout.c
+ modules/access_output/srt.c
+ modules/access_output/udp.c
+ modules/arm_neon/amplify.S
+ modules/arm_neon/chroma_neon.h
+ modules/arm_neon/chroma_yuv.c
+ modules/arm_neon/deinterleave_chroma.S
+ modules/arm_neon/i420_rgb.S
+ modules/arm_neon/i420_rv16.S
+ modules/arm_neon/i420_yuyv.S
+ modules/arm_neon/i422_yuyv.S
+ modules/arm_neon/nv12_rgb.S
+ modules/arm_neon/nv21_rgb.S
+ modules/arm_neon/simple_channel_mixer.S
+ modules/arm_neon/volume.c
+ modules/arm_neon/yuv_rgb.c
+ modules/arm_neon/yuyv_i422.S
+ modules/audio_filter/audiobargraph_a.c
+ modules/audio_filter/channel_mixer/*
+ modules/audio_filter/chorus_flanger.c
+ modules/audio_filter/compressor.c
+ modules/audio_filter/converter/*
+ modules/audio_filter/equalizer.c
+ modules/audio_filter/equalizer_presets.h
+ modules/audio_filter/gain.c
+ modules/audio_filter/karaoke.c
+ modules/audio_filter/normvol.c
+ modules/audio_filter/param_eq.c
+ modules/audio_filter/resampler/*
+ modules/audio_filter/scaletempo.c
+ modules/audio_filter/spatializer/spatializer.cpp
+ modules/audio_filter/stereo_widen.c
+ modules/audio_mixer/float.c
+ modules/audio_mixer/integer.c
+ modules/audio_output/adummy.c
+ modules/audio_output/alsa.c
+ modules/audio_output/amem.c
+ modules/audio_output/audiotrack.c
+ modules/audio_output/audiounit_ios.m
+ modules/audio_output/auhal.c
+ modules/audio_output/coreaudio_common.c
+ modules/audio_output/coreaudio_common.h
+ modules/audio_output/directsound.c
+ modules/audio_output/file.c
+ modules/audio_output/jack.c
+ modules/audio_output/kai.c
+ modules/audio_output/mmdevice.c
+ modules/audio_output/mmdevice.h
+ modules/audio_output/opensles_android.c
+ modules/audio_output/oss.c
+ modules/audio_output/pulse.c
+ modules/audio_output/sndio.c
+ modules/audio_output/tizen_audio.c
+ modules/audio_output/vlcpulse.c
+ modules/audio_output/vlcpulse.h
+ modules/audio_output/volume.h
+ modules/audio_output/wasapi.c
+ modules/audio_output/waveout.c
+ modules/audio_output/windows_audio_common.h
+ modules/audio_output/winstore.c
+ modules/codec/a52.c
+ modules/codec/adpcm.c
+ modules/codec/aes3.c
+ modules/codec/aom.c
+ modules/codec/araw.c
+ modules/codec/arib/*
+ modules/codec/atsc_a65.c
+ modules/codec/atsc_a65.h
+ modules/codec/avcodec/*
+ modules/codec/bpg.c
+ modules/codec/cc.c
+ modules/codec/cc.h
+ modules/codec/cdg.c
+ modules/codec/cea708.c
+ modules/codec/cea708.h
+ modules/codec/crystalhd.c
+ modules/codec/cvdsub.c
+ modules/codec/daala.c
+ modules/codec/dca.c
+ modules/codec/ddummy.c
+ modules/codec/dmo/*
+ modules/codec/dvbsub.c
+ modules/codec/edummy.c
+ modules/codec/faad.c
+ modules/codec/flac.c
+ modules/codec/fluidsynth.c
+ modules/codec/g711.c
+ modules/codec/gstreamer/*
+ modules/codec/hxxx_helper.c
+ modules/codec/hxxx_helper.h
+ modules/codec/jpeg.c
+ modules/codec/jpeg2000.h
+ modules/codec/kate.c
+ modules/codec/libass.c
+ modules/codec/libmpeg2.c
+ modules/codec/lpcm.c
+ modules/codec/mad.c
+ modules/codec/mft.c
+ modules/codec/mpg123.c
+ modules/codec/oggspots.c
+ modules/codec/omxil/mediacodec.c
+ modules/codec/omxil/mediacodec.h
+ modules/codec/omxil/mediacodec_jni.c
+ modules/codec/omxil/mediacodec_ndk.c
+ modules/codec/omxil/omxil.c
+ modules/codec/omxil/omxil.h
+ modules/codec/omxil/omxil_core.c
+ modules/codec/omxil/omxil_core.h
+ modules/codec/omxil/omxil_utils.h
+ modules/codec/omxil/qcom.c
+ modules/codec/omxil/utils.c
+ modules/codec/omxil/vout.c
+ modules/codec/opus.c
+ modules/codec/png.c
+ modules/codec/qsv.c
+ modules/codec/rawvideo.c
+ modules/codec/rtpvideo.c
+ modules/codec/schroedinger.c
+ modules/codec/scte18.c
+ modules/codec/scte18.h
+ modules/codec/scte27.c
+ modules/codec/sdl_image.c
+ modules/codec/shine.c
+ modules/codec/spdif.c
+ modules/codec/speex.c
+ modules/codec/spudec/*
+ modules/codec/stl.c
+ modules/codec/subsdec.c
+ modules/codec/substext.h
+ modules/codec/substx3g.c
+ modules/codec/subsusf.c
+ modules/codec/svcdsub.c
+ modules/codec/svg.c
+ modules/codec/synchro.c
+ modules/codec/synchro.h
+ modules/codec/telx.c
+ modules/codec/textst.c
+ modules/codec/theora.c
+ modules/codec/ttml/*
+ modules/codec/twolame.c
+ modules/codec/uleaddvaudio.c
+ modules/codec/videotoolbox.m
+ modules/codec/vorbis.c
+ modules/codec/vpx.c
+ modules/codec/vt_utils.c
+ modules/codec/vt_utils.h
+ modules/codec/webvtt/*
+ modules/codec/wmafixed/asf.h
+ modules/codec/wmafixed/bitstream.c
+ modules/codec/wmafixed/bitstream.h
+ modules/codec/wmafixed/bswap.h
+ modules/codec/wmafixed/wma.c
+ modules/codec/wmafixed/wmadata.h
+ modules/codec/xwd.c
+ modules/codec/zvbi.c
+ modules/control/intromsg.h
+ modules/demux/adaptive/*
+ modules/demux/aiff.c
+ modules/demux/asf/*
+ modules/demux/au.c
+ modules/demux/avformat/*
+ modules/demux/avi/*
+ modules/demux/caf.c
+ modules/demux/cdg.c
+ modules/demux/dash/*
+ modules/demux/demuxdump.c
+ modules/demux/dirac.c
+ modules/demux/directory.c
+ modules/demux/dvb-text.h
+ modules/demux/filter/*
+ modules/demux/flac.c
+ modules/demux/gme.c
+ modules/demux/hls/*
+ modules/demux/image.c
+ modules/demux/mjpeg.c
+ modules/demux/mkv/*
+ modules/demux/mod.c
+ modules/demux/mp4/*
+ modules/demux/mpeg/*
+ modules/demux/mxpeg_helper.h
+ modules/demux/nsc.c
+ modules/demux/nsv.c
+ modules/demux/nuv.c
+ modules/demux/ogg.c
+ modules/demux/ogg.h
+ modules/demux/oggseek.c
+ modules/demux/oggseek.h
+ modules/demux/opus.h
+ modules/demux/playlist/*
+ modules/demux/pva.c
+ modules/demux/rawaud.c
+ modules/demux/rawdv.c
+ modules/demux/rawdv.h
+ modules/demux/rawvid.c
+ modules/demux/sid.cpp
+ modules/demux/smf.c
+ modules/demux/smooth/*
+ modules/demux/stl.c
+ modules/demux/subtitle.c
+ modules/demux/subtitle_helper.h
+ modules/demux/tta.c
+ modules/demux/ttml.c
+ modules/demux/ty.c
+ modules/demux/vc1.c
+ modules/demux/vobsub.c
+ modules/demux/vobsub.h
+ modules/demux/voc.c
+ modules/demux/wav.c
+ modules/demux/webvtt.c
+ modules/demux/windows_audio_commons.h
+ modules/demux/xa.c
+ modules/demux/xiph.h
+ modules/demux/xiph_metadata.c
+ modules/demux/xiph_metadata.h
+ modules/gui/minimal_macosx/*
+ modules/gui/qt/adapters/*
+ modules/gui/qt/dialogs/*
+ modules/hw/d3d11/d3d11_deinterlace.c
+ modules/hw/d3d11/d3d11_filters.c
+ modules/hw/d3d11/d3d11_filters.h
+ modules/hw/d3d11/d3d11_instance.c
+ modules/hw/d3d11/d3d11_surface.c
+ modules/hw/d3d9/d3d9_filters.c
+ modules/hw/d3d9/d3d9_filters.h
+ modules/hw/d3d9/d3d9_instance.c
+ modules/hw/d3d9/dxa9.c
+ modules/hw/d3d9/dxva2_deinterlace.c
+ modules/hw/mmal/codec.c
+ modules/hw/mmal/deinterlace.c
+ modules/hw/mmal/mmal_picture.c
+ modules/hw/mmal/mmal_picture.h
+ modules/hw/mmal/vout.c
+ modules/hw/vaapi/chroma.c
+ modules/hw/vaapi/filters.c
+ modules/hw/vaapi/filters.h
+ modules/hw/vaapi/vlc_vaapi.c
+ modules/hw/vaapi/vlc_vaapi.h
+ modules/hw/vdpau/adjust.c
+ modules/hw/vdpau/avcodec.c
+ modules/hw/vdpau/chroma.c
+ modules/hw/vdpau/deinterlace.c
+ modules/hw/vdpau/display.c
+ modules/hw/vdpau/instance.c
+ modules/hw/vdpau/picture.c
+ modules/hw/vdpau/sharpen.c
+ modules/hw/vdpau/vlc_vdpau.c
+ modules/hw/vdpau/vlc_vdpau.h
+ modules/keystore/file.c
+ modules/keystore/file_crypt.h
+ modules/keystore/file_crypt_android.c
+ modules/keystore/file_crypt_win32.c
+ modules/keystore/keychain.m
+ modules/keystore/kwallet.c
+ modules/keystore/list_util.c
+ modules/keystore/list_util.h
+ modules/keystore/memory.c
+ modules/keystore/secret.c
+ modules/logger/android.c
+ modules/logger/console.c
+ modules/logger/journal.c
+ modules/meta_engine/ID3Genres.h
+ modules/meta_engine/ID3Meta.h
+ modules/meta_engine/ID3Tag.h
+ modules/meta_engine/ID3Text.h
+ modules/meta_engine/folder.c
+ modules/meta_engine/taglib.cpp
+ modules/misc/addons/*
+ modules/misc/fingerprinter.c
+ modules/misc/gnutls.c
+ modules/misc/inhibit/*
+ modules/misc/securetransport.c
+ modules/misc/webservices/*
+ modules/misc/xml/*
+ modules/mux/asf.c
+ modules/mux/avi.c
+ modules/mux/dummy.c
+ modules/mux/mp4/*
+ modules/mux/mpeg/*
+ modules/mux/mpjpeg.c
+ modules/mux/ogg.c
+ modules/mux/wav.c
+ modules/packetizer/a52.c
+ modules/packetizer/a52.h
+ modules/packetizer/avparser.c
+ modules/packetizer/avparser.h
+ modules/packetizer/copy.c
+ modules/packetizer/dirac.c
+ modules/packetizer/dts.c
+ modules/packetizer/dts_header.c
+ modules/packetizer/dts_header.h
+ modules/packetizer/flac.c
+ modules/packetizer/h264.c
+ modules/packetizer/h264_nal.c
+ modules/packetizer/h264_nal.h
+ modules/packetizer/h264_slice.c
+ modules/packetizer/h264_slice.h
+ modules/packetizer/hevc.c
+ modules/packetizer/hevc_nal.c
+ modules/packetizer/hevc_nal.h
+ modules/packetizer/hxxx_common.c
+ modules/packetizer/hxxx_common.h
+ modules/packetizer/hxxx_nal.c
+ modules/packetizer/hxxx_nal.h
+ modules/packetizer/hxxx_sei.c
+ modules/packetizer/hxxx_sei.h
+ modules/packetizer/mlp.c
+ modules/packetizer/mpeg4audio.c
+ modules/packetizer/mpeg4audio.h
+ modules/packetizer/mpeg4video.c
+ modules/packetizer/mpegaudio.c
+ modules/packetizer/mpegvideo.c
+ modules/packetizer/packetizer_helper.h
+ modules/packetizer/startcode_helper.h
+ modules/packetizer/vc1.c
+ modules/services_discovery/bonjour.m
+ modules/services_discovery/microdns.c
+ modules/services_discovery/os2drive.c
+ modules/services_discovery/pulse.c
+ modules/services_discovery/udev.c
+ modules/services_discovery/upnp.cpp
+ modules/services_discovery/upnp.hpp
+ modules/services_discovery/windrive.c
+ modules/services_discovery/xcb_apps.c
+ modules/spu/audiobargraph_v.c
+ modules/spu/dynamicoverlay/*
+ modules/spu/logo.c
+ modules/spu/marq.c
+ modules/spu/mosaic.c
+ modules/spu/mosaic.h
+ modules/spu/remoteosd.c
+ modules/spu/rss.c
+ modules/spu/subsdelay.c
+ modules/stream_extractor/archive.c
+ modules/stream_filter/accesstweaks.c
+ modules/stream_filter/adf.c
+ modules/stream_filter/aribcam.c
+ modules/stream_filter/cache_block.c
+ modules/stream_filter/cache_read.c
+ modules/stream_filter/decomp.c
+ modules/stream_filter/hds/*
+ modules/stream_filter/inflate.c
+ modules/stream_filter/prefetch.c
+ modules/stream_filter/record.c
+ modules/stream_filter/skiptags.c
+ modules/stream_out/autodel.c
+ modules/stream_out/bridge.c
+ modules/stream_out/chromaprint.c
+ modules/stream_out/chromaprint_data.h
+ modules/stream_out/chromecast/*
+ modules/stream_out/delay.c
+ modules/stream_out/description.c
+ modules/stream_out/display.c
+ modules/stream_out/dummy.c
+ modules/stream_out/duplicate.c
+ modules/stream_out/es.c
+ modules/stream_out/gather.c
+ modules/stream_out/mosaic_bridge.c
+ modules/stream_out/record.c
+ modules/stream_out/rtcp.c
+ modules/stream_out/rtp.h
+ modules/stream_out/rtpfmt.c
+ modules/stream_out/rtsp.c
+ modules/stream_out/setid.c
+ modules/stream_out/smem.c
+ modules/stream_out/standard.c
+ modules/stream_out/stats.c
+ modules/stream_out/transcode/audio.c
+ modules/stream_out/transcode/spu.c
+ modules/stream_out/transcode/transcode.c
+ modules/stream_out/transcode/video.c
+ modules/stream_out/vod.c
+ modules/text_renderer/freetype/*
+ modules/text_renderer/nsspeechsynthesizer.m
+ modules/text_renderer/svg.c
+ modules/text_renderer/tdummy.c
+ modules/video_chroma/chain.c
+ modules/video_chroma/copy.c
+ modules/video_chroma/copy.h
+ modules/video_chroma/cvpx.c
+ modules/video_chroma/d3d11_fmt.c
+ modules/video_chroma/d3d11_fmt.h
+ modules/video_chroma/d3d9_fmt.c
+ modules/video_chroma/d3d9_fmt.h
+ modules/video_chroma/dxgi_fmt.c
+ modules/video_chroma/dxgi_fmt.h
+ modules/video_chroma/grey_yuv.c
+ modules/video_chroma/i420_10_p010.c
+ modules/video_chroma/i420_nv12.c
+ modules/video_chroma/i420_rgb.c
+ modules/video_chroma/i420_rgb.h
+ modules/video_chroma/i420_rgb16.c
+ modules/video_chroma/i420_rgb16_x86.c
+ modules/video_chroma/i420_rgb8.c
+ modules/video_chroma/i420_rgb_c.h
+ modules/video_chroma/i420_rgb_sse2.h
+ modules/video_chroma/i420_yuy2.c
+ modules/video_chroma/i420_yuy2.h
+ modules/video_chroma/i422_i420.c
+ modules/video_chroma/i422_yuy2.c
+ modules/video_chroma/i422_yuy2.h
+ modules/video_chroma/omxdl.c
+ modules/video_chroma/rv32.c
+ modules/video_chroma/swscale.c
+ modules/video_chroma/yuvp.c
+ modules/video_chroma/yuy2_i420.c
+ modules/video_chroma/yuy2_i422.c
+ modules/video_filter/adjust.c
+ modules/video_filter/adjust_sat_hue.c
+ modules/video_filter/adjust_sat_hue.h
+ modules/video_filter/alphamask.c
+ modules/video_filter/anaglyph.c
+ modules/video_filter/antiflicker.c
+ modules/video_filter/ball.c
+ modules/video_filter/blend.cpp
+ modules/video_filter/blendbench.c
+ modules/video_filter/bluescreen.c
+ modules/video_filter/canvas.c
+ modules/video_filter/ci_filters.m
+ modules/video_filter/colorthres.c
+ modules/video_filter/croppadd.c
+ modules/video_filter/deinterlace/algo_basic.c
+ modules/video_filter/deinterlace/algo_basic.h
+ modules/video_filter/deinterlace/algo_ivtc.c
+ modules/video_filter/deinterlace/algo_ivtc.h
+ modules/video_filter/deinterlace/algo_phosphor.c
+ modules/video_filter/deinterlace/algo_phosphor.h
+ modules/video_filter/deinterlace/algo_x.c
+ modules/video_filter/deinterlace/algo_x.h
+ modules/video_filter/deinterlace/algo_yadif.c
+ modules/video_filter/deinterlace/algo_yadif.h
+ modules/video_filter/deinterlace/common.c
+ modules/video_filter/deinterlace/common.h
+ modules/video_filter/deinterlace/deinterlace.c
+ modules/video_filter/deinterlace/deinterlace.h
+ modules/video_filter/deinterlace/helpers.c
+ modules/video_filter/deinterlace/helpers.h
+ modules/video_filter/deinterlace/merge.c
+ modules/video_filter/deinterlace/merge.h
+ modules/video_filter/deinterlace/merge_arm.S
+ modules/video_filter/deinterlace/merge_arm64.S
+ modules/video_filter/deinterlace/mmx.h
+ modules/video_filter/edgedetection.c
+ modules/video_filter/erase.c
+ modules/video_filter/extract.c
+ modules/video_filter/filter_event_info.h
+ modules/video_filter/filter_picture.h
+ modules/video_filter/fps.c
+ modules/video_filter/freeze.c
+ modules/video_filter/gaussianblur.c
+ modules/video_filter/gradfun.c
+ modules/video_filter/gradfun.h
+ modules/video_filter/gradient.c
+ modules/video_filter/grain.c
+ modules/video_filter/hqdn3d.c
+ modules/video_filter/invert.c
+ modules/video_filter/magnify.c
+ modules/video_filter/mirror.c
+ modules/video_filter/motionblur.c
+ modules/video_filter/motiondetect.c
+ modules/video_filter/oldmovie.c
+ modules/video_filter/opencv_example.cpp
+ modules/video_filter/opencv_wrapper.c
+ modules/video_filter/posterize.c
+ modules/video_filter/postproc.c
+ modules/video_filter/psychedelic.c
+ modules/video_filter/puzzle.c
+ modules/video_filter/puzzle.h
+ modules/video_filter/puzzle_bezier.c
+ modules/video_filter/puzzle_bezier.h
+ modules/video_filter/puzzle_lib.c
+ modules/video_filter/puzzle_lib.h
+ modules/video_filter/puzzle_mgt.c
+ modules/video_filter/puzzle_mgt.h
+ modules/video_filter/puzzle_pce.c
+ modules/video_filter/puzzle_pce.h
+ modules/video_filter/ripple.c
+ modules/video_filter/scale.c
+ modules/video_filter/scene.c
+ modules/video_filter/sepia.c
+ modules/video_filter/sharpen.c
+ modules/video_filter/transform.c
+ modules/video_filter/vhs.c
+ modules/video_filter/wave.c
+ modules/video_output/aa.c
+ modules/video_output/android/*
+ modules/video_output/caca.c
+ modules/video_output/caopengllayer.m
+ modules/video_output/decklink.cpp
+ modules/video_output/drawable.c
+ modules/video_output/evas.c
+ modules/video_output/event_thread.c
+ modules/video_output/event_thread.h
+ modules/video_output/fb.c
+ modules/video_output/flaschen.c
+ modules/video_output/glx.c
+ modules/video_output/ios.m
+ modules/video_output/kva.c
+ modules/video_output/macosx.m
+ modules/video_output/opengl/*
+ modules/video_output/vdummy.c
+ modules/video_output/vmem.c
+ modules/video_output/wayland/*
+ modules/video_output/win32/*
+ modules/video_output/xcb/events.c
+ modules/video_output/xcb/events.h
+ modules/video_output/xcb/keys.c
+ modules/video_output/xcb/pictures.c
+ modules/video_output/xcb/pictures.h
+ modules/video_output/xcb/window.c
+ modules/video_output/xcb/x11.c
+ modules/video_output/xcb/xvideo.c
+ modules/video_output/yuv.c
+ modules/video_splitter/clone.c
+ modules/video_splitter/panoramix.c
+ modules/video_splitter/wall.c
+ modules/visualization/cyclic_buffer.h
+ modules/visualization/glspectrum.c
+ modules/visualization/goom.c
+ modules/visualization/projectm.cpp
+ modules/visualization/visual/*
+ modules/visualization/vsxu.cpp
+ src/android/*
+ src/audio_output/*
+ src/config/*
+ src/darwin/*
+ src/extras/*
+ src/input/*
+ src/interface/*
+ src/libvlc-module.c
+ src/libvlc.c
+ src/libvlc.h
+ src/linux/*
+ src/misc/*
+ src/missing.c
+ src/modules/*
+ src/network/*
+ src/os2/*
+ src/playlist/*
+ src/posix/*
+ src/stream_output/*
+ src/test/*
+ src/text/*
+ src/version.c
+ src/video_output/*
+ src/win32/*
+ test/libvlc/media_discoverer.c
+ test/libvlc/renderer_discoverer.c
+ test/libvlc/slaves.c
+ test/modules/keystore/*
+ test/modules/misc/*
+ test/modules/packetizer/*
+ test/src/*
+Copyright: 2003, ANEVIA
+ 2010, Adrien Maglo
+ 2010, Alan Fischer
+ Arne Schirmacher
+ 2009, Baptiste Coudurier
+ 2017, Collabora Ltd
+ 2013, David Fuhrmann
+ 2012, David Geldreich
+ 2012-2014, Edward Wang
+ 2000-2001, Fabrice Bellard
+ 2012-2014, Felix Paul Kühne
+ 2016, François Revol
+ 1987-2009, Free Software Foundation, Inc
+ 2008-2010, Gabriel Finch
+ 2009, Geoffroy Couprie
+ 1997-1999, H. Dietz and R. Fisher
+ 2016, Janne Grunau
+ 2016, Julian Scheel
+ 2010-2015, KO Myung-Hun
+ 2009-2010, Keary Griffin
+ 2010-2012, Klagenfurt University
+ 2000, Klaus Schmidinger
+ 2001-2016, Laurent Aimar
+ 2009, Loren Merritt
+ 2004-2009, M2X
+ 2015, Martell Malone
+ 2015, Martin Gräßlin
+ 2012-2013, Martin Storsjö
+ 2007-2008, Matthias Bauer
+ 2002-2009, Michael Niedermayer
+ 1999, Michael Zucchi, The Free Software Foundation
+ 2012, Naohiro KORIYAMA
+ 2005, Neal Symms
+ 2010, Nolan Lum
+ 2013, Petri Hintukainen
+ 2007, Pierre d'Herbemont
+ 2007-2014, Rafaël Carré
+ 2002-2017, Rémi Denis-Courmont
+ 2015, Remlab Tmi
+ 2010-2014, Ronald Wright
+ 2007, Savoir-faire Linux
+ 2007, Société des arts technologiques
+ 2010, Steinar H. Gunderson
+ 2015-2017, Steve Lhomme
+ 2011, Sébastien Toque
+ 2002, The FFmpeg Project
+ 2010, Tobias Güntner
+ 2013, Vianney Boyer
+ 2010-2012, libbluray AUTHORS
+ 2013-2017, VideoLabs SAS
+ 2007, Vincent Penne
+ 2009-2012, Vovoid Media Technologies
+ 2001-2005, dvb.matt
+ 2014-2016, jusst technologies GmbH
+ 1996-2018, VideoLAN team and VLC authors
+ the deCSA authors
+License: LGPL-2.1+
+
+Files: debian/*
+Copyright: 2010-2015, Benjamin Drung
+ 2009-2011, Christophe Mutricy
+ 2006-2014, Reinhard Tartler
+ 2006-2007, Sam Hocevar
+ 2013-2020, Sebastian Ramacher
+License: GPL-2+
+
+Files: modules/gui/macosx/PXSourceList/*
+Copyright: 2009-2010 Alex Rozanski
+License: BSD-3-clause
+Comment:
+ See https://perspx.com/work/
+
+Files: share/lua/http/css/ui-lightness/jquery-ui-1.8.13.custom.css
+ share/lua/http/js/jquery.jstree.js
+Copyright: 2010, Ivan Bozhanov
+ 2010-2011, jQuery UI authors
+License: Expat or GPL-2
+
+Files: m4/c11.m4
+ m4/codeset.m4
+ m4/extern-inline.m4
+ m4/gettext.m4
+ m4/glibc2.m4
+ m4/glibc21.m4
+ m4/iconv.m4
+ m4/intdiv0.m4
+ m4/intl.m4
+ m4/intldir.m4
+ m4/intlmacosx.m4
+ m4/intmax.m4
+ m4/inttypes-pri.m4
+ m4/inttypes_h.m4
+ m4/lcmessage.m4
+ m4/lib-ld.m4
+ m4/lib-link.m4
+ m4/lib-prefix.m4
+ m4/lock.m4
+ m4/longlong.m4
+ m4/ltoptions.m4
+ m4/ltsugar.m4
+ m4/ltversion.m4
+ m4/lt~obsolete.m4
+ m4/nls.m4
+ m4/po.m4
+ m4/printf-posix.m4
+ m4/progtest.m4
+ m4/size_max.m4
+ m4/stdint_h.m4
+ m4/uintmax_t.m4
+ m4/visibility.m4
+ m4/wchar_t.m4
+ m4/wint_t.m4
+ m4/xsize.m4
+Copyright: 1994-2017, Free Software Foundation
+ 2015, Rémi Denis-Courmont
+License: FSFULLR
+
+Files: modules/access/linsys/linsys_sdi.h
+ modules/access/linsys/linsys_sdiaudio.h
+ modules/access/linsys/linsys_sdivideo.h
+ modules/codec/omxil/OMX_Broadcom.h
+ modules/gui/macosx/SPMediaKeyTap.h
+ modules/gui/macosx/SPMediaKeyTap.m
+ modules/gui/macosx/VLCHUDButtonCell.h
+ modules/gui/macosx/VLCHUDButtonCell.m
+ modules/gui/macosx/VLCHUDCheckboxCell.h
+ modules/gui/macosx/VLCHUDCheckboxCell.m
+ modules/gui/macosx/VLCHUDOutlineView.h
+ modules/gui/macosx/VLCHUDOutlineView.m
+ modules/gui/macosx/VLCHUDPopUpButtonCell.h
+ modules/gui/macosx/VLCHUDPopUpButtonCell.m
+ modules/gui/macosx/VLCHUDScroller.h
+ modules/gui/macosx/VLCHUDScroller.m
+ modules/gui/macosx/VLCHUDSegmentedCell.h
+ modules/gui/macosx/VLCHUDSegmentedCell.m
+ modules/gui/macosx/VLCHUDSliderCell.h
+ modules/gui/macosx/VLCHUDSliderCell.m
+ modules/gui/macosx/VLCHUDStepperCell.h
+ modules/gui/macosx/VLCHUDStepperCell.m
+ modules/gui/macosx/VLCHUDTableCornerView.h
+ modules/gui/macosx/VLCHUDTableCornerView.m
+ modules/gui/macosx/VLCHUDTableView.h
+ modules/gui/macosx/VLCHUDTableView.m
+ modules/gui/macosx/VLCHUDTextFieldCell.h
+ modules/gui/macosx/VLCHUDTextFieldCell.m
+ modules/stream_out/chromecast/cast_channel.proto
+Copyright: 2012, Broadcom Europe Ltd
+ 2008-2009, CineCert, LLC
+ 2011, Joachim Bengtsson
+ 2003-2015, John Hurst
+ 2004-2010, Linear Systems Ltd
+ 2010, Spotify AB
+ 2013, The Chromium Authors
+ 2008, Tim Davis
+ 2009, Tyler Bunnell
+ 2009, Steve Audette
+License: BSD-3-clause
+
+Files: modules/codec/omxil/OMX_Audio.h
+ modules/codec/omxil/OMX_Component.h
+ modules/codec/omxil/OMX_Core.h
+ modules/codec/omxil/OMX_IVCommon.h
+ modules/codec/omxil/OMX_Image.h
+ modules/codec/omxil/OMX_Index.h
+ modules/codec/omxil/OMX_Other.h
+ modules/codec/omxil/OMX_Types.h
+ modules/codec/omxil/OMX_Video.h
+ modules/gui/qt/util/pictureflow.cpp
+ modules/gui/qt/util/pictureflow.hpp
+ modules/text_renderer/sapi.cpp
+ share/lua/modules/dkjson.lua
+Copyright: 2007-2009, Ariya Hidayat <ariya@kde.org>
+ 2010-2011, David Heiko Kolf
+ 2015, Moti Zilberman
+ Qxt Foundation
+ 2008, The Khronos Group Inc
+License: Expat
+
+Files: modules/codec/wmafixed/wmafixed.c
+ modules/codec/wmafixed/wmafixed.h
+Copyright: 2007, Michael Giacomelli
+License: GPL-2+
+
+Files: include/vlc_update.h
+ modules/codec/webvtt/CSSGrammar.y
+ modules/codec/wmafixed/fft.c
+ modules/codec/wmafixed/fft.h
+ modules/codec/wmafixed/mdct.c
+ modules/codec/wmafixed/mdct.h
+ modules/codec/wmafixed/wmadec.h
+ modules/codec/wmafixed/wmadeci.c
+ src/misc/update.c
+ src/misc/update.h
+ src/misc/update_crypto.c
+Copyright: 2006, Alexey Proskuryakov <ap@nypop.com>
+ 2004-2010, Apple Inc
+ 2008, Eric Seidel <eric@webkit.org>
+ 2012, Intel Corporation
+ 2002-2003, Lars Knoll <knoll@kde.org>
+ 2002, The FFmpeg Project
+ 1998, The Internet Society
+ 2017, VideoLabs, VideoLAN and VLC Authors
+ 2005-2009, VLC authors and VideoLAN
+License: LGPL-2+
+
+Files: m4/with_pkg.m4
+Copyright: 2008, Diego Pettenò
+ 2008, Jean-Baptiste Kempf
+ 2008, Luca Barbato
+License: GPL-2+ with AutoConf exception
+
+Files: m4/ax_append_compile_flags.m4
+ m4/ax_append_flag.m4
+ m4/ax_check_compile_flag.m4
+Copyright: 2008, Guido U. Draheim <guidod@gmx.de>
+ 2011, Maarten Bosmans <mkbosmans@gmail.com>
+License: GPL-3+ with AutoConf exception
+
+Files: m4/ax_require_defined.m4
+ m4/dolt.m4
+ m4/stdcxx_11.m4
+Copyright: 2014, Alexey Sokolov <sokolov@google.com>
+ 2008, Benjamin Kosnik <bkoz@redhat.com>
+ 2014-2015, Google Inc
+ 2007-2010, Josh Triplett <josh@joshtriplett.org>
+ 2014, Mike Frysinger <vapier@gentoo.org>
+ 2013, Roy Stogner <roystgnr@ices.utexas.edu>
+ 2015-2016, VLC authors and VideoLAN
+ 2012, Zack Weinberg <zackw@panix.com>
+License: FSFAP
+
+Files: modules/codec/opus_header.c
+ modules/codec/opus_header.h
+ modules/misc/webservices/json.c
+ modules/misc/webservices/json.h
+Copyright: 2012, James McLaughlin
+ 2012, Xiph.Org Foundation
+License: BSD-2-clause
+
+Files: modules/access/v4l2/linux/*
+ modules/notify/osx_notifications.m
+Copyright: 2004-2005, The Growl Project
+ 2008-2015, the VideoLAN team
+ 1999-2012, the contributors
+License: BSD-3-clause or GPL-2+
+
+Files: doc/libvlc/QtPlayer/*
+ doc/libvlc/gtk_player.c
+ doc/libvlc/libvlc_DVD_ripper.c
+ doc/libvlc/wx_player.cpp
+ doc/libvlc/vlc-thumb.c
+Copyright: protonux
+ Rafaël Carré
+ Vincent Schüßler
+License: WTFPL
+
+Files: modules/access/v4l2/linux/v4l2-common.h
+Copyright: 2012, Nokia Corporation
+License: GPL-2
+
+Files: modules/gui/macosx/AppleRemote.h
+ modules/gui/macosx/AppleRemote.m
+Copyright: 2006-2009, VLC authors and VideoLAN
+ 2006, martinkahr.com
+License: Expat or GPL-2+
+
+Files: modules/codec/webvtt/CSSGrammar.c
+ modules/codec/webvtt/CSSGrammar.h
+Copyright: 1984-2015, Free Software Foundation, Inc
+License: GPL-3+ with Bison exception
+
+Files: modules/control/unimotion.c
+Copyright: 2005, Christian Klein
+ 2006, Lincoln Ramsay
+License: BSD-3-clause and LGPL-2.1
+
+Files: compat/memrchr.c
+Copyright: 2007, Todd C. Miller <Todd.Miller@courtesan.com>
+License: ISC
+
+Files: modules/codec/fdkaac.c
+Copyright: 2012, Sergio Ammirata
+License: BSD-2-clause or LGPL-2.1+
+
+Files: modules/control/unimotion.h
+Copyright: 2006, Lincoln Ramsay
+License: LGPL-2.1
+
+Files: share/vlc.appdata.xml.in.in
+Copyright: 2016, Jean-Baptiste Kempf
+License: CC0 or GPL-2+
+
+License: BSD-2-clause
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ .
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+
+License: BSD-3-clause
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ .
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ 3. Neither the name of the Institute nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+
+License: CC0
+ Statement of Purpose
+ .
+ The laws of most jurisdictions throughout the world automatically confer
+ exclusive Copyright and Related Rights (defined below) upon the creator and
+ subsequent owner(s) (each and all, an "owner") of an original work of
+ authorship and/or a database (each, a "Work").
+ .
+ Certain owners wish to permanently relinquish those rights to a Work for the
+ purpose of contributing to a commons of creative, cultural and scientific
+ works ("Commons") that the public can reliably and without fear of later
+ claims of infringement build upon, modify, incorporate in other works, reuse
+ and redistribute as freely as possible in any form whatsoever and for any
+ purposes, including without limitation commercial purposes. These owners may
+ contribute to the Commons to promote the ideal of a free culture and the
+ further production of creative, cultural and scientific works, or to gain
+ reputation or greater distribution for their Work in part through the use and
+ efforts of others.
+ .
+ For these and/or other purposes and motivations, and without any expectation
+ of additional consideration or compensation, the person associating CC0 with a
+ Work (the "Affirmer"), to the extent that he or she is an owner of Copyright
+ and Related Rights in the Work, voluntarily elects to apply CC0 to the Work
+ and publicly distribute the Work under its terms, with knowledge of his or her
+ Copyright and Related Rights in the Work and the meaning and intended legal
+ effect of CC0 on those rights.
+ .
+ 1. Copyright and Related Rights. A Work made available under CC0 may be
+ protected by copyright and related or neighboring rights ("Copyright and
+ Related Rights"). Copyright and Related Rights include, but are not limited
+ to, the following:
+ .
+ the right to reproduce, adapt, distribute, perform, display, communicate,
+ and translate a Work;
+ .
+ moral rights retained by the original author(s) and/or performer(s);
+ .
+ publicity and privacy rights pertaining to a person's image or likeness
+ depicted in a Work;
+ .
+ rights protecting against unfair competition in regards to a Work, subject
+ to the limitations in paragraph 4(a), below;
+ .
+ rights protecting the extraction, dissemination, use and reuse of data in
+ a Work;
+ .
+ database rights (such as those arising under Directive 96/9/EC of the
+ European Parliament and of the Council of 11 March 1996 on the legal
+ protection of databases, and under any national implementation thereof,
+ including any amended or successor version of such directive); and
+ .
+ other similar, equivalent or corresponding rights throughout the world
+ based on applicable law or treaty, and any national implementations
+ thereof.
+ .
+ 2. Waiver. To the greatest extent permitted by, but not in contravention of,
+ applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and
+ unconditionally waives, abandons, and surrenders all of Affirmer's Copyright
+ and Related Rights and associated claims and causes of action, whether now
+ known or unknown (including existing as well as future claims and causes of
+ action), in the Work (i) in all territories worldwide, (ii) for the maximum
+ duration provided by applicable law or treaty (including future time
+ extensions), (iii) in any current or future medium and for any number of
+ copies, and (iv) for any purpose whatsoever, including without limitation
+ commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes
+ the Waiver for the benefit of each member of the public at large and to the
+ detriment of Affirmer's heirs and successors, fully intending that such Waiver
+ shall not be subject to revocation, rescission, cancellation, termination, or
+ any other legal or equitable action to disrupt the quiet enjoyment of the Work
+ by the public as contemplated by Affirmer's express Statement of Purpose.
+ .
+ 3. Public License Fallback. Should any part of the Waiver for any reason be
+ judged legally invalid or ineffective under applicable law, then the Waiver
+ shall be preserved to the maximum extent permitted taking into account
+ Affirmer's express Statement of Purpose. In addition, to the extent the Waiver
+ is so judged Affirmer hereby grants to each affected person a royalty-free,
+ non transferable, non sublicensable, non exclusive, irrevocable and
+ unconditional license to exercise Affirmer's Copyright and Related Rights in
+ the Work (i) in all territories worldwide, (ii) for the maximum duration
+ provided by applicable law or treaty (including future time extensions), (iii)
+ in any current or future medium and for any number of copies, and (iv) for any
+ purpose whatsoever, including without limitation commercial, advertising or
+ promotional purposes (the "License"). The License shall be deemed effective as
+ of the date CC0 was applied by Affirmer to the Work. Should any part of the
+ License for any reason be judged legally invalid or ineffective under
+ applicable law, such partial invalidity or ineffectiveness shall not
+ invalidate the remainder of the License, and in such case Affirmer hereby
+ affirms that he or she will not (i) exercise any of his or her remaining
+ Copyright and Related Rights in the Work or (ii) assert any associated claims
+ and causes of action with respect to the Work, in either case contrary to
+ Affirmer's express Statement of Purpose.
+ .
+ 4. Limitations and Disclaimers.
+ .
+ No trademark or patent rights held by Affirmer are waived, abandoned,
+ surrendered, licensed or otherwise affected by this document.
+ .
+ Affirmer offers the Work as-is and makes no representations or warranties
+ of any kind concerning the Work, express, implied, statutory or otherwise,
+ including without limitation warranties of title, merchantability, fitness
+ for a particular purpose, non infringement, or the absence of latent or
+ other defects, accuracy, or the present or absence of errors, whether or
+ not discoverable, all to the greatest extent permissible under applicable
+ law.
+ .
+ Affirmer disclaims responsibility for clearing rights of other persons
+ that may apply to the Work or any use thereof, including without
+ limitation any person's Copyright and Related Rights in the Work. Further,
+ Affirmer disclaims responsibility for obtaining any necessary consents,
+ permissions or other rights required for any use of the Work.
+ .
+ Affirmer understands and acknowledges that Creative Commons is not a party
+ to this document and has no duty or obligation with respect to this CC0 or
+ use of the Work.
+
+License: Expat
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ “Software”), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+ .
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Software.
+ .
+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+License: FSFAP
+ Copying and distribution of this file, with or without modification, are
+ permitted in any medium without royalty provided the copyright notice
+ and this notice are preserved. This file is offered as-is, without any
+ warranty.
+
+License: FSFULLR
+ This file is free software; the Free Software Foundation
+ gives unlimited permission to copy and/or distribute it,
+ with or without modifications, as long as this notice is preserved.
+
+License: GPL-2
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License, version 2, as
+ published by the Free Software Foundation
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ .
+ On Debian systems, the complete text of the GNU General Public
+ License version 2 can be found in `/usr/share/common-licenses/GPL-2'.
+
+License: GPL-2+
+ This program is free software; you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 2 of the License, or (at your option) any later
+ version.
+ .
+ This program is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License along with
+ this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
+ St, Fifth Floor, Boston, MA 02110-1301 USA
+ .
+ On Debian systems, the complete text of the GNU General Public License version 2
+ can be found in /usr/share/common-licenses/GPL-2.
+
+License: GPL-2+ with AutoConf exception
+ This program is free software; you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 2 of the License, or (at your option) any later
+ version.
+ .
+ This program is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License along with
+ this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
+ St, Fifth Floor, Boston, MA 02110-1301 USA
+ .
+ On Debian systems, the complete text of the GNU General Public License version 2
+ can be found in /usr/share/common-licenses/GPL-2.
+ .
+ As a special exception, the respective Autoconf Macro's copyright owner
+ gives unlimited permission to copy, distribute and modify the configure
+ scripts that are the output of Autoconf when processing the Macro. You
+ need not follow the terms of the GNU General Public License when using
+ or distributing such scripts, even though portions of the text of the
+ Macro appear in them. The GNU General Public License (GPL) does govern
+ all other use of the material that constitutes the Autoconf Macro.
+ .
+ This special exception to the GPL applies to versions of the Autoconf
+ Macro released by the Autoconf Archive. When you make and distribute a
+ modified version of the Autoconf Macro, you may extend this special
+ exception to the GPL to apply to your modified version as well.
+
+License: GPL-3+ with AutoConf exception
+ This file is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+ .
+ It is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with it. If not, see <http://www.gnu.org/licenses/>.
+ .
+ On Debian systems, the full text of the GNU General Public License version 3
+ can be found in the file `/usr/share/common-licenses/GPL-3'.
+ .
+ As a special exception, the respective Autoconf Macro's copyright owner
+ gives unlimited permission to copy, distribute and modify the configure
+ scripts that are the output of Autoconf when processing the Macro. You
+ need not follow the terms of the GNU General Public License when using
+ or distributing such scripts, even though portions of the text of the
+ Macro appear in them. The GNU General Public License (GPL) does govern
+ all other use of the material that constitutes the Autoconf Macro.
+ .
+ This special exception to the GPL applies to versions of the Autoconf
+ Macro released by the Autoconf Archive. When you make and distribute a
+ modified version of the Autoconf Macro, you may extend this special
+ exception to the GPL to apply to your modified version as well.
+
+License: GPL-3+ with Bison exception
+ This file is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+ .
+ It is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with it. If not, see <http://www.gnu.org/licenses/>.
+ .
+ On Debian systems, the full text of the GNU General Public License version 3
+ can be found in the file `/usr/share/common-licenses/GPL-3'.
+ .
+ As a special exception, you may create a larger work that contains
+ part or all of the Bison parser skeleton and distribute that work
+ under terms of your choice, so long as that work isn't itself a
+ parser generator using the skeleton or a modified version thereof
+ as a parser skeleton. Alternatively, if you modify or redistribute
+ the parser skeleton itself, you may (at your option) remove this
+ special exception, which will cause the skeleton and the resulting
+ Bison output files to be licensed under the GNU General Public
+ License without this special exception.
+
+License: ISC
+ Permission to use, copy, modify, and distribute this software for any
+ purpose with or without fee is hereby granted, provided that the above
+ copyright notice and this permission notice appear in all copies.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+License: LGPL-2+
+ This library is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published by the
+ Free Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+ .
+ This library is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
+ for more details.
+ .
+ You should have received a copy of the GNU Library General Public License
+ along with this library; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ .
+ On Debian systems, the full text of the GNU Library General Public License
+ version 2 can be found in the file `/usr/share/common-licenses/LGPL-2'.
+
+License: LGPL-2.1
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License version 2.1 as published by the Free Software Foundation.
+ .
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+ .
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ .
+ On Debian systems, the complete text of the GNU Lesser General Public
+ License can be found in /usr/share/common-licenses/LGPL-2.1 file.
+
+License: LGPL-2.1+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+ .
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+ .
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ .
+ On Debian systems, the complete text of the GNU Lesser General Public
+ License can be found in /usr/share/common-licenses/LGPL-2.1 file.
+
+License: WTFPL
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ Version 2, December 2004
+ .
+ Everyone is permitted to copy and distribute verbatim or modified
+ copies of this license document, and changing it is allowed as long
+ as the name is changed.
+ .
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+ .
+ 0. You just DO WHAT THE FUCK YOU WANT TO.
--- /dev/null
+#!/usr/bin/python3
+
+# Inverse dh-exec-filter-profiles
+# Author: Sebastian Ramacher <sramacher@debian.org>
+
+import os
+import re
+import sys
+
+
+remove_plugins = os.getenv("removeplugins")
+if remove_plugins is not None:
+ remove_plugins = set(remove_plugins.split(" "))
+else:
+ remove_plugins = set()
+
+plugin_re = re.compile(r"^(\S*) \[([a-zA-Z1-9.,_-]*)\]$")
+
+
+for line in sys.stdin.readlines():
+ line = line.rstrip("\n")
+ match = plugin_re.match(line)
+ if not match:
+ print(line)
+ continue
+
+ path = match.group(1)
+ plugins = match.group(2)
+ plugins = set(plugins.split(','))
+ if not plugins & remove_plugins:
+ print(path)
--- /dev/null
+[DEFAULT]
+debian-branch = master
+upstream-branch = upstream
+pristine-tar = True
+compression = xz
+
+[dch]
+meta = True
--- /dev/null
+usr/lib/*/vlc/vlc-cache-gen
--- /dev/null
+# Maintainer scripts create plugins.dat there.
+libvlc-bin binary: package-contains-empty-directory usr/lib/*/vlc/plugins/
--- /dev/null
+#!/bin/sh
+set -e
+
+run_vlc_cache_gen() {
+ if ! test -d /usr/lib/#DEB_HOST_MULTIARCH#/vlc/plugins
+ then
+ return
+ fi
+ files=`find /usr/lib/#DEB_HOST_MULTIARCH#/vlc/plugins -name '*.so' -type f -print -quit`
+ if test -n "$files"
+ then
+ # run vlc-cache-gen since there are plugins
+ if ! /usr/lib/#DEB_HOST_MULTIARCH#/vlc/vlc-cache-gen /usr/lib/#DEB_HOST_MULTIARCH#/vlc/plugins 2>&1
+ then
+ echo "WARNING: Regenerating VLC plugin cache failed."
+ echo "Please run '/usr/lib/#DEB_HOST_MULTIARCH#/vlc/vlc-cache-gen /usr/lib/#DEB_HOST_MULTIARCH#/vlc/plugins' manually."
+ fi
+ else
+ # no plugins, so remove plugins.dat
+ rm -f /usr/lib/#DEB_HOST_MULTIARCH#/vlc/plugins/plugins.dat
+ fi
+}
+
+case "$1" in
+ triggered)
+ run_vlc_cache_gen
+ exit 0
+ ;;
+ configure)
+ dpkg-trigger /usr/lib/#DEB_HOST_MULTIARCH#/vlc/plugins
+ ;;
+esac
+
+#DEBHELPER#
--- /dev/null
+#! /bin/sh
+set -e
+
+#DEBHELPER#
+
+case "$1" in
+ remove)
+ rm -f /usr/lib/#DEB_HOST_MULTIARCH#/vlc/plugins/plugins.dat
+ ;;
+esac
--- /dev/null
+doc/libvlc/QtPlayer
+doc/libvlc/gtk_player.c
+doc/libvlc/libvlc_DVD_ripper.c
+doc/libvlc/vlc-thumb.c
+doc/libvlc/wx_player.cpp
--- /dev/null
+usr/include/vlc/*.h
+usr/lib/*/libvlc.so
+usr/lib/*/pkgconfig/libvlc.pc
--- /dev/null
+usr/lib/*/libvlc.so.*
--- /dev/null
+libvlc.so.5 libvlc5 #MINVER#
+* Build-Depends-Package: libvlc-dev
+ libvlc_add_intf@Base 1.1.0
+ libvlc_audio_equalizer_get_amp_at_index@Base 2.2.0~pre1
+ libvlc_audio_equalizer_get_band_count@Base 2.2.0~pre1
+ libvlc_audio_equalizer_get_band_frequency@Base 2.2.0~pre1
+ libvlc_audio_equalizer_get_preamp@Base 2.2.0~pre1
+ libvlc_audio_equalizer_get_preset_count@Base 2.2.0~pre1
+ libvlc_audio_equalizer_get_preset_name@Base 2.2.0~pre1
+ libvlc_audio_equalizer_new@Base 2.2.0~pre1
+ libvlc_audio_equalizer_new_from_preset@Base 2.2.0~pre1
+ libvlc_audio_equalizer_release@Base 2.2.0~pre1
+ libvlc_audio_equalizer_set_amp_at_index@Base 2.2.0~pre1
+ libvlc_audio_equalizer_set_preamp@Base 2.2.0~pre1
+ libvlc_audio_filter_list_get@Base 2.0.0
+ libvlc_audio_get_channel@Base 1.1.0
+ libvlc_audio_get_delay@Base 1.1.1
+ libvlc_audio_get_mute@Base 1.1.0
+ libvlc_audio_get_track@Base 1.1.0
+ libvlc_audio_get_track_count@Base 1.1.0
+ libvlc_audio_get_track_description@Base 1.1.0
+ libvlc_audio_get_volume@Base 1.1.0
+ libvlc_audio_output_device_count@Base 1.1.0
+ libvlc_audio_output_device_enum@Base 2.2.0~pre1
+ libvlc_audio_output_device_get@Base 3.0.0
+ libvlc_audio_output_device_id@Base 1.1.0
+ libvlc_audio_output_device_list_get@Base 2.1.0
+ libvlc_audio_output_device_list_release@Base 2.1.0
+ libvlc_audio_output_device_longname@Base 1.1.0
+ libvlc_audio_output_device_set@Base 1.1.0
+ libvlc_audio_output_get_device_type@Base 1.1.0
+ libvlc_audio_output_list_get@Base 1.1.0
+ libvlc_audio_output_list_release@Base 1.1.0
+ libvlc_audio_output_set@Base 1.1.0
+ libvlc_audio_output_set_device_type@Base 1.1.0
+ libvlc_audio_set_callbacks@Base 2.0.0
+ libvlc_audio_set_channel@Base 1.1.0
+ libvlc_audio_set_delay@Base 1.1.1
+ libvlc_audio_set_format@Base 2.0.0
+ libvlc_audio_set_format_callbacks@Base 2.0.0
+ libvlc_audio_set_mute@Base 1.1.0
+ libvlc_audio_set_track@Base 1.1.0
+ libvlc_audio_set_volume@Base 1.1.0
+ libvlc_audio_set_volume_callback@Base 2.0.0
+ libvlc_audio_toggle_mute@Base 1.1.0
+ libvlc_chapter_descriptions_release@Base 3.0.0
+ libvlc_clearerr@Base 1.1.0
+ libvlc_clock@Base 2.0.0
+ libvlc_dialog_dismiss@Base 3.0.0
+ libvlc_dialog_get_context@Base 3.0.0
+ libvlc_dialog_post_action@Base 3.0.0
+ libvlc_dialog_post_login@Base 3.0.0
+ libvlc_dialog_set_callbacks@Base 3.0.0
+ libvlc_dialog_set_context@Base 3.0.0
+ libvlc_errmsg@Base 1.1.0
+ libvlc_event_attach@Base 1.1.0
+ libvlc_event_detach@Base 1.1.0
+ libvlc_event_type_name@Base 2.2.2
+ libvlc_free@Base 2.0.0
+ libvlc_get_changeset@Base 1.1.0
+ libvlc_get_compiler@Base 1.1.0
+ libvlc_get_fullscreen@Base 1.1.0
+ libvlc_get_log_verbosity@Base 1.1.0
+ libvlc_get_version@Base 1.1.0
+ libvlc_log_clear@Base 1.1.0
+ libvlc_log_close@Base 1.1.0
+ libvlc_log_count@Base 1.1.0
+ libvlc_log_get_context@Base 2.1.0
+ libvlc_log_get_iterator@Base 1.1.0
+ libvlc_log_get_object@Base 2.1.0
+ libvlc_log_iterator_free@Base 1.1.0
+ libvlc_log_iterator_has_next@Base 1.1.0
+ libvlc_log_iterator_next@Base 1.1.0
+ libvlc_log_open@Base 1.1.0
+ libvlc_log_set@Base 2.1.0
+ libvlc_log_set_file@Base 2.1.0
+ libvlc_log_unset@Base 2.1.0
+ libvlc_media_add_option@Base 1.1.0
+ libvlc_media_add_option_flag@Base 1.1.0
+ libvlc_media_discoverer_event_manager@Base 1.1.0
+ libvlc_media_discoverer_is_running@Base 1.1.0
+ libvlc_media_discoverer_list_get@Base 3.0.0
+ libvlc_media_discoverer_list_release@Base 3.0.0
+ libvlc_media_discoverer_localized_name@Base 1.1.0
+ libvlc_media_discoverer_media_list@Base 1.1.0
+ libvlc_media_discoverer_new@Base 3.0.0
+ libvlc_media_discoverer_new_from_name@Base 1.1.0
+ libvlc_media_discoverer_release@Base 1.1.0
+ libvlc_media_discoverer_start@Base 3.0.0
+ libvlc_media_discoverer_stop@Base 3.0.0
+ libvlc_media_duplicate@Base 1.1.0
+ libvlc_media_event_manager@Base 1.1.0
+ libvlc_media_get_codec_description@Base 3.0.0
+ libvlc_media_get_duration@Base 1.1.0
+ libvlc_media_get_meta@Base 1.1.0
+ libvlc_media_get_mrl@Base 1.1.0
+ libvlc_media_get_parsed_status@Base 3.0.0
+ libvlc_media_get_state@Base 1.1.0
+ libvlc_media_get_stats@Base 1.1.0
+ libvlc_media_get_tracks_info@Base 1.1.0
+ libvlc_media_get_type@Base 3.0.0
+ libvlc_media_get_user_data@Base 1.1.0
+ libvlc_media_is_parsed@Base 1.1.0
+ libvlc_media_library_load@Base 1.1.0
+ libvlc_media_library_media_list@Base 1.1.0
+ libvlc_media_library_new@Base 1.1.0
+ libvlc_media_library_release@Base 1.1.0
+ libvlc_media_library_retain@Base 1.1.0
+ libvlc_media_list_add_media@Base 1.1.0
+ libvlc_media_list_count@Base 1.1.0
+ libvlc_media_list_event_manager@Base 1.1.0
+ libvlc_media_list_index_of_item@Base 1.1.0
+ libvlc_media_list_insert_media@Base 1.1.0
+ libvlc_media_list_is_readonly@Base 1.1.0
+ libvlc_media_list_item_at_index@Base 1.1.0
+ libvlc_media_list_lock@Base 1.1.0
+ libvlc_media_list_media@Base 1.1.0
+ libvlc_media_list_new@Base 1.1.0
+ libvlc_media_list_player_event_manager@Base 1.1.0
+ libvlc_media_list_player_get_media_player@Base 3.0.0
+ libvlc_media_list_player_get_state@Base 1.1.0
+ libvlc_media_list_player_is_playing@Base 1.1.0
+ libvlc_media_list_player_new@Base 1.1.0
+ libvlc_media_list_player_next@Base 1.1.0
+ libvlc_media_list_player_pause@Base 1.1.0
+ libvlc_media_list_player_play@Base 1.1.0
+ libvlc_media_list_player_play_item@Base 1.1.0
+ libvlc_media_list_player_play_item_at_index@Base 1.1.0
+ libvlc_media_list_player_previous@Base 1.1.0
+ libvlc_media_list_player_release@Base 1.1.0
+ libvlc_media_list_player_retain@Base 2.0.0
+ libvlc_media_list_player_set_media_list@Base 1.1.0
+ libvlc_media_list_player_set_media_player@Base 1.1.0
+ libvlc_media_list_player_set_pause@Base 3.0.0
+ libvlc_media_list_player_set_playback_mode@Base 1.1.0
+ libvlc_media_list_player_stop@Base 1.1.0
+ libvlc_media_list_release@Base 1.1.0
+ libvlc_media_list_remove_index@Base 1.1.0
+ libvlc_media_list_retain@Base 1.1.0
+ libvlc_media_list_set_media@Base 1.1.0
+ libvlc_media_list_unlock@Base 1.1.0
+ libvlc_media_new_as_node@Base 1.1.0
+ libvlc_media_new_callbacks@Base 3.0.0
+ libvlc_media_new_fd@Base 1.1.5
+ libvlc_media_new_location@Base 1.1.0
+ libvlc_media_new_path@Base 1.1.0
+ libvlc_media_parse@Base 1.1.0
+ libvlc_media_parse_async@Base 1.1.0
+ libvlc_media_parse_stop@Base 3.0.0
+ libvlc_media_parse_with_options@Base 3.0.0
+ libvlc_media_player_add_slave@Base 3.0.0
+ libvlc_media_player_can_pause@Base 1.1.0
+ libvlc_media_player_event_manager@Base 1.1.0
+ libvlc_media_player_get_agl@Base 1.1.0
+ libvlc_media_player_get_chapter@Base 1.1.0
+ libvlc_media_player_get_chapter_count@Base 1.1.0
+ libvlc_media_player_get_chapter_count_for_title@Base 1.1.0
+ libvlc_media_player_get_fps@Base 1.1.0
+ libvlc_media_player_get_full_chapter_descriptions@Base 3.0.0
+ libvlc_media_player_get_full_title_descriptions@Base 3.0.0
+ libvlc_media_player_get_hwnd@Base 1.1.0
+ libvlc_media_player_get_length@Base 1.1.0
+ libvlc_media_player_get_media@Base 1.1.0
+ libvlc_media_player_get_nsobject@Base 1.1.0
+ libvlc_media_player_get_position@Base 1.1.0
+ libvlc_media_player_get_rate@Base 1.1.0
+ libvlc_media_player_get_role@Base 3.0.0
+ libvlc_media_player_get_state@Base 1.1.0
+ libvlc_media_player_get_time@Base 1.1.0
+ libvlc_media_player_get_title@Base 1.1.0
+ libvlc_media_player_get_title_count@Base 1.1.0
+ libvlc_media_player_get_xwindow@Base 1.1.0
+ libvlc_media_player_has_vout@Base 1.1.0
+ libvlc_media_player_is_playing@Base 1.1.0
+ libvlc_media_player_is_seekable@Base 1.1.0
+ libvlc_media_player_navigate@Base 2.0.0
+ libvlc_media_player_new@Base 1.1.0
+ libvlc_media_player_new_from_media@Base 1.1.0
+ libvlc_media_player_next_chapter@Base 1.1.0
+ libvlc_media_player_next_frame@Base 1.1.0
+ libvlc_media_player_pause@Base 1.1.0
+ libvlc_media_player_play@Base 1.1.0
+ libvlc_media_player_previous_chapter@Base 1.1.0
+ libvlc_media_player_program_scrambled@Base 2.2.0~pre1
+ libvlc_media_player_release@Base 1.1.0
+ libvlc_media_player_retain@Base 1.1.0
+ libvlc_media_player_set_agl@Base 1.1.0
+ libvlc_media_player_set_android_context@Base 3.0.0
+ libvlc_media_player_set_chapter@Base 1.1.0
+ libvlc_media_player_set_equalizer@Base 2.2.0~pre1
+ libvlc_media_player_set_hwnd@Base 1.1.0
+ libvlc_media_player_set_media@Base 1.1.0
+ libvlc_media_player_set_nsobject@Base 1.1.0
+ libvlc_media_player_set_pause@Base 1.1.1
+ libvlc_media_player_set_position@Base 1.1.0
+ libvlc_media_player_set_rate@Base 1.1.0
+ libvlc_media_player_set_renderer@Base 3.0.0
+ libvlc_media_player_set_role@Base 3.0.0
+ libvlc_media_player_set_time@Base 1.1.0
+ libvlc_media_player_set_title@Base 1.1.0
+ libvlc_media_player_set_video_title_display@Base 2.1.0
+ libvlc_media_player_set_xwindow@Base 1.1.0
+ libvlc_media_player_stop@Base 1.1.0
+ libvlc_media_player_will_play@Base 1.1.0
+ libvlc_media_release@Base 1.1.0
+ libvlc_media_retain@Base 1.1.0
+ libvlc_media_save_meta@Base 1.1.0
+ libvlc_media_set_meta@Base 1.1.0
+ libvlc_media_set_user_data@Base 1.1.0
+ libvlc_media_slaves_add@Base 3.0.0
+ libvlc_media_slaves_clear@Base 3.0.0
+ libvlc_media_slaves_get@Base 3.0.0
+ libvlc_media_slaves_release@Base 3.0.0
+ libvlc_media_subitems@Base 1.1.0
+ libvlc_media_tracks_get@Base 2.1.0
+ libvlc_media_tracks_release@Base 2.1.0
+ libvlc_module_description_list_release@Base 2.0.0
+ libvlc_new@Base 1.1.0
+ libvlc_playlist_play@Base 1.1.0
+ libvlc_printerr@Base 1.1.0
+ libvlc_release@Base 1.1.0
+ libvlc_renderer_discoverer_event_manager@Base 3.0.0
+ libvlc_renderer_discoverer_list_get@Base 3.0.0
+ libvlc_renderer_discoverer_list_release@Base 3.0.0
+ libvlc_renderer_discoverer_new@Base 3.0.0
+ libvlc_renderer_discoverer_release@Base 3.0.0
+ libvlc_renderer_discoverer_start@Base 3.0.0
+ libvlc_renderer_discoverer_stop@Base 3.0.0
+ libvlc_renderer_item_flags@Base 3.0.0
+ libvlc_renderer_item_icon_uri@Base 3.0.0
+ libvlc_renderer_item_name@Base 3.0.0
+ libvlc_renderer_item_type@Base 3.0.0
+ libvlc_renderer_item_hold@Base 3.0.0
+ libvlc_renderer_item_release@Base 3.0.0
+ libvlc_retain@Base 1.1.0
+ libvlc_set_app_id@Base 2.1.0
+ libvlc_set_exit_handler@Base 2.0.0
+ libvlc_set_fullscreen@Base 1.1.0
+ libvlc_set_log_verbosity@Base 1.1.0
+ libvlc_set_user_agent@Base 1.1.1
+ libvlc_title_descriptions_release@Base 3.0.0
+ libvlc_toggle_fullscreen@Base 1.1.0
+ libvlc_toggle_teletext@Base 1.1.0
+ libvlc_track_description_list_release@Base 2.0.0
+ libvlc_track_description_release@Base 1.1.0
+ libvlc_video_filter_list_get@Base 2.0.0
+ libvlc_video_get_adjust_float@Base 1.1.1
+ libvlc_video_get_adjust_int@Base 1.1.1
+ libvlc_video_get_aspect_ratio@Base 1.1.0
+ libvlc_video_get_chapter_description@Base 1.1.0
+ libvlc_video_get_crop_geometry@Base 1.1.0
+ libvlc_video_get_cursor@Base 1.1.0
+ libvlc_video_get_height@Base 1.1.0
+ libvlc_video_get_logo_int@Base 1.1.0
+ libvlc_video_get_marquee_int@Base 1.1.0
+ libvlc_video_get_marquee_string@Base 1.1.0
+ libvlc_video_get_scale@Base 1.1.0
+ libvlc_video_get_size@Base 1.1.0
+ libvlc_video_get_spu@Base 1.1.0
+ libvlc_video_get_spu_count@Base 1.1.0
+ libvlc_video_get_spu_delay@Base 2.0.0
+ libvlc_video_get_spu_description@Base 1.1.0
+ libvlc_video_get_teletext@Base 1.1.0
+ libvlc_video_get_title_description@Base 1.1.0
+ libvlc_video_get_track@Base 1.1.0
+ libvlc_video_get_track_count@Base 1.1.0
+ libvlc_video_get_track_description@Base 1.1.0
+ libvlc_video_get_width@Base 1.1.0
+ libvlc_video_new_viewpoint@Base 3.0.0
+ libvlc_video_set_adjust_float@Base 1.1.1
+ libvlc_video_set_adjust_int@Base 1.1.1
+ libvlc_video_set_aspect_ratio@Base 1.1.0
+ libvlc_video_set_callbacks@Base 1.1.1
+ libvlc_video_set_crop_geometry@Base 1.1.0
+ libvlc_video_set_deinterlace@Base 1.1.0
+ libvlc_video_set_format@Base 1.1.1
+ libvlc_video_set_format_callbacks@Base 2.0.0
+ libvlc_video_set_key_input@Base 1.1.0
+ libvlc_video_set_logo_int@Base 1.1.0
+ libvlc_video_set_logo_string@Base 1.1.0
+ libvlc_video_set_marquee_int@Base 1.1.0
+ libvlc_video_set_marquee_string@Base 1.1.0
+ libvlc_video_set_mouse_input@Base 1.1.0
+ libvlc_video_set_scale@Base 1.1.0
+ libvlc_video_set_spu@Base 1.1.0
+ libvlc_video_set_spu_delay@Base 2.0.0
+ libvlc_video_set_subtitle_file@Base 1.1.0
+ libvlc_video_set_teletext@Base 1.1.0
+ libvlc_video_set_track@Base 1.1.0
+ libvlc_video_take_snapshot@Base 1.1.0
+ libvlc_video_update_viewpoint@Base 3.0.0
+ libvlc_vlm_add_broadcast@Base 1.1.0
+ libvlc_vlm_add_input@Base 1.1.0
+ libvlc_vlm_add_vod@Base 1.1.0
+ libvlc_vlm_change_media@Base 1.1.0
+ libvlc_vlm_del_media@Base 1.1.0
+ libvlc_vlm_get_event_manager@Base 1.1.0
+ libvlc_vlm_get_media_instance_length@Base 1.1.0
+ libvlc_vlm_get_media_instance_position@Base 1.1.0
+ libvlc_vlm_get_media_instance_rate@Base 1.1.0
+ libvlc_vlm_get_media_instance_time@Base 1.1.0
+ libvlc_vlm_pause_media@Base 1.1.0
+ libvlc_vlm_play_media@Base 1.1.0
+ libvlc_vlm_release@Base 1.1.0
+ libvlc_vlm_seek_media@Base 1.1.0
+ libvlc_vlm_set_enabled@Base 1.1.0
+ libvlc_vlm_set_input@Base 1.1.0
+ libvlc_vlm_set_loop@Base 1.1.0
+ libvlc_vlm_set_mux@Base 1.1.0
+ libvlc_vlm_set_output@Base 1.1.0
+ libvlc_vlm_show_media@Base 1.1.0
+ libvlc_vlm_stop_media@Base 1.1.0
+ libvlc_vprinterr@Base 1.1.0
+ libvlc_wait@Base 1.1.0
--- /dev/null
+usr/include/vlc/plugins/*.h
+usr/lib/*/libvlccore.so
+usr/lib/*/pkgconfig/vlc-plugin.pc
+usr/lib/*/vlc/libcompat.a
--- /dev/null
+usr/lib/*/libvlccore.so.*
--- /dev/null
+libvlccore.so.9 libvlccore9 #MINVER#
+* Build-Depends-Package: libvlccore-dev
+ AddMD5@Base 2.0.0
+ EndMD5@Base 2.0.0
+ FromCharset@Base 2.0.0
+ GetLang_1@Base 2.0.0
+ GetLang_2B@Base 2.0.0
+ GetLang_2T@Base 2.0.0
+ InitMD5@Base 2.0.0
+ NTPtime64@Base 2.0.0
+ ToCharset@Base 2.0.0
+ VLC_CompileBy@Base 2.0.0
+ VLC_CompileHost@Base 2.0.0
+ VLC_Compiler@Base 2.0.0
+ access_vaDirectoryControlHelper@Base 3.0.0
+ addon_entry_Hold@Base 2.2.0~pre1
+ addon_entry_New@Base 2.2.0~pre1
+ addon_entry_Release@Base 2.2.0~pre1
+ addons_manager_Delete@Base 2.2.0~pre1
+ addons_manager_Gather@Base 2.2.0~pre1
+ addons_manager_Install@Base 2.2.0~pre1
+ addons_manager_LoadCatalog@Base 2.2.0~pre1
+ addons_manager_New@Base 2.2.0~pre1
+ addons_manager_Remove@Base 2.2.0~pre1
+ aout_BitsPerSample@Base 2.0.0
+ aout_ChannelExtract@Base 2.0.0
+ aout_ChannelReorder@Base 2.0.0
+ aout_CheckChannelExtraction@Base 2.0.0
+ aout_CheckChannelReorder@Base 2.0.0
+ aout_Deinterleave@Base 2.1.0
+ aout_DeviceGet@Base 2.1.0
+ aout_DeviceSet@Base 2.1.0
+ aout_DevicesList@Base 2.1.0
+ aout_FiltersAdjustResampling@Base 2.1.0
+ aout_FiltersChangeViewpoint@Base 3.0.0
+ aout_FiltersDelete@Base 2.1.0
+ aout_FiltersDrain@Base 3.0.0
+ aout_FiltersFlush@Base 3.0.0
+ aout_FiltersNew@Base 2.1.0
+ aout_FiltersPlay@Base 2.1.0
+ aout_FormatPrepare@Base 2.0.0
+ aout_FormatPrint@Base 2.0.0
+ aout_FormatPrintChannels@Base 2.0.0
+ aout_Interleave@Base 2.1.0
+ aout_MuteGet@Base 2.1.0
+ aout_MuteSet@Base 2.1.0
+ aout_VolumeGet@Base 2.0.0
+ aout_VolumeSet@Base 2.0.0
+ aout_VolumeUpdate@Base 3.0.0
+ aout_filter_RequestVout@Base 2.0.0
+ block_Alloc@Base 2.0.0
+ block_FifoCount@Base 2.0.0
+ block_FifoEmpty@Base 2.0.0
+ block_FifoGet@Base 2.0.0
+ block_FifoNew@Base 2.0.0
+ block_FifoPut@Base 2.0.0
+ block_FifoRelease@Base 2.0.0
+ block_FifoShow@Base 2.0.0
+ block_File@Base 2.0.0
+ block_FilePath@Base 2.1.0
+ block_Init@Base 2.0.0
+ block_Realloc@Base 2.0.0
+ block_TryRealloc@Base 3.0.0
+ block_heap_Alloc@Base 2.0.0
+ block_mmap_Alloc@Base 2.0.0
+ block_shm_Alloc@Base 2.1.0
+ config_AddIntf@Base 2.0.0
+ config_ChainCreate@Base 2.0.0
+ config_ChainDestroy@Base 2.0.0
+ config_ChainDuplicate@Base 2.0.0
+ config_ChainParse@Base 2.0.0
+ config_ChainParseOptions@Base 2.1.0
+ config_ExistIntf@Base 2.0.0
+ config_FindConfig@Base 2.0.0
+ config_GetDataDir@Base 2.0.0
+ config_GetFloat@Base 2.0.0
+ config_GetInt@Base 2.0.0
+ config_GetIntChoices@Base 2.1.0
+ config_GetLibDir@Base 2.0.0
+ config_GetPsz@Base 2.0.0
+ config_GetPszChoices@Base 2.1.0
+ config_GetType@Base 2.0.0
+ config_GetUserDir@Base 2.0.0
+ config_PutFloat@Base 2.0.0
+ config_PutInt@Base 2.0.0
+ config_PutPsz@Base 2.0.0
+ config_RemoveIntf@Base 2.0.0
+ config_ResetAll@Base 2.0.0
+ config_SaveConfigFile@Base 2.0.0
+ config_StringEscape@Base 2.0.0
+ config_StringUnescape@Base 2.0.0
+ date_Change@Base 2.0.0
+ date_Decrement@Base 2.0.0
+ date_Get@Base 2.0.0
+ date_Increment@Base 2.0.0
+ date_Init@Base 2.0.0
+ date_Move@Base 2.0.0
+ date_Set@Base 2.0.0
+ decoder_AbortPictures@Base 3.0.0
+ decoder_GetDisplayDate@Base 2.0.0
+ decoder_GetDisplayRate@Base 2.0.0
+ decoder_GetInputAttachments@Base 2.0.0
+ decoder_NewAudioBuffer@Base 2.0.0
+ decoder_NewSubpicture@Base 2.0.0
+ demux_Delete@Base 3.0.0
+ demux_New@Base 3.0.0
+ demux_PacketizerDestroy@Base 2.0.0
+ demux_PacketizerNew@Base 2.0.0
+ demux_vaControl@Base 3.0.0
+ demux_vaControlHelper@Base 2.0.0
+ es_format_Clean@Base 2.0.0
+ es_format_Copy@Base 2.0.0
+ es_format_Init@Base 2.0.0
+ es_format_InitFromVideo@Base 2.0.0
+ es_format_IsSimilar@Base 2.0.0
+ filter_AddProxyCallbacks@Base 3.0.0
+ filter_Blend@Base 2.0.0
+ filter_ConfigureBlend@Base 2.0.0
+ filter_DelProxyCallbacks@Base 3.0.0
+ filter_DeleteBlend@Base 2.0.0
+ filter_NewBlend@Base 2.0.0
+ filter_chain_AppendConverter@Base 3.0.0
+ filter_chain_AppendFilter@Base 2.0.0
+ filter_chain_AppendFromString@Base 2.0.0
+ filter_chain_Delete@Base 2.0.0
+ filter_chain_DeleteFilter@Base 2.0.0
+ filter_chain_GetFmtOut@Base 2.0.0
+ filter_chain_IsEmpty@Base 3.0.0
+ filter_chain_MouseEvent@Base 2.0.0
+ filter_chain_MouseFilter@Base 2.0.0
+ filter_chain_NewVideo@Base 3.0.0
+ filter_chain_Reset@Base 2.0.0
+ filter_chain_SubFilter@Base 2.0.0
+ filter_chain_VideoFilter@Base 2.0.0
+ filter_chain_VideoFlush@Base 2.0.0
+ fingerprinter_Create@Base 2.1.0
+ fingerprinter_Destroy@Base 2.1.0
+ httpd_ClientIP@Base 2.0.0
+ httpd_FileDelete@Base 2.0.0
+ httpd_FileNew@Base 2.0.0
+ httpd_HandlerDelete@Base 2.0.0
+ httpd_HandlerNew@Base 2.0.0
+ httpd_HostDelete@Base 2.0.0
+ httpd_MsgAdd@Base 2.0.0
+ httpd_MsgGet@Base 2.0.0
+ httpd_RedirectDelete@Base 2.0.0
+ httpd_RedirectNew@Base 2.0.0
+ httpd_ServerIP@Base 2.0.0
+ httpd_StreamDelete@Base 2.0.0
+ httpd_StreamHeader@Base 2.0.0
+ httpd_StreamNew@Base 2.0.0
+ httpd_StreamSend@Base 2.0.0
+ httpd_StreamSetHTTPHeaders@Base 2.2.0~pre1
+ httpd_UrlCatch@Base 2.0.0
+ httpd_UrlDelete@Base 2.0.0
+ httpd_UrlNew@Base 2.0.0
+ image_Ext2Fourcc@Base 2.0.0
+ image_HandlerCreate@Base 2.0.0
+ image_HandlerDelete@Base 2.0.0
+ image_Mime2Fourcc@Base 2.0.0
+ image_Type2Fourcc@Base 2.0.0
+ input_Close@Base 2.0.0
+ input_Control@Base 2.0.0
+ input_Create@Base 2.0.0
+ input_CreateFilename@Base 2.0.0
+ input_DecoderCreate@Base 2.0.0
+ input_DecoderDecode@Base 2.0.0
+ input_DecoderDelete@Base 2.0.0
+ input_DecoderDrain@Base 3.0.0
+ input_DecoderFlush@Base 3.0.0
+ input_GetItem@Base 2.0.0
+ input_Read@Base 2.0.0
+ input_Start@Base 2.0.0
+ input_Stop@Base 2.0.0
+ input_item_AddInfo@Base 2.0.0
+ input_item_AddOpaque@Base 3.0.0
+ input_item_AddOption@Base 2.0.0
+ input_item_AddOptions@Base 3.0.0
+ input_item_AddSlave@Base 3.0.0
+ input_item_Copy@Base 2.0.0
+ input_item_CopyOptions@Base 2.0.0
+ input_item_DelInfo@Base 2.0.0
+ input_item_GetDuration@Base 2.0.0
+ input_item_GetInfo@Base 2.0.0
+ input_item_GetMeta@Base 2.2.0
+ input_item_GetName@Base 2.0.0
+ input_item_GetNowPlayingFb@Base 3.0.0
+ input_item_GetTitleFbName@Base 2.0.0
+ input_item_GetURI@Base 2.0.0
+ input_item_HasErrorWhenReading@Base 2.0.0
+ input_item_Hold@Base 2.1.0
+ input_item_IsArtFetched@Base 2.0.0
+ input_item_IsPreparsed@Base 2.0.0
+ input_item_MergeInfos@Base 2.0.0
+ input_item_MetaMatch@Base 2.2.0
+ input_item_NewExt@Base 2.0.0
+ input_item_Release@Base 2.1.0
+ input_item_ReplaceInfos@Base 2.0.0
+ input_item_SetDuration@Base 2.0.0
+ input_item_SetMeta@Base 2.2.0
+ input_item_SetName@Base 2.0.0
+ input_item_SetURI@Base 2.0.0
+ input_item_WriteMeta@Base 2.0.0
+ input_item_node_AppendItem@Base 2.0.0
+ input_item_node_AppendNode@Base 2.0.0
+ input_item_node_Create@Base 2.0.0
+ input_item_node_Delete@Base 2.0.0
+ input_item_slave_GetType@Base 3.0.0
+ input_item_slave_New@Base 3.0.0
+ input_resource_GetAout@Base 2.2.0~pre1
+ input_resource_HoldAout@Base 2.1.0
+ input_resource_New@Base 2.0.0
+ input_resource_PutAout@Base 2.2.0~pre1
+ input_resource_Release@Base 2.0.0
+ input_resource_ResetAout@Base 2.2.0~pre1
+ input_resource_Terminate@Base 2.0.0
+ input_resource_TerminateVout@Base 2.0.0
+ input_vaControl@Base 2.0.0
+ intf_Create@Base 2.0.0
+ libvlc_ArtRequest@Base 2.2.0~pre1
+ libvlc_InternalAddIntf@Base 2.0.0
+ libvlc_InternalCleanup@Base 2.0.0
+ libvlc_InternalCreate@Base 2.0.0
+ libvlc_InternalDestroy@Base 2.0.0
+ libvlc_InternalInit@Base 2.0.0
+ libvlc_InternalPlay@Base 2.2.0~pre1
+ libvlc_MetadataCancel@Base 3.0.0
+ libvlc_MetadataRequest@Base 3.0.0
+ libvlc_Quit@Base 2.0.0
+ libvlc_SetExitHandler@Base 2.0.0
+ mdate@Base 2.0.0
+ module_config_free@Base 2.0.0
+ module_config_get@Base 2.0.0
+ module_exists@Base 2.0.0
+ module_find@Base 2.0.0
+ module_get_capability@Base 2.0.0
+ module_get_help@Base 2.0.0
+ module_get_name@Base 2.0.0
+ module_get_object@Base 2.0.0
+ module_get_score@Base 2.0.0
+ module_gettext@Base 2.0.0
+ module_list_free@Base 2.0.0
+ module_list_get@Base 2.0.0
+ module_need@Base 2.0.0
+ module_provides@Base 2.0.0
+ module_unneed@Base 2.0.0
+ msleep@Base 2.0.0
+ mwait@Base 2.0.0
+ net_Accept@Base 2.0.0
+ net_AcceptSingle@Base 2.0.0
+ net_Connect@Base 2.0.0
+ net_ConnectDgram@Base 2.0.0
+ net_Gets@Base 2.0.0
+ net_Listen@Base 2.0.0
+ net_ListenClose@Base 2.0.0
+ net_OpenDgram@Base 2.0.0
+ net_Printf@Base 2.0.0
+ net_Read@Base 2.0.0
+ net_SetCSCov@Base 2.0.0
+ net_Write@Base 2.0.0
+ net_vaPrintf@Base 2.0.0
+ picture_BlendSubpicture@Base 2.0.0
+ picture_Clone@Base 3.0.0
+ picture_Copy@Base 2.1.0
+ picture_CopyPixels@Base 2.0.0
+ picture_CopyProperties@Base 2.1.0
+ picture_Export@Base 2.0.0
+ picture_Hold@Base 2.1.0
+ picture_New@Base 2.0.0
+ picture_NewFromFormat@Base 2.0.0
+ picture_NewFromResource@Base 2.0.0
+ picture_Release@Base 2.1.0
+ picture_Reset@Base 2.0.0
+ picture_Setup@Base 2.0.0
+ picture_fifo_Delete@Base 2.0.0
+ picture_fifo_Flush@Base 2.0.0
+ picture_fifo_New@Base 2.0.0
+ picture_fifo_OffsetDate@Base 2.0.0
+ picture_fifo_Peek@Base 2.0.0
+ picture_fifo_Pop@Base 2.0.0
+ picture_fifo_Push@Base 2.0.0
+ picture_pool_Enum@Base 3.0.0
+ picture_pool_Get@Base 2.0.0
+ picture_pool_GetSize@Base 2.0.0
+ picture_pool_New@Base 2.0.0
+ picture_pool_NewExtended@Base 2.0.0
+ picture_pool_NewFromFormat@Base 2.0.0
+ picture_pool_Release@Base 3.0.0
+ picture_pool_Reserve@Base 2.0.0
+ picture_pool_Wait@Base 3.0.0
+ plane_CopyPixels@Base 2.0.0
+ playlist_Add@Base 2.0.0
+ playlist_AddExt@Base 2.0.0
+ playlist_AddInput@Base 2.0.0
+ playlist_AssertLocked@Base 2.0.0
+ playlist_ChildSearchName@Base 2.0.0
+ playlist_Clear@Base 2.0.0
+ playlist_Control@Base 2.0.0
+ playlist_CurrentInput@Base 2.0.0
+ playlist_CurrentInputLocked@Base 3.0.0
+ playlist_CurrentPlayingItem@Base 2.0.0
+ playlist_Deactivate@Base 2.1.0
+ playlist_EnableAudioFilter@Base 2.1.0
+ playlist_Export@Base 2.0.0
+ playlist_GetAout@Base 2.1.0
+ playlist_GetNodeDuration@Base 2.1.0
+ playlist_Import@Base 2.0.0
+ playlist_IsServicesDiscoveryLoaded@Base 2.0.0
+ playlist_ItemGetById@Base 2.0.0
+ playlist_ItemGetByInput@Base 2.0.0
+ playlist_LiveSearchUpdate@Base 2.0.0
+ playlist_Lock@Base 2.0.0
+ playlist_MuteGet@Base 2.1.0
+ playlist_MuteSet@Base 2.1.0
+ playlist_NodeAddCopy@Base 2.0.0
+ playlist_NodeAddInput@Base 2.0.0
+ playlist_NodeCreate@Base 2.0.0
+ playlist_NodeDelete@Base 2.0.0
+ playlist_RecursiveNodeSort@Base 2.0.0
+ playlist_ServicesDiscoveryAdd@Base 2.0.0
+ playlist_ServicesDiscoveryControl@Base 2.0.0
+ playlist_ServicesDiscoveryRemove@Base 2.0.0
+ playlist_SetRenderer@Base 3.0.0
+ playlist_Status@Base 2.0.0
+ playlist_TreeMove@Base 2.0.0
+ playlist_TreeMoveMany@Base 2.0.0
+ playlist_Unlock@Base 2.0.0
+ playlist_VolumeGet@Base 2.1.0
+ playlist_VolumeSet@Base 2.1.0
+ playlist_VolumeUp@Base 2.1.0
+ sdp_AddAttribute@Base 2.0.0
+ sdp_AddMedia@Base 2.0.0
+ secstotimestr@Base 2.0.0
+ sout_AccessOutControl@Base 2.0.0
+ sout_AccessOutDelete@Base 2.0.0
+ sout_AccessOutNew@Base 2.0.0
+ sout_AccessOutRead@Base 2.0.0
+ sout_AccessOutSeek@Base 2.0.0
+ sout_AccessOutWrite@Base 2.0.0
+ sout_AnnounceRegisterSDP@Base 2.0.0
+ sout_AnnounceUnRegister@Base 2.0.0
+ sout_EncoderCreate@Base 2.0.0
+ sout_MuxAddStream@Base 2.0.0
+ sout_MuxDelete@Base 2.0.0
+ sout_MuxDeleteStream@Base 2.0.0
+ sout_MuxFlush@Base 3.0.0
+ sout_MuxGetStream@Base 2.0.0
+ sout_MuxNew@Base 2.0.0
+ sout_MuxSendBuffer@Base 2.0.0
+ sout_StreamChainDelete@Base 2.0.0
+ sout_StreamChainNew@Base 2.0.0
+ spu_ChangeFilters@Base 2.0.0
+ spu_ChangeSources@Base 2.0.0
+ spu_ClearChannel@Base 2.0.0
+ spu_Create@Base 2.0.0
+ spu_Destroy@Base 2.0.0
+ spu_PutSubpicture@Base 2.0.0
+ spu_RegisterChannel@Base 2.0.0
+ spu_Render@Base 2.0.0
+ subpicture_Delete@Base 2.0.0
+ subpicture_New@Base 2.0.0
+ subpicture_NewFromPicture@Base 2.0.0
+ subpicture_Update@Base 2.0.0
+ subpicture_region_ChainDelete@Base 2.0.0
+ subpicture_region_Copy@Base 3.0.0
+ subpicture_region_Delete@Base 2.0.0
+ subpicture_region_New@Base 2.0.0
+ text_segment_ChainDelete@Base 3.0.0
+ text_segment_Copy@Base 3.0.0
+ text_segment_Delete@Base 3.0.0
+ text_segment_New@Base 3.0.0
+ text_segment_NewInheritStyle@Base 3.0.0
+ text_style_Copy@Base 2.0.0
+ text_style_Create@Base 3.0.0
+ text_style_Delete@Base 2.0.0
+ text_style_Duplicate@Base 2.0.0
+ text_style_Merge@Base 3.0.0
+ text_style_New@Base 2.0.0
+ update_Check@Base 2.0.0
+ update_Delete@Base 2.0.0
+ update_Download@Base 2.0.0
+ update_GetRelease@Base 2.0.0
+ update_NeedUpgrade@Base 2.0.0
+ update_New@Base 2.0.0
+ us_asprintf@Base 2.0.0
+ us_atof@Base 2.0.0
+ us_strtod@Base 2.0.0
+ us_strtof@Base 2.0.0
+ us_vasprintf@Base 2.0.0
+ utf8_fprintf@Base 2.0.0
+ utf8_vfprintf@Base 2.0.0
+ var_AddCallback@Base 2.0.0
+ var_AddListCallback@Base 3.0.0
+ var_Change@Base 2.0.0
+ var_Create@Base 2.0.0
+ var_DelCallback@Base 2.0.0
+ var_DelListCallback@Base 3.0.0
+ var_Destroy@Base 2.0.0
+ var_FreeList@Base 2.0.0
+ var_Get@Base 2.0.0
+ var_GetAndSet@Base 2.0.0
+ var_GetChecked@Base 2.0.0
+ var_Inherit@Base 2.0.0
+ var_InheritURational@Base 2.0.0
+ var_LocationParse@Base 2.0.0
+ var_Set@Base 2.0.0
+ var_SetChecked@Base 2.0.0
+ var_TriggerCallback@Base 2.0.0
+ var_Type@Base 2.0.0
+ video_format_ApplyRotation@Base 2.2.0~pre1
+ video_format_CopyCrop@Base 2.0.0
+ video_format_FixRgb@Base 2.0.0
+ video_format_GetTransform@Base 2.2.0~pre1
+ video_format_IsSimilar@Base 2.0.0
+ video_format_Print@Base 2.0.0
+ video_format_ScaleCropAr@Base 2.0.0
+ video_format_Setup@Base 2.0.0
+ video_format_TransformBy@Base 2.2.0~pre1
+ video_format_TransformTo@Base 2.2.0~pre1
+ vlc_CPU@Base 2.0.0
+ vlc_GetCPUCount@Base 2.0.0
+ vlc_Log@Base 2.0.0
+ vlc_LogSet@Base 2.1.0
+ vlc_UrlClean@Base 2.1.0
+ vlc_UrlParse@Base 2.1.0
+ vlc_UrlParseFixup@Base 3.0.0
+ vlc_accept@Base 2.0.0
+ vlc_accept_i11e@Base 3.0.0
+ vlc_access_NewMRL@Base 3.0.0
+ vlc_actions_get_id@Base 3.0.0
+ vlc_actions_get_key_names@Base 3.0.0
+ vlc_actions_get_keycodes@Base 3.0.0
+ vlc_b64_decode@Base 2.0.0
+ vlc_b64_decode_binary@Base 2.0.0
+ vlc_b64_decode_binary_to_buffer@Base 2.0.0
+ vlc_b64_encode@Base 2.0.0
+ vlc_b64_encode_binary@Base 2.0.0
+ vlc_cancel@Base 2.0.0
+ vlc_clone@Base 2.0.0
+ vlc_close@Base 3.0.0
+ vlc_cond_broadcast@Base 2.0.0
+ vlc_cond_destroy@Base 2.0.0
+ vlc_cond_init@Base 2.0.0
+ vlc_cond_signal@Base 2.0.0
+ vlc_cond_timedwait@Base 2.0.0
+ vlc_cond_wait@Base 2.0.0
+ vlc_control_cancel@Base 2.0.0
+ vlc_credential_clean@Base 3.0.0
+ vlc_credential_get@Base 3.0.0
+ vlc_credential_init@Base 3.0.0
+ vlc_credential_store@Base 3.0.0
+ vlc_demux_chained_ControlVa@Base 3.0.0
+ vlc_demux_chained_Delete@Base 3.0.0
+ vlc_demux_chained_New@Base 3.0.0
+ vlc_demux_chained_Send@Base 3.0.0
+ vlc_dialog_display_error@Base 3.0.0
+ vlc_dialog_display_error_va@Base 3.0.0
+ vlc_dialog_display_progress@Base 3.0.0
+ vlc_dialog_display_progress_va@Base 3.0.0
+ vlc_dialog_id_dismiss@Base 3.0.0
+ vlc_dialog_id_get_context@Base 3.0.0
+ vlc_dialog_id_post_action@Base 3.0.0
+ vlc_dialog_id_post_login@Base 3.0.0
+ vlc_dialog_id_set_context@Base 3.0.0
+ vlc_dialog_is_cancelled@Base 3.0.0
+ vlc_dialog_provider_set_callbacks@Base 3.0.0
+ vlc_dialog_provider_set_ext_callback@Base 3.0.0
+ vlc_dialog_release@Base 3.0.0
+ vlc_dialog_update_progress@Base 3.0.0
+ vlc_dialog_update_progress_text@Base 3.0.0
+ vlc_dialog_update_progress_text_va@Base 3.0.0
+ vlc_dialog_wait_login@Base 3.0.0
+ vlc_dialog_wait_login_va@Base 3.0.0
+ vlc_dialog_wait_question@Base 3.0.0
+ vlc_dialog_wait_question_va@Base 3.0.0
+ vlc_drand48@Base 2.0.0
+ vlc_dup@Base 2.0.0
+ vlc_epg_AddEvent@Base 2.0.0
+ vlc_epg_Delete@Base 2.0.0
+ vlc_epg_Duplicate@Base 3.0.0
+ vlc_epg_New@Base 2.0.0
+ vlc_epg_SetCurrent@Base 2.0.0
+ vlc_epg_event_Delete@Base 3.0.0
+ vlc_epg_event_Duplicate@Base 3.0.0
+ vlc_epg_event_New@Base 3.0.0
+ vlc_error@Base 2.0.0
+ vlc_event_attach@Base 2.0.0
+ vlc_event_detach@Base 2.0.0
+ vlc_ext_dialog_update@Base 3.0.0
+ vlc_fifo_DequeueAllUnlocked@Base 3.0.0
+ vlc_fifo_DequeueUnlocked@Base 3.0.0
+ vlc_fifo_GetBytes@Base 3.0.0
+ vlc_fifo_GetCount@Base 3.0.0
+ vlc_fifo_Lock@Base 3.0.0
+ vlc_fifo_QueueUnlocked@Base 3.0.0
+ vlc_fifo_Signal@Base 3.0.0
+ vlc_fifo_Unlock@Base 3.0.0
+ vlc_fifo_Wait@Base 3.0.0
+ vlc_fifo_WaitCond@Base 3.0.0
+ vlc_filenamecmp@Base 3.0.0
+ vlc_fopen@Base 2.0.0
+ vlc_fourcc_AreUVPlanesSwapped@Base 2.0.0
+ vlc_fourcc_GetChromaDescription@Base 2.0.0
+ vlc_fourcc_GetCodec@Base 2.0.0
+ vlc_fourcc_GetCodecAudio@Base 2.0.0
+ vlc_fourcc_GetCodecFromString@Base 2.0.0
+ vlc_fourcc_GetDescription@Base 2.0.0
+ vlc_fourcc_GetRGBFallback@Base 2.0.0
+ vlc_fourcc_GetYUVFallback@Base 2.0.0
+ vlc_fourcc_IsYUV@Base 2.0.0
+ vlc_getProxyUrl@Base 2.1.0
+ vlc_getaddrinfo@Base 2.0.0
+ vlc_getaddrinfo_i11e@Base 3.0.0
+ vlc_getcwd@Base 2.0.0
+ vlc_getnameinfo@Base 2.0.0
+ vlc_gettext@Base 2.0.0
+ vlc_gl_Create@Base 2.0.0
+ vlc_gl_Hold@Base 3.0.0
+ vlc_gl_Release@Base 3.0.0
+ vlc_gl_surface_CheckSize@Base 3.0.0
+ vlc_gl_surface_Create@Base 3.0.0
+ vlc_gl_surface_Destroy@Base 3.0.0
+ vlc_global_mutex@Base 2.0.0
+ vlc_html_color@Base 3.0.0
+ vlc_http_HostNew@Base 2.0.0
+ vlc_http_auth_Deinit@Base 3.0.0
+ vlc_http_auth_FormatAuthorizationHeader@Base 3.0.0
+ vlc_http_auth_Init@Base 3.0.0
+ vlc_http_auth_ParseAuthenticationInfoHeader@Base 3.0.0
+ vlc_http_auth_ParseWwwAuthenticateHeader@Base 3.0.0
+ vlc_http_cookies_destroy@Base 3.0.0
+ vlc_http_cookies_fetch@Base 3.0.0
+ vlc_http_cookies_new@Base 3.0.0
+ vlc_http_cookies_store@Base 3.0.0
+ vlc_https_HostNew@Base 2.0.0
+ vlc_iconv@Base 2.0.0
+ vlc_iconv_close@Base 2.0.0
+ vlc_iconv_open@Base 2.0.0
+ vlc_interrupt_create@Base 3.0.0
+ vlc_interrupt_destroy@Base 3.0.0
+ vlc_interrupt_forward_start@Base 3.0.0
+ vlc_interrupt_forward_stop@Base 3.0.0
+ vlc_interrupt_kill@Base 3.0.0
+ vlc_interrupt_raise@Base 3.0.0
+ vlc_interrupt_register@Base 3.0.0
+ vlc_interrupt_set@Base 3.0.0
+ vlc_interrupt_unregister@Base 3.0.0
+ vlc_join@Base 2.0.0
+ vlc_keycode2str@Base 2.0.0
+ vlc_keystore_create@Base 3.0.0
+ vlc_keystore_find@Base 3.0.0
+ vlc_keystore_release@Base 3.0.0
+ vlc_keystore_release_entries@Base 3.0.0
+ vlc_keystore_remove@Base 3.0.0
+ vlc_keystore_store@Base 3.0.0
+ vlc_killed@Base 3.0.0
+ vlc_list_children@Base 2.0.0
+ vlc_list_release@Base 2.0.0
+ vlc_loaddir@Base 2.0.0
+ vlc_lrand48@Base 2.0.0
+ vlc_lstat@Base 2.0.0
+ vlc_memfd@Base 3.0.0
+ vlc_memstream_close@Base 3.0.0
+ vlc_memstream_flush@Base 3.0.0
+ vlc_memstream_open@Base 3.0.0
+ vlc_memstream_printf@Base 3.0.0
+ vlc_memstream_putc@Base 3.0.0
+ vlc_memstream_puts@Base 3.0.0
+ vlc_memstream_vprintf@Base 3.0.0
+ vlc_memstream_write@Base 3.0.0
+ vlc_meta_AddExtra@Base 2.0.0
+ vlc_meta_CopyExtraNames@Base 2.0.0
+ vlc_meta_Delete@Base 2.0.0
+ vlc_meta_Get@Base 2.2.0
+ vlc_meta_GetExtra@Base 2.0.0
+ vlc_meta_GetExtraCount@Base 2.0.0
+ vlc_meta_GetStatus@Base 2.0.0
+ vlc_meta_Merge@Base 2.0.0
+ vlc_meta_New@Base 2.0.0
+ vlc_meta_Set@Base 2.2.0
+ vlc_meta_SetStatus@Base 2.0.0
+ vlc_meta_TypeToLocalizedString@Base 2.2.0
+ vlc_mime_Ext2Mime@Base 2.1.0
+ vlc_mkdir@Base 2.0.0
+ vlc_mkstemp@Base 2.0.0
+ vlc_module_load@Base 2.0.0
+ vlc_module_unload@Base 2.0.0
+ vlc_mrand48@Base 2.0.0
+ vlc_mutex_destroy@Base 2.0.0
+ vlc_mutex_init@Base 2.0.0
+ vlc_mutex_init_recursive@Base 2.0.0
+ vlc_mutex_lock@Base 2.0.0
+ vlc_mutex_trylock@Base 2.0.0
+ vlc_mutex_unlock@Base 2.0.0
+ vlc_mwait_i11e@Base 3.0.0
+ vlc_ngettext@Base 2.1.0
+ vlc_obj_malloc@Base 3.0.0
+ vlc_obj_calloc@Base 3.0.0
+ vlc_obj_free@Base 3.0.0
+ vlc_object_create@Base 2.0.0
+ vlc_object_find_name@Base 2.0.0
+ vlc_object_get_name@Base 2.0.0
+ vlc_object_hold@Base 2.0.0
+ vlc_object_release@Base 2.0.0
+ vlc_open@Base 2.0.0
+ vlc_openat@Base 2.0.0
+ vlc_opendir@Base 2.0.0
+ vlc_path2uri@Base 2.1.0
+ vlc_pipe@Base 2.0.0
+ vlc_poll_i11e@Base 3.0.0
+ vlc_rand_bytes@Base 2.0.0
+ vlc_rd_get_names@Base 3.0.0
+ vlc_rd_new@Base 3.0.0
+ vlc_rd_probe_add@Base 3.0.0
+ vlc_rd_release@Base 3.0.0
+ vlc_read_i11e@Base 3.0.0
+ vlc_readdir@Base 2.0.0
+ vlc_readdir_helper_additem@Base 3.0.0
+ vlc_readdir_helper_finish@Base 3.0.0
+ vlc_readdir_helper_init@Base 3.0.0
+ vlc_readv_i11e@Base 3.0.0
+ vlc_recvfrom_i11e@Base 3.0.0
+ vlc_recvmsg_i11e@Base 3.0.0
+ vlc_rename@Base 2.0.0
+ vlc_renderer_item_demux_filter@Base 3.0.0
+ vlc_renderer_item_flags@Base 3.0.0
+ vlc_renderer_item_hold@Base 3.0.0
+ vlc_renderer_item_icon_uri@Base 3.0.0
+ vlc_renderer_item_name@Base 3.0.0
+ vlc_renderer_item_new@Base 3.0.0
+ vlc_renderer_item_release@Base 3.0.0
+ vlc_renderer_item_sout@Base 3.0.0
+ vlc_renderer_item_type@Base 3.0.0
+ vlc_restorecancel@Base 2.0.0
+ vlc_rtsp_HostNew@Base 2.0.0
+ vlc_rwlock_destroy@Base 2.0.0
+ vlc_rwlock_init@Base 2.0.0
+ vlc_rwlock_rdlock@Base 2.0.0
+ vlc_rwlock_unlock@Base 2.0.0
+ vlc_rwlock_wrlock@Base 2.0.0
+ vlc_savecancel@Base 2.0.0
+ vlc_scandir@Base 2.0.0
+ vlc_sd_Create@Base 2.0.0
+ vlc_sd_Destroy@Base 2.0.0
+ vlc_sd_GetNames@Base 2.0.0
+ vlc_sd_probe_Add@Base 2.0.0
+ vlc_sdp_Start@Base 2.0.0
+ vlc_sem_destroy@Base 2.0.0
+ vlc_sem_init@Base 2.0.0
+ vlc_sem_post@Base 2.0.0
+ vlc_sem_wait@Base 2.0.0
+ vlc_sem_wait_i11e@Base 3.0.0
+ vlc_sendmsg_i11e@Base 3.0.0
+ vlc_sendto_i11e@Base 3.0.0
+ vlc_socket@Base 2.0.2
+ vlc_socketpair@Base 3.0.0
+ vlc_stat@Base 2.0.0
+ vlc_str2keycode@Base 2.0.0
+ vlc_strcasestr@Base 2.0.0
+ vlc_stream_Block@Base 3.0.0
+ vlc_stream_CommonNew@Base 3.0.0
+ vlc_stream_Delete@Base 3.0.0
+ vlc_stream_Eof@Base 3.0.0
+ vlc_stream_FilterDefaultReadDir@Base 3.0.0
+ vlc_stream_FilterNew@Base 3.0.0
+ vlc_stream_MemoryNew@Base 3.0.0
+ vlc_stream_NewMRL@Base 3.0.0
+ vlc_stream_NewURL@Base 3.0.0
+ vlc_stream_Peek@Base 3.0.0
+ vlc_stream_Read@Base 3.0.0
+ vlc_stream_ReadBlock@Base 3.0.0
+ vlc_stream_ReadDir@Base 3.0.0
+ vlc_stream_ReadLine@Base 3.0.0
+ vlc_stream_ReadPartial@Base 3.0.0
+ vlc_stream_Seek@Base 3.0.0
+ vlc_stream_Tell@Base 3.0.0
+ vlc_stream_directory_Attach@Base 3.0.0
+ vlc_stream_extractor_Attach@Base 3.0.0
+ vlc_stream_extractor_CreateMRL@Base 3.0.0
+ vlc_stream_fifo_Close@Base 3.0.0
+ vlc_stream_fifo_New@Base 3.0.0
+ vlc_stream_fifo_Queue@Base 3.0.0
+ vlc_stream_fifo_Write@Base 3.0.0
+ vlc_stream_vaControl@Base 3.0.0
+ vlc_strerror@Base 2.2.0~pre1
+ vlc_strerror_c@Base 2.2.0~pre1
+ vlc_strfinput@Base 3.0.0
+ vlc_strftime@Base 3.0.0
+ vlc_testcancel@Base 2.0.0
+ vlc_thread_id@Base 3.0.0
+ vlc_thread_self@Base 3.0.0
+ vlc_threadvar_create@Base 2.0.0
+ vlc_threadvar_delete@Base 2.0.0
+ vlc_threadvar_get@Base 2.0.0
+ vlc_threadvar_set@Base 2.0.0
+ vlc_timer_create@Base 2.0.0
+ vlc_timer_destroy@Base 2.0.0
+ vlc_timer_getoverrun@Base 2.0.0
+ vlc_timer_schedule@Base 2.0.0
+ vlc_tls_ClientCreate@Base 2.0.0
+ vlc_tls_ClientSessionCreate@Base 2.1.0
+ vlc_tls_Delete@Base 2.1.0
+ vlc_tls_GetLine@Base 3.0.0
+ vlc_tls_Read@Base 3.0.0
+ vlc_tls_ServerCreate@Base 3.0.0
+ vlc_tls_ServerSessionCreate@Base 3.0.0
+ vlc_tls_SessionDelete@Base 2.1.0
+ vlc_tls_SocketOpen@Base 3.0.0
+ vlc_tls_SocketOpenAddrInfo@Base 3.0.0
+ vlc_tls_SocketOpenTCP@Base 3.0.0
+ vlc_tls_SocketOpenTLS@Base 3.0.0
+ vlc_tls_SocketPair@Base 3.0.0
+ vlc_tls_Write@Base 3.0.0
+ vlc_towc@Base 3.0.0
+ vlc_unlink@Base 2.0.0
+ vlc_ureduce@Base 2.0.0
+ vlc_uri2path@Base 3.0.0
+ vlc_uri_compose@Base 3.0.0
+ vlc_uri_decode@Base 3.0.0
+ vlc_uri_decode_duplicate@Base 3.0.0
+ vlc_uri_encode@Base 3.0.0
+ vlc_uri_fixup@Base 3.0.0
+ vlc_uri_resolve@Base 3.0.0
+ vlc_vaLog@Base 2.0.0
+ vlc_write@Base 3.0.0
+ vlc_write_i11e@Base 3.0.0
+ vlc_writev@Base 3.0.0
+ vlc_writev_i11e@Base 3.0.0
+ vlc_xml_decode@Base 3.0.0
+ vlc_xml_encode@Base 3.0.0
+ vlm_Control@Base 2.0.0
+ vlm_Delete@Base 2.0.0
+ vlm_ExecuteCommand@Base 2.0.0
+ vlm_MessageAdd@Base 2.0.0
+ vlm_MessageDelete@Base 2.0.0
+ vlm_MessageNew@Base 2.0.0
+ vlm_MessageSimpleNew@Base 2.0.0
+ vlm_New@Base 2.0.0
+ vout_ChangeAspectRatio@Base 2.2.0~pre1
+ vout_Close@Base 2.0.0
+ vout_FlushSubpictureChannel@Base 2.0.0
+ vout_GetPicture@Base 2.0.0
+ vout_GetSnapshot@Base 2.0.0
+ vout_OSDEpg@Base 2.0.0
+ vout_OSDIcon@Base 2.0.0
+ vout_OSDMessage@Base 2.0.0
+ vout_OSDSlider@Base 2.0.0
+ vout_OSDText@Base 2.0.0
+ vout_PutPicture@Base 2.0.0
+ vout_PutSubpicture@Base 2.0.0
+ vout_RegisterSubpictureChannel@Base 2.0.0
+ vout_Request@Base 2.0.0
+ vout_display_GetDefaultDisplaySize@Base 2.0.0
+ vout_display_PlacePicture@Base 2.0.0
+ vout_display_SendMouseMovedDisplayCoordinates@Base 2.2.0~pre1
+ vout_window_Delete@Base 2.0.0
+ vout_window_New@Base 2.0.0
+ xml_Create@Base 2.0.0
+ xml_Delete@Base 2.0.0
+ xml_ReaderCreate@Base 2.0.0
+ xml_ReaderDelete@Base 2.0.0
+ xml_ReaderReset@Base 2.0.0
--- /dev/null
+From: =?utf-8?q?R=C3=A9mi_Denis-Courmont?= <remi@remlab.net>
+Date: Sat, 16 Jun 2018 21:31:45 +0300
+Subject: configure: fix linking on RISC-V ISA
+
+---
+ configure.ac | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/configure.ac b/configure.ac
+index 8fa2a87..079a00d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -113,6 +113,7 @@ case "${host_os}" in
+ ;;
+ linux*)
+ SYS=linux
++ test "${host_cpu}" = "riscv64" && CFLAGS="${CFLAGS} -pthread"
+ ;;
+ bsdi*)
+ SYS=bsdi
--- /dev/null
+From: Sebastian Ramacher <sramacher@debian.org>
+Date: Tue, 7 Jul 2020 00:18:39 +0200
+Subject: Do not generate cache during build
+
+The generated cache is not used in the package. It causes spurious build
+failures on the arm64 and ppc64el builds, that are not reproducible
+elsewhere.
+---
+ Makefile.am | 16 ----------------
+ bin/Makefile.am | 18 ------------------
+ 2 files changed, 34 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index ba1d4fc..9d00f51 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -162,22 +162,6 @@ endif
+ TESTS = test/run_vlc.sh
+ dist_noinst_SCRIPTS += test/run_vlc.sh
+
+-if BUILD_VLC
+-###############################################################################
+-# Installing plugins cache
+-###############################################################################
+-install-exec-hook:
+- if test "$(build)" = "$(host)"; then \
+- PATH="$(DESTDIR)$(bindir):$$PATH" \
+- LD_LIBRARY_PATH="$(DESTDIR)$(libdir):$$LD_LIBRARY_PATH" \
+- DYLD_LIBRARY_PATH="$(DESTDIR)$(libdir):$$DYLD_LIBRARY_PATH" \
+- "$(DESTDIR)$(vlclibdir)/vlc-cache-gen$(EXEEXT)" \
+- "$(DESTDIR)$(vlclibdir)/plugins" ; \
+- else \
+- echo "Cross-compilation: cache generation skipped!" ; \
+- fi
+-endif
+-
+ uninstall-hook:
+ rm -f -- "$(DESTDIR)$(vlclibdir)/plugins/plugins.dat"
+
+diff --git a/bin/Makefile.am b/bin/Makefile.am
+index 4de299d..a2acc3c 100644
+--- a/bin/Makefile.am
++++ b/bin/Makefile.am
+@@ -124,14 +124,6 @@ vlc_cache_gen_LDFLAGS = -Wc,-static
+ vlc_cache_gen_DEPENDENCIES = vlc_win32_rc.$(OBJEXT)
+ endif
+
+-#
+-# Plug-ins cache
+-#
+-if HAVE_DYNAMIC_PLUGINS
+-noinst_DATA = ../modules/plugins.dat
+-endif
+-MOSTLYCLEANFILES = $(noinst_DATA)
+-
+ if HAVE_OSX
+ if BUILD_VLC
+ install-data-local:
+@@ -139,13 +131,3 @@ install-data-local:
+
+ endif
+ endif
+-
+-.PHONY: ../modules/plugins.dat
+-
+-../modules/plugins.dat: vlc-cache-gen$(EXEEXT)
+- $(AM_V_at)rm -f ../modules/plugins.dat
+- $(AM_V_GEN)if test "$(build)" = "$(host)"; then \
+- ./vlc-cache-gen$(EXEEXT) `realpath ../modules` ; \
+- else \
+- echo "Cross-compilation: cache generation skipped!" ; \
+- fi
--- /dev/null
+From: Sebastian Ramacher <sramacher@debian.org>
+Date: Wed, 28 Feb 2024 23:55:22 +0100
+Subject: Bump module ABI for time_t transition
+
+---
+ include/vlc_plugin.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/include/vlc_plugin.h b/include/vlc_plugin.h
+index ce28562..00f5667 100644
+--- a/include/vlc_plugin.h
++++ b/include/vlc_plugin.h
+@@ -188,8 +188,8 @@ enum vlc_module_properties
+ /**
+ * Current plugin ABI version
+ */
+-# define MODULE_SYMBOL 3_0_0f
+-# define MODULE_SUFFIX "__3_0_0f"
++# define MODULE_SYMBOL 3_0_0ft64
++# define MODULE_SUFFIX "__3_0_0ft64"
+
+ /*****************************************************************************
+ * Add a few defines. You do not want to read this section. Really.
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Wed, 5 Jun 2024 11:55:39 +0200
+Subject: demux: image: detect ICC profile before JFIF data
+
+Fixes #18857
+
+(cherry picked from commit 5ffd36ffa26a83ae498373f7d0ace1d82ab952f4)
+Signed-off-by: Steve Lhomme <robux4@ycbcr.xyz>
+---
+ modules/demux/image.c | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/modules/demux/image.c b/modules/demux/image.c
+index 239f5d4..e72d5a4 100644
+--- a/modules/demux/image.c
++++ b/modules/demux/image.c
+@@ -392,7 +392,7 @@ static uint8_t FindJpegMarker(size_t *position, const uint8_t *data, size_t size
+ static bool IsJfif(stream_t *s)
+ {
+ const uint8_t *header;
+- ssize_t peek = vlc_stream_Peek(s, &header, 256);
++ ssize_t peek = vlc_stream_Peek(s, &header, 4096);
+ if(peek < 256)
+ return false;
+ size_t size = (size_t) peek;
+@@ -400,6 +400,16 @@ static bool IsJfif(stream_t *s)
+
+ if (FindJpegMarker(&position, header, size) != 0xd8)
+ return false;
++ if (FindJpegMarker(&position, header, size) == 0xe2) // ICC Profile
++ {
++ size_t icc_size = GetWBE(&header[position]);
++ position += 2;
++ if (position + 12 > size)
++ return false;
++ if (memcmp(&header[position], "ICC_PROFILE\0", 12))
++ return false;
++ position += icc_size - 2;
++ }
+ if (FindJpegMarker(&position, header, size) != 0xe0)
+ return false;
+ position += 2; /* Skip size */
--- /dev/null
+From: =?utf-8?q?Fran=C3=A7ois_Cartegnie?= <fcvlcdev@free.fr>
+Date: Tue, 11 Jun 2024 17:26:11 +0700
+Subject: demux: avi: do not set up invalid bitsperpixel
+
+UINT16_MAX is set and propagated from the bitmap header reader
+
+refs #28661
+---
+ modules/demux/avi/avi.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/modules/demux/avi/avi.c b/modules/demux/avi/avi.c
+index 4a8296d..7059ca9 100644
+--- a/modules/demux/avi/avi.c
++++ b/modules/demux/avi/avi.c
+@@ -737,7 +737,8 @@ static int Open( vlc_object_t * p_this )
+ tk->fmt.video.i_width = p_bih->biWidth;
+ tk->fmt.video.i_visible_height =
+ tk->fmt.video.i_height = p_bih->biHeight;
+- tk->fmt.video.i_bits_per_pixel = p_bih->biBitCount;
++ if( p_bih->biBitCount <= 32 )
++ tk->fmt.video.i_bits_per_pixel = p_bih->biBitCount;
+ tk->fmt.video.i_frame_rate = tk->i_rate;
+ tk->fmt.video.i_frame_rate_base = tk->i_scale;
+
--- /dev/null
+From: Tristan Matthews <tmatth@videolan.org>
+Date: Wed, 1 Feb 2023 23:39:36 -0500
+Subject: opus_header: fix channel mapping family 1 parsing
+
+Fixes #27808
+
+(cherry picked from commit 79fa6af0a98921f9d34933761f4fe20ef6c35309)
+---
+ modules/codec/opus_header.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/codec/opus_header.c b/modules/codec/opus_header.c
+index 4069a5c..b134b20 100644
+--- a/modules/codec/opus_header.c
++++ b/modules/codec/opus_header.c
+@@ -205,7 +205,7 @@ int opus_header_parse(const unsigned char *packet, int len, OpusHeader *h)
+ h->nb_coupled = ch;
+
+ /* Multi-stream support */
+- if(h->channel_mapping == 2)
++ if(h->channel_mapping <= 2)
+ {
+ if (h->nb_coupled + h->nb_streams > 255)
+ return 0;
--- /dev/null
+From: Alexandre Janniaux <ajanni@videolabs.io>
+Date: Fri, 21 Jun 2024 16:11:28 +0200
+Subject: vlc_common: remove warnings on VLC_OBJECT
+
+Fix an infinite amount of warnings on Darwin:
+
+ ../../include/vlc_variables.h:563:5: warning: due to lvalue conversion of the controlling expression, association of type 'const struct vlc_common_members' will never be selected because it is qualified [-Wunreachable-code-generic-assoc]
+ var_Create( p_obj, psz_name, VLC_VAR_STRING | VLC_VAR_DOINHERIT
+ ^
+ ../../include/vlc_variables.h:122:39: note: expanded from macro 'var_Create'
+ #define var_Create(a,b,c) var_Create( VLC_OBJECT(a), b, c )
+ ^
+ ../../include/vlc_common.h:481:15: note: expanded from macro 'VLC_OBJECT'
+ const struct vlc_common_members: (const vlc_object_t *)(&(x)->obj) \
+---
+ include/vlc_common.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/include/vlc_common.h b/include/vlc_common.h
+index 0898785..bc689c4 100644
+--- a/include/vlc_common.h
++++ b/include/vlc_common.h
+@@ -477,8 +477,8 @@ struct vlc_common_members
+ #if !defined(__cplusplus)
+ # define VLC_OBJECT(x) \
+ _Generic((x)->obj, \
+- struct vlc_common_members: (vlc_object_t *)(&(x)->obj), \
+- const struct vlc_common_members: (const vlc_object_t *)(&(x)->obj) \
++ vlc_object_t: (vlc_object_t *)(&(x)->obj), \
++ struct vlc_common_members: (vlc_object_t *)(x) \
+ )
+ #else
+ # define VLC_OBJECT( x ) ((vlc_object_t *)&(x)->obj)
--- /dev/null
+From: Alaric Senat <alaric@videolabs.io>
+Date: Mon, 24 Jun 2024 18:11:23 +0200
+Subject: transcode: fix destructive assignment after drain
+
+The drain checks are done after the first encoder output fetch. At this
+point, `out` is already filled with some frames gotten from the encoder
+some lines above:
+
+```
+// ...
+ if( p_sys->i_threads >= 1 )
+ {
+ /* Pick up any return data the encoder thread wants to output. */
+ vlc_mutex_lock( &p_sys->lock_out );
+ *out = p_sys->p_buffers;
+ p_sys->p_buffers = NULL;
+ vlc_mutex_unlock( &p_sys->lock_out );
+ }
+
+// ...
+```
+
+This assignment currently leaks all previously gathered frames to
+replace them by the drained output. This patch appends the drained
+frames to the existing output instead.
+---
+ modules/stream_out/transcode/video.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/stream_out/transcode/video.c b/modules/stream_out/transcode/video.c
+index 9070bab..e2065af 100644
+--- a/modules/stream_out/transcode/video.c
++++ b/modules/stream_out/transcode/video.c
+@@ -906,7 +906,7 @@ end:
+
+ vlc_join( p_stream->p_sys->thread, NULL );
+ vlc_mutex_lock( &p_sys->lock_out );
+- *out = p_sys->p_buffers;
++ block_ChainAppend(out, p_sys->p_buffers);
+ p_sys->p_buffers = NULL;
+ vlc_mutex_unlock( &p_sys->lock_out );
+
--- /dev/null
+From: Alaric Senat <alaric@videolabs.io>
+Date: Mon, 24 Jun 2024 18:11:59 +0200
+Subject: transcode: fix picture fifo leak
+
+Draining sets the abort flag. It was skipping the picture fifo deletion
+before.
+---
+ modules/stream_out/transcode/video.c | 17 ++++++++++-------
+ 1 file changed, 10 insertions(+), 7 deletions(-)
+
+diff --git a/modules/stream_out/transcode/video.c b/modules/stream_out/transcode/video.c
+index e2065af..c6fe9a5 100644
+--- a/modules/stream_out/transcode/video.c
++++ b/modules/stream_out/transcode/video.c
+@@ -658,17 +658,20 @@ static int transcode_video_encoder_open( sout_stream_t *p_stream,
+ void transcode_video_close( sout_stream_t *p_stream,
+ sout_stream_id_sys_t *id )
+ {
+- if( p_stream->p_sys->i_threads >= 1 && !p_stream->p_sys->b_abort )
++ if( p_stream->p_sys->i_threads >= 1 )
+ {
+- vlc_mutex_lock( &p_stream->p_sys->lock_out );
+- p_stream->p_sys->b_abort = true;
+- vlc_cond_signal( &p_stream->p_sys->cond );
+- vlc_mutex_unlock( &p_stream->p_sys->lock_out );
++ if (!p_stream->p_sys->b_abort)
++ {
++ vlc_mutex_lock( &p_stream->p_sys->lock_out );
++ p_stream->p_sys->b_abort = true;
++ vlc_cond_signal( &p_stream->p_sys->cond );
++ vlc_mutex_unlock( &p_stream->p_sys->lock_out );
+
+- vlc_join( p_stream->p_sys->thread, NULL );
++ vlc_join( p_stream->p_sys->thread, NULL );
++ block_ChainRelease( p_stream->p_sys->p_buffers );
++ }
+
+ picture_fifo_Delete( p_stream->p_sys->pp_pics );
+- block_ChainRelease( p_stream->p_sys->p_buffers );
+ }
+
+ if( p_stream->p_sys->i_threads >= 1 )
--- /dev/null
+From: Aleksey Vasenev <margtu-fivt@ya.ru>
+Date: Sun, 23 Jun 2024 22:41:39 +0300
+Subject: sftp: fix seek for large files on 32-bit OS
+
+(cherry picked from commit 4698e0336447de8dc6f7214743082cc55b6ebd77)
+---
+ modules/access/sftp.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/access/sftp.c b/modules/access/sftp.c
+index 6ea5865..edf41fb 100644
+--- a/modules/access/sftp.c
++++ b/modules/access/sftp.c
+@@ -547,7 +547,7 @@ static int Seek( stream_t* p_access, uint64_t i_pos )
+ {
+ access_sys_t *sys = p_access->p_sys;
+
+- libssh2_sftp_seek( sys->file, i_pos );
++ libssh2_sftp_seek64( sys->file, i_pos );
+ return VLC_SUCCESS;
+ }
+
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Wed, 3 Jul 2024 14:12:17 +0200
+Subject: qt: hardcode the name of the shortcut for the AMD VQ Enhancer
+
+Otherwise the name is the same of the DLL which doesn't correspond to
+the shortcut we need to use.
+
+Fixes #28691
+---
+ modules/gui/qt/components/preferences_widgets.cpp | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/modules/gui/qt/components/preferences_widgets.cpp b/modules/gui/qt/components/preferences_widgets.cpp
+index 64121b6..b634d53 100644
+--- a/modules/gui/qt/components/preferences_widgets.cpp
++++ b/modules/gui/qt/components/preferences_widgets.cpp
+@@ -632,9 +632,15 @@ ModuleListConfigControl::~ModuleListConfigControl()
+ void ModuleListConfigControl::checkbox_lists( module_t *p_parser )
+ {
+ const char *help = module_get_help( p_parser );
+- checkbox_lists( qtr( module_GetLongName( p_parser ) ),
++ const char *module_name = module_GetLongName( p_parser );
++ const char *module_shortcut = module_get_object( p_parser );
++
++ if ( !strcmp(module_name, "AMD VQ Enhancer"))
++ module_shortcut = "amf_vqenhancer";
++
++ checkbox_lists( qtr( module_name ),
+ help != NULL ? qtr( help ): "",
+- module_get_object( p_parser ) );
++ module_shortcut );
+ }
+
+ void ModuleListConfigControl::checkbox_lists( QString label, QString help, const char* psz_module )
--- /dev/null
+From: =?utf-8?q?Fran=C3=A7ois_Cartegnie?= <fcvlcdev@free.fr>
+Date: Tue, 2 Jul 2024 10:31:51 +0200
+Subject: packetizer: h264: fix reading prediction weight tables
+
+(cherry picked from commit f878115e184a4d896e4df39bccbde32ea6d9357c)
+---
+ modules/packetizer/h264_nal.c | 4 ++--
+ modules/packetizer/h264_nal.h | 1 +
+ modules/packetizer/h264_slice.c | 3 ++-
+ 3 files changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/modules/packetizer/h264_nal.c b/modules/packetizer/h264_nal.c
+index 10c267e..2c70771 100644
+--- a/modules/packetizer/h264_nal.c
++++ b/modules/packetizer/h264_nal.c
+@@ -591,8 +591,8 @@ static bool h264_parse_picture_parameter_set_rbsp( bs_t *p_bs,
+ }
+ }
+
+- bs_read_ue( p_bs ); /* num_ref_idx_l0_default_active_minus1 */
+- bs_read_ue( p_bs ); /* num_ref_idx_l1_default_active_minus1 */
++ p_pps->num_ref_idx_l01_default_active_minus1[0] = bs_read_ue( p_bs );
++ p_pps->num_ref_idx_l01_default_active_minus1[1] = bs_read_ue( p_bs );
+ p_pps->weighted_pred_flag = bs_read( p_bs, 1 );
+ p_pps->weighted_bipred_idc = bs_read( p_bs, 2 );
+ bs_read_se( p_bs ); /* pic_init_qp_minus26 */
+diff --git a/modules/packetizer/h264_nal.h b/modules/packetizer/h264_nal.h
+index edb9c04..5f6d74a 100644
+--- a/modules/packetizer/h264_nal.h
++++ b/modules/packetizer/h264_nal.h
+@@ -150,6 +150,7 @@ struct h264_picture_parameter_set_t
+ uint8_t i_redundant_pic_present_flag;
+ uint8_t weighted_pred_flag;
+ uint8_t weighted_bipred_idc;
++ uint32_t num_ref_idx_l01_default_active_minus1[2];
+ };
+
+ struct h264_sequence_parameter_set_extension_t
+diff --git a/modules/packetizer/h264_slice.c b/modules/packetizer/h264_slice.c
+index d05256e..1c4d2a2 100644
+--- a/modules/packetizer/h264_slice.c
++++ b/modules/packetizer/h264_slice.c
+@@ -101,7 +101,8 @@ bool h264_decode_slice( const uint8_t *p_buffer, size_t i_buffer,
+ if( p_pps->i_redundant_pic_present_flag )
+ bs_read_ue( &s ); /* redudant_pic_count */
+
+- unsigned num_ref_idx_l01_active_minus1[2] = {0 , 0};
++ uint32_t num_ref_idx_l01_active_minus1[2] = { p_pps->num_ref_idx_l01_default_active_minus1[0],
++ p_pps->num_ref_idx_l01_default_active_minus1[1] };
+
+ if( i_slice_type == 1 || i_slice_type == 6 ) /* B slices */
+ bs_read1( &s ); /* direct_spatial_mv_pred_flag */
--- /dev/null
+From: =?utf-8?q?Fran=C3=A7ois_Cartegnie?= <fcvlcdev@free.fr>
+Date: Wed, 26 Jun 2024 16:36:01 +0700
+Subject: demux: adaptive: fix start with indexes only
+
+refs #28683
+
+(cherry picked from commit 9f9c466bc14c1dcd75564c7cd18d031ea9e76325)
+---
+ modules/demux/adaptive/SegmentTracker.cpp | 6 +++---
+ modules/demux/adaptive/Streams.cpp | 3 +++
+ 2 files changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/modules/demux/adaptive/SegmentTracker.cpp b/modules/demux/adaptive/SegmentTracker.cpp
+index 1ffae9e..f40013a 100644
+--- a/modules/demux/adaptive/SegmentTracker.cpp
++++ b/modules/demux/adaptive/SegmentTracker.cpp
+@@ -296,7 +296,7 @@ SegmentTracker::prepareChunk(bool switch_allowed, Position pos) const
+ bool b_gap = true;
+ ISegment *datasegment = pos.rep->getNextMediaSegment(pos.number, &pos.number, &b_gap);
+
+- if(!datasegment)
++ if(!datasegment && (!pos.rep->needsIndex() || pos.index_sent))
+ return ChunkEntry();
+
+ ISegment *segment = nullptr;
+@@ -322,12 +322,12 @@ SegmentTracker::prepareChunk(bool switch_allowed, Position pos) const
+ if(!segmentChunk)
+ return ChunkEntry();
+
+- if(segment != datasegment) /* need to set for init */
++ if(segment != datasegment && datasegment) /* need to set for init */
+ segmentChunk->discontinuitySequenceNumber = datasegment->getDiscontinuitySequenceNumber();
+
+ vlc_tick_t startTime = VLC_TICK_INVALID;
+ vlc_tick_t duration = 0;
+- vlc_tick_t displayTime = datasegment->getDisplayTime();
++ vlc_tick_t displayTime = datasegment ? datasegment->getDisplayTime() : VLC_TICK_INVALID;
+ /* timings belong to timeline and are not set on the segment or need profile timescale */
+ if(pos.rep->getPlaybackTimeDurationBySegmentNumber(pos.number, &startTime, &duration))
+ startTime += VLC_TICK_0;
+diff --git a/modules/demux/adaptive/Streams.cpp b/modules/demux/adaptive/Streams.cpp
+index c15d7e1..f2a4719 100644
+--- a/modules/demux/adaptive/Streams.cpp
++++ b/modules/demux/adaptive/Streams.cpp
+@@ -625,11 +625,14 @@ ChunkInterface * AbstractStream::getNextChunk() const
+ {
+ const bool b_restarting = fakeEsOut()->restarting();
+ ChunkInterface *ck = segmentTracker->getNextChunk(!b_restarting);
++
+ if(ck && !fakeEsOut()->hasSegmentStartTimes())
+ fakeEsOut()->setSegmentStartTimes(startTimeContext);
+
+ if(ck && !fakeEsOut()->hasSynchronizationReference())
+ {
++ if(!fakeEsOut()->hasSegmentStartTimes())
++ return ck;
+ assert(fakeEsOut()->hasSegmentStartTimes());
+ SynchronizationReference r;
+ if(segmentTracker->getSynchronizationReference(currentSequence, startTimeContext.media, r))
--- /dev/null
+From: =?utf-8?q?Felix_Paul_K=C3=BChne?= <fkuehne@videolan.org>
+Date: Thu, 4 Jul 2024 06:29:28 +0200
+Subject: UPnP: remove SAT>IP channel list fallback
+
+When introducing SAT>IP support, we added a fallback mechanism on
+officially published channel lists in case the user neither specified
+a custom list nor the used set-top box provided one.
+
+With the end of the SAT>IP Alliance that was dissolved 3 years ago, the
+fallback server is no longer available and there will be no replacement
+so this feature was removed.
+
+Fixes #28684
+
+(cherry picked from commit 3df7b6e1187030591febd8e1bdd2712c0d6af132)
+---
+ modules/services_discovery/upnp.cpp | 125 +++++++++---------------------------
+ 1 file changed, 31 insertions(+), 94 deletions(-)
+
+diff --git a/modules/services_discovery/upnp.cpp b/modules/services_discovery/upnp.cpp
+index 428aeff..8b021af 100644
+--- a/modules/services_discovery/upnp.cpp
++++ b/modules/services_discovery/upnp.cpp
+@@ -73,14 +73,7 @@ const char* MEDIA_SERVER_DEVICE_TYPE = "urn:schemas-upnp-org:device:MediaServer:
+ const char* CONTENT_DIRECTORY_SERVICE_TYPE = "urn:schemas-upnp-org:service:ContentDirectory:1";
+ const char* SATIP_SERVER_DEVICE_TYPE = "urn:ses-com:device:SatIPServer:1";
+
+-#define SATIP_CHANNEL_LIST N_("SAT>IP channel list")
+ #define SATIP_CHANNEL_LIST_URL N_("Custom SAT>IP channel list URL")
+-static const char *const ppsz_satip_channel_lists[] = {
+- "auto", "ASTRA_19_2E", "ASTRA_28_2E", "ASTRA_23_5E", "MasterList", "ServerList", "CustomList"
+-};
+-static const char *const ppsz_readible_satip_channel_lists[] = {
+- N_("Auto"), "Astra 19.2°E", "Astra 28.2°E", "Astra 23.5°E", N_("Master List"), N_("Server List"), N_("Custom List")
+-};
+
+ /*
+ * VLC handle
+@@ -128,9 +121,7 @@ vlc_module_begin()
+ set_capability( "services_discovery", 0 );
+ set_callbacks( SD::Open, SD::Close );
+
+- add_string( "satip-channelist", "auto", SATIP_CHANNEL_LIST,
+- SATIP_CHANNEL_LIST, false )
+- change_string_list( ppsz_satip_channel_lists, ppsz_readible_satip_channel_lists )
++ add_obsolete_string( "satip-channelist" ) /* since 3.0.22 */
+ add_string( "satip-channellist-url", NULL, SATIP_CHANNEL_LIST_URL,
+ SATIP_CHANNEL_LIST_URL, false )
+
+@@ -606,114 +597,60 @@ MediaServerList::parseSatipServer( IXML_Element* p_device_element, const char *p
+ {
+ SD::MediaServerDesc* p_server = NULL;
+
+- char *psz_satip_channellist = var_InheritString( m_sd, "satip-channelist");
+-
+- /* In Auto mode, default to MasterList list from satip.info */
+- bool automode = false;
+- if( !psz_satip_channellist || /* On lookup failure or empty string, use auto mode */
+- strcmp(psz_satip_channellist, "auto") == 0 ||
+- strcmp(psz_satip_channellist, "Auto") == 0 ) /* for backwards compatibility */
+- {
+- automode = true;
+- if( psz_satip_channellist )
+- free(psz_satip_channellist);
+- psz_satip_channellist = strdup( "MasterList" );
+- if( unlikely( !psz_satip_channellist ) )
+- return;
+- }
+-
+ vlc_url_t url;
+ vlc_UrlParse( &url, psz_base_url );
+
+ /* Part 1: a user may have provided a custom playlist url */
+- if (strcmp(psz_satip_channellist, "CustomList") == 0) {
+- char *psz_satip_playlist_url = var_InheritString( m_sd, "satip-channellist-url" );
+- if ( psz_satip_playlist_url ) {
+- p_server = new(std::nothrow) SD::MediaServerDesc( psz_udn, psz_friendly_name, psz_satip_playlist_url, iconUrl );
+-
+- if( likely( p_server ) ) {
+- p_server->satIpHost = url.psz_host;
+- p_server->isSatIp = true;
+- if( !addServer( p_server ) ) {
+- delete p_server;
+- }
+- }
++ char *psz_satip_playlist_url = var_InheritString( m_sd, "satip-channellist-url" );
++ if ( psz_satip_playlist_url ) {
++ p_server = new(std::nothrow) SD::MediaServerDesc( psz_udn, psz_friendly_name, psz_satip_playlist_url, iconUrl );
+
+- /* to comply with the SAT>IP specification, we don't fall back on another channel list if this path failed */
+- free( psz_satip_channellist );
+- free( psz_satip_playlist_url );
+- vlc_UrlClean( &url );
+- return;
++ if ( likely( p_server ) ) {
++ p_server->satIpHost = url.psz_host;
++ p_server->isSatIp = true;
++ if( !addServer( p_server ) ) {
++ delete p_server;
++ }
+ }
++
++ /* to comply with the SAT>IP specification, we don't fall back on another channel list if this path failed */
++ free( psz_satip_playlist_url );
++ vlc_UrlClean( &url );
++ return;
+ }
+
+ /* Part 2: device playlist
+ * In Automatic mode, or if requested by the user, check for a SAT>IP m3u list on the device */
+- if (automode || strcmp(psz_satip_channellist, "ServerList") == 0) {
+- const char* psz_m3u_url = xml_getChildElementValue( p_device_element, "satip:X_SATIPM3U" );
+- if ( psz_m3u_url ) {
+- if ( strncmp( "http", psz_m3u_url, 4) )
+- {
+- char* psz_url = NULL;
+- if ( UpnpResolveURL2( psz_base_url, psz_m3u_url, &psz_url ) == UPNP_E_SUCCESS )
+- {
+- p_server = new(std::nothrow) SD::MediaServerDesc( psz_udn, psz_friendly_name, psz_url, iconUrl );
+- free(psz_url);
+- }
+- } else {
+- p_server = new(std::nothrow) SD::MediaServerDesc( psz_udn, psz_friendly_name, psz_m3u_url, iconUrl );
+- }
+-
+- if ( unlikely( !p_server ) )
++ const char* psz_m3u_url = xml_getChildElementValue( p_device_element, "satip:X_SATIPM3U" );
++ if ( psz_m3u_url ) {
++ if ( strncmp( "http", psz_m3u_url, 4) )
++ {
++ char* psz_url = NULL;
++ if ( UpnpResolveURL2( psz_base_url, psz_m3u_url, &psz_url ) == UPNP_E_SUCCESS )
+ {
+- free( psz_satip_channellist );
+- vlc_UrlClean( &url );
+- return;
++ p_server = new(std::nothrow) SD::MediaServerDesc( psz_udn, psz_friendly_name, psz_url, iconUrl );
++ free(psz_url);
+ }
+-
+- p_server->satIpHost = url.psz_host;
+- p_server->isSatIp = true;
+- if ( !addServer( p_server ) )
+- delete p_server;
+ } else {
+- msg_Dbg( m_sd, "SAT>IP server '%s' did not provide a playlist", url.psz_host);
++ p_server = new(std::nothrow) SD::MediaServerDesc( psz_udn, psz_friendly_name, psz_m3u_url, iconUrl );
+ }
+
+- if (!automode) {
+- /* to comply with the SAT>IP specifications, we don't fallback on another channel list if this path failed,
+- * but in Automatic mode, we continue */
+- free(psz_satip_channellist);
++ if ( unlikely( !p_server ) ) {
+ vlc_UrlClean( &url );
+ return;
+ }
+- }
+-
+- /* Part 3: satip.info playlist
+- * In the normal case, fetch a playlist from the satip website,
+- * which will be processed by a lua script a bit later, to make it work sanely
+- * MasterList is a list of usual Satellites */
+-
+- char *psz_url;
+- if (asprintf( &psz_url, "http://www.satip.info/Playlists/%s.m3u",
+- psz_satip_channellist ) < 0 ) {
+- vlc_UrlClean( &url );
+- free( psz_satip_channellist );
+- return;
+- }
+-
+- p_server = new(std::nothrow) SD::MediaServerDesc( psz_udn,
+- psz_friendly_name, psz_url, iconUrl );
+
+- if( likely( p_server ) ) {
+ p_server->satIpHost = url.psz_host;
+ p_server->isSatIp = true;
+- if( !addServer( p_server ) ) {
++ if ( !addServer( p_server ) ) {
+ delete p_server;
++ } else {
++ msg_Err( m_sd, "SAT>IP server '%s' did not provide a playlist", url.psz_host);
+ }
++
++ /* to comply with the SAT>IP specifications, we don't fallback on another channel list if this path failed */
++ vlc_UrlClean( &url );
+ }
+- free( psz_url );
+- free( psz_satip_channellist );
+- vlc_UrlClean( &url );
+ }
+
+ void MediaServerList::removeServer( const std::string& udn )
--- /dev/null
+From: Maxime Even <maximeeven@proton.me>
+Date: Tue, 9 Jul 2024 13:20:25 +0200
+Subject: spectrogram: fix FFT result scaling factor
+MIME-Version: 1.0
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: 8bit
+
+This function is just a scaling operation that passes a value between 0 and
+FFT_SCALING_VALUE to a value between 0 and 2^16-1.
+
+It is therefore a power that must be applied here and not a xor.
+
+Moreover, the initial formula was quite wrong since it was assuming that the max_input
+value, which is a signed int 16, was 2^15 = 32768 where it is in fact 2^15-1=32767.
+
+Moreover, the initial formula wasn't taking into account that, since the
+output of the fft_perform is the sum of two variables which have for max value
+(FFT_BUFFER_SIZE / 2 * INT16_MAX)^2, then we need to multiply the final max
+value by 2.
+
+Corrects the following compiler warnings:
+ visualization/glspectrum.c:528:43: warning: result of ‘2^16’ is 18; did you mean ‘1 << 16’ (65536)? [-Wxor-used-as-pow]
+ visualization/visual/effects.c:216:40: warning: result of ‘2^16’ is 18; did you mean ‘1 << 16’ (65536)? [-Wxor-used-as-pow]
+
+Fixes #28506
+
+Co-authored-by: Disha Baghel <bagheldisha708@gmail.com>
+
+(cherry picked from commit 77a08a60f72bda081d144119e4d0a57a9c3c72f6)
+---
+ modules/visualization/glspectrum.c | 8 +++++---
+ modules/visualization/visual/effects.c | 5 ++++-
+ modules/visualization/visual/fft.h | 4 ++++
+ 3 files changed, 13 insertions(+), 4 deletions(-)
+
+diff --git a/modules/visualization/glspectrum.c b/modules/visualization/glspectrum.c
+index fdd0127..bf0ffd6 100644
+--- a/modules/visualization/glspectrum.c
++++ b/modules/visualization/glspectrum.c
+@@ -445,9 +445,11 @@ static void *Thread( void *p_data )
+ window_scale_in_place (p_buffer1, &wind_ctx);
+ fft_perform (p_buffer1, p_output, p_state);
+
+- for (i = 0; i< FFT_BUFFER_SIZE; ++i)
+- p_dest[i] = p_output[i] * (2 ^ 16)
+- / ((FFT_BUFFER_SIZE / 2 * 32768) ^ 2);
++ for( i = 0; i< FFT_BUFFER_SIZE ; i++ )
++ {
++ /* Scale the output between 0 and UINT16MAX */
++ p_dest[i] = p_output[i] * UINT16_MAX / FFT_SCALING_VALUE;
++ }
+
+ for (i = 0 ; i < NB_BANDS; i++)
+ {
+diff --git a/modules/visualization/visual/effects.c b/modules/visualization/visual/effects.c
+index 8cb8c13..9b7b07a 100644
+--- a/modules/visualization/visual/effects.c
++++ b/modules/visualization/visual/effects.c
+@@ -214,7 +214,10 @@ static int spectrum_Run(visual_effect_t * p_effect, vlc_object_t *p_aout,
+ window_scale_in_place( p_buffer1, &wind_ctx );
+ fft_perform( p_buffer1, p_output, p_state);
+ for( i = 0; i< FFT_BUFFER_SIZE ; i++ )
+- p_dest[i] = p_output[i] * ( 2 ^ 16 ) / ( ( FFT_BUFFER_SIZE / 2 * 32768 ) ^ 2 );
++ {
++ /* Scale the output between 0 and UINT16MAX */
++ p_dest[i] = p_output[i] * UINT16_MAX / FFT_SCALING_VALUE;
++ }
+
+ /* Compute the horizontal position of the first band */
+ i_band_width = floor( p_effect->i_width / i_nb_bands);
+diff --git a/modules/visualization/visual/fft.h b/modules/visualization/visual/fft.h
+index f4c8a6b..fd3b24f 100644
+--- a/modules/visualization/visual/fft.h
++++ b/modules/visualization/visual/fft.h
+@@ -29,6 +29,10 @@
+
+ #define FFT_BUFFER_SIZE (1 << FFT_BUFFER_SIZE_LOG)
+
++#define FFT_MAX_VALUE_OUTPUT ((uint64_t)(FFT_BUFFER_SIZE/2 * INT16_MAX))
++
++#define FFT_SCALING_VALUE (FFT_MAX_VALUE_OUTPUT * FFT_MAX_VALUE_OUTPUT * 2)
++
+ /* sound sample - should be an signed 16 bit value */
+ typedef short int sound_sample;
+
--- /dev/null
+From: Maxime Even <maximeeven@proton.me>
+Date: Mon, 8 Jul 2024 17:41:39 +0200
+Subject: spectrogram: convert int16 to unsigned for correct range
+
+p_dest is used to set the height of the column, and it is used
+as a variable defined from zero to 2^16 - 1. It is therefore
+considered in the rest of the program as an unsigned int 16.
+Moreover, the value that we put inside are a sum of two squared
+real value, so they are necessarily positive.
+
+(cherry picked from commit 94a8d152eadd53073305c95d221eca7623b4ed6c)
+---
+ modules/visualization/glspectrum.c | 2 +-
+ modules/visualization/visual/effects.c | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/modules/visualization/glspectrum.c b/modules/visualization/glspectrum.c
+index bf0ffd6..96ee3fe 100644
+--- a/modules/visualization/glspectrum.c
++++ b/modules/visualization/glspectrum.c
+@@ -381,7 +381,7 @@ static void *Thread( void *p_data )
+ float p_output[FFT_BUFFER_SIZE]; /* Raw FFT Result */
+ int16_t p_buffer1[FFT_BUFFER_SIZE]; /* Buffer on which we perform
+ the FFT (first channel) */
+- int16_t p_dest[FFT_BUFFER_SIZE]; /* Adapted FFT result */
++ uint16_t p_dest[FFT_BUFFER_SIZE]; /* Adapted FFT result */
+ float *p_buffl = (float*)block->p_buffer; /* Original buffer */
+
+ int16_t *p_buffs; /* int16_t converted buffer */
+diff --git a/modules/visualization/visual/effects.c b/modules/visualization/visual/effects.c
+index 9b7b07a..d5a7209 100644
+--- a/modules/visualization/visual/effects.c
++++ b/modules/visualization/visual/effects.c
+@@ -109,7 +109,7 @@ static int spectrum_Run(visual_effect_t * p_effect, vlc_object_t *p_aout,
+
+ int i , j , y , k;
+ int i_line;
+- int16_t p_dest[FFT_BUFFER_SIZE]; /* Adapted FFT result */
++ uint16_t p_dest[FFT_BUFFER_SIZE]; /* Adapted FFT result */
+ int16_t p_buffer1[FFT_BUFFER_SIZE]; /* Buffer on which we perform
+ the FFT (first channel) */
+
+@@ -450,7 +450,7 @@ static int spectrometer_Run(visual_effect_t * p_effect, vlc_object_t *p_aout,
+
+ int i , j , k;
+ int i_line = 0;
+- int16_t p_dest[FFT_BUFFER_SIZE]; /* Adapted FFT result */
++ uint16_t p_dest[FFT_BUFFER_SIZE]; /* Adapted FFT result */
+ int16_t p_buffer1[FFT_BUFFER_SIZE]; /* Buffer on which we perform
+ the FFT (first channel) */
+ float *p_buffl = /* Original buffer */
--- /dev/null
+From: Maxime Even <maximeeven@proton.me>
+Date: Mon, 8 Jul 2024 17:51:14 +0200
+Subject: spectrogram: allows better visualization of low frequencies
+
+In some cases, Y which represents the height of a column was equal to 1
+and therefore when passed through the log, the output displayed was
+zero, by adding this 0.1, this allows you to see a column when y = 1
+without really changing the height of each column
+
+(cherry picked from commit c347fed91e76bd31387171e1ff67224c21194362)
+---
+ modules/visualization/glspectrum.c | 7 +++++--
+ modules/visualization/visual/effects.c | 7 +++++--
+ 2 files changed, 10 insertions(+), 4 deletions(-)
+
+diff --git a/modules/visualization/glspectrum.c b/modules/visualization/glspectrum.c
+index 96ee3fe..832a52d 100644
+--- a/modules/visualization/glspectrum.c
++++ b/modules/visualization/glspectrum.c
+@@ -58,6 +58,8 @@ static void Close(vlc_object_t *);
+ #define HEIGHT_TEXT N_("Video height")
+ #define HEIGHT_LONGTEXT N_("The height of the visualization window, in pixels.")
+
++#define LOG_OFFSET 0.1
++
+ vlc_module_begin()
+ set_shortname(N_("glSpectrum"))
+ set_description(N_("3D OpenGL spectrum visualization"))
+@@ -466,8 +468,9 @@ static void *Thread( void *p_data )
+ if (p_dest[j] > y)
+ y = p_dest[j];
+ }
+- /* Calculate the height of the bar */
+- float new_height = y != 0 ? logf(y) * 0.4f : 0;
++ /* Calculate the height of the bar
++ This log_offset makes it possible to display low values */
++ float new_height = y != 0 ? logf( y + LOG_OFFSET ) * 0.4f : 0;
+ height[i] = new_height > height[i]
+ ? new_height : height[i];
+ }
+diff --git a/modules/visualization/visual/effects.c b/modules/visualization/visual/effects.c
+index d5a7209..6961c54 100644
+--- a/modules/visualization/visual/effects.c
++++ b/modules/visualization/visual/effects.c
+@@ -46,6 +46,8 @@
+ #define GRAD_ANGLE_MAX 0.5
+ #define GRAD_INCR 0.01
+
++#define LOG_OFFSET 0.1
++
+ /*****************************************************************************
+ * dummy_Run
+ *****************************************************************************/
+@@ -231,10 +233,11 @@ static int spectrum_Run(visual_effect_t * p_effect, vlc_object_t *p_aout,
+ if ( p_dest[j] > y )
+ y = p_dest[j];
+ }
+- /* Calculate the height of the bar */
++ /* Calculate the height of the bar
++ This log_offset makes it possible to display low values */
+ if( y != 0 )
+ {
+- height[i] = log( y ) * 30;
++ height[i] = log( y + LOG_OFFSET ) * 30;
+ if( height[i] > 380 )
+ height[i] = 380;
+ }
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Thu, 18 Jul 2024 09:23:58 +0200
+Subject: magnify: check the image conversion worked
+
+return NULL on failure as we cannot produce the required output.
+
+Fixes #28707
+
+(cherry picked from commit 990de75bc0a7db5f2c4e4cb88e868b75b689ac7d) (rebased)
+rebased:
+- picture_CopyPixels is called picture_CopyVisiblePixels on 4.0
+Signed-off-by: Steve Lhomme <robux4@ycbcr.xyz>
+---
+ modules/video_filter/magnify.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/modules/video_filter/magnify.c b/modules/video_filter/magnify.c
+index 5f94f2d..375e6e7 100644
+--- a/modules/video_filter/magnify.c
++++ b/modules/video_filter/magnify.c
+@@ -244,6 +244,11 @@ static picture_t *Filter( filter_t *p_filter, picture_t *p_pic )
+ /* */
+ fmt_out = p_filter->fmt_out.video;
+ p_converted = image_Convert( p_sys->p_image, p_pic, &fmt_in, &fmt_out );
++ if (unlikely(!p_converted))
++ {
++ picture_Release( p_outpic );
++ return NULL;
++ }
+ memcpy(p_pic->p, orig_planes, sizeof orig_planes);
+
+ picture_CopyPixels( p_outpic, p_converted );
+@@ -267,6 +272,11 @@ static picture_t *Filter( filter_t *p_filter, picture_t *p_pic )
+ fmt_out.i_height = fmt_out.i_visible_height = (fmt_out.i_visible_height/VIS_ZOOM) & ~1;
+ p_converted = image_Convert( p_sys->p_image, p_pic,
+ &p_pic->format, &fmt_out );
++ if (unlikely(!p_converted))
++ {
++ picture_Release( p_outpic );
++ return NULL;
++ }
+
+ /* It will put only what can be copied at the top left */
+ picture_CopyVisiblePixels( p_outpic, p_converted );
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Thu, 18 Jul 2024 09:27:00 +0200
+Subject: opencv: check the image conversion worked
+
+Otherwise we release the output picture that would have been used and returned.
+
+(cherry picked from commit 19813291fcfb31ddd91a2e4d0f1d37ad3239d300) (rebased)
+rebased:
+- p_filter->p_sys is p_sys on 4.0
+Signed-off-by: Steve Lhomme <robux4@ycbcr.xyz>
+---
+ modules/video_filter/opencv_wrapper.c | 13 ++++++++++---
+ 1 file changed, 10 insertions(+), 3 deletions(-)
+
+diff --git a/modules/video_filter/opencv_wrapper.c b/modules/video_filter/opencv_wrapper.c
+index 5da26a1..2d5966b 100644
+--- a/modules/video_filter/opencv_wrapper.c
++++ b/modules/video_filter/opencv_wrapper.c
+@@ -444,9 +444,16 @@ static picture_t* Filter( filter_t* p_filter, picture_t* p_pic )
+ p_filter->p_sys->p_proc_image,
+ &(p_filter->p_sys->p_proc_image->format),
+ &fmt_out );
+-
+- picture_CopyPixels( p_outpic, p_outpic_tmp );
+- CopyInfoAndRelease( p_outpic, p_outpic_tmp );
++ if (unlikely(!p_outpic_tmp))
++ {
++ picture_Release(p_outpic);
++ p_outpic = NULL;
++ }
++ else
++ {
++ picture_CopyPixels( p_outpic, p_outpic_tmp );
++ CopyInfoAndRelease( p_outpic, p_outpic_tmp );
++ }
+ } else if( p_filter->p_sys->i_internal_chroma == CINPUT ) {
+ picture_CopyPixels( p_outpic, p_filter->p_sys->p_proc_image );
+ picture_CopyProperties( p_outpic, p_filter->p_sys->p_proc_image );
--- /dev/null
+From: =?utf-8?q?Fran=C3=A7ois_Cartegnie?= <fcvlcdev@free.fr>
+Date: Thu, 27 Jun 2024 15:08:55 +0700
+Subject: packetizer: hxxx_common: rename function pointer
+
+(cherry picked from commit 6e7b32f64db918b3aa2deefe885571b734d32f53)
+---
+ modules/packetizer/hxxx_common.c | 3 ++-
+ modules/packetizer/hxxx_common.h | 4 ++--
+ 2 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/modules/packetizer/hxxx_common.c b/modules/packetizer/hxxx_common.c
+index 3ba7cbc..a6cacfd 100644
+--- a/modules/packetizer/hxxx_common.c
++++ b/modules/packetizer/hxxx_common.c
+@@ -111,7 +111,8 @@ block_t * cc_storage_get_current( cc_storage_t *p_ccs, decoder_cc_desc_t *p_desc
+ * Will prepend a SPS and PPS before each keyframe
+ ****************************************************************************/
+ block_t *PacketizeXXC1( decoder_t *p_dec, uint8_t i_nal_length_size,
+- block_t **pp_block, pf_annexb_nal_packetizer pf_nal_parser )
++ block_t **pp_block,
++ pf_annexb_nal_parse pf_nal_parser )
+ {
+ block_t *p_block;
+ block_t *p_ret = NULL;
+diff --git a/modules/packetizer/hxxx_common.h b/modules/packetizer/hxxx_common.h
+index eff2f0b..93b33c4 100644
+--- a/modules/packetizer/hxxx_common.h
++++ b/modules/packetizer/hxxx_common.h
+@@ -37,8 +37,8 @@ block_t * cc_storage_get_current( cc_storage_t *p_ccs, decoder_cc_desc_t * );
+
+ /* */
+
+-typedef block_t * (*pf_annexb_nal_packetizer)(decoder_t *, bool *, block_t *);
+-block_t *PacketizeXXC1( decoder_t *, uint8_t, block_t **, pf_annexb_nal_packetizer );
++typedef block_t * (*pf_annexb_nal_parse)(decoder_t *, bool *, block_t *);
++block_t *PacketizeXXC1( decoder_t *, uint8_t, block_t **, pf_annexb_nal_parse );
+
+ #endif // HXXX_COMMON_H
+
--- /dev/null
+From: =?utf-8?q?Fran=C3=A7ois_Cartegnie?= <fcvlcdev@free.fr>
+Date: Thu, 27 Jun 2024 18:25:07 +0700
+Subject: packetizer: hxxx: pass opaque to callbacks instead of decoder
+
+(cherry picked from commit 09655dea51c0d383cc86c0f5020e3bea160c69bf)
+---
+ modules/packetizer/h264.c | 9 +++++++--
+ modules/packetizer/hevc.c | 9 +++++++--
+ modules/packetizer/hxxx_common.c | 8 ++++----
+ modules/packetizer/hxxx_common.h | 6 ++++--
+ 4 files changed, 22 insertions(+), 10 deletions(-)
+
+diff --git a/modules/packetizer/h264.c b/modules/packetizer/h264.c
+index b58e8e6..b015079 100644
+--- a/modules/packetizer/h264.c
++++ b/modules/packetizer/h264.c
+@@ -152,6 +152,10 @@ static int PacketizeValidate( void *p_private, block_t * );
+ static block_t * PacketizeDrain( void *p_private );
+
+ static block_t *ParseNALBlock( decoder_t *, bool *pb_ts_used, block_t * );
++static inline block_t *ParseNALBlockW( void *opaque, bool *pb_ts_used, block_t *p_frag )
++{
++ return ParseNALBlock( (decoder_t *) opaque, pb_ts_used, p_frag );
++}
+
+ static block_t *OutputPicture( decoder_t *p_dec );
+ static void PutSPS( decoder_t *p_dec, block_t *p_frag );
+@@ -530,8 +534,9 @@ static block_t *PacketizeAVC1( decoder_t *p_dec, block_t **pp_block )
+ {
+ decoder_sys_t *p_sys = p_dec->p_sys;
+
+- return PacketizeXXC1( p_dec, p_sys->i_avcC_length_size,
+- pp_block, ParseNALBlock );
++ return PacketizeXXC1( p_dec, VLC_OBJECT(p_dec),
++ p_sys->i_avcC_length_size, pp_block,
++ ParseNALBlockW );
+ }
+
+ /*****************************************************************************
+diff --git a/modules/packetizer/hevc.c b/modules/packetizer/hevc.c
+index 990cc03..dc8877a 100644
+--- a/modules/packetizer/hevc.c
++++ b/modules/packetizer/hevc.c
+@@ -69,6 +69,10 @@ static void PacketizeFlush( decoder_t * );
+ static void PacketizeReset(void *p_private, bool b_broken);
+ static block_t *PacketizeParse(void *p_private, bool *pb_ts_used, block_t *);
+ static block_t *ParseNALBlock(decoder_t *, bool *pb_ts_used, block_t *);
++static inline block_t *ParseNALBlockW( void *opaque, bool *pb_ts_used, block_t *p_frag )
++{
++ return ParseNALBlock( (decoder_t *) opaque, pb_ts_used, p_frag );
++}
+ static int PacketizeValidate(void *p_private, block_t *);
+ static block_t * PacketizeDrain(void *);
+ static bool ParseSEICallback( const hxxx_sei_data_t *, void * );
+@@ -297,8 +301,9 @@ static block_t *PacketizeHVC1(decoder_t *p_dec, block_t **pp_block)
+ {
+ decoder_sys_t *p_sys = p_dec->p_sys;
+
+- return PacketizeXXC1( p_dec, p_sys->i_nal_length_size,
+- pp_block, ParseNALBlock );
++ return PacketizeXXC1( p_dec, VLC_OBJECT(p_dec),
++ p_sys->i_nal_length_size, pp_block,
++ ParseNALBlockW );
+ }
+
+ static block_t *PacketizeAnnexB(decoder_t *p_dec, block_t **pp_block)
+diff --git a/modules/packetizer/hxxx_common.c b/modules/packetizer/hxxx_common.c
+index a6cacfd..043dc38 100644
+--- a/modules/packetizer/hxxx_common.c
++++ b/modules/packetizer/hxxx_common.c
+@@ -110,8 +110,8 @@ block_t * cc_storage_get_current( cc_storage_t *p_ccs, decoder_cc_desc_t *p_desc
+ * Will always use 4 byte 0 0 0 1 startcodes
+ * Will prepend a SPS and PPS before each keyframe
+ ****************************************************************************/
+-block_t *PacketizeXXC1( decoder_t *p_dec, uint8_t i_nal_length_size,
+- block_t **pp_block,
++block_t *PacketizeXXC1( void *p_private, vlc_object_t *p_obj,
++ uint8_t i_nal_length_size, block_t **pp_block,
+ pf_annexb_nal_parse pf_nal_parser )
+ {
+ block_t *p_block;
+@@ -146,7 +146,7 @@ block_t *PacketizeXXC1( decoder_t *p_dec, uint8_t i_nal_length_size,
+ if( i_size <= 0 ||
+ i_size > ( p_block->p_buffer + p_block->i_buffer - p ) )
+ {
+- msg_Err( p_dec, "Broken frame : size %d is too big", i_size );
++ msg_Err( p_obj, "Broken frame : size %d is too big", i_size );
+ break;
+ }
+
+@@ -185,7 +185,7 @@ block_t *PacketizeXXC1( decoder_t *p_dec, uint8_t i_nal_length_size,
+
+ /* Parse the NAL */
+ block_t *p_pic;
+- if( ( p_pic = pf_nal_parser( p_dec, &b_dummy, p_nal ) ) )
++ if( ( p_pic = pf_nal_parser( p_private, &b_dummy, p_nal ) ) )
+ {
+ block_ChainAppend( &p_ret, p_pic );
+ }
+diff --git a/modules/packetizer/hxxx_common.h b/modules/packetizer/hxxx_common.h
+index 93b33c4..c2a6df0 100644
+--- a/modules/packetizer/hxxx_common.h
++++ b/modules/packetizer/hxxx_common.h
+@@ -37,8 +37,10 @@ block_t * cc_storage_get_current( cc_storage_t *p_ccs, decoder_cc_desc_t * );
+
+ /* */
+
+-typedef block_t * (*pf_annexb_nal_parse)(decoder_t *, bool *, block_t *);
+-block_t *PacketizeXXC1( decoder_t *, uint8_t, block_t **, pf_annexb_nal_parse );
++typedef block_t * (*pf_annexb_nal_parse)(void *, bool *, block_t *);
++block_t *PacketizeXXC1( void *, vlc_object_t *obj,
++ uint8_t, block_t **,
++ pf_annexb_nal_parse );
+
+ #endif // HXXX_COMMON_H
+
--- /dev/null
+From: =?utf-8?q?Fran=C3=A7ois_Cartegnie?= <fcvlcdev@free.fr>
+Date: Thu, 27 Jun 2024 18:24:03 +0700
+Subject: packetizer: hxxx: add missing drain for non annexb content
+
+(cherry picked from commit 4f0a39ada1bd9314601e80d7f48855462524d1fc)
+---
+ modules/packetizer/h264.c | 2 +-
+ modules/packetizer/hevc.c | 2 +-
+ modules/packetizer/hxxx_common.c | 8 ++++++--
+ modules/packetizer/hxxx_common.h | 3 ++-
+ 4 files changed, 10 insertions(+), 5 deletions(-)
+
+diff --git a/modules/packetizer/h264.c b/modules/packetizer/h264.c
+index b015079..5a4a519 100644
+--- a/modules/packetizer/h264.c
++++ b/modules/packetizer/h264.c
+@@ -536,7 +536,7 @@ static block_t *PacketizeAVC1( decoder_t *p_dec, block_t **pp_block )
+
+ return PacketizeXXC1( p_dec, VLC_OBJECT(p_dec),
+ p_sys->i_avcC_length_size, pp_block,
+- ParseNALBlockW );
++ ParseNALBlockW, PacketizeDrain );
+ }
+
+ /*****************************************************************************
+diff --git a/modules/packetizer/hevc.c b/modules/packetizer/hevc.c
+index dc8877a..e63023b 100644
+--- a/modules/packetizer/hevc.c
++++ b/modules/packetizer/hevc.c
+@@ -303,7 +303,7 @@ static block_t *PacketizeHVC1(decoder_t *p_dec, block_t **pp_block)
+
+ return PacketizeXXC1( p_dec, VLC_OBJECT(p_dec),
+ p_sys->i_nal_length_size, pp_block,
+- ParseNALBlockW );
++ ParseNALBlockW, PacketizeDrain );
+ }
+
+ static block_t *PacketizeAnnexB(decoder_t *p_dec, block_t **pp_block)
+diff --git a/modules/packetizer/hxxx_common.c b/modules/packetizer/hxxx_common.c
+index 043dc38..386d49b 100644
+--- a/modules/packetizer/hxxx_common.c
++++ b/modules/packetizer/hxxx_common.c
+@@ -112,13 +112,17 @@ block_t * cc_storage_get_current( cc_storage_t *p_ccs, decoder_cc_desc_t *p_desc
+ ****************************************************************************/
+ block_t *PacketizeXXC1( void *p_private, vlc_object_t *p_obj,
+ uint8_t i_nal_length_size, block_t **pp_block,
+- pf_annexb_nal_parse pf_nal_parser )
++ pf_annexb_nal_parse pf_nal_parser,
++ pf_annexb_nal_drain pf_nal_drain )
+ {
+ block_t *p_block;
+ block_t *p_ret = NULL;
+ uint8_t *p;
+
+- if( !pp_block || !*pp_block )
++ if( !pp_block )
++ return pf_nal_drain ? pf_nal_drain( p_private ) : NULL;
++
++ if( !*pp_block )
+ return NULL;
+ if( (*pp_block)->i_flags&(BLOCK_FLAG_CORRUPTED) )
+ {
+diff --git a/modules/packetizer/hxxx_common.h b/modules/packetizer/hxxx_common.h
+index c2a6df0..1c8241e 100644
+--- a/modules/packetizer/hxxx_common.h
++++ b/modules/packetizer/hxxx_common.h
+@@ -38,9 +38,10 @@ block_t * cc_storage_get_current( cc_storage_t *p_ccs, decoder_cc_desc_t * );
+ /* */
+
+ typedef block_t * (*pf_annexb_nal_parse)(void *, bool *, block_t *);
++typedef block_t * (*pf_annexb_nal_drain)(void *);
+ block_t *PacketizeXXC1( void *, vlc_object_t *obj,
+ uint8_t, block_t **,
+- pf_annexb_nal_parse );
++ pf_annexb_nal_parse, pf_annexb_nal_drain );
+
+ #endif // HXXX_COMMON_H
+
--- /dev/null
+From: =?utf-8?q?Fran=C3=A7ois_Cartegnie?= <fcvlcdev@free.fr>
+Date: Fri, 16 Aug 2024 11:30:16 +0700
+Subject: demux: asf: add missing subpayloads drain on EOF
+
+refs #28716
+
+(cherry picked from commit 6bf0a1407b5b9aef792ef94a57142254d079e8fd)
+---
+ modules/demux/asf/asf.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/modules/demux/asf/asf.c b/modules/demux/asf/asf.c
+index a4b5b47..3111c61 100644
+--- a/modules/demux/asf/asf.c
++++ b/modules/demux/asf/asf.c
+@@ -236,7 +236,15 @@ static int Demux( demux_t *p_demux )
+ msg_Warn( p_demux, "found a new ASF header" );
+ }
+ else
++ {
+ p_sys->b_eof = true;
++ for ( int i=0; i<MAX_ASF_TRACKS; i++ )
++ {
++ asf_track_t *tk = p_sys->track[i];
++ if ( tk && tk->info.p_frame )
++ Packet_Enqueue( &p_sys->packet_sys, i, &tk->info.p_frame );
++ }
++ }
+ }
+
+ if ( p_sys->i_time == VLC_TICK_INVALID )
--- /dev/null
+From: Mangal Kushwah <mangalk2324@gmail.com>
+Date: Thu, 8 Aug 2024 21:30:19 +0530
+Subject: demux: AVI insert packetizer for XVID MPEG-4 video
+
+Older DivX-encoded videos commonly use an method called packed
+bitstream which puts several video frames into a single AVI chunk.
+Since Packed bitstream isn't standard MPEG-4 it causes playback issues
+with some hw decoders.
+
+(cherry picked from commit 980e4d7449e9e06bef525d9049dff5b9b5ecd673)
+---
+ modules/demux/avi/avi.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/modules/demux/avi/avi.c b/modules/demux/avi/avi.c
+index 7059ca9..bcc3511 100644
+--- a/modules/demux/avi/avi.c
++++ b/modules/demux/avi/avi.c
+@@ -719,6 +719,7 @@ static int Open( vlc_object_t * p_this )
+ {
+ tk->fmt.i_codec =
+ tk->fmt.i_original_fourcc = VLC_FOURCC( 'X', 'V', 'I', 'D' );
++ tk->fmt.b_packetized = false;
+ }
+
+ /* Shitty files storing chroma in biCompression */
--- /dev/null
+From: Mangal Kushwah <mangalk2324@gmail.com>
+Date: Fri, 9 Aug 2024 19:30:05 +0530
+Subject: codec: videotoolbox: remove sw decoder fallback for mp4v
+
+commit 7a2bf498d545d500d30636970fa930eb54de5569 insert packetizer for
+xvid mpeg4 video, so now hw decoder can decode xvid encoded video
+without any playback issues.
+
+(cherry picked from commit a9343f68bb19a1c20e45e1029848326020b0c69e)
+---
+ modules/codec/videotoolbox.m | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/modules/codec/videotoolbox.m b/modules/codec/videotoolbox.m
+index e07d3c6..7d408bf 100644
+--- a/modules/codec/videotoolbox.m
++++ b/modules/codec/videotoolbox.m
+@@ -1024,11 +1024,6 @@ static CMVideoCodecType CodecPrecheck(decoder_t *p_dec)
+
+ case VLC_CODEC_MP4V:
+ {
+- if (p_dec->fmt_in.i_original_fourcc == VLC_FOURCC( 'X','V','I','D' )) {
+- msg_Warn(p_dec, "XVID decoding not implemented, fallback on software");
+- return -1;
+- }
+-
+ msg_Dbg(p_dec, "Will decode MP4V with original FourCC '%4.4s'", (char *)&p_dec->fmt_in.i_original_fourcc);
+ return kCMVideoCodecType_MPEG4Video;
+ }
--- /dev/null
+From: Mangal Kushwah <mangalk2324@gmail.com>
+Date: Sat, 31 Aug 2024 16:45:07 +0530
+Subject: Use `vlc_fourcc_GetCodec` to map XVID to MP4V
+
+---
+ modules/demux/avi/avi.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/demux/avi/avi.c b/modules/demux/avi/avi.c
+index bcc3511..a3204ea 100644
+--- a/modules/demux/avi/avi.c
++++ b/modules/demux/avi/avi.c
+@@ -713,7 +713,7 @@ static int Open( vlc_object_t * p_this )
+ }
+ else
+ {
+- tk->fmt.i_codec = p_bih->biCompression;
++ tk->fmt.i_codec = vlc_fourcc_GetCodec(VIDEO_ES, p_bih->biCompression);
+ if( tk->fmt.i_codec == VLC_CODEC_MP4V &&
+ !strncasecmp( (char*)&p_strh->i_handler, "XVID", 4 ) )
+ {
--- /dev/null
+From: Tristan Matthews <tmatth@videolan.org>
+Date: Sat, 31 Aug 2024 12:58:27 -0400
+Subject: dav1d: treat RGB formats separately
+
+This avoids incorrectly matching as GBR.
+Fixes #28763 which was missing checks for the matrix and primaries.
+
+This also replaces the loop with a constant-time lookup.
+
+(cherry picked from commit ece317a245e8c32a5efc11d5e82dcd8a28a2f10b)
+---
+ modules/codec/dav1d.c | 59 +++++++++++++++++++++++----------------------------
+ 1 file changed, 26 insertions(+), 33 deletions(-)
+
+diff --git a/modules/codec/dav1d.c b/modules/codec/dav1d.c
+index d135e61..525a5e0 100644
+--- a/modules/codec/dav1d.c
++++ b/modules/codec/dav1d.c
+@@ -84,43 +84,34 @@ struct decoder_sys_t
+ Dav1dContext *c;
+ };
+
+-static const struct
+-{
+- vlc_fourcc_t i_chroma;
+- enum Dav1dPixelLayout i_chroma_id;
+- uint8_t i_bitdepth;
+- enum Dav1dTransferCharacteristics transfer_characteristics;
+-} chroma_table[] =
+-{
+- /* Transfer characteristic-dependent mappings must come first */
+- {VLC_CODEC_GBR_PLANAR, DAV1D_PIXEL_LAYOUT_I444, 8, DAV1D_TRC_SRGB},
+- {VLC_CODEC_GBR_PLANAR_10L, DAV1D_PIXEL_LAYOUT_I444, 10, DAV1D_TRC_SRGB},
+-
+- {VLC_CODEC_GREY, DAV1D_PIXEL_LAYOUT_I400, 8, DAV1D_TRC_UNKNOWN},
+- {VLC_CODEC_I420, DAV1D_PIXEL_LAYOUT_I420, 8, DAV1D_TRC_UNKNOWN},
+- {VLC_CODEC_I422, DAV1D_PIXEL_LAYOUT_I422, 8, DAV1D_TRC_UNKNOWN},
+- {VLC_CODEC_I444, DAV1D_PIXEL_LAYOUT_I444, 8, DAV1D_TRC_UNKNOWN},
+-
+- {VLC_CODEC_I420_10L, DAV1D_PIXEL_LAYOUT_I420, 10, DAV1D_TRC_UNKNOWN},
+- {VLC_CODEC_I422_10L, DAV1D_PIXEL_LAYOUT_I422, 10, DAV1D_TRC_UNKNOWN},
+- {VLC_CODEC_I444_10L, DAV1D_PIXEL_LAYOUT_I444, 10, DAV1D_TRC_UNKNOWN},
+-
+- {VLC_CODEC_I420_12L, DAV1D_PIXEL_LAYOUT_I420, 12, DAV1D_TRC_UNKNOWN},
+- {VLC_CODEC_I422_12L, DAV1D_PIXEL_LAYOUT_I422, 12, DAV1D_TRC_UNKNOWN},
+- {VLC_CODEC_I444_12L, DAV1D_PIXEL_LAYOUT_I444, 12, DAV1D_TRC_UNKNOWN},
+-};
+-
+ static vlc_fourcc_t FindVlcChroma(const Dav1dPicture *img)
+ {
++ static const vlc_fourcc_t chroma_table_rgb[] = { VLC_CODEC_GBR_PLANAR, VLC_CODEC_GBR_PLANAR_10L };
++ static const vlc_fourcc_t chroma_table[][3] = {
++ [DAV1D_PIXEL_LAYOUT_I400] = { VLC_CODEC_GREY, VLC_CODEC_GREY_10L, VLC_CODEC_GREY_12L },
++ [DAV1D_PIXEL_LAYOUT_I420] = { VLC_CODEC_I420, VLC_CODEC_I420_10L, VLC_CODEC_I420_12L },
++ [DAV1D_PIXEL_LAYOUT_I422] = { VLC_CODEC_I422, VLC_CODEC_I422_10L, VLC_CODEC_I422_12L },
++ [DAV1D_PIXEL_LAYOUT_I444] = { VLC_CODEC_I444, VLC_CODEC_I444_10L, VLC_CODEC_I444_12L },
++ };
++
++ // AV1 signals RGB with the combination of the identity matrix, the BT.709 primaries and the sRGB/YCC transfer function.
++ // See: "5.5.2. Color config syntax" from https://aomediacodec.github.io/av1-spec/av1-spec.pdf
++ if( img->p.layout == DAV1D_PIXEL_LAYOUT_I444 &&
++ img->seq_hdr->mtrx == DAV1D_MC_IDENTITY &&
++ img->seq_hdr->pri == DAV1D_COLOR_PRI_BT709 &&
++ img->seq_hdr->trc == DAV1D_TRC_SRGB )
++ {
++ if( img->seq_hdr->hbd < 0 || img->seq_hdr->hbd >= (int)ARRAY_SIZE(chroma_table_rgb) )
++ return 0;
++ return chroma_table_rgb[img->seq_hdr->hbd];
++ }
+
+- for (unsigned int i = 0; i < ARRAY_SIZE(chroma_table); i++)
+- if (chroma_table[i].i_chroma_id == img->p.layout &&
+- chroma_table[i].i_bitdepth == img->p.bpc &&
+- (chroma_table[i].transfer_characteristics == DAV1D_TRC_UNKNOWN ||
+- chroma_table[i].transfer_characteristics == img->seq_hdr->trc))
+- return chroma_table[i].i_chroma;
++ if( img->seq_hdr->layout < 0 || img->seq_hdr->layout >= (int)ARRAY_SIZE(chroma_table) )
++ return 0;
++ if( img->seq_hdr->hbd < 0 || img->seq_hdr->hbd >= (int)ARRAY_SIZE(chroma_table[0]) )
++ return 0;
+
+- return 0;
++ return chroma_table[img->seq_hdr->layout][img->seq_hdr->hbd];
+ }
+
+ static int NewPicture(Dav1dPicture *img, void *cookie)
+@@ -179,6 +170,8 @@ static int NewPicture(Dav1dPicture *img, void *cookie)
+ v->multiview_mode = dec->fmt_in.video.multiview_mode;
+ v->pose = dec->fmt_in.video.pose;
+ dec->fmt_out.video.i_chroma = dec->fmt_out.i_codec = FindVlcChroma(img);
++ if (dec->fmt_out.i_codec == 0)
++ return -1;
+
+ if (decoder_UpdateVideoFormat(dec) == VLC_SUCCESS)
+ {
--- /dev/null
+From: Tristan Matthews <tmatth@videolan.org>
+Date: Thu, 5 Sep 2024 10:21:11 -0400
+Subject: dav1d: add dav1d-all-layers flag
+
+This will output all spatial layers if requested, defaults to false (the built-in dav1d
+behavior would defaults this to true).
+
+Fix suggested-by Maryla Ustarroz
+
+Fixes #28776
+
+(cherry picked from commit 6ffede3f445586e5d368de936666cabb84f6a16f)
+---
+ modules/codec/dav1d.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/modules/codec/dav1d.c b/modules/codec/dav1d.c
+index 525a5e0..42fcc59 100644
+--- a/modules/codec/dav1d.c
++++ b/modules/codec/dav1d.c
+@@ -53,6 +53,8 @@ static void CloseDecoder(vlc_object_t *);
+ #define THREAD_FRAMES_LONGTEXT N_( "Max number of threads used for frame decoding, default 0=auto" )
+ #define THREAD_TILES_TEXT N_("Tiles Threads")
+ #define THREAD_TILES_LONGTEXT N_( "Max number of threads used for tile decoding, default 0=auto" )
++#define LAYERS_TEXT N_("All Layers")
++#define LAYERS_LONGTEXT N_( "Whether or not to display all spatial layers, default false" )
+
+
+ vlc_module_begin ()
+@@ -73,6 +75,7 @@ vlc_module_begin ()
+ add_integer_with_range("dav1d-thread-tiles", 0, 0, DAV1D_MAX_TILE_THREADS,
+ THREAD_TILES_TEXT, THREAD_TILES_LONGTEXT, false)
+ #endif
++ add_bool( "dav1d-all-layers", false, LAYERS_TEXT, LAYERS_LONGTEXT, false)
+ vlc_module_end ()
+
+ /*****************************************************************************
+@@ -363,6 +366,7 @@ static int OpenDecoder(vlc_object_t *p_this)
+ if (p_sys->s.n_frame_threads == 0)
+ p_sys->s.n_frame_threads = (i_core_count < 16) ? i_core_count : 16;
+ #endif
++ p_sys->s.all_layers = var_InheritBool( p_this, "dav1d-all-layers" );
+ p_sys->s.allocator.cookie = dec;
+ p_sys->s.allocator.alloc_picture_callback = NewPicture;
+ p_sys->s.allocator.release_picture_callback = FreePicture;
--- /dev/null
+From: Thomas Guillem <thomas@gllm.fr>
+Date: Wed, 11 Sep 2024 08:15:52 +0200
+Subject: dts_header: initialize SUBSTREAM_LBR size to 0
+
+It's a substream and can't work alone, so a size of 0 is legitimate.
+
+Fixes #28773 (Use of uninitialised value)
+
+(cherry picked from commit b23f09b258dc63c2221af502ec856630f68817e5)
+Signed-off-by: Thomas Guillem <thomas@gllm.fr>
+---
+ modules/packetizer/dts_header.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/modules/packetizer/dts_header.c b/modules/packetizer/dts_header.c
+index 53249dd..8d6d5c8 100644
+--- a/modules/packetizer/dts_header.c
++++ b/modules/packetizer/dts_header.c
+@@ -342,6 +342,7 @@ static int dts_header_ParseLBRExtSubstream( vlc_dts_header_t *p_header,
+ bs_skip( &s, 16 );
+ uint16_t nLBRScaledBitRate_LSW = bs_read( &s, 16 );
+ p_header->i_bitrate = nLBRScaledBitRate_LSW | ((nLBRBitRateMSnybbles & 0xF0) << 12);
++ p_header->i_frame_size = 0;
+ return VLC_SUCCESS;
+ }
+
--- /dev/null
+From: Thomas Guillem <thomas@gllm.fr>
+Date: Wed, 11 Sep 2024 08:16:36 +0200
+Subject: packetizer: dts: check for frame_size for the first sync
+
+Only substreams are allowed to have a frame_size of 0.
+
+(cherry picked from commit 16b31aa57e3919dbe661c213868dee4b8bc1e3bd)
+Signed-off-by: Thomas Guillem <thomas@gllm.fr>
+---
+ modules/packetizer/dts.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/modules/packetizer/dts.c b/modules/packetizer/dts.c
+index a57c698..5d0deb4 100644
+--- a/modules/packetizer/dts.c
++++ b/modules/packetizer/dts.c
+@@ -205,7 +205,8 @@ static block_t *PacketizeBlock( decoder_t *p_dec, block_t **pp_block )
+
+ /* Check if frame is valid and get frame info */
+ if( vlc_dts_header_Parse( &p_sys->first, p_header,
+- VLC_DTS_HEADER_SIZE ) != VLC_SUCCESS )
++ VLC_DTS_HEADER_SIZE ) != VLC_SUCCESS
++ || p_sys->first.i_frame_size == 0 )
+ {
+ msg_Dbg( p_dec, "emulated sync word" );
+ block_SkipByte( &p_sys->bytestream );
--- /dev/null
+From: Tristan Matthews <tmatth@videolan.org>
+Date: Mon, 9 Sep 2024 17:27:24 -0400
+Subject: aom: make BGR matching stricter
+
+This is equivalent to the fix in ece317a245e8c32a5efc11d5e82dcd8a28a2f10b
+as the aom decoder had the same issue reported in #28776.
+
+(cherry picked from commit 0001e85a098ee4e6e2526eaec8a76899c2b23b90)
+---
+ modules/codec/aom.c | 41 +++++++++++++++++++++++------------------
+ 1 file changed, 23 insertions(+), 18 deletions(-)
+
+diff --git a/modules/codec/aom.c b/modules/codec/aom.c
+index 0c4d344..09e0370 100644
+--- a/modules/codec/aom.c
++++ b/modules/codec/aom.c
+@@ -89,38 +89,43 @@ static const struct
+ vlc_fourcc_t i_chroma;
+ enum aom_img_fmt i_chroma_id;
+ uint8_t i_bitdepth;
+- uint8_t i_needs_hack;
+-
++ enum aom_transfer_characteristics transfer_characteristics;
++ enum aom_color_primaries color_primaries;
++ enum aom_matrix_coefficients matrix_coefficients;
+ } chroma_table[] =
+ {
+- { VLC_CODEC_I420, AOM_IMG_FMT_I420, 8, 0 },
+- { VLC_CODEC_I422, AOM_IMG_FMT_I422, 8, 0 },
+- { VLC_CODEC_I444, AOM_IMG_FMT_I444, 8, 0 },
++ /* Transfer characteristic-dependent mappings must come first */
++ { VLC_CODEC_GBR_PLANAR, AOM_IMG_FMT_I444, 8, AOM_CICP_TC_SRGB, AOM_CICP_CP_BT_709, AOM_CICP_MC_IDENTITY },
++ { VLC_CODEC_GBR_PLANAR_10L, AOM_IMG_FMT_I44416, 10, AOM_CICP_TC_SRGB , AOM_CICP_CP_BT_709, AOM_CICP_MC_IDENTITY },
+
+- { VLC_CODEC_YV12, AOM_IMG_FMT_YV12, 8, 0 },
++ { VLC_CODEC_I420, AOM_IMG_FMT_I420, 8, AOM_CICP_TC_UNSPECIFIED, AOM_CICP_CP_UNSPECIFIED, AOM_CICP_MC_UNSPECIFIED },
++ { VLC_CODEC_I422, AOM_IMG_FMT_I422, 8, AOM_CICP_TC_UNSPECIFIED, AOM_CICP_CP_UNSPECIFIED, AOM_CICP_MC_UNSPECIFIED },
++ { VLC_CODEC_I444, AOM_IMG_FMT_I444, 8, AOM_CICP_TC_UNSPECIFIED, AOM_CICP_CP_UNSPECIFIED, AOM_CICP_MC_UNSPECIFIED },
+
+- { VLC_CODEC_GBR_PLANAR, AOM_IMG_FMT_I444, 8, 1 },
+- { VLC_CODEC_GBR_PLANAR_10L, AOM_IMG_FMT_I44416, 10, 1 },
++ { VLC_CODEC_YV12, AOM_IMG_FMT_YV12, 8, AOM_CICP_TC_UNSPECIFIED, AOM_CICP_CP_UNSPECIFIED, AOM_CICP_MC_UNSPECIFIED },
+
+- { VLC_CODEC_I420_10L, AOM_IMG_FMT_I42016, 10, 0 },
+- { VLC_CODEC_I422_10L, AOM_IMG_FMT_I42216, 10, 0 },
+- { VLC_CODEC_I444_10L, AOM_IMG_FMT_I44416, 10, 0 },
++ { VLC_CODEC_I420_10L, AOM_IMG_FMT_I42016, 10, AOM_CICP_TC_UNSPECIFIED, AOM_CICP_CP_UNSPECIFIED, AOM_CICP_MC_UNSPECIFIED },
++ { VLC_CODEC_I422_10L, AOM_IMG_FMT_I42216, 10, AOM_CICP_TC_UNSPECIFIED, AOM_CICP_CP_UNSPECIFIED, AOM_CICP_MC_UNSPECIFIED },
++ { VLC_CODEC_I444_10L, AOM_IMG_FMT_I44416, 10, AOM_CICP_TC_UNSPECIFIED, AOM_CICP_CP_UNSPECIFIED, AOM_CICP_MC_UNSPECIFIED },
+
+- { VLC_CODEC_I420_12L, AOM_IMG_FMT_I42016, 12, 0 },
+- { VLC_CODEC_I422_12L, AOM_IMG_FMT_I42216, 12, 0 },
+- { VLC_CODEC_I444_12L, AOM_IMG_FMT_I44416, 12, 0 },
++ { VLC_CODEC_I420_12L, AOM_IMG_FMT_I42016, 12, AOM_CICP_TC_UNSPECIFIED, AOM_CICP_CP_UNSPECIFIED, AOM_CICP_MC_UNSPECIFIED },
++ { VLC_CODEC_I422_12L, AOM_IMG_FMT_I42216, 12, AOM_CICP_TC_UNSPECIFIED, AOM_CICP_CP_UNSPECIFIED, AOM_CICP_MC_UNSPECIFIED },
++ { VLC_CODEC_I444_12L, AOM_IMG_FMT_I44416, 12, AOM_CICP_TC_UNSPECIFIED, AOM_CICP_CP_UNSPECIFIED, AOM_CICP_MC_UNSPECIFIED },
+
+- { VLC_CODEC_I444_16L, AOM_IMG_FMT_I44416, 16, 0 },
++ { VLC_CODEC_I444_16L, AOM_IMG_FMT_I44416, 16, AOM_CICP_TC_UNSPECIFIED, AOM_CICP_CP_UNSPECIFIED, AOM_CICP_MC_UNSPECIFIED },
+ };
+
+ static vlc_fourcc_t FindVlcChroma( struct aom_image *img )
+ {
+- uint8_t hack = (img->fmt & AOM_IMG_FMT_I444) && (img->tc == AOM_CICP_TC_SRGB);
+-
+ for( unsigned int i = 0; i < ARRAY_SIZE(chroma_table); i++ )
+ if( chroma_table[i].i_chroma_id == img->fmt &&
+ chroma_table[i].i_bitdepth == img->bit_depth &&
+- chroma_table[i].i_needs_hack == hack )
++ ( chroma_table[i].transfer_characteristics == AOM_CICP_TC_UNSPECIFIED ||
++ chroma_table[i].transfer_characteristics == img->tc ) &&
++ ( chroma_table[i].color_primaries == AOM_CICP_CP_UNSPECIFIED ||
++ chroma_table[i].color_primaries == img->cp ) &&
++ ( chroma_table[i].matrix_coefficients == AOM_CICP_MC_UNSPECIFIED ||
++ chroma_table[i].matrix_coefficients == img->mc ) )
+ return chroma_table[i].i_chroma;
+
+ return 0;
--- /dev/null
+From: =?utf-8?q?Hugo_Beauz=C3=A9e-Luyssen?= <hugo@beauzee.fr>
+Date: Thu, 7 Feb 2019 17:58:11 +0100
+Subject: taglib: .m4v are already registered as MP4 files
+
+https://github.com/taglib/taglib/pull/662
+(cherry picked from commit 84962e474bfefa242527f7c3ddffe6ed4f697fbe) (rebased)
+---
+ modules/meta_engine/taglib.cpp | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/modules/meta_engine/taglib.cpp b/modules/meta_engine/taglib.cpp
+index 84b401c..73bc5d8 100644
+--- a/modules/meta_engine/taglib.cpp
++++ b/modules/meta_engine/taglib.cpp
+@@ -142,7 +142,6 @@ File *VLCTagLib::ExtResolver<T>::createFile(FileName fileName, bool, AudioProper
+ #if TAGLIB_VERSION >= TAGLIB_VERSION_1_11
+ static VLCTagLib::ExtResolver<MPEG::File> aacresolver(".aac");
+ #endif
+-static VLCTagLib::ExtResolver<MP4::File> m4vresolver(".m4v");
+ static bool b_extensions_registered = false;
+
+ // taglib is not thread safe
+@@ -911,7 +910,6 @@ static int ReadMeta( vlc_object_t* p_this)
+ #if TAGLIB_VERSION >= TAGLIB_VERSION_1_11
+ FileRef::addFileTypeResolver( &aacresolver );
+ #endif
+- FileRef::addFileTypeResolver( &m4vresolver );
+ b_extensions_registered = true;
+ }
+
--- /dev/null
+From: =?utf-8?q?Fran=C3=A7ois_Cartegnie?= <fcvlcdev@free.fr>
+Date: Mon, 5 Aug 2019 15:24:45 +0200
+Subject: modules: taglib: simplify reading embedded art
+
+(cherry picked from commit 3533f90eb44398abe6cff1b14ece757654449acf) (rebased)
+rebased:
+- 294cbdbaee0209bc88ca7bec9164da8da4ac44ef has been merged above
+---
+ modules/meta_engine/taglib.cpp | 215 +++++++++++++++++++++--------------------
+ 1 file changed, 110 insertions(+), 105 deletions(-)
+
+diff --git a/modules/meta_engine/taglib.cpp b/modules/meta_engine/taglib.cpp
+index 73bc5d8..8770d0c 100644
+--- a/modules/meta_engine/taglib.cpp
++++ b/modules/meta_engine/taglib.cpp
+@@ -460,6 +460,114 @@ static void ReadMetaFromASF( ASF::Tag* tag, demux_meta_t* p_demux_meta, vlc_meta
+ }
+ }
+
++/**
++ * Fills attachments list from ID3 APIC tags
++ * @param tag: the APIC tags list
++ * @param p_demux_meta: the demuxer meta
++ * @param p_meta: the meta
++ */
++static void ProcessAPICListFromId3v2( const ID3v2::FrameList &list,
++ demux_meta_t* p_demux_meta, vlc_meta_t* p_meta )
++{
++ /* Preferred type of image
++ * The 21 types are defined in id3v2 standard:
++ * http://www.id3.org/id3v2.4.0-frames */
++ static const uint8_t scores[] = {
++ 0, /* Other */
++ 5, /* 32x32 PNG image that should be used as the file icon */
++ 4, /* File icon of a different size or format. */
++ 20, /* Front cover image of the album. */
++ 19, /* Back cover image of the album. */
++ 13, /* Inside leaflet page of the album. */
++ 18, /* Image from the album itself. */
++ 17, /* Picture of the lead artist or soloist. */
++ 16, /* Picture of the artist or performer. */
++ 14, /* Picture of the conductor. */
++ 15, /* Picture of the band or orchestra. */
++ 9, /* Picture of the composer. */
++ 8, /* Picture of the lyricist or text writer. */
++ 7, /* Picture of the recording location or studio. */
++ 10, /* Picture of the artists during recording. */
++ 11, /* Picture of the artists during performance. */
++ 6, /* Picture from a movie or video related to the track. */
++ 1, /* Picture of a large, coloured fish. */
++ 12, /* Illustration related to the track. */
++ 3, /* Logo of the band or performer. */
++ 2 /* Logo of the publisher (record company). */
++ };
++
++ const ID3v2::AttachedPictureFrame *defaultPic = nullptr;
++ for( auto iter = list.begin(); iter != list.end(); ++iter )
++ {
++ const ID3v2::AttachedPictureFrame* p =
++ dynamic_cast<const ID3v2::AttachedPictureFrame*>(*iter);
++ if( !p )
++ continue;
++ if(defaultPic == nullptr)
++ {
++ defaultPic = p;
++ }
++ else
++ {
++ int scorea = defaultPic->type() >= ARRAY_SIZE(scores) ? 0 : scores[defaultPic->type()];
++ int scoreb = p->type() >= ARRAY_SIZE(scores) ? 0 : scores[p->type()];
++ if(scoreb > scorea)
++ defaultPic = p;
++ }
++ }
++
++ for( auto iter = list.begin(); iter != list.end(); ++iter )
++ {
++ const ID3v2::AttachedPictureFrame* p =
++ dynamic_cast<const ID3v2::AttachedPictureFrame*>(*iter);
++ if( !p )
++ continue;
++ // Get the mime and description of the image.
++ String description = p->description();
++ String mimeType = p->mimeType();
++
++ /* some old iTunes version not only sets incorrectly the mime type
++ * or the description of the image,
++ * but also embeds incorrectly the image.
++ * Recent versions seem to behave correctly */
++ if( mimeType == "PNG" || description == "\xC2\x89PNG" )
++ {
++ msg_Warn( p_demux_meta, "Invalid picture embedded by broken iTunes version" );
++ continue;
++ }
++
++ char *psz_name;
++ if( asprintf( &psz_name, "%i", p_demux_meta->i_attachments ) == -1 )
++ continue;
++
++ input_attachment_t *p_attachment =
++ vlc_input_attachment_New( psz_name,
++ mimeType.toCString(),
++ description.toCString(),
++ p->picture().data(),
++ p->picture().size() );
++ free( psz_name );
++ if( !p_attachment )
++ continue;
++
++ msg_Dbg( p_demux_meta, "Found embedded art: %s (%zu bytes)",
++ p_attachment->psz_mime, p_attachment->i_data );
++
++ TAB_APPEND_CAST( (input_attachment_t**),
++ p_demux_meta->i_attachments, p_demux_meta->attachments,
++ p_attachment );
++
++ if( p == defaultPic )
++ {
++ char *psz_url;
++ if( asprintf( &psz_url, "attachment://%s",
++ p_attachment->psz_name ) == -1 )
++ continue;
++ vlc_meta_SetArtURL( p_meta, psz_url );
++ free( psz_url );
++ }
++ }
++}
+
+ static void ReadMetaFromBasicTag(const Tag* tag, vlc_meta_t *dest)
+ {
+@@ -579,115 +687,12 @@ static void ReadMetaFromId3v2( ID3v2::Tag* tag, demux_meta_t* p_demux_meta, vlc_
+ vlc_meta_DiscNumber, vlc_meta_DiscTotal );
+ }
+
+- /* Preferred type of image
+- * The 21 types are defined in id3v2 standard:
+- * http://www.id3.org/id3v2.4.0-frames */
+- static const int pi_cover_score[] = {
+- 0, /* Other */
+- 5, /* 32x32 PNG image that should be used as the file icon */
+- 4, /* File icon of a different size or format. */
+- 20, /* Front cover image of the album. */
+- 19, /* Back cover image of the album. */
+- 13, /* Inside leaflet page of the album. */
+- 18, /* Image from the album itself. */
+- 17, /* Picture of the lead artist or soloist. */
+- 16, /* Picture of the artist or performer. */
+- 14, /* Picture of the conductor. */
+- 15, /* Picture of the band or orchestra. */
+- 9, /* Picture of the composer. */
+- 8, /* Picture of the lyricist or text writer. */
+- 7, /* Picture of the recording location or studio. */
+- 10, /* Picture of the artists during recording. */
+- 11, /* Picture of the artists during performance. */
+- 6, /* Picture from a movie or video related to the track. */
+- 1, /* Picture of a large, coloured fish. */
+- 12, /* Illustration related to the track. */
+- 3, /* Logo of the band or performer. */
+- 2 /* Logo of the publisher (record company). */
+- };
+- #define PI_COVER_SCORE_SIZE (sizeof (pi_cover_score) / sizeof (pi_cover_score[0]))
+- int i_score = -1;
+-
+ // Try now to get embedded art
+ list = tag->frameListMap()[ "APIC" ];
+- if( list.isEmpty() )
+- return;
+-
+- for( iter = list.begin(); iter != list.end(); iter++ )
+- {
+- ID3v2::AttachedPictureFrame* p_apic =
+- dynamic_cast<ID3v2::AttachedPictureFrame*>(*iter);
+- if( !p_apic )
+- continue;
+- input_attachment_t *p_attachment;
+-
+- const char *psz_mime;
+- char *psz_name, *psz_description;
+-
+- // Get the mime and description of the image.
+- // If the description is empty, take the type as a description
+- psz_mime = p_apic->mimeType().toCString( true );
+- if( p_apic->description().size() > 0 )
+- psz_description = strdup( p_apic->description().toCString( true ) );
+- else
+- {
+- if( asprintf( &psz_description, "%i", p_apic->type() ) == -1 )
+- psz_description = NULL;
+- }
+-
+- if( !psz_description )
+- continue;
+- psz_name = psz_description;
+-
+- /* some old iTunes version not only sets incorrectly the mime type
+- * or the description of the image,
+- * but also embeds incorrectly the image.
+- * Recent versions seem to behave correctly */
+- if( !strncmp( psz_mime, "PNG", 3 ) ||
+- !strncmp( psz_name, "\xC2\x89PNG", 5 ) )
+- {
+- msg_Warn( p_demux_meta, "Invalid picture embedded by broken iTunes version" );
+- free( psz_description );
+- continue;
+- }
+-
+- const ByteVector picture = p_apic->picture();
+- const char *p_data = picture.data();
+- const unsigned i_data = picture.size();
+-
+- msg_Dbg( p_demux_meta, "Found embedded art: %s (%s) is %u bytes",
+- psz_name, psz_mime, i_data );
+-
+- p_attachment = vlc_input_attachment_New( psz_name, psz_mime,
+- psz_description, p_data, i_data );
+- if( !p_attachment )
+- {
+- free( psz_description );
+- continue;
+- }
+- TAB_APPEND_CAST( (input_attachment_t**),
+- p_demux_meta->i_attachments, p_demux_meta->attachments,
+- p_attachment );
+- free( psz_description );
+-
+- unsigned i_pic_type = p_apic->type();
+- if( i_pic_type >= PI_COVER_SCORE_SIZE )
+- i_pic_type = 0; // Defaults to "Other"
+-
+- if( pi_cover_score[i_pic_type] > i_score )
+- {
+- i_score = pi_cover_score[i_pic_type];
+- char *psz_url;
+- if( asprintf( &psz_url, "attachment://%s",
+- p_attachment->psz_name ) == -1 )
+- continue;
+- vlc_meta_SetArtURL( p_meta, psz_url );
+- free( psz_url );
+- }
+- }
++ if( !list.isEmpty() )
++ ProcessAPICListFromId3v2( list, p_demux_meta, p_meta );
+ }
+
+-
+ /**
+ * Read the meta information from XiphComments
+ * @param tag: the Xiph Comment
--- /dev/null
+From: =?utf-8?q?Hugo_Beauz=C3=A9e-Luyssen?= <hugo@beauzee.fr>
+Date: Mon, 18 Mar 2019 15:09:39 +0100
+Subject: taglib: IOStream: Return the url as fileName
+
+Since the only part that matters to taglib is the filename, and more
+specifically the extension part.
+
+(cherry picked from commit 026a76066efa78f1934ab2c177669a2e6a519cff)
+---
+ modules/meta_engine/taglib.cpp | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/modules/meta_engine/taglib.cpp b/modules/meta_engine/taglib.cpp
+index 8770d0c..bec6838 100644
+--- a/modules/meta_engine/taglib.cpp
++++ b/modules/meta_engine/taglib.cpp
+@@ -176,7 +176,9 @@ public:
+
+ FileName name() const
+ {
+- return m_stream->psz_location;
++ // Taglib only cares about the file name part, so it doesn't matter
++ // whether we include the mrl scheme or not
++ return m_stream->psz_url;
+ }
+
+ ByteVector readBlock(ulong length)
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Mon, 16 Sep 2024 13:21:17 +0200
+Subject: taglib: Always use IOStream to read the media
+
+(cherry picked from commit 4bc7607f31f80264b5e61fbd187f2f8d2f3bb604) (edited)
+edited:
+- keep the support for taglib older than 1.11 which doesn't have the
+ proper FileRef constructor to use it
+- the aacresolver is only called for Taglib 1.11+ on 3.0
+- 4.0 doesn't make a difference for UWP or regular Windows
+---
+ modules/meta_engine/taglib.cpp | 35 +++++++++--------------------------
+ 1 file changed, 9 insertions(+), 26 deletions(-)
+
+diff --git a/modules/meta_engine/taglib.cpp b/modules/meta_engine/taglib.cpp
+index bec6838..adf3a24 100644
+--- a/modules/meta_engine/taglib.cpp
++++ b/modules/meta_engine/taglib.cpp
+@@ -891,15 +891,15 @@ static int ReadMeta( vlc_object_t* p_this)
+ if( unlikely(psz_uri == NULL) )
+ return VLC_ENOMEM;
+
+- char *psz_path = vlc_uri2path( psz_uri );
+-#if VLC_WINSTORE_APP && TAGLIB_VERSION >= TAGLIB_VERSION_1_11
+- if( psz_path == NULL )
++ if( !b_extensions_registered )
+ {
+- free( psz_uri );
+- return VLC_EGENERIC;
++#if TAGLIB_VERSION >= TAGLIB_VERSION_1_11
++ FileRef::addFileTypeResolver( &aacresolver );
++#endif
++ b_extensions_registered = true;
+ }
+- free( psz_path );
+
++#if TAGLIB_VERSION >= TAGLIB_VERSION_1_11
+ stream_t *p_stream = vlc_access_NewMRL( p_this, psz_uri );
+ free( psz_uri );
+ if( p_stream == NULL )
+@@ -907,19 +907,12 @@ static int ReadMeta( vlc_object_t* p_this)
+
+ VlcIostream s( p_stream );
+ f = FileRef( &s );
+-#else /* VLC_WINSTORE_APP */
++#else // !TAGLIB_VERSION_1_11
++ char *psz_path = vlc_uri2path( psz_uri );
+ free( psz_uri );
+ if( psz_path == NULL )
+ return VLC_EGENERIC;
+
+- if( !b_extensions_registered )
+- {
+-#if TAGLIB_VERSION >= TAGLIB_VERSION_1_11
+- FileRef::addFileTypeResolver( &aacresolver );
+-#endif
+- b_extensions_registered = true;
+- }
+-
+ #if defined(_WIN32)
+ wchar_t *wpath = ToWide( psz_path );
+ if( wpath == NULL )
+@@ -927,23 +920,13 @@ static int ReadMeta( vlc_object_t* p_this)
+ free( psz_path );
+ return VLC_EGENERIC;
+ }
+-#if TAGLIB_VERSION >= TAGLIB_VERSION_1_11
+- FileStream stream( wpath, true );
+- f = FileRef( &stream );
+-#else /* TAGLIB_VERSION */
+ f = FileRef( wpath );
+-#endif /* TAGLIB_VERSION */
+ free( wpath );
+ #else /* _WIN32 */
+-#if TAGLIB_VERSION >= TAGLIB_VERSION_1_11
+- FileStream stream( psz_path, true );
+- f = FileRef( &stream );
+-#else /* TAGLIB_VERSION */
+ f = FileRef( psz_path );
+-#endif /* TAGLIB_VERSION */
+ #endif /* _WIN32 */
+ free( psz_path );
+-#endif /* VLC_WINSTORE_APP */
++#endif // !TAGLIB_VERSION_1_11
+
+ if( f.isNull() )
+ return VLC_EGENERIC;
--- /dev/null
+From: =?utf-8?q?Hugo_Beauz=C3=A9e-Luyssen?= <hugo@beauzee.fr>
+Date: Tue, 8 Oct 2019 17:21:20 +0200
+Subject: taglib: Enable prefetch/cache on the IOStream
+
+We can't do it through vlc_stream_NewURL as it will include the
+skiptags filter
+
+(cherry picked from commit 976cd219465a72daa02d22e60c9ac4c704c0b18b)
+---
+ modules/meta_engine/taglib.cpp | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/modules/meta_engine/taglib.cpp b/modules/meta_engine/taglib.cpp
+index adf3a24..31ab839 100644
+--- a/modules/meta_engine/taglib.cpp
++++ b/modules/meta_engine/taglib.cpp
+@@ -904,6 +904,9 @@ static int ReadMeta( vlc_object_t* p_this)
+ free( psz_uri );
+ if( p_stream == NULL )
+ return VLC_EGENERIC;
++ stream_t* p_filter = vlc_stream_FilterNew( p_stream, "prefetch,cache" );
++ if( p_filter )
++ p_stream = p_filter;
+
+ VlcIostream s( p_stream );
+ f = FileRef( &s );
--- /dev/null
+From: Alexandre Janniaux <ajanni@videolabs.io>
+Date: Fri, 7 Feb 2020 23:50:00 +0100
+Subject: taglib: fix -Wdeprecated-copy warnings
+MIME-Version: 1.0
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: 8bit
+
+Warnings were happening because we were using copy operator= as the
+assigned object was already initialized. This patch use the copy
+constructor or move constructor instead if available.
+
+Those warnings were:
+
+../../modules/meta_engine/taglib.cpp: In function ‘void ReadMetaFromXiph(TagLib::Ogg::XiphComment*, demux_meta_t*, vlc_meta_t*)’:
+../../modules/meta_engine/taglib.cpp:672:39: warning: implicitly-declared ‘TagLib::StringList& TagLib::StringList::operator=(const TagLib::StringList&)’ is deprecated [-Wdeprecated-copy]
+ 672 | list = tag->fieldListMap()[keyName]; \
+ | ^
+../../modules/meta_engine/taglib.cpp:681:5: note: in expansion of macro ‘SET’
+ 681 | SET( "COPYRIGHT", Copyright );
+ | ^~~
+In file included from /usr/include/taglib/fileref.h:30,
+ from ../../modules/meta_engine/taglib.cpp:58:
+/usr/include/taglib/tstringlist.h:59:5: note: because ‘TagLib::StringList’ has user-provided ‘TagLib::StringList::StringList(const TagLib::StringList&)’
+ 59 | StringList(const StringList &l);
+ | ^~~~~~~~~~
+
+Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
+(cherry picked from commit be4f907a0e834c10277b8217520f745238da1c13)
+---
+ modules/meta_engine/taglib.cpp | 51 +++++++++++++++++++++++++-----------------
+ 1 file changed, 30 insertions(+), 21 deletions(-)
+
+diff --git a/modules/meta_engine/taglib.cpp b/modules/meta_engine/taglib.cpp
+index 31ab839..2ef0593 100644
+--- a/modules/meta_engine/taglib.cpp
++++ b/modules/meta_engine/taglib.cpp
+@@ -703,17 +703,20 @@ static void ReadMetaFromId3v2( ID3v2::Tag* tag, demux_meta_t* p_demux_meta, vlc_
+ */
+ static void ReadMetaFromXiph( Ogg::XiphComment* tag, demux_meta_t* p_demux_meta, vlc_meta_t* p_meta )
+ {
+- StringList list;
+ bool hasTrackTotal = false;
+-#define SET( keyName, metaName ) \
+- list = tag->fieldListMap()[keyName]; \
+- if( !list.isEmpty() ) \
+- vlc_meta_Set##metaName( p_meta, (*list.begin()).toCString( true ) );
++#define SET( keyName, metaName ) \
++ { \
++ StringList tmp_list { tag->fieldListMap()[keyName] }; \
++ if( !tmp_list.isEmpty() ) \
++ vlc_meta_Set##metaName( p_meta, (*tmp_list.begin()).toCString( true ) ); \
++ }
+
+ #define SET_EXTRA( keyName, metaName ) \
+- list = tag->fieldListMap()[keyName]; \
+- if( !list.isEmpty() ) \
+- vlc_meta_AddExtra( p_meta, keyName, (*list.begin()).toCString( true ) );
++ { \
++ StringList tmp_list = tag->fieldListMap()[keyName]; \
++ if( !tmp_list.isEmpty() ) \
++ vlc_meta_AddExtra( p_meta, keyName, (*tmp_list.begin()).toCString( true ) ); \
++ }
+
+ SET( "COPYRIGHT", Copyright );
+ SET( "ORGANIZATION", Publisher );
+@@ -729,25 +732,31 @@ static void ReadMetaFromXiph( Ogg::XiphComment* tag, demux_meta_t* p_demux_meta,
+ #undef SET
+ #undef SET_EXTRA
+
+- list = tag->fieldListMap()["TRACKNUMBER"];
+- if( !list.isEmpty() )
++ StringList track_number_list = tag->fieldListMap()["TRACKNUMBER"];
++ if( !track_number_list.isEmpty() )
+ {
+- int i_values = ExtractCoupleNumberValues( p_meta, (*list.begin()).toCString( true ),
++ int i_values = ExtractCoupleNumberValues( p_meta, (*track_number_list.begin()).toCString( true ),
+ vlc_meta_TrackNumber, vlc_meta_TrackTotal );
+ hasTrackTotal = i_values == 2;
+ }
+ if( !hasTrackTotal )
+ {
+- list = tag->fieldListMap()["TRACKTOTAL"];
+- if( list.isEmpty() )
+- list = tag->fieldListMap()["TOTALTRACKS"];
+- if( !list.isEmpty() )
+- vlc_meta_SetTrackTotal( p_meta, (*list.begin()).toCString( true ) );
++ StringList track_total_list { tag->fieldListMap()["TRACKTOTAL"] };
++ if( track_total_list.isEmpty() )
++ {
++ StringList total_tracks_list { tag->fieldListMap()["TOTALTRACKS"] };
++ if( !total_tracks_list.isEmpty() )
++ vlc_meta_SetTrackTotal( p_meta, (*total_tracks_list.begin()).toCString( true ) );
++ }
++ else
++ {
++ vlc_meta_SetTrackTotal( p_meta, (*track_total_list.begin()).toCString( true ) );
++ }
+ }
+
+ // Try now to get embedded art
+- StringList mime_list = tag->fieldListMap()[ "COVERARTMIME" ];
+- StringList art_list = tag->fieldListMap()[ "COVERART" ];
++ StringList mime_list { tag->fieldListMap()[ "COVERARTMIME" ] };
++ StringList art_list { tag->fieldListMap()[ "COVERART" ] };
+
+ input_attachment_t *p_attachment;
+
+@@ -774,14 +783,14 @@ static void ReadMetaFromXiph( Ogg::XiphComment* tag, demux_meta_t* p_demux_meta,
+ }
+ else
+ {
+- art_list = tag->fieldListMap()[ "METADATA_BLOCK_PICTURE" ];
+- if( art_list.size() == 0 )
++ StringList block_picture_list { tag->fieldListMap()[ "METADATA_BLOCK_PICTURE" ] };
++ if( block_picture_list.size() == 0 )
+ return;
+
+ uint8_t *p_data;
+ int i_cover_score;
+ int i_cover_idx;
+- int i_data = vlc_b64_decode_binary( &p_data, art_list[0].toCString(true) );
++ int i_data = vlc_b64_decode_binary( &p_data, block_picture_list[0].toCString(true) );
+ i_cover_score = i_cover_idx = 0;
+ /* TODO: Use i_cover_score / i_cover_idx to select the picture. */
+ p_attachment = ParseFlacPicture( p_data, i_data, 0,
--- /dev/null
+From: =?utf-8?q?Fran=C3=A7ois_Cartegnie?= <fcvlcdev@free.fr>
+Date: Mon, 10 Aug 2020 14:32:32 +0200
+Subject: meta_engine: taglib: increment VlcIostream readpos
+
+(cherry picked from commit 0cbcf504b43a02ddb7ecc1c65c0c1e82f39b4f1c)
+---
+ modules/meta_engine/taglib.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/modules/meta_engine/taglib.cpp b/modules/meta_engine/taglib.cpp
+index 2ef0593..85279bc 100644
+--- a/modules/meta_engine/taglib.cpp
++++ b/modules/meta_engine/taglib.cpp
+@@ -189,6 +189,7 @@ public:
+ return ByteVector::null;
+ else if ((size_t)i_read != length)
+ res.resize(i_read);
++ m_previousPos += i_read;
+ return res;
+ }
+
--- /dev/null
+From: =?utf-8?q?Fran=C3=A7ois_Cartegnie?= <fcvlcdev@free.fr>
+Date: Mon, 10 Aug 2020 14:38:00 +0200
+Subject: meta_engine: taglib: reject read on failed seek
+
+(cherry picked from commit 837b583e4e4e531ff8b11f13300c7cbc565beb9f) (rebased)
+rebased:
+- 3.0 already has 1.11 ifdef
+---
+ modules/meta_engine/taglib.cpp | 19 +++++++++++++++++--
+ 1 file changed, 17 insertions(+), 2 deletions(-)
+
+diff --git a/modules/meta_engine/taglib.cpp b/modules/meta_engine/taglib.cpp
+index 85279bc..58d7683 100644
+--- a/modules/meta_engine/taglib.cpp
++++ b/modules/meta_engine/taglib.cpp
+@@ -166,6 +166,7 @@ public:
+ VlcIostream(stream_t* p_stream)
+ : m_stream( p_stream )
+ , m_previousPos( 0 )
++ , m_borked( false )
+ {
+ }
+
+@@ -183,6 +184,8 @@ public:
+
+ ByteVector readBlock(ulong length)
+ {
++ if(m_borked)
++ return ByteVector::null;
+ ByteVector res(length, 0);
+ ssize_t i_read = vlc_stream_Read( m_stream, res.data(), length);
+ if (i_read < 0)
+@@ -219,18 +222,29 @@ public:
+ void seek(long offset, Position p)
+ {
+ uint64_t pos = 0;
++ long len;
+ switch (p)
+ {
+ case Current:
+ pos = m_previousPos;
+ break;
+ case End:
+- pos = length();
++ len = length();
++ if(len > -1)
++ {
++ pos = len;
++ }
++ else
++ {
++ m_borked = true;
++ return;
++ }
+ break;
+ default:
+ break;
+ }
+- if (vlc_stream_Seek( m_stream, pos + offset ) == 0)
++ m_borked = (vlc_stream_Seek( m_stream, pos + offset ) != 0);
++ if(!m_borked)
+ m_previousPos = pos + offset;
+ }
+
+@@ -259,6 +273,7 @@ public:
+ private:
+ stream_t* m_stream;
+ int64_t m_previousPos;
++ bool m_borked;
+ };
+ #endif /* TAGLIB_VERSION_1_11 */
+
--- /dev/null
+From: =?utf-8?q?Fran=C3=A7ois_Cartegnie?= <fcvlcdev@free.fr>
+Date: Mon, 10 Aug 2020 14:52:11 +0200
+Subject: meta_engine: taglib: add sequential read limit on VlcIostream
+
+(cherry picked from commit d375284a144e6b18896deda3a86b9560bc04f3d8) (rebased)
+rebased:
+- 3.0 already has 1.11 ifdef
+---
+ modules/meta_engine/taglib.cpp | 14 +++++++++++++-
+ 1 file changed, 13 insertions(+), 1 deletion(-)
+
+diff --git a/modules/meta_engine/taglib.cpp b/modules/meta_engine/taglib.cpp
+index 58d7683..a52c67c 100644
+--- a/modules/meta_engine/taglib.cpp
++++ b/modules/meta_engine/taglib.cpp
+@@ -99,6 +99,7 @@ using namespace TagLib;
+
+
+ #include <algorithm>
++#include <limits>
+
+ namespace VLCTagLib
+ {
+@@ -167,6 +168,8 @@ public:
+ : m_stream( p_stream )
+ , m_previousPos( 0 )
+ , m_borked( false )
++ , m_seqReadLength( 0 )
++ , m_seqReadLimit( std::numeric_limits<long>::max() )
+ {
+ }
+
+@@ -184,7 +187,7 @@ public:
+
+ ByteVector readBlock(ulong length)
+ {
+- if(m_borked)
++ if(m_borked || m_seqReadLength >= m_seqReadLimit)
+ return ByteVector::null;
+ ByteVector res(length, 0);
+ ssize_t i_read = vlc_stream_Read( m_stream, res.data(), length);
+@@ -193,6 +196,7 @@ public:
+ else if ((size_t)i_read != length)
+ res.resize(i_read);
+ m_previousPos += i_read;
++ m_seqReadLength += i_read;
+ return res;
+ }
+
+@@ -219,6 +223,11 @@ public:
+ return true;
+ }
+
++ void setMaxSequentialRead(long s)
++ {
++ m_seqReadLimit = s;
++ }
++
+ void seek(long offset, Position p)
+ {
+ uint64_t pos = 0;
+@@ -246,6 +255,7 @@ public:
+ m_borked = (vlc_stream_Seek( m_stream, pos + offset ) != 0);
+ if(!m_borked)
+ m_previousPos = pos + offset;
++ m_seqReadLength = 0;
+ }
+
+ void clear()
+@@ -274,6 +284,8 @@ private:
+ stream_t* m_stream;
+ int64_t m_previousPos;
+ bool m_borked;
++ long m_seqReadLength;
++ long m_seqReadLimit;
+ };
+ #endif /* TAGLIB_VERSION_1_11 */
+
--- /dev/null
+From: =?utf-8?q?Fran=C3=A7ois_Cartegnie?= <fcvlcdev@free.fr>
+Date: Mon, 10 Aug 2020 14:55:02 +0200
+Subject: meta_engine: taglib: restrict unlimited reads on streams
+
+taglib reads unlimited if no IDv3 or MPEG header is found at the
+beginning.
+
+(cherry picked from commit 8ec8b0d2add84b6d6b0c043e1c4f241998915ecd) (rebased)
+rebased:
+- only used with Taglib 1.11+ which is not always the case with 3.0
+---
+ modules/meta_engine/taglib.cpp | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/modules/meta_engine/taglib.cpp b/modules/meta_engine/taglib.cpp
+index a52c67c..0b7b582 100644
+--- a/modules/meta_engine/taglib.cpp
++++ b/modules/meta_engine/taglib.cpp
+@@ -946,7 +946,14 @@ static int ReadMeta( vlc_object_t* p_this)
+ p_stream = p_filter;
+
+ VlcIostream s( p_stream );
+- f = FileRef( &s );
++#ifndef VLC_PATCHED_TAGLIB_ID3V2_READSTYLE
++ uint64_t dummy;
++ if( vlc_stream_GetSize( p_stream, &dummy ) != VLC_SUCCESS )
++ s.setMaxSequentialRead( 2048 );
++ else
++ s.setMaxSequentialRead( 1024 * 2048 );
++#endif
++ f = FileRef( &s, false, AudioProperties::ReadStyle::Fast );
+ #else // !TAGLIB_VERSION_1_11
+ char *psz_path = vlc_uri2path( psz_uri );
+ free( psz_uri );
--- /dev/null
+From: =?utf-8?q?Fran=C3=A7ois_Cartegnie?= <fcvlcdev@free.fr>
+Date: Wed, 2 Sep 2020 16:53:13 +0200
+Subject: meta: taglib: reject non expected schemes
+
+refs #25035
+
+(cherry picked from commit 8191ac5727a3525a6bee99e1674167a7894f9ccb) (rebased)
+rebased:
+- 3.0 already has a26e2ba370d898dda04c718176af7d2e329dab7a above
+---
+ modules/meta_engine/taglib.cpp | 23 +++++++++++++++++++++++
+ 1 file changed, 23 insertions(+)
+
+diff --git a/modules/meta_engine/taglib.cpp b/modules/meta_engine/taglib.cpp
+index 0b7b582..ced4f56 100644
+--- a/modules/meta_engine/taglib.cpp
++++ b/modules/meta_engine/taglib.cpp
+@@ -910,6 +910,23 @@ static int ReadWAVMeta( const RIFF::WAV::File *wav, demux_meta_t *demux_meta )
+ return VLC_SUCCESS;
+ }
+
++static bool isSchemeCompatible( const char *psz_uri )
++{
++ const char *p = strstr( psz_uri, "://" );
++ if( p == NULL )
++ return false;
++
++ size_t i_len = p - psz_uri;
++ const char * compatibleschemes[] =
++ {
++ "file", "smb",
++ };
++ for( size_t i=0; i<ARRAY_SIZE(compatibleschemes); i++ )
++ if( !strncasecmp( psz_uri, compatibleschemes[i], i_len ) )
++ return true;
++ return false;
++}
++
+ /**
+ * Get the tags from the file using TagLib
+ * @param p_this: the demux object
+@@ -928,6 +945,12 @@ static int ReadMeta( vlc_object_t* p_this)
+ if( unlikely(psz_uri == NULL) )
+ return VLC_ENOMEM;
+
++ if( !isSchemeCompatible( psz_uri ) )
++ {
++ free( psz_uri );
++ return VLC_EGENERIC;
++ }
++
+ if( !b_extensions_registered )
+ {
+ #if TAGLIB_VERSION >= TAGLIB_VERSION_1_11
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Fri, 25 Jun 2021 13:09:14 +0200
+Subject: taglib: fix variable shadowing
+
+list is already a different local list defined earlier in the function.
+
+(cherry picked from commit 34ca2a286edda76a9718cfa1e50bd3e4ea51702c)
+---
+ modules/meta_engine/taglib.cpp | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/modules/meta_engine/taglib.cpp b/modules/meta_engine/taglib.cpp
+index ced4f56..a48e102 100644
+--- a/modules/meta_engine/taglib.cpp
++++ b/modules/meta_engine/taglib.cpp
+@@ -869,15 +869,15 @@ static void ReadMetaFromMP4( MP4::Tag* tag, demux_meta_t *p_demux_meta, vlc_meta
+
+ if( tag->itemListMap().contains("covr") )
+ {
+- MP4::CoverArtList list = tag->itemListMap()["covr"].toCoverArtList();
+- const char *psz_format = list[0].format() == MP4::CoverArt::PNG ? "image/png" : "image/jpeg";
++ MP4::CoverArtList cover_list = tag->itemListMap()["covr"].toCoverArtList();
++ const char *psz_format = cover_list[0].format() == MP4::CoverArt::PNG ? "image/png" : "image/jpeg";
+
+ msg_Dbg( p_demux_meta, "Found embedded art (%s) is %i bytes",
+- psz_format, list[0].data().size() );
++ psz_format, cover_list[0].data().size() );
+
+ input_attachment_t *p_attachment =
+ vlc_input_attachment_New( "cover", psz_format, "cover",
+- list[0].data().data(), list[0].data().size() );
++ cover_list[0].data().data(), cover_list[0].data().size() );
+ if( p_attachment )
+ {
+ TAB_APPEND_CAST( (input_attachment_t**),
--- /dev/null
+From: =?utf-8?q?Hugo_Beauz=C3=A9e-Luyssen?= <hugo@beauzee.fr>
+Date: Mon, 13 Sep 2021 12:08:53 +0200
+Subject: taglib: Don't convert base64 strings to UTF8
+
+The convertion will incur a cost which we don't want to pay since the
+art needs to be encoded in base64, which doesn't include anything
+outside of ASCII
+
+(cherry picked from commit 65dfe0cdc97bbb98ad34a690989636d40f326e32)
+---
+ modules/meta_engine/taglib.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/modules/meta_engine/taglib.cpp b/modules/meta_engine/taglib.cpp
+index a48e102..256e8e4 100644
+--- a/modules/meta_engine/taglib.cpp
++++ b/modules/meta_engine/taglib.cpp
+@@ -800,7 +800,7 @@ static void ReadMetaFromXiph( Ogg::XiphComment* tag, demux_meta_t* p_demux_meta,
+ const char* psz_description = "cover";
+
+ uint8_t *p_data;
+- int i_data = vlc_b64_decode_binary( &p_data, art_list[0].toCString(true) );
++ int i_data = vlc_b64_decode_binary( &p_data, art_list[0].toCString(false) );
+
+ msg_Dbg( p_demux_meta, "Found embedded art: %s (%s) is %i bytes",
+ psz_name, psz_mime, i_data );
+@@ -818,7 +818,7 @@ static void ReadMetaFromXiph( Ogg::XiphComment* tag, demux_meta_t* p_demux_meta,
+ uint8_t *p_data;
+ int i_cover_score;
+ int i_cover_idx;
+- int i_data = vlc_b64_decode_binary( &p_data, block_picture_list[0].toCString(true) );
++ int i_data = vlc_b64_decode_binary( &p_data, block_picture_list[0].toCString(false) );
+ i_cover_score = i_cover_idx = 0;
+ /* TODO: Use i_cover_score / i_cover_idx to select the picture. */
+ p_attachment = ParseFlacPicture( p_data, i_data, 0,
--- /dev/null
+From: =?utf-8?q?Hugo_Beauz=C3=A9e-Luyssen?= <hugo@beauzee.fr>
+Date: Fri, 26 Nov 2021 18:08:47 +0100
+Subject: taglib: ByteVector::null is now deprecated
+
+(cherry picked from commit d2663d6c3fe3af76bdefd58367b4a45c598b83e4)
+---
+ modules/meta_engine/taglib.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/modules/meta_engine/taglib.cpp b/modules/meta_engine/taglib.cpp
+index 256e8e4..206abb1 100644
+--- a/modules/meta_engine/taglib.cpp
++++ b/modules/meta_engine/taglib.cpp
+@@ -188,11 +188,11 @@ public:
+ ByteVector readBlock(ulong length)
+ {
+ if(m_borked || m_seqReadLength >= m_seqReadLimit)
+- return ByteVector::null;
++ return {};
+ ByteVector res(length, 0);
+ ssize_t i_read = vlc_stream_Read( m_stream, res.data(), length);
+ if (i_read < 0)
+- return ByteVector::null;
++ return {};
+ else if ((size_t)i_read != length)
+ res.resize(i_read);
+ m_previousPos += i_read;
--- /dev/null
+From: =?utf-8?q?Hugo_Beauz=C3=A9e-Luyssen?= <hugo@beauzee.fr>
+Date: Fri, 26 Nov 2021 18:17:19 +0100
+Subject: taglib: Remove usages of deprecated itemListMap
+
+contains() was added in 1.10 and item() is supported since 1.9
+
+(cherry picked from commit ac59d0ba59ba800c52c0a92ec1d9576d2653dbe2)
+---
+ modules/meta_engine/taglib.cpp | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/modules/meta_engine/taglib.cpp b/modules/meta_engine/taglib.cpp
+index 206abb1..d0ced96 100644
+--- a/modules/meta_engine/taglib.cpp
++++ b/modules/meta_engine/taglib.cpp
+@@ -849,15 +849,15 @@ static void ReadMetaFromMP4( MP4::Tag* tag, demux_meta_t *p_demux_meta, vlc_meta
+ {
+ MP4::Item list;
+ #define SET( keyName, metaName ) \
+- if( tag->itemListMap().contains(keyName) ) \
++ if( tag->contains(keyName) ) \
+ { \
+- list = tag->itemListMap()[keyName]; \
++ list = tag->item(keyName); \
+ vlc_meta_Set##metaName( p_meta, list.toStringList().front().toCString( true ) ); \
+ }
+ #define SET_EXTRA( keyName, metaName ) \
+- if( tag->itemListMap().contains(keyName) ) \
+- { \
+- list = tag->itemListMap()[keyName]; \
++ if( tag->contains(keyName) ) \
++ { \
++ list = tag->item(keyName); \
+ vlc_meta_AddExtra( p_meta, metaName, list.toStringList().front().toCString( true ) ); \
+ }
+
+@@ -867,9 +867,9 @@ static void ReadMetaFromMP4( MP4::Tag* tag, demux_meta_t *p_demux_meta, vlc_meta
+ #undef SET
+ #undef SET_EXTRA
+
+- if( tag->itemListMap().contains("covr") )
++ if( tag->contains("covr") )
+ {
+- MP4::CoverArtList cover_list = tag->itemListMap()["covr"].toCoverArtList();
++ MP4::CoverArtList cover_list = tag->item("covr").toCoverArtList();
+ const char *psz_format = cover_list[0].format() == MP4::CoverArt::PNG ? "image/png" : "image/jpeg";
+
+ msg_Dbg( p_demux_meta, "Found embedded art (%s) is %i bytes",
--- /dev/null
+From: =?utf-8?q?Hugo_Beauz=C3=A9e-Luyssen?= <hugo@beauzee.fr>
+Date: Fri, 26 Nov 2021 18:19:41 +0100
+Subject: taglib: Remove use of deprecated String::isNull
+
+(cherry picked from commit c404fdb24183031a419667639846edddca3401f8) (edited)
+edited:
+- 294cbdbaee0209bc88ca7bec9164da8da4ac44ef was merged before this patch
+---
+ modules/meta_engine/taglib.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/meta_engine/taglib.cpp b/modules/meta_engine/taglib.cpp
+index d0ced96..0c0cebd 100644
+--- a/modules/meta_engine/taglib.cpp
++++ b/modules/meta_engine/taglib.cpp
+@@ -602,7 +602,7 @@ static void ProcessAPICListFromId3v2( const ID3v2::FrameList &list,
+ static void ReadMetaFromBasicTag(const Tag* tag, vlc_meta_t *dest)
+ {
+ #define SET( accessor, meta ) \
+- if( !tag->accessor().isNull() && !tag->accessor().isEmpty() ) \
++ if( !tag->accessor().isEmpty() ) \
+ vlc_meta_Set##meta( dest, tag->accessor().toCString(true) )
+ #define SETINT( accessor, meta ) \
+ if( tag->accessor() ) \
--- /dev/null
+From: =?utf-8?q?Hugo_Beauz=C3=A9e-Luyssen?= <hugo@beauzee.fr>
+Date: Wed, 16 Feb 2022 09:52:38 +0100
+Subject: taglib: Remove explicit invocation of default constructor
+
+This is already done implicitly
+
+(cherry picked from commit 93842f650548d6f29ec13cf0679bf49cf5ce107c)
+---
+ modules/meta_engine/taglib.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/meta_engine/taglib.cpp b/modules/meta_engine/taglib.cpp
+index 0c0cebd..a52adfe 100644
+--- a/modules/meta_engine/taglib.cpp
++++ b/modules/meta_engine/taglib.cpp
+@@ -117,7 +117,7 @@ namespace VLCTagLib
+ }
+
+ template <class T>
+-VLCTagLib::ExtResolver<T>::ExtResolver(const std::string & ext) : FileTypeResolver()
++VLCTagLib::ExtResolver<T>::ExtResolver(const std::string & ext)
+ {
+ this->ext = ext;
+ std::transform(this->ext.begin(), this->ext.end(), this->ext.begin(), ::toupper);
--- /dev/null
+From: =?utf-8?q?Hugo_Beauz=C3=A9e-Luyssen?= <hugo@beauzee.fr>
+Date: Wed, 9 Feb 2022 14:14:08 +0100
+Subject: taglib: Implement new StreamTypeResolver interface when available
+
+refs #26602
+
+(cherry picked from commit 268b5b8bc1f1109c4fc69b22e53095c6d81faa76) (rebased)
+---
+ modules/meta_engine/taglib.cpp | 31 +++++++++++++++++++++++++++++++
+ 1 file changed, 31 insertions(+)
+
+diff --git a/modules/meta_engine/taglib.cpp b/modules/meta_engine/taglib.cpp
+index a52adfe..e3e80cc 100644
+--- a/modules/meta_engine/taglib.cpp
++++ b/modules/meta_engine/taglib.cpp
+@@ -101,15 +101,27 @@ using namespace TagLib;
+ #include <algorithm>
+ #include <limits>
+
++#if defined(VLC_PATCHED_TAGLIB_IOSTREAM_RESOLVERS) || \
++ TAGLIB_VERSION >= VERSION_INT(1, 12, 0)
++#define USE_IOSTREAM_RESOLVER 1
++#endif
++
+ namespace VLCTagLib
+ {
+ template <class T>
++#ifdef USE_IOSTREAM_RESOLVER
++ class ExtResolver : public FileRef::StreamTypeResolver
++#else
+ class ExtResolver : public FileRef::FileTypeResolver
++#endif
+ {
+ public:
+ ExtResolver(const std::string &);
+ ~ExtResolver() {}
+ virtual File *createFile(FileName, bool, AudioProperties::ReadStyle) const;
++#ifdef USE_IOSTREAM_RESOLVER
++ virtual File *createFileFromStream(IOStream*, bool, AudioProperties::ReadStyle) const;
++#endif
+
+ protected:
+ std::string ext;
+@@ -140,6 +152,25 @@ File *VLCTagLib::ExtResolver<T>::createFile(FileName fileName, bool, AudioProper
+ return 0;
+ }
+
++#ifdef USE_IOSTREAM_RESOLVER
++template<class T>
++File* VLCTagLib::ExtResolver<T>::createFileFromStream(IOStream* s, bool, AudioProperties::ReadStyle) const
++{
++ std::string filename = std::string(s->name());
++ std::size_t namesize = filename.size();
++
++ if (namesize > ext.length())
++ {
++ std::string fext = filename.substr(namesize - ext.length(), ext.length());
++ std::transform(fext.begin(), fext.end(), fext.begin(), ::toupper);
++ if(fext == ext)
++ return new T(s, ID3v2::FrameFactory::instance(), false, AudioProperties::Fast);
++ }
++
++ return nullptr;
++}
++#endif
++
+ #if TAGLIB_VERSION >= TAGLIB_VERSION_1_11
+ static VLCTagLib::ExtResolver<MPEG::File> aacresolver(".aac");
+ #endif
--- /dev/null
+From: =?utf-8?q?Hugo_Beauz=C3=A9e-Luyssen?= <hugo@beauzee.fr>
+Date: Wed, 9 Feb 2022 14:18:11 +0100
+Subject: taglib: Use nullptr instead of 0 for pointers
+
+(cherry picked from commit 89e20ea0d87f414f763ce38ff5579aec61f71b42)
+---
+ modules/meta_engine/taglib.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/meta_engine/taglib.cpp b/modules/meta_engine/taglib.cpp
+index e3e80cc..e50f559 100644
+--- a/modules/meta_engine/taglib.cpp
++++ b/modules/meta_engine/taglib.cpp
+@@ -149,7 +149,7 @@ File *VLCTagLib::ExtResolver<T>::createFile(FileName fileName, bool, AudioProper
+ return new T(fileName, false, AudioProperties::Fast);
+ }
+
+- return 0;
++ return nullptr;
+ }
+
+ #ifdef USE_IOSTREAM_RESOLVER
--- /dev/null
+From: =?utf-8?q?Hugo_Beauz=C3=A9e-Luyssen?= <hugo@beauzee.fr>
+Date: Fri, 18 Feb 2022 08:26:41 +0100
+Subject: taglib: Fix invalid version check
+
+(cherry picked from commit 53260ca5ae906f1e35791d14e4b588d25c04e51b)
+---
+ modules/meta_engine/taglib.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/meta_engine/taglib.cpp b/modules/meta_engine/taglib.cpp
+index e50f559..810ad2c 100644
+--- a/modules/meta_engine/taglib.cpp
++++ b/modules/meta_engine/taglib.cpp
+@@ -102,7 +102,7 @@ using namespace TagLib;
+ #include <limits>
+
+ #if defined(VLC_PATCHED_TAGLIB_IOSTREAM_RESOLVERS) || \
+- TAGLIB_VERSION >= VERSION_INT(1, 12, 0)
++ TAGLIB_VERSION >= VERSION_INT(1, 13, 0)
+ #define USE_IOSTREAM_RESOLVER 1
+ #endif
+
--- /dev/null
+From: Marvin Scholz <epirat07@gmail.com>
+Date: Mon, 11 Apr 2022 23:21:25 +0200
+Subject: meta: taglib: use std::min
+
+(cherry picked from commit 584fd17a9445d8d5f7d692b7416eec09b9240b0e)
+---
+ modules/meta_engine/taglib.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/meta_engine/taglib.cpp b/modules/meta_engine/taglib.cpp
+index 810ad2c..9586510 100644
+--- a/modules/meta_engine/taglib.cpp
++++ b/modules/meta_engine/taglib.cpp
+@@ -679,7 +679,7 @@ static void ReadMetaFromId3v2( ID3v2::Tag* tag, demux_meta_t* p_demux_meta, vlc_
+ * but in our case it will be a '\0'
+ * terminated string */
+ char psz_ufid[64];
+- int max_size = __MIN( p_ufid->identifier().size(), 63);
++ int max_size = std::min<unsigned>( p_ufid->identifier().size(), 63);
+ strncpy( psz_ufid, p_ufid->identifier().data(), max_size );
+ psz_ufid[max_size] = '\0';
+ vlc_meta_SetTrackID( p_meta, psz_ufid );
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Wed, 4 Jan 2023 15:24:47 +0100
+Subject: taglib: don't cast the file st_size to a possibly smaller type
+
+We can just use auto and always get the proper type.
+
+(cherry picked from commit 7413126744e0b494856ba9acc5ae3c27ce4af625)
+---
+ modules/meta_engine/taglib.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/meta_engine/taglib.cpp b/modules/meta_engine/taglib.cpp
+index 9586510..2891e06 100644
+--- a/modules/meta_engine/taglib.cpp
++++ b/modules/meta_engine/taglib.cpp
+@@ -1233,7 +1233,7 @@ static void WriteMetaToId3v2( ID3v2::Tag* tag, input_item_t* p_item )
+ fclose( p_file );
+ return;
+ }
+- off_t file_size = st.st_size;
++ auto file_size = st.st_size;
+
+ free( psz_path );
+
--- /dev/null
+From: Johannes Kauffmann <johanneskauffmann@hotmail.com>
+Date: Sat, 3 Jun 2023 17:35:09 +0200
+Subject: taglib: remove VLC path define check
+
+It is no longer needed with contribs taglib updated to 1.13.
+
+(cherry picked from commit c5851fd495ed6de1d3712e64a2b1cc1e4e9059f4)
+---
+ modules/meta_engine/taglib.cpp | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/modules/meta_engine/taglib.cpp b/modules/meta_engine/taglib.cpp
+index 2891e06..487a152 100644
+--- a/modules/meta_engine/taglib.cpp
++++ b/modules/meta_engine/taglib.cpp
+@@ -101,8 +101,7 @@ using namespace TagLib;
+ #include <algorithm>
+ #include <limits>
+
+-#if defined(VLC_PATCHED_TAGLIB_IOSTREAM_RESOLVERS) || \
+- TAGLIB_VERSION >= VERSION_INT(1, 13, 0)
++#if TAGLIB_VERSION >= VERSION_INT(1, 13, 0)
+ #define USE_IOSTREAM_RESOLVER 1
+ #endif
+
--- /dev/null
+From: Vikram Kangotra <vikramkangotra8055@gmail.com>
+Date: Sat, 3 Feb 2024 02:52:52 +0530
+Subject: Taglib: Use ID3v2Tag() instead of tag() for RIFF::WAV::File
+
+`WriteMetaToId3v2` expects a `ID3v2::Tag` instead of `Tag`, but Since TagLib v2.0,
+`RIFF::WAV::File::tag()` returns a `Tag` instead of `ID3v2::Tag`, hence replace
+the usage of `tag()` method with `ID3v2Tag()`.
+
+https://github.com/taglib/taglib/blob/master/taglib/riff/wav/wavfile.h#L124
+
+Additionally, to resolve the compilation error, the function signatures of
+`insert` and `removeBlock` have been adjusted to align with the base class
+functions.
+
+(cherry picked from commit ec29dfca1e59530dd412d779e0b045079b72ffb6)
+---
+ modules/meta_engine/taglib.cpp | 40 ++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 40 insertions(+)
+
+diff --git a/modules/meta_engine/taglib.cpp b/modules/meta_engine/taglib.cpp
+index 487a152..0e7996e 100644
+--- a/modules/meta_engine/taglib.cpp
++++ b/modules/meta_engine/taglib.cpp
+@@ -137,7 +137,11 @@ VLCTagLib::ExtResolver<T>::ExtResolver(const std::string & ext)
+ template <class T>
+ File *VLCTagLib::ExtResolver<T>::createFile(FileName fileName, bool, AudioProperties::ReadStyle) const
+ {
++#if defined(_WIN32) && TAGLIB_VERSION >= VERSION_INT(2, 0, 0)
++ std::string filename = fileName.toString().to8Bit(true);
++#else
+ std::string filename = std::string(fileName);
++#endif
+ std::size_t namesize = filename.size();
+
+ if (namesize > ext.length())
+@@ -155,7 +159,11 @@ File *VLCTagLib::ExtResolver<T>::createFile(FileName fileName, bool, AudioProper
+ template<class T>
+ File* VLCTagLib::ExtResolver<T>::createFileFromStream(IOStream* s, bool, AudioProperties::ReadStyle) const
+ {
++#if defined(_WIN32) && TAGLIB_VERSION >= VERSION_INT(2, 0, 0)
++ std::string filename = s->name().toString().to8Bit(true);
++#else
+ std::string filename = std::string(s->name());
++#endif
+ std::size_t namesize = filename.size();
+
+ if (namesize > ext.length())
+@@ -215,7 +223,11 @@ public:
+ return m_stream->psz_url;
+ }
+
++#if TAGLIB_VERSION >= VERSION_INT(2, 0, 0)
++ ByteVector readBlock(size_t length)
++#else
+ ByteVector readBlock(ulong length)
++#endif
+ {
+ if(m_borked || m_seqReadLength >= m_seqReadLimit)
+ return {};
+@@ -235,11 +247,19 @@ public:
+ // Let's stay Read-Only for now
+ }
+
++#if TAGLIB_VERSION >= VERSION_INT(2, 0, 0)
++ void insert(const ByteVector&, offset_t, size_t)
++#else
+ void insert(const ByteVector&, ulong, ulong)
++#endif
+ {
+ }
+
++#if TAGLIB_VERSION >= VERSION_INT(2, 0, 0)
++ void removeBlock(offset_t, size_t)
++#else
+ void removeBlock(ulong, ulong)
++#endif
+ {
+ }
+
+@@ -258,7 +278,11 @@ public:
+ m_seqReadLimit = s;
+ }
+
++#if TAGLIB_VERSION >= VERSION_INT(2, 0, 0)
++ void seek(offset_t offset, Position p)
++#else
+ void seek(long offset, Position p)
++#endif
+ {
+ uint64_t pos = 0;
+ long len;
+@@ -293,12 +317,20 @@ public:
+ return;
+ }
+
++#if TAGLIB_VERSION >= VERSION_INT(2, 0, 0)
++ offset_t tell() const
++#else
+ long tell() const
++#endif
+ {
+ return m_previousPos;
+ }
+
++#if TAGLIB_VERSION >= VERSION_INT(2, 0, 0)
++ offset_t length()
++#else
+ long length()
++#endif
+ {
+ uint64_t i_size;
+ if (vlc_stream_GetSize( m_stream, &i_size ) != VLC_SUCCESS)
+@@ -306,7 +338,11 @@ public:
+ return i_size;
+ }
+
++#if TAGLIB_VERSION >= VERSION_INT(2, 0, 0)
++ void truncate(offset_t)
++#else
+ void truncate(long)
++#endif
+ {
+ }
+
+@@ -1425,7 +1461,11 @@ static int WriteMeta( vlc_object_t *p_this )
+ if( RIFF::AIFF::File* riff_aiff = dynamic_cast<RIFF::AIFF::File*>(f.file()) )
+ WriteMetaToId3v2( riff_aiff->tag(), p_item );
+ else if( RIFF::WAV::File* riff_wav = dynamic_cast<RIFF::WAV::File*>(f.file()) )
++#if TAGLIB_VERSION >= VERSION_INT(2, 0, 0)
++ WriteMetaToId3v2( riff_wav->ID3v2Tag(), p_item );
++#else
+ WriteMetaToId3v2( riff_wav->tag(), p_item );
++#endif
+ }
+ else if( TrueAudio::File* trueaudio = dynamic_cast<TrueAudio::File*>(f.file()) )
+ {
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Wed, 18 Sep 2024 12:57:04 +0200
+Subject: lua: don't use | operator on VLC errors
+
+This could end up with unknown/invalid error values.
+
+(cherry picked from commit 586b28f4aab1f936d666bd3dab7904793c3012d7)
+---
+ modules/lua/extension.c | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/modules/lua/extension.c b/modules/lua/extension.c
+index cc6bffc..c8bfe22 100644
+--- a/modules/lua/extension.c
++++ b/modules/lua/extension.c
+@@ -971,7 +971,10 @@ int lua_ExecuteFunctionVa( extensions_manager_t *p_mgr, extension_t *p_ext,
+ i_ret = VLC_EGENERIC;
+ }
+
+- i_ret |= lua_DialogFlush( L );
++ if (i_ret != VLC_SUCCESS)
++ lua_DialogFlush( L );
++ else
++ i_ret = lua_DialogFlush( L );
+
+ exit:
+ return i_ret;
+@@ -1013,7 +1016,10 @@ int lua_ExtensionTriggerMenu( extensions_manager_t *p_mgr,
+ i_ret = VLC_EGENERIC;
+ }
+
+- i_ret |= lua_DialogFlush( L );
++ if (i_ret != VLC_SUCCESS)
++ lua_DialogFlush( L );
++ else
++ i_ret = lua_DialogFlush( L );
+ if( i_ret < VLC_SUCCESS )
+ {
+ msg_Dbg( p_mgr, "Something went wrong in %s (%s:%d)",
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Mon, 5 Aug 2024 10:58:29 +0200
+Subject: demux: mkv: fix link to ALAC documentation
+
+The 36 is the 12 bytes we write plus 24 bytes from ALACSpecificConfig.
+
+Also avoid subtracting 12 from a variable were we added 12 (our header).
+
+(cherry picked from commit d71ed1c6f081fba9e6e7ec4339734fc270ba0d64)
+---
+ modules/demux/mkv/matroska_segment_parse.cpp | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/modules/demux/mkv/matroska_segment_parse.cpp b/modules/demux/mkv/matroska_segment_parse.cpp
+index 37a650d..2b93674 100644
+--- a/modules/demux/mkv/matroska_segment_parse.cpp
++++ b/modules/demux/mkv/matroska_segment_parse.cpp
+@@ -56,12 +56,12 @@ static inline void fill_extra_data_alac( mkv_track_t *p_tk )
+ if( unlikely( !p_tk->fmt.p_extra ) ) return;
+ p_tk->fmt.i_extra = p_tk->i_extra_data + 12;
+ uint8_t *p_extra = static_cast<uint8_t*>( p_tk->fmt.p_extra );
+- /* See "ALAC Specific Info (36 bytes) (required)" from
+- alac.macosforge.org/trac/browser/trunk/ALACMagicCookieDescription.txt */
++ /* 12 bytes + "ALAC Specific Info (24 bytes) (required)" from
++ https://github.com/macosforge/alac/blob/master/ALACMagicCookieDescription.txt */
+ SetDWBE( p_extra, p_tk->fmt.i_extra );
+ memcpy( p_extra + 4, "alac", 4 );
+ SetDWBE( p_extra + 8, 0 );
+- memcpy( p_extra + 12, p_tk->p_extra_data, p_tk->fmt.i_extra - 12 );
++ memcpy( p_extra + 12, p_tk->p_extra_data, p_tk->i_extra_data );
+ }
+
+ static inline void fill_extra_data( mkv_track_t *p_tk, unsigned int offset )
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Mon, 5 Aug 2024 11:04:09 +0200
+Subject: demux: mkv: write the actual extra data size in the ALAC extradata
+
+This is what avcodec/audio expects when detecting the extradata.
+
+See InitDecoderConfig()
+
+(cherry picked from commit d2265e981fa19a9f5f1299e968348ed3ca98ee60)
+---
+ modules/demux/mkv/matroska_segment_parse.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/demux/mkv/matroska_segment_parse.cpp b/modules/demux/mkv/matroska_segment_parse.cpp
+index 2b93674..706733e 100644
+--- a/modules/demux/mkv/matroska_segment_parse.cpp
++++ b/modules/demux/mkv/matroska_segment_parse.cpp
+@@ -60,7 +60,7 @@ static inline void fill_extra_data_alac( mkv_track_t *p_tk )
+ https://github.com/macosforge/alac/blob/master/ALACMagicCookieDescription.txt */
+ SetDWBE( p_extra, p_tk->fmt.i_extra );
+ memcpy( p_extra + 4, "alac", 4 );
+- SetDWBE( p_extra + 8, 0 );
++ SetDWBE( p_extra + 8, p_tk->i_extra_data );
+ memcpy( p_extra + 12, p_tk->p_extra_data, p_tk->i_extra_data );
+ }
+
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Thu, 19 Sep 2024 10:30:06 +0200
+Subject: demux: mkv: handle mkv-use-chapter-codec option
+
+For safety reasons some users may not want to handle any chapter codec.
+The option was added 8697e6ef99ef0cec90bcf515052e5de1c09601ce but
+never implemented.
+
+(cherry picked from commit 4b479fb554cf1474fc549334459512b0b096dbcc)
+---
+ modules/demux/mkv/matroska_segment_parse.cpp | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/modules/demux/mkv/matroska_segment_parse.cpp b/modules/demux/mkv/matroska_segment_parse.cpp
+index 706733e..b9a2d27 100644
+--- a/modules/demux/mkv/matroska_segment_parse.cpp
++++ b/modules/demux/mkv/matroska_segment_parse.cpp
+@@ -1257,6 +1257,9 @@ void matroska_segment_c::ParseChapterAtom( int i_level, KaxChapterAtom *ca, chap
+ {
+ debug( vars, "ChapterProcess" );
+
++ if ( !var_InheritBool( vars.p_demuxer, "mkv-use-chapter-codec") )
++ return;
++
+ chapter_codec_cmds_c *p_ccodec = NULL;
+
+ for( size_t j = 0; j < cp.ListSize(); j++ )
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Tue, 3 Sep 2024 09:07:14 +0200
+Subject: hw/amf: keep the AMF version in the context
+
+For FRC we may need to disable it before 1.4.34.
+
+(cherry picked from commit de748458776f58f150edc06a4b9cac8c961dac20)
+---
+ modules/hw/amf/amf_helper.c | 6 +++---
+ modules/hw/amf/amf_helper.h | 1 +
+ 2 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/modules/hw/amf/amf_helper.c b/modules/hw/amf/amf_helper.c
+index d83bef8..f0f6eae 100644
+--- a/modules/hw/amf/amf_helper.c
++++ b/modules/hw/amf/amf_helper.c
+@@ -21,12 +21,12 @@ int vlc_AMFCreateContext(struct vlc_amf_context *c)
+ if (hLib == NULL)
+ return (-ENOTSUP);
+
+- amf_uint64 version = 0;
++ c->Version = 0;
+ AMF_RESULT res;
+ AMFQueryVersion_Fn queryVersion = (AMFQueryVersion_Fn)GetProcAddress(hLib, AMF_QUERY_VERSION_FUNCTION_NAME);
+ if (unlikely(queryVersion == NULL))
+ goto error;
+- res = queryVersion(&version);
++ res = queryVersion(&c->Version);
+ if (unlikely(res != AMF_OK))
+ goto error;
+
+@@ -34,7 +34,7 @@ int vlc_AMFCreateContext(struct vlc_amf_context *c)
+ c->Context = NULL;
+
+ AMFInit_Fn init = (AMFInit_Fn)GetProcAddress(hLib, AMF_INIT_FUNCTION_NAME);
+- res = init(version, &c->pFactory);
++ res = init(c->Version, &c->pFactory); // use the highest possible value for that DLL
+ if (unlikely(res != AMF_OK))
+ goto error;
+
+diff --git a/modules/hw/amf/amf_helper.h b/modules/hw/amf/amf_helper.h
+index ff8487a..6befb49 100644
+--- a/modules/hw/amf/amf_helper.h
++++ b/modules/hw/amf/amf_helper.h
+@@ -29,6 +29,7 @@ struct vlc_amf_context
+ {
+ AMT_TYPE(AMFFactory) *pFactory;
+ AMT_TYPE(AMFContext) *Context;
++ amf_uint64 Version;
+ void *Private;
+ };
+
--- /dev/null
+From: Johan Gunnarsson <johan.gunnarsson@gmail.com>
+Date: Sun, 3 Nov 2019 00:23:00 +0100
+Subject: archive: Add support for RAR 5.0 format
+
+libarchive 3.4.0 adds support for RAR 5.0. See
+https://www.rarlab.com/technote.htm#rarsign for description of signatures.
+
+Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
+(cherry picked from commit 059f6f5690005853f3e3160f5f896301b2f52ecd)
+---
+ modules/stream_extractor/archive.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/modules/stream_extractor/archive.c b/modules/stream_extractor/archive.c
+index af69a29..75bbe01 100644
+--- a/modules/stream_extractor/archive.c
++++ b/modules/stream_extractor/archive.c
+@@ -454,7 +454,10 @@ static int probe( stream_t* source )
+ } const magicbytes[] = {
+ /* keep heaviest at top */
+ { 257, 5, "ustar" }, //TAR
+- { 0, 7, "Rar!\x1A\x07" }, //RAR
++#if ARCHIVE_VERSION_NUMBER >= 3004000
++ { 0, 8, "Rar!\x1A\x07\x01" }, //RAR5.0
++#endif
++ { 0, 7, "Rar!\x1A\x07" }, //RAR4.x
+ { 0, 6, "7z\xBC\xAF\x27\x1C" }, //7z
+ { 0, 4, "xar!" }, //XAR
+ { 0, 4, "PK\x03\x04" }, //ZIP
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Wed, 4 Jan 2023 14:51:51 +0100
+Subject: archive: fix the type used for libarchive_skip_cb
+
+It is not using off_t.
+
+(cherry picked from commit 5da9f85b186a69e5b64d83470b32b7fd19dbf943)
+---
+ modules/stream_extractor/archive.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/stream_extractor/archive.c b/modules/stream_extractor/archive.c
+index 75bbe01..c69c9f2 100644
+--- a/modules/stream_extractor/archive.c
++++ b/modules/stream_extractor/archive.c
+@@ -131,7 +131,7 @@ static int libarchive_jump_cb( libarchive_t* p_arc, void* p_obj_current,
+
+
+ static la_int64_t libarchive_skip_cb( libarchive_t* p_arc, void* p_obj,
+- off_t i_request )
++ la_int64_t i_request )
+ {
+ VLC_UNUSED( p_arc );
+
--- /dev/null
+From: Francois Cartegnie <fcvlcdev@free.fr>
+Date: Thu, 1 Jun 2023 17:44:52 +0700
+Subject: stream_extractor: set correct offset on read failure
+
+(cherry picked from commit 9f160402e3ea835f1d242e8ca5af89c57a3a2583)
+---
+ modules/stream_extractor/archive.c | 18 +++++++++++-------
+ 1 file changed, 11 insertions(+), 7 deletions(-)
+
+diff --git a/modules/stream_extractor/archive.c b/modules/stream_extractor/archive.c
+index c69c9f2..446d711 100644
+--- a/modules/stream_extractor/archive.c
++++ b/modules/stream_extractor/archive.c
+@@ -609,16 +609,16 @@ eof:
+ return 0;
+ }
+
+-static int archive_skip_decompressed( stream_extractor_t* p_extractor, uint64_t i_skip )
++static int archive_skip_decompressed( stream_extractor_t* p_extractor, uint64_t *pi_skip )
+ {
+- while( i_skip )
++ while( *pi_skip )
+ {
+- ssize_t i_read = Read( p_extractor, NULL, i_skip );
++ ssize_t i_read = Read( p_extractor, NULL, *pi_skip );
+
+ if( i_read < 1 )
+ return VLC_EGENERIC;
+
+- i_skip -= i_read;
++ *pi_skip -= i_read;
+ }
+
+ return VLC_SUCCESS;
+@@ -663,9 +663,13 @@ static int Seek( stream_extractor_t* p_extractor, uint64_t i_req )
+ i_skip = i_req;
+ i_offset = 0;
+ }
+-
+- if( archive_skip_decompressed( p_extractor, i_skip ) )
+- msg_Dbg( p_extractor, "failed to skip to seek position" );
++ if( archive_skip_decompressed( p_extractor, &i_skip ) )
++ {
++ msg_Warn( p_extractor, "failed to skip to seek position %" PRIu64 "/%" PRId64,
++ i_req, archive_entry_size( p_sys->p_entry ) );
++ p_sys->i_offset += i_skip;
++ return VLC_EGENERIC;
++ }
+ }
+
+ p_sys->i_offset = i_req;
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Wed, 25 Sep 2024 11:37:02 +0200
+Subject: hw/amf: let the AMF system know what version was used to compile
+
+With future drivers and old binaries it may trigger different code
+pathes than the latest version.
+
+(cherry picked from commit e1c9c361849e6042185d123ab559d14fa7d7e8e3)
+---
+ modules/hw/amf/amf_helper.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/hw/amf/amf_helper.c b/modules/hw/amf/amf_helper.c
+index f0f6eae..50f66b6 100644
+--- a/modules/hw/amf/amf_helper.c
++++ b/modules/hw/amf/amf_helper.c
+@@ -34,7 +34,7 @@ int vlc_AMFCreateContext(struct vlc_amf_context *c)
+ c->Context = NULL;
+
+ AMFInit_Fn init = (AMFInit_Fn)GetProcAddress(hLib, AMF_INIT_FUNCTION_NAME);
+- res = init(c->Version, &c->pFactory); // use the highest possible value for that DLL
++ res = init(AMF_FULL_VERSION, &c->pFactory);
+ if (unlikely(res != AMF_OK))
+ goto error;
+
--- /dev/null
+From: =?utf-8?q?R=C3=A9mi_Denis-Courmont?= <remi@remlab.net>
+Date: Sat, 5 May 2018 15:28:15 +0300
+Subject: avcodec: avoid signedness mismatch warning
+
+Bitmask should be unsigned, but ffmpeg seems confused with itself.
+
+(cherry picked from commit 8544233e7fde2965435e32a445494898440ecc30)
+---
+ modules/codec/avcodec/audio.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/modules/codec/avcodec/audio.c b/modules/codec/avcodec/audio.c
+index 50a76c7..e5af0ca 100644
+--- a/modules/codec/avcodec/audio.c
++++ b/modules/codec/avcodec/audio.c
+@@ -593,9 +593,9 @@ static void SetupOutputFormat( decoder_t *p_dec, bool b_trust )
+ uint32_t pi_order_src[i_order_max];
+
+ int i_channels_src = 0;
+- int64_t channel_layout =
++ uint64_t channel_layout =
+ p_sys->p_context->channel_layout ? p_sys->p_context->channel_layout :
+- av_get_default_channel_layout( p_sys->p_context->channels );
++ (uint64_t)av_get_default_channel_layout( p_sys->p_context->channels );
+
+ if( channel_layout )
+ {
--- /dev/null
+From: Ilkka Ollakka <ileoo@videolan.org>
+Date: Wed, 5 Jul 2023 12:51:34 +0300
+Subject: avcodec: use p_dec->fmt_out instead of context channels on audio
+ channel-count
+
+reduces the need of ifdefs when adding ch_layout support
+
+(cherry picked from commit bddf5ba19111d1cc4463d9876c4bc4ba75f82d7f)
+---
+ modules/codec/avcodec/audio.c | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/modules/codec/avcodec/audio.c b/modules/codec/avcodec/audio.c
+index e5af0ca..26166c0 100644
+--- a/modules/codec/avcodec/audio.c
++++ b/modules/codec/avcodec/audio.c
+@@ -484,15 +484,15 @@ static block_t * ConvertAVFrame( decoder_t *p_dec, AVFrame *frame )
+ /* Interleave audio if required */
+ if( av_sample_fmt_is_planar( ctx->sample_fmt ) )
+ {
+- p_block = block_Alloc(frame->linesize[0] * ctx->channels);
++ p_block = block_Alloc(frame->linesize[0] * p_dec->fmt_out.audio.i_channels );
+ if ( likely(p_block) )
+ {
+- const void *planes[ctx->channels];
+- for (int i = 0; i < ctx->channels; i++)
++ const void *planes[p_dec->fmt_out.audio.i_channels];
++ for (int i = 0; i < p_dec->fmt_out.audio.i_channels; i++)
+ planes[i] = frame->extended_data[i];
+
+ aout_Interleave(p_block->p_buffer, planes, frame->nb_samples,
+- ctx->channels, p_dec->fmt_out.audio.i_format);
++ p_dec->fmt_out.audio.i_channels, p_dec->fmt_out.audio.i_format);
+ p_block->i_nb_samples = frame->nb_samples;
+ }
+ av_frame_free(&frame);
+@@ -511,7 +511,7 @@ static block_t * ConvertAVFrame( decoder_t *p_dec, AVFrame *frame )
+ {
+ aout_ChannelExtract( p_buffer->p_buffer,
+ p_dec->fmt_out.audio.i_channels,
+- p_block->p_buffer, ctx->channels,
++ p_block->p_buffer, p_dec->fmt_out.audio.i_channels,
+ p_block->i_nb_samples, p_sys->pi_extraction,
+ p_dec->fmt_out.audio.i_bitspersample );
+ p_buffer->i_nb_samples = p_block->i_nb_samples;
+@@ -600,13 +600,13 @@ static void SetupOutputFormat( decoder_t *p_dec, bool b_trust )
+ if( channel_layout )
+ {
+ for( unsigned i = 0; i < i_order_max
+- && i_channels_src < p_sys->p_context->channels; i++ )
++ && i_channels_src < p_dec->fmt_out.audio.i_channels; i++ )
+ {
+ if( channel_layout & pi_channels_map[i][0] )
+ pi_order_src[i_channels_src++] = pi_channels_map[i][1];
+ }
+
+- if( i_channels_src != p_sys->p_context->channels && b_trust )
++ if( i_channels_src != p_dec->fmt_out.audio.i_channels && b_trust )
+ msg_Err( p_dec, "Channel layout not understood" );
+
+ /* Detect special dual mono case */
--- /dev/null
+From: Ilkka Ollakka <ileoo@videolan.org>
+Date: Wed, 5 Jul 2023 13:33:09 +0300
+Subject: avcodec: audio decoder to use ch_layout
+
+(cherry picked from commit 496f0f2a659c1339d1e37330d446e9b6ce96e76b)
+---
+ modules/codec/avcodec/audio.c | 42 ++++++++++++++++++++++++++++++++++--------
+ 1 file changed, 34 insertions(+), 8 deletions(-)
+
+diff --git a/modules/codec/avcodec/audio.c b/modules/codec/avcodec/audio.c
+index 26166c0..ad8a40a 100644
+--- a/modules/codec/avcodec/audio.c
++++ b/modules/codec/avcodec/audio.c
+@@ -139,7 +139,11 @@ static int OpenAudioCodec( decoder_t *p_dec )
+ }
+
+ ctx->sample_rate = p_dec->fmt_in.audio.i_rate;
++#if LIBAVCODEC_VERSION_CHECK(59, 999, 999, 24, 100)
++ av_channel_layout_default( &ctx->ch_layout, p_dec->fmt_in.audio.i_channels );
++#else
+ ctx->channels = p_dec->fmt_in.audio.i_channels;
++#endif
+ ctx->block_align = p_dec->fmt_in.audio.i_blockalign;
+ ctx->bit_rate = p_dec->fmt_in.i_bitrate;
+ ctx->bits_per_coded_sample = p_dec->fmt_in.audio.i_bitspersample;
+@@ -395,12 +399,17 @@ static int DecodeBlock( decoder_t *p_dec, block_t **pp_block )
+ ret = avcodec_receive_frame( ctx, frame );
+ if( ret == 0 )
+ {
++#if LIBAVCODEC_VERSION_CHECK(59, 999, 999, 24, 100)
++ int channels = frame->ch_layout.nb_channels;
++#else
++ int channels = ctx->channels;
++#endif
+ /* checks and init from first decoded frame */
+- if( ctx->channels <= 0 || ctx->channels > INPUT_CHAN_MAX
++ if( channels <= 0 || channels > INPUT_CHAN_MAX
+ || ctx->sample_rate <= 0 )
+ {
+ msg_Warn( p_dec, "invalid audio properties channels count %d, sample rate %d",
+- ctx->channels, ctx->sample_rate );
++ channels, ctx->sample_rate );
+ goto drop;
+ }
+ else if( p_dec->fmt_out.audio.i_rate != (unsigned int)ctx->sample_rate )
+@@ -580,6 +589,16 @@ static void SetupOutputFormat( decoder_t *p_dec, bool b_trust )
+ p_dec->fmt_out.audio.i_rate = p_sys->p_context->sample_rate;
+
+ /* */
++#if LIBAVCODEC_VERSION_CHECK(59, 999, 999, 24, 100)
++ if( p_sys->i_previous_channels == p_sys->p_context->ch_layout.nb_channels &&
++ p_sys->i_previous_layout == p_sys->p_context->ch_layout.u.mask )
++ return;
++ if( b_trust )
++ {
++ p_sys->i_previous_channels = p_sys->p_context->ch_layout.nb_channels;
++ p_sys->i_previous_layout = p_sys->p_context->ch_layout.u.mask;
++ }
++#else
+ if( p_sys->i_previous_channels == p_sys->p_context->channels &&
+ p_sys->i_previous_layout == p_sys->p_context->channel_layout )
+ return;
+@@ -588,25 +607,32 @@ static void SetupOutputFormat( decoder_t *p_dec, bool b_trust )
+ p_sys->i_previous_channels = p_sys->p_context->channels;
+ p_sys->i_previous_layout = p_sys->p_context->channel_layout;
+ }
++#endif
+
+ const unsigned i_order_max = sizeof(pi_channels_map)/sizeof(*pi_channels_map);
+ uint32_t pi_order_src[i_order_max];
+
+ int i_channels_src = 0;
+- uint64_t channel_layout =
++#if LIBAVCODEC_VERSION_CHECK(59, 999, 999, 24, 100)
++ uint64_t channel_layout_mask = p_sys->p_context->ch_layout.u.mask;
++ int channel_count = p_sys->p_context->ch_layout.nb_channels;
++#else
++ uint64_t channel_layout_mask =
+ p_sys->p_context->channel_layout ? p_sys->p_context->channel_layout :
+ (uint64_t)av_get_default_channel_layout( p_sys->p_context->channels );
++ int channel_count = p_sys->p_context->channels;
++#endif
+
+- if( channel_layout )
++ if( channel_layout_mask )
+ {
+ for( unsigned i = 0; i < i_order_max
+- && i_channels_src < p_dec->fmt_out.audio.i_channels; i++ )
++ && i_channels_src < channel_count; i++ )
+ {
+- if( channel_layout & pi_channels_map[i][0] )
++ if( channel_layout_mask & pi_channels_map[i][0] )
+ pi_order_src[i_channels_src++] = pi_channels_map[i][1];
+ }
+
+- if( i_channels_src != p_dec->fmt_out.audio.i_channels && b_trust )
++ if( i_channels_src != channel_count && b_trust )
+ msg_Err( p_dec, "Channel layout not understood" );
+
+ /* Detect special dual mono case */
+@@ -638,7 +664,7 @@ static void SetupOutputFormat( decoder_t *p_dec, bool b_trust )
+ {
+ msg_Warn( p_dec, "no channel layout found");
+ p_dec->fmt_out.audio.i_physical_channels = 0;
+- p_dec->fmt_out.audio.i_channels = p_sys->p_context->channels;
++ p_dec->fmt_out.audio.i_channels = channel_count;
+ }
+
+ aout_FormatPrepare( &p_dec->fmt_out.audio );
--- /dev/null
+From: Ilkka Ollakka <ileoo@videolan.org>
+Date: Tue, 4 Jul 2023 16:52:38 +0300
+Subject: avcodec: use p_enc audio channels instead of context channels in
+ encoder
+
+Allows to have less conditions in code when adding new ch_layout use
+
+(cherry-picked from commit 29747a8abb98ba53a64aa6761983891eeed2e0e4)
+---
+ modules/codec/avcodec/encoder.c | 24 ++++++++++++------------
+ 1 file changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/modules/codec/avcodec/encoder.c b/modules/codec/avcodec/encoder.c
+index 4919ccf..52848de 100644
+--- a/modules/codec/avcodec/encoder.c
++++ b/modules/codec/avcodec/encoder.c
+@@ -790,7 +790,7 @@ int InitVideoEnc( vlc_object_t *p_this )
+ }
+ }
+ }
+- if( i_channels_src != p_context->channels )
++ if( i_channels_src != p_enc->fmt_out.audio.i_channels )
+ msg_Err( p_enc, "Channel layout not understood" );
+
+ p_sys->i_channels_to_reorder =
+@@ -897,7 +897,7 @@ int InitVideoEnc( vlc_object_t *p_this )
+ if( ret )
+ {
+ if( p_enc->fmt_in.i_cat != AUDIO_ES ||
+- (p_context->channels <= 2 && i_codec_id != AV_CODEC_ID_MP2
++ (p_enc->fmt_out.audio.i_channels <= 2 && i_codec_id != AV_CODEC_ID_MP2
+ && i_codec_id != AV_CODEC_ID_MP3) )
+ errmsg:
+ {
+@@ -922,7 +922,7 @@ errmsg:
+ goto error;
+ }
+
+- if( p_context->channels > 2 )
++ if( p_enc->fmt_out.audio.i_channels > 2 )
+ {
+ p_context->channels = 2;
+ p_context->channel_layout = channel_mask[p_context->channels][1];
+@@ -1028,7 +1028,7 @@ errmsg:
+ p_context->frame_size :
+ AV_INPUT_BUFFER_MIN_SIZE;
+ p_sys->i_buffer_out = av_samples_get_buffer_size(NULL,
+- p_sys->p_context->channels, p_sys->i_frame_size,
++ p_enc->fmt_out.audio.i_channels, p_sys->i_frame_size,
+ p_sys->p_context->sample_fmt, DEFAULT_ALIGN);
+ p_sys->p_buffer = av_malloc( p_sys->i_buffer_out );
+ if ( unlikely( p_sys->p_buffer == NULL ) )
+@@ -1278,7 +1278,7 @@ static block_t *handle_delay_buffer( encoder_t *p_enc, encoder_sys_t *p_sys, uns
+ {
+ block_t *p_block = NULL;
+ //How much we need to copy from new packet
+- const size_t leftover = leftover_samples * p_sys->p_context->channels * p_sys->i_sample_bytes;
++ const size_t leftover = leftover_samples * p_enc->fmt_out.audio.i_channels * p_sys->i_sample_bytes;
+
+ av_frame_unref( p_sys->frame );
+ p_sys->frame->format = p_sys->p_context->sample_fmt;
+@@ -1301,7 +1301,7 @@ static block_t *handle_delay_buffer( encoder_t *p_enc, encoder_sys_t *p_sys, uns
+ // We need to deinterleave from p_aout_buf to p_buffer the leftover bytes
+ if( p_sys->b_planar )
+ aout_Deinterleave( p_sys->p_interleave_buf, p_sys->p_buffer,
+- p_sys->i_frame_size, p_sys->p_context->channels, p_enc->fmt_in.i_codec );
++ p_sys->i_frame_size, p_enc->fmt_out.audio.i_channels, p_enc->fmt_in.i_codec );
+ else
+ memcpy( p_sys->p_buffer + buffer_delay, p_aout_buf->p_buffer, leftover);
+
+@@ -1319,7 +1319,7 @@ static block_t *handle_delay_buffer( encoder_t *p_enc, encoder_sys_t *p_sys, uns
+ memset( p_sys->p_buffer + (leftover+buffer_delay), 0, padding_size );
+ buffer_delay += padding_size;
+ }
+- if( avcodec_fill_audio_frame( p_sys->frame, p_sys->p_context->channels,
++ if( avcodec_fill_audio_frame( p_sys->frame, p_enc->fmt_out.audio.i_channels,
+ p_sys->p_context->sample_fmt, p_sys->b_planar ? p_sys->p_interleave_buf : p_sys->p_buffer,
+ p_sys->i_buffer_out,
+ DEFAULT_ALIGN) < 0 )
+@@ -1349,7 +1349,7 @@ static block_t *EncodeAudio( encoder_t *p_enc, block_t *p_aout_buf )
+
+ //i_bytes_left is amount of bytes we get
+ i_samples_left = p_aout_buf ? p_aout_buf->i_nb_samples : 0;
+- buffer_delay = p_sys->i_samples_delay * p_sys->i_sample_bytes * p_sys->p_context->channels;
++ buffer_delay = p_sys->i_samples_delay * p_sys->i_sample_bytes * p_enc->fmt_out.audio.i_channels;
+
+ //p_sys->i_buffer_out = p_sys->i_frame_size * chan * p_sys->i_sample_bytes
+ //Calculate how many bytes we would need from current buffer to fill frame
+@@ -1418,12 +1418,12 @@ static block_t *EncodeAudio( encoder_t *p_enc, block_t *p_aout_buf )
+ p_sys->frame->channels = p_sys->p_context->channels;
+
+ const int in_bytes = p_sys->frame->nb_samples *
+- p_sys->p_context->channels * p_sys->i_sample_bytes;
++ p_enc->fmt_out.audio.i_channels* p_sys->i_sample_bytes;
+
+ if( p_sys->b_planar )
+ {
+ aout_Deinterleave( p_sys->p_buffer, p_aout_buf->p_buffer,
+- p_sys->frame->nb_samples, p_sys->p_context->channels, p_enc->fmt_in.i_codec );
++ p_sys->frame->nb_samples, p_enc->fmt_out.audio.i_channels, p_enc->fmt_in.i_codec );
+
+ }
+ else
+@@ -1431,7 +1431,7 @@ static block_t *EncodeAudio( encoder_t *p_enc, block_t *p_aout_buf )
+ memcpy(p_sys->p_buffer, p_aout_buf->p_buffer, in_bytes);
+ }
+
+- if( avcodec_fill_audio_frame( p_sys->frame, p_sys->p_context->channels,
++ if( avcodec_fill_audio_frame( p_sys->frame, p_enc->fmt_out.audio.i_channels,
+ p_sys->p_context->sample_fmt,
+ p_sys->p_buffer,
+ p_sys->i_buffer_out,
+@@ -1457,7 +1457,7 @@ static block_t *EncodeAudio( encoder_t *p_enc, block_t *p_aout_buf )
+ if( p_aout_buf->i_nb_samples > 0 )
+ {
+ memcpy( p_sys->p_buffer + buffer_delay, p_aout_buf->p_buffer,
+- p_aout_buf->i_nb_samples * p_sys->i_sample_bytes * p_sys->p_context->channels);
++ p_aout_buf->i_nb_samples * p_sys->i_sample_bytes * p_enc->fmt_out.audio.i_channels);
+ p_sys->i_samples_delay += p_aout_buf->i_nb_samples;
+ }
+
--- /dev/null
+From: =?utf-8?q?Fran=C3=A7ois_Cartegnie?= <fcvlcdev@free.fr>
+Date: Tue, 23 Apr 2024 13:13:30 +0700
+Subject: codec: avcodec: map AYUV as RAWVIDEO with ffmpeg 6.0
+
+(cherry picked from commit 955ef939467a628eb8da08e0d5eaefc9a3484cba)
+---
+ modules/codec/avcodec/fourcc.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/modules/codec/avcodec/fourcc.c b/modules/codec/avcodec/fourcc.c
+index 33c6cae..97f3188 100644
+--- a/modules/codec/avcodec/fourcc.c
++++ b/modules/codec/avcodec/fourcc.c
+@@ -182,8 +182,12 @@ static const struct vlc_avcodec_fourcc video_codecs[] =
+ /* AV_CODEC_ID_V210X */
+ { VLC_CODEC_TMV, AV_CODEC_ID_TMV },
+ { VLC_CODEC_V210, AV_CODEC_ID_V210 },
+-#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT( 54, 50, 100 ) && LIBAVCODEC_VERSION_MICRO >= 100
++#if LIBAVCODEC_VERSION_MICRO >= 100
++# if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT( 59, 42, 102 )
++ { VLC_CODEC_VUYA, AV_CODEC_ID_RAWVIDEO },
++# elif LIBAVCODEC_VERSION_INT >= AV_VERSION_INT( 54, 50, 100 )
+ { VLC_CODEC_VUYA, AV_CODEC_ID_AYUV },
++# endif
+ #endif
+ /* AV_CODEC_ID_DPX */
+ { VLC_CODEC_MAD, AV_CODEC_ID_MAD },
--- /dev/null
+From: =?utf-8?q?Fran=C3=A7ois_Cartegnie?= <fcvlcdev@free.fr>
+Date: Thu, 13 Jun 2024 12:21:58 +0700
+Subject: avcodec: encoder: fix channel_layout conditionals
+
+---
+ modules/codec/avcodec/encoder.c | 11 ++++++++---
+ 1 file changed, 8 insertions(+), 3 deletions(-)
+
+diff --git a/modules/codec/avcodec/encoder.c b/modules/codec/avcodec/encoder.c
+index 52848de..6bd58f5 100644
+--- a/modules/codec/avcodec/encoder.c
++++ b/modules/codec/avcodec/encoder.c
+@@ -43,12 +43,13 @@
+ #include <vlc_cpu.h>
+
+ #include <libavcodec/avcodec.h>
+-#include <libavutil/channel_layout.h>
+
+ #include "avcodec.h"
+ #include "avcommon.h"
+
+-#if LIBAVUTIL_VERSION_CHECK( 52,2,6,0,0 )
++#define API_CHANNEL_LAYOUT (LIBAVUTIL_VERSION_CHECK( 52, 2, 6, 0, 100))
++
++#if API_CHANNEL_LAYOUT
+ # include <libavutil/channel_layout.h>
+ #endif
+
+@@ -157,6 +158,7 @@ struct encoder_sys_t
+
+
+ /* Taken from audio.c*/
++#if API_CHANNEL_LAYOUT
+ static const uint64_t pi_channels_map[][2] =
+ {
+ { AV_CH_FRONT_LEFT, AOUT_CHAN_LEFT },
+@@ -193,6 +195,7 @@ static const uint32_t channel_mask[][2] = {
+ {AOUT_CHANS_7_1, AV_CH_LAYOUT_7POINT1},
+ {AOUT_CHANS_8_1, AV_CH_LAYOUT_OCTAGONAL},
+ };
++#endif
+
+ static const char *const ppsz_enc_options[] = {
+ "keyint", "bframes", "vt", "qmin", "qmax", "codec", "hq",
+@@ -746,7 +749,7 @@ int InitVideoEnc( vlc_object_t *p_this )
+ p_context->time_base.num = 1;
+ p_context->time_base.den = p_context->sample_rate;
+ p_context->channels = p_enc->fmt_out.audio.i_channels;
+-#if LIBAVUTIL_VERSION_CHECK( 52, 2, 6, 0, 0)
++#if API_CHANNEL_LAYOUT
+ p_context->channel_layout = channel_mask[p_context->channels][1];
+
+ /* Setup Channel ordering for multichannel audio
+@@ -925,7 +928,9 @@ errmsg:
+ if( p_enc->fmt_out.audio.i_channels > 2 )
+ {
+ p_context->channels = 2;
++#if API_CHANNEL_LAYOUT
+ p_context->channel_layout = channel_mask[p_context->channels][1];
++#endif
+
+ /* Change fmt_in in order to ask for a channels conversion */
+ p_enc->fmt_in.audio.i_channels =
--- /dev/null
+From: =?utf-8?q?Fran=C3=A7ois_Cartegnie?= <fcvlcdev@free.fr>
+Date: Sat, 17 Aug 2024 11:22:33 +0700
+Subject: codec: avcodec: fix audio channel_layout conditionals
+
+---
+ modules/codec/avcodec/audio.c | 23 +++++++++++++++--------
+ 1 file changed, 15 insertions(+), 8 deletions(-)
+
+diff --git a/modules/codec/avcodec/audio.c b/modules/codec/avcodec/audio.c
+index ad8a40a..c74757c 100644
+--- a/modules/codec/avcodec/audio.c
++++ b/modules/codec/avcodec/audio.c
+@@ -41,8 +41,11 @@
+ #include <libavcodec/avcodec.h>
+ #include <libavutil/mem.h>
+
+-#include <libavutil/channel_layout.h>
++#define API_CHANNEL_LAYOUT (LIBAVUTIL_VERSION_CHECK( 52, 2, 6, 0, 100))
+
++#if API_CHANNEL_LAYOUT
++# include <libavutil/channel_layout.h>
++#endif
+
+ /*****************************************************************************
+ * decoder_sys_t : decoder descriptor
+@@ -598,7 +601,7 @@ static void SetupOutputFormat( decoder_t *p_dec, bool b_trust )
+ p_sys->i_previous_channels = p_sys->p_context->ch_layout.nb_channels;
+ p_sys->i_previous_layout = p_sys->p_context->ch_layout.u.mask;
+ }
+-#else
++#elif API_CHANNEL_LAYOUT
+ if( p_sys->i_previous_channels == p_sys->p_context->channels &&
+ p_sys->i_previous_layout == p_sys->p_context->channel_layout )
+ return;
+@@ -612,15 +615,19 @@ static void SetupOutputFormat( decoder_t *p_dec, bool b_trust )
+ const unsigned i_order_max = sizeof(pi_channels_map)/sizeof(*pi_channels_map);
+ uint32_t pi_order_src[i_order_max];
+
+- int i_channels_src = 0;
++ int i_channels_src = 0, channel_count;
++ uint64_t channel_layout_mask;
+ #if LIBAVCODEC_VERSION_CHECK(59, 999, 999, 24, 100)
+- uint64_t channel_layout_mask = p_sys->p_context->ch_layout.u.mask;
+- int channel_count = p_sys->p_context->ch_layout.nb_channels;
+-#else
+- uint64_t channel_layout_mask =
++ channel_layout_mask = p_sys->p_context->ch_layout.u.mask;
++ channel_count = p_sys->p_context->ch_layout.nb_channels;
++#elif API_CHANNEL_LAYOUT
++ channel_layout_mask =
+ p_sys->p_context->channel_layout ? p_sys->p_context->channel_layout :
+ (uint64_t)av_get_default_channel_layout( p_sys->p_context->channels );
+- int channel_count = p_sys->p_context->channels;
++ channel_count = p_sys->p_context->channels;
++#else
++ channel_layout_mask = NULL;
++ channel_count = p_sys->p_context->channels;
+ #endif
+
+ if( channel_layout_mask )
--- /dev/null
+From: =?utf-8?q?Fran=C3=A7ois_Cartegnie?= <fcvlcdev@free.fr>
+Date: Tue, 23 Apr 2024 13:14:53 +0700
+Subject: demux/mux: avformat: use ch_layout from ffmpeg 5.1
+
+merger pick from commit a55ec32ab3760d9edb6f05481cd3a981aa42878d
+and fixup 195f0c98599b55950c49a62f98d9d3495be310df
+---
+ modules/demux/avformat/demux.c | 4 ++++
+ modules/demux/avformat/mux.c | 4 ++++
+ 2 files changed, 8 insertions(+)
+
+diff --git a/modules/demux/avformat/demux.c b/modules/demux/avformat/demux.c
+index 3b355bb..830dc01 100644
+--- a/modules/demux/avformat/demux.c
++++ b/modules/demux/avformat/demux.c
+@@ -401,7 +401,11 @@ int avformat_OpenDemux( vlc_object_t *p_this )
+ es_format_Init( &es_fmt, AUDIO_ES, fcc );
+ es_fmt.i_original_fourcc = CodecTagToFourcc( cp->codec_tag );
+ es_fmt.i_bitrate = cp->bit_rate;
++#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT( 59, 24, 100 ) && LIBAVCODEC_VERSION_MICRO >= 100
++ es_fmt.audio.i_channels = cp->ch_layout.nb_channels;
++#else
+ es_fmt.audio.i_channels = cp->channels;
++#endif
+ es_fmt.audio.i_rate = cp->sample_rate;
+ es_fmt.audio.i_bitspersample = cp->bits_per_coded_sample;
+ es_fmt.audio.i_blockalign = cp->block_align;
+diff --git a/modules/demux/avformat/mux.c b/modules/demux/avformat/mux.c
+index c708276..8bf8735 100644
+--- a/modules/demux/avformat/mux.c
++++ b/modules/demux/avformat/mux.c
+@@ -267,7 +267,11 @@ static int AddStream( sout_mux_t *p_mux, sout_input_t *p_input )
+ {
+ case AUDIO_ES:
+ codecpar->codec_type = AVMEDIA_TYPE_AUDIO;
++#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT( 59, 24, 100 ) && LIBAVCODEC_VERSION_MICRO >= 100
++ av_channel_layout_default( &codecpar->ch_layout, fmt->audio.i_channels );
++#else
+ codecpar->channels = fmt->audio.i_channels;
++#endif
+ codecpar->sample_rate = fmt->audio.i_rate;
+ stream->time_base = (AVRational){1, codecpar->sample_rate};
+ if (fmt->i_bitrate == 0) {
--- /dev/null
+From: Ilkka Ollakka <ileoo@videolan.org>
+Date: Tue, 4 Jul 2023 16:53:43 +0300
+Subject: avcodec: add handling of new ch_layout in audio encoder
+
+conditioned to avcodec version where is it added
+
+(cherry picked from commit c4302ca59dd79efd7208a45a3fcdc44388fd03a8)
+---
+ modules/codec/avcodec/encoder.c | 15 +++++++++++++--
+ 1 file changed, 13 insertions(+), 2 deletions(-)
+
+diff --git a/modules/codec/avcodec/encoder.c b/modules/codec/avcodec/encoder.c
+index 6bd58f5..757f93b 100644
+--- a/modules/codec/avcodec/encoder.c
++++ b/modules/codec/avcodec/encoder.c
+@@ -927,11 +927,14 @@ errmsg:
+
+ if( p_enc->fmt_out.audio.i_channels > 2 )
+ {
++#if LIBAVCODEC_VERSION_CHECK(59, 999, 999, 24, 100)
++ av_channel_layout_default( &p_context->ch_layout, 2 );
++#else
+ p_context->channels = 2;
+-#if API_CHANNEL_LAYOUT
++# if API_CHANNEL_LAYOUT
+ p_context->channel_layout = channel_mask[p_context->channels][1];
++# endif
+ #endif
+-
+ /* Change fmt_in in order to ask for a channels conversion */
+ p_enc->fmt_in.audio.i_channels =
+ p_enc->fmt_out.audio.i_channels = 2;
+@@ -1288,8 +1291,12 @@ static block_t *handle_delay_buffer( encoder_t *p_enc, encoder_sys_t *p_sys, uns
+ av_frame_unref( p_sys->frame );
+ p_sys->frame->format = p_sys->p_context->sample_fmt;
+ p_sys->frame->nb_samples = leftover_samples + p_sys->i_samples_delay;
++#if LIBAVCODEC_VERSION_CHECK(59, 999, 999, 24, 100)
++ av_channel_layout_copy(&p_sys->frame->ch_layout, &p_sys->p_context->ch_layout);
++#else
+ p_sys->frame->channel_layout = p_sys->p_context->channel_layout;
+ p_sys->frame->channels = p_sys->p_context->channels;
++#endif
+
+ p_sys->frame->pts = date_Get( &p_sys->buffer_date ) * p_sys->p_context->time_base.den /
+ CLOCK_FREQ / p_sys->p_context->time_base.num;
+@@ -1419,8 +1426,12 @@ static block_t *EncodeAudio( encoder_t *p_enc, block_t *p_aout_buf )
+ p_sys->frame->pts = date_Get( &p_sys->buffer_date ) * p_sys->p_context->time_base.den /
+ CLOCK_FREQ / p_sys->p_context->time_base.num;
+
++#if LIBAVCODEC_VERSION_CHECK(59, 999, 999, 24, 100)
++ av_channel_layout_copy(&p_sys->frame->ch_layout, &p_sys->p_context->ch_layout);
++#else
+ p_sys->frame->channel_layout = p_sys->p_context->channel_layout;
+ p_sys->frame->channels = p_sys->p_context->channels;
++#endif
+
+ const int in_bytes = p_sys->frame->nb_samples *
+ p_enc->fmt_out.audio.i_channels* p_sys->i_sample_bytes;
--- /dev/null
+From: Ilkka Ollakka <ileoo@videolan.org>
+Date: Tue, 4 Jul 2023 16:55:28 +0300
+Subject: avcodec: use ch_layout for channel layout in audio encoder
+
+channels and channel_layout has been deprecated in FFMPEG 5.1 and will be removed eventually
+
+also always create the mapping, as ch_layout is always there
+
+(cherry picked from commit b73dc8841d999c6be9de718cd2cd3aeb13279792)
+---
+ modules/codec/avcodec/encoder.c | 53 +++++++++++++++++------------------------
+ 1 file changed, 22 insertions(+), 31 deletions(-)
+
+diff --git a/modules/codec/avcodec/encoder.c b/modules/codec/avcodec/encoder.c
+index 757f93b..ae746c9 100644
+--- a/modules/codec/avcodec/encoder.c
++++ b/modules/codec/avcodec/encoder.c
+@@ -183,6 +183,7 @@ static const uint64_t pi_channels_map[][2] =
+ { AV_CH_STEREO_RIGHT, 0 },
+ };
+
++# if !LIBAVCODEC_VERSION_CHECK(59, 999, 999, 24, 100)
+ static const uint32_t channel_mask[][2] = {
+ {0,0},
+ {AOUT_CHAN_CENTER, AV_CH_LAYOUT_MONO},
+@@ -195,6 +196,7 @@ static const uint32_t channel_mask[][2] = {
+ {AOUT_CHANS_7_1, AV_CH_LAYOUT_7POINT1},
+ {AOUT_CHANS_8_1, AV_CH_LAYOUT_OCTAGONAL},
+ };
++# endif
+ #endif
+
+ static const char *const ppsz_enc_options[] = {
+@@ -748,49 +750,36 @@ int InitVideoEnc( vlc_object_t *p_this )
+ date_Set( &p_sys->buffer_date, AV_NOPTS_VALUE );
+ p_context->time_base.num = 1;
+ p_context->time_base.den = p_context->sample_rate;
+- p_context->channels = p_enc->fmt_out.audio.i_channels;
+-#if API_CHANNEL_LAYOUT
+- p_context->channel_layout = channel_mask[p_context->channels][1];
+
+- /* Setup Channel ordering for multichannel audio
++ /* Setup Channel ordering for audio
+ * as VLC channel order isn't same as libavcodec expects
+ */
+
+ p_sys->i_channels_to_reorder = 0;
+
+- /* Specified order
++ /* Create channel layout for avcodec
+ * Copied from audio.c
+ */
+- const unsigned i_order_max = 8 * sizeof(p_context->channel_layout);
+- uint32_t pi_order_dst[AOUT_CHAN_MAX] = { };
++#if API_CHANNEL_LAYOUT
++ uint32_t pi_order_dst[AOUT_CHAN_MAX] = { 0 };
+ uint32_t order_mask = 0;
+ int i_channels_src = 0;
+-
+- if( p_context->channel_layout )
+- {
+- msg_Dbg( p_enc, "Creating channel order for reordering");
+- for( unsigned i = 0; i < sizeof(pi_channels_map)/sizeof(*pi_channels_map); i++ )
+- {
+- if( p_context->channel_layout & pi_channels_map[i][0] )
+- {
+- msg_Dbg( p_enc, "%d %"PRIx64" mapped to %"PRIx64"", i_channels_src, pi_channels_map[i][0], pi_channels_map[i][1]);
+- pi_order_dst[i_channels_src++] = pi_channels_map[i][1];
+- order_mask |= pi_channels_map[i][1];
+- }
+- }
+- }
+- else
++ msg_Dbg( p_enc, "Creating channel order for reordering");
++# if LIBAVCODEC_VERSION_CHECK(59, 999, 999, 24, 100)
++ av_channel_layout_default( &p_context->ch_layout, p_enc->fmt_out.audio.i_channels );
++ uint64_t channel_mask = p_context->ch_layout.u.mask;
++# else
++ p_context->channels = p_enc->fmt_out.audio.i_channels;
++ p_context->channel_layout = channel_mask[p_context->channels][1];
++ uint64_t channel_mask = p_context->channel_layout;
++# endif
++ for( unsigned i = 0; i < sizeof(pi_channels_map)/sizeof(*pi_channels_map); i++ )
+ {
+- msg_Dbg( p_enc, "Creating default channel order for reordering");
+- /* Create default order */
+- for( unsigned int i = 0; i < __MIN( i_order_max, (unsigned)p_sys->p_context->channels ); i++ )
++ if( channel_mask & pi_channels_map[i][0] )
+ {
+- if( i < sizeof(pi_channels_map)/sizeof(*pi_channels_map) )
+- {
+- msg_Dbg( p_enc, "%d channel is %"PRIx64"", i_channels_src, pi_channels_map[i][1]);
+- pi_order_dst[i_channels_src++] = pi_channels_map[i][1];
+- order_mask |= pi_channels_map[i][1];
+- }
++ msg_Dbg( p_enc, "%d %"PRIx64" mapped to %"PRIx64"", i_channels_src, pi_channels_map[i][0], pi_channels_map[i][1]);
++ pi_order_dst[i_channels_src++] = pi_channels_map[i][1];
++ order_mask |= pi_channels_map[i][1];
+ }
+ }
+ if( i_channels_src != p_enc->fmt_out.audio.i_channels )
+@@ -799,6 +788,8 @@ int InitVideoEnc( vlc_object_t *p_this )
+ p_sys->i_channels_to_reorder =
+ aout_CheckChannelReorder( NULL, pi_order_dst, order_mask,
+ p_sys->pi_reorder_layout );
++#else
++ p_context->channels = p_enc->fmt_out.audio.i_channels;
+ #endif
+
+ if ( p_enc->fmt_out.i_codec == VLC_CODEC_MP4A )
--- /dev/null
+From: =?utf-8?q?Fran=C3=A7ois_Cartegnie?= <fcvlcdev@free.fr>
+Date: Mon, 12 Aug 2024 19:32:42 +0700
+Subject: codec: avcodec: bypass removed define for Intel workarounds
+
+adapted from cherry picked commit 1280728ad305f00ceba3491ce11bf66107017a6c
+---
+ modules/codec/avcodec/d3d11va.c | 4 ++++
+ modules/codec/avcodec/dxva2.c | 4 ++++
+ 2 files changed, 8 insertions(+)
+
+diff --git a/modules/codec/avcodec/d3d11va.c b/modules/codec/avcodec/d3d11va.c
+index e1560a9..5260628 100644
+--- a/modules/codec/avcodec/d3d11va.c
++++ b/modules/codec/avcodec/d3d11va.c
+@@ -55,6 +55,10 @@
+ #define D3D_DecoderSurface ID3D11VideoDecoderOutputView
+ #include "directx_va.h"
+
++#ifndef FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO
++# define FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO 2 // moved to libavcodec/dxva2_internal.h :/
++#endif
++
+ static int Open(vlc_va_t *, AVCodecContext *, const AVPixFmtDescriptor *, enum PixelFormat,
+ const es_format_t *, picture_sys_t *p_sys);
+ static void Close(vlc_va_t *, void **);
+diff --git a/modules/codec/avcodec/dxva2.c b/modules/codec/avcodec/dxva2.c
+index 2e6809a..037ad7d 100644
+--- a/modules/codec/avcodec/dxva2.c
++++ b/modules/codec/avcodec/dxva2.c
+@@ -43,6 +43,10 @@
+ #define D3D_DecoderSurface IDirect3DSurface9
+ #include "directx_va.h"
+
++#ifndef FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO
++# define FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO 2 // moved to libavcodec/dxva2_internal.h :/
++#endif
++
+ static int Open(vlc_va_t *, AVCodecContext *, const AVPixFmtDescriptor *, enum PixelFormat,
+ const es_format_t *, picture_sys_t *p_sys);
+ static void Close(vlc_va_t *, void **);
--- /dev/null
+From: =?utf-8?q?Fran=C3=A7ois_Cartegnie?= <fcvlcdev@free.fr>
+Date: Tue, 24 Sep 2024 18:43:08 +0700
+Subject: codec: x265: handle X265_MAX_FRAME_THREADS on newer CPU
+
+libx265 will bail out when hitting the limit
+
+x265 [error]: frameNumThreads (--frame-threads) must be [0 .. X265_MAX_FRAME_THREADS)
+
+(cherry picked from commit bbd294d1e46b86653873ec88d49e9a15cbaae68f)
+---
+ modules/codec/x265.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/modules/codec/x265.c b/modules/codec/x265.c
+index 5585f2c..2943ea6 100644
+--- a/modules/codec/x265.c
++++ b/modules/codec/x265.c
+@@ -36,6 +36,10 @@
+
+ #include <x265.h>
+
++#ifndef X265_MAX_FRAME_THREADS
++# define X265_MAX_FRAME_THREADS 16
++#endif
++
+ /*****************************************************************************
+ * Module descriptor
+ *****************************************************************************/
+@@ -156,6 +160,8 @@ static int Open (vlc_object_t *p_this)
+ x265_param_default(param);
+
+ param->frameNumThreads = vlc_GetCPUCount();
++ if(param->frameNumThreads > X265_MAX_FRAME_THREADS)
++ param->frameNumThreads = X265_MAX_FRAME_THREADS;
+ param->bEnableWavefront = 0; // buggy in x265, use frame threading for now
+ param->maxCUSize = 16; /* use smaller macroblock */
+
--- /dev/null
+From: =?utf-8?q?Fran=C3=A7ois_Cartegnie?= <fcvlcdev@free.fr>
+Date: Tue, 24 Sep 2024 18:53:11 +0700
+Subject: codec: x265: handle 4.0 encoding API change
+
+refs #28799
+
+(cherry picked from commit 83e2c3955a563b60f74f05cea57e3ab5f447c8fb)
+---
+ modules/codec/x265.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/modules/codec/x265.c b/modules/codec/x265.c
+index 2943ea6..50fe328 100644
+--- a/modules/codec/x265.c
++++ b/modules/codec/x265.c
+@@ -74,6 +74,11 @@ static block_t *Encode(encoder_t *p_enc, picture_t *p_pict)
+ x265_picture pic;
+
+ x265_picture_init(&p_sys->param, &pic);
++#ifdef MAX_SCALABLE_LAYERS
++ /* Handle API changes for scalable layers output in x265 4.0 */
++ x265_picture *pics[MAX_SCALABLE_LAYERS] = {NULL};
++ pics[0] = &pic;
++#endif
+
+ if (likely(p_pict)) {
+ pic.pts = p_pict->date;
+@@ -92,8 +97,13 @@ static block_t *Encode(encoder_t *p_enc, picture_t *p_pict)
+
+ x265_nal *nal;
+ uint32_t i_nal = 0;
++#ifdef MAX_SCALABLE_LAYERS
++ x265_encoder_encode(p_sys->h, &nal, &i_nal,
++ likely(p_pict) ? &pic : NULL, pics);
++#else
+ x265_encoder_encode(p_sys->h, &nal, &i_nal,
+ likely(p_pict) ? &pic : NULL, &pic);
++#endif
+
+ if (!i_nal)
+ return NULL;
--- /dev/null
+From: =?utf-8?q?Fran=C3=A7ois_Cartegnie?= <fcvlcdev@free.fr>
+Date: Sun, 7 Jul 2024 11:14:05 +0200
+Subject: mux: avformat: fix avio callbacks signature with ffmpeg 6.1
+
+API signature changes introduced depending on a positive define,
+then removed later, making it break prior or post removal...
+
+(adapted from commit 503c04fad9239420be26d67aab4d5f63c53eb4f7)
+---
+ modules/codec/avcodec/avcommon_compat.h | 3 +++
+ modules/demux/avformat/mux.c | 18 ++++++++++++++++++
+ 2 files changed, 21 insertions(+)
+
+diff --git a/modules/codec/avcodec/avcommon_compat.h b/modules/codec/avcodec/avcommon_compat.h
+index 9d16b3d..561ad83 100644
+--- a/modules/codec/avcodec/avcommon_compat.h
++++ b/modules/codec/avcodec/avcommon_compat.h
+@@ -77,6 +77,9 @@
+ #ifndef FF_MAX_B_FRAMES
+ # define FF_MAX_B_FRAMES 16 // FIXME: remove this
+ #endif
++#ifndef FF_API_AVIO_WRITE_NONCONST // removed in ffmpeg 7
++# define FF_API_AVIO_WRITE_NONCONST (LIBAVFORMAT_VERSION_MAJOR < 61)
++#endif
+
+ #endif /* HAVE_LIBAVCODEC_AVCODEC_H */
+
+diff --git a/modules/demux/avformat/mux.c b/modules/demux/avformat/mux.c
+index 8bf8735..033a87b 100644
+--- a/modules/demux/avformat/mux.c
++++ b/modules/demux/avformat/mux.c
+@@ -74,11 +74,20 @@ static int AddStream( sout_mux_t *, sout_input_t * );
+ static void DelStream( sout_mux_t *, sout_input_t * );
+ static int Mux ( sout_mux_t * );
+
++#if FF_API_AVIO_WRITE_NONCONST
+ static int IOWrite( void *opaque, uint8_t *buf, int buf_size );
++#else
++static int IOWrite( void *opaque, const uint8_t *buf, int buf_size );
++#endif
+ static int64_t IOSeek( void *opaque, int64_t offset, int whence );
+ #if LIBAVFORMAT_VERSION_CHECK( 57, 7, 0, 40, 100 )
++# if FF_API_AVIO_WRITE_NONCONST
+ static int IOWriteTyped(void *opaque, uint8_t *buf, int buf_size,
+ enum AVIODataMarkerType type, int64_t time);
++# else
++int IOWriteTyped(void *opaque, const uint8_t *buf, int buf_size,
++ enum AVIODataMarkerType type, int64_t time);
++# endif
+ #endif
+
+ /*****************************************************************************
+@@ -411,8 +420,13 @@ static int MuxBlock( sout_mux_t *p_mux, sout_input_t *p_input )
+ }
+
+ #if LIBAVFORMAT_VERSION_CHECK( 57, 7, 0, 40, 100 )
++# if FF_API_AVIO_WRITE_NONCONST
+ int IOWriteTyped(void *opaque, uint8_t *buf, int buf_size,
+ enum AVIODataMarkerType type, int64_t time)
++# else
++int IOWriteTyped(void *opaque, const uint8_t *buf, int buf_size,
++ enum AVIODataMarkerType type, int64_t time)
++# endif
+ {
+ VLC_UNUSED(time);
+
+@@ -512,7 +526,11 @@ static int Control( sout_mux_t *p_mux, int i_query, va_list args )
+ /*****************************************************************************
+ * I/O wrappers for libavformat
+ *****************************************************************************/
++#if FF_API_AVIO_WRITE_NONCONST
+ static int IOWrite( void *opaque, uint8_t *buf, int buf_size )
++#else
++static int IOWrite( void *opaque, const uint8_t *buf, int buf_size )
++#endif
+ {
+ sout_mux_t *p_mux = opaque;
+ sout_mux_sys_t *p_sys = p_mux->p_sys;
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Mon, 14 Oct 2024 11:11:36 +0200
+Subject: fetcher: don't download network metadata if the user doesn't want to
+
+The option is defined as "Allow metadata network access". If it's false (default but query during the first run) that means the
+user doesn't want to check metadata from the network.
+So we should not start a network job when there's a possibility to do it.
+
+This is a regression from ea88b8d68e252445bcc305fd7a3dd45ef3ce0126.
+Before that we only used FETCHER_SCOPE_LOCAL if the option wasn't set.
+
+(cherry picked from commit 1a85d6793948c88afe35692d8c17a82089a58f33)
+---
+ src/playlist/fetcher.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/playlist/fetcher.c b/src/playlist/fetcher.c
+index 44c13a5..f11b420 100644
+--- a/src/playlist/fetcher.c
++++ b/src/playlist/fetcher.c
+@@ -294,7 +294,7 @@ static void SearchLocal( playlist_fetcher_t* fetcher, struct fetcher_request* re
+ if( SearchByScope( fetcher, req, FETCHER_SCOPE_LOCAL ) == VLC_SUCCESS )
+ return; /* done */
+
+- if( var_InheritBool( fetcher->owner, "metadata-network-access" ) ||
++ if( var_InheritBool( fetcher->owner, "metadata-network-access" ) &&
+ req->options & META_REQUEST_OPTION_SCOPE_NETWORK )
+ {
+ if( background_worker_Push( fetcher->network, req, NULL, 0 ) )
--- /dev/null
+From: Tristan Matthews <tmatth@videolan.org>
+Date: Wed, 16 Oct 2024 15:29:35 -0400
+Subject: hds: fix crash if bootstrap data or URL are missing
+
+(cherry picked from commit 01934b339cf5f467c9c2e3a7fb61c7458347684c)
+---
+ modules/stream_filter/hds/hds.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/modules/stream_filter/hds/hds.c b/modules/stream_filter/hds/hds.c
+index 631691f..4d55538 100644
+--- a/modules/stream_filter/hds/hds.c
++++ b/modules/stream_filter/hds/hds.c
+@@ -1557,7 +1557,7 @@ static int parse_Manifest( stream_t *s, manifest_t *m )
+ new_stream->metadata_len = medias[i].metadata_len;
+ }
+
+- if( ! sys->live )
++ if( ! sys->live && bootstraps[j].data )
+ {
+ parse_BootstrapData( (vlc_object_t*)s,
+ new_stream,
+@@ -1579,7 +1579,7 @@ static int parse_Manifest( stream_t *s, manifest_t *m )
+ total_duration += chunk->duration;
+ }
+ }
+- else
++ else if( bootstraps[j].url )
+ {
+ if( !(new_stream->abst_url = strdup( bootstraps[j].url ) ) )
+ {
--- /dev/null
+From: Pratik Patel <pratikpatel8982@gmail.com>
+Date: Wed, 16 Oct 2024 19:54:22 +0530
+Subject: qt: add option to use dark palette
+
+---
+ modules/gui/qt/components/simple_preferences.cpp | 19 ++++++++
+ modules/gui/qt/dialogs/firstrun.cpp | 2 +-
+ modules/gui/qt/dialogs/firstrun.hpp | 6 +--
+ modules/gui/qt/dialogs/help.cpp | 37 +++++++++-----
+ modules/gui/qt/qt.cpp | 62 +++++++++++++++++++++++-
+ modules/gui/qt/qt.hpp | 3 ++
+ modules/gui/qt/ui/about.ui | 7 ---
+ modules/gui/qt/ui/sprefs_interface.ui | 7 +++
+ modules/gui/qt/util/qvlcframe.hpp | 60 ++++++++++++++++++++++-
+ 9 files changed, 176 insertions(+), 27 deletions(-)
+
+diff --git a/modules/gui/qt/components/simple_preferences.cpp b/modules/gui/qt/components/simple_preferences.cpp
+index 6192dbb..2204958 100644
+--- a/modules/gui/qt/components/simple_preferences.cpp
++++ b/modules/gui/qt/components/simple_preferences.cpp
+@@ -27,6 +27,7 @@
+ # include "config.h"
+ #endif
+
++#include "qt.hpp"
+ #include "components/simple_preferences.hpp"
+ #include "components/preferences_widgets.hpp"
+
+@@ -771,6 +772,10 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
+ /* defaults to qt */
+ ui.qt->setChecked( true );
+ }
++
++ if ( var_InheritBool( p_intf, "qt-dark-palette" ) )
++ ui.qtdark->setChecked( true ); /*dark palette*/
++
+ free( psz_intf );
+
+ optionWidgets["skinRB"] = ui.skins;
+@@ -797,6 +802,20 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
+ ui.styleStackedWidget, setCurrentIndex( int ) );
+ ui.styleStackedWidget->setCurrentIndex( radioGroup->checkedId() );
+
++ CONFIG_BOOL( "qt-dark-palette", qtdark );
++ // Connecting the stateChanged signal of the checkbox
++ connect(ui.qtdark, &QCheckBox::stateChanged, ui.stylesCombo, [combobox = ui.stylesCombo](const int state) {
++ if (state == Qt::CheckState::Checked) {
++ // Set the current style to "Fusion"
++ combobox->setCurrentText(QStringLiteral("Fusion"));
++ // Apply the dark palette
++ applyDarkPalette();
++ } else {
++ // Remove the custom palette and revert to the default
++ QApplication::setPalette(QApplication::style()->standardPalette());
++ }
++ });
++
+ CONNECT( ui.minimalviewBox, toggled( bool ),
+ ui.mainPreview, setNormalPreview( bool ) );
+ CONFIG_BOOL( "qt-minimal-view", minimalviewBox );
+diff --git a/modules/gui/qt/dialogs/firstrun.cpp b/modules/gui/qt/dialogs/firstrun.cpp
+index 43f7108..3b1a95a 100644
+--- a/modules/gui/qt/dialogs/firstrun.cpp
++++ b/modules/gui/qt/dialogs/firstrun.cpp
+@@ -30,7 +30,7 @@
+ #include <QDialogButtonBox>
+
+ FirstRun::FirstRun( QWidget *_p, intf_thread_t *_p_intf )
+- : QWidget( _p ), p_intf( _p_intf )
++ : QVLCDialog( _p, _p_intf), p_intf( _p_intf )
+ {
+ msg_Dbg( p_intf, "Boring first Run Wizard" );
+ buildPrivDialog();
+diff --git a/modules/gui/qt/dialogs/firstrun.hpp b/modules/gui/qt/dialogs/firstrun.hpp
+index 6d3a0d0..3854399 100644
+--- a/modules/gui/qt/dialogs/firstrun.hpp
++++ b/modules/gui/qt/dialogs/firstrun.hpp
+@@ -22,12 +22,10 @@
+ *****************************************************************************/
+
+ #include "qt.hpp"
+-
+-#include <QWidget>
+-#include <QSettings>
++#include "util/qvlcframe.hpp"
+
+ class QCheckBox;
+-class FirstRun : public QWidget
++class FirstRun : public QVLCDialog
+ {
+ Q_OBJECT
+ public:
+diff --git a/modules/gui/qt/dialogs/help.cpp b/modules/gui/qt/dialogs/help.cpp
+index 4e3b2d8..8f63042 100644
+--- a/modules/gui/qt/dialogs/help.cpp
++++ b/modules/gui/qt/dialogs/help.cpp
+@@ -87,12 +87,23 @@ AboutDialog::AboutDialog( intf_thread_t *_p_intf)
+ setWindowRole( "vlc-about" );
+ setWindowModality( Qt::WindowModal );
+
+- ui.version->setText(qfu( " " VERSION_MESSAGE ) );
+- ui.title->setText("<html><head/><body><p><span style=\" font-size:26pt; color:#353535;\"> " + qtr( "VLC media player" ) + " </span></p></body></html>");
++ QString linkColor;
++ if ( var_InheritBool( p_intf, "qt-dark-palette" ) ) {
++ ui.horizontalFrame->setStyleSheet("background-color: rgb(10, 10, 10);");
++ ui.footer->setStyleSheet("background-color: rgb(25, 25, 25);");
++ linkColor = "#ffa851";
++ } else {
++ ui.horizontalFrame->setStyleSheet("background-color: rgb(230, 230, 230);");
++ ui.footer->setStyleSheet("background-color: rgb(245, 245, 245);");
++ linkColor = "#0057ae";
++ }
+
+- ui.MainBlabla->setText("<html><head/><body>" +
+- qtr( "<p>VLC media player is a free and open source media player, encoder, and streamer made by the volunteers of the <a href=\"http://www.videolan.org/\"><span style=\" text-decoration: underline; color:#0057ae;\">VideoLAN</span></a> community.</p><p>VLC uses its internal codecs, works on essentially every popular platform, and can read almost all files, CDs, DVDs, network streams, capture cards and other media formats!</p><p><a href=\"http://www.videolan.org/contribute/\"><span style=\" text-decoration: underline; color:#0057ae;\">Help and join us!</span></a>" ) +
+- "</p></body> </html>");
++ ui.version->setText(qfu( " " VERSION_MESSAGE ) );
++ ui.title->setText("<html><head/><body><p><span style=\" font-size:26pt;\"> " + qtr( "VLC media player" ) + " </span></p></body></html>");
++ QString translatedString = qtr( "<p>VLC media player is a free and open source media player, encoder, and streamer made by the volunteers of the <a href=\"http://www.videolan.org/\"><span style=\" text-decoration: underline; color:#0057ae;\">VideoLAN</span></a> community.</p><p>VLC uses its internal codecs, works on essentially every popular platform, and can read almost all files, CDs, DVDs, network streams, capture cards and other media formats!</p><p><a href=\"http://www.videolan.org/contribute/\"><span style=\" text-decoration: underline; color:#0057ae;\">Help and join us!</span></a>" );
++ if ( var_InheritBool( p_intf, "qt-dark-palette" ) )
++ translatedString.remove(QLatin1String("#0057ae"));
++ ui.MainBlabla->setText("<html><head/><body>" + translatedString + "</p></body> </html>");
+
+ #if 0
+ if( QDate::currentDate().dayOfYear() >= QT_XMAS_JOKE_DAY && var_InheritBool( p_intf, "qt-icon-change" ) )
+@@ -116,15 +127,17 @@ AboutDialog::AboutDialog( intf_thread_t *_p_intf)
+ /* People who wrote the software */
+ ui.authorsPage->setText( qfu( psz_authors ) );
+
+- ui.licenseButton->setText( "<html><head/><body><p><span style=\" text-decoration: underline; color:#0057ae;\">"+qtr( "License" )+"</span></p></body></html>");
+- ui.licenseButton->installEventFilter( this );
+-
+- ui.authorsButton->setText( "<html><head/><body><p><span style=\" text-decoration: underline; color:#0057ae;\">"+qtr( "Authors" )+"</span></p></body></html>");
+- ui.authorsButton->installEventFilter( this );
++ ui.licenseButton->setText(QString("<html><head/><body><p><span style=\" text-decoration: underline; color:%1;\">%2</span></p></body></html>")
++ .arg(linkColor, qtr("License")));
++ ui.licenseButton->installEventFilter(this);
+
+- ui.creditsButton->setText( "<html><head/><body><p><span style=\" text-decoration: underline; color:#0057ae;\">"+qtr( "Credits" )+"</span></p></body></html>");
+- ui.creditsButton->installEventFilter( this );
++ ui.authorsButton->setText(QString("<html><head/><body><p><span style=\" text-decoration: underline; color:%1;\">%2</span></p></body></html>")
++ .arg(linkColor, qtr("Authors")));
++ ui.authorsButton->installEventFilter(this);
+
++ ui.creditsButton->setText(QString("<html><head/><body><p><span style=\" text-decoration: underline; color:%1;\">%2</span></p></body></html>")
++ .arg(linkColor, qtr("Credits")));
++ ui.creditsButton->installEventFilter(this);
+ ui.version->installEventFilter( this );
+ }
+
+diff --git a/modules/gui/qt/qt.cpp b/modules/gui/qt/qt.cpp
+index cefc758..0286a7c 100644
+--- a/modules/gui/qt/qt.cpp
++++ b/modules/gui/qt/qt.cpp
+@@ -121,6 +121,9 @@ static void ShowDialog ( intf_thread_t *, int, int, intf_dialog_args_t * );
+
+ #define ERROR_TEXT N_( "Show unimportant error and warnings dialogs" )
+
++#define QT_DARK_TEXT N_( "Applies a dark palette to the style." )
++#define QT_DARK_LONGTEXT N_( "Applies a dark palette to the style. Works best with Fusion style." )
++
+ #define UPDATER_TEXT N_( "Activate the updates availability notification" )
+ #define UPDATER_LONGTEXT N_( "Activate the automatic notification of new " \
+ "versions of the software. It runs once every " \
+@@ -256,6 +259,8 @@ vlc_module_begin ()
+ RECENTPLAY_FILTER_TEXT, RECENTPLAY_FILTER_LONGTEXT, false )
+ add_integer( "qt-continue", 1, CONTINUE_PLAYBACK_TEXT, CONTINUE_PLAYBACK_TEXT, false )
+ change_integer_list(i_continue_list, psz_continue_list_text )
++ add_bool( "qt-dark-palette", false, QT_DARK_TEXT,
++ QT_DARK_LONGTEXT, false )
+
+ #ifdef UPDATE_CHECK
+ add_bool( "qt-updates-notif", true, UPDATER_TEXT,
+@@ -403,6 +408,57 @@ static bool HasWayland( void )
+ }
+ #endif
+
++bool isDarkPaletteEnabled(intf_thread_t *p_intf) {
++ static const bool darkPalette = var_InheritBool( p_intf, "qt-dark-palette" );
++ return darkPalette;
++}
++
++void applyDarkPalette() {
++ QPalette darkPalette;
++ QColor darkColor("#2d2d2d");
++ QColor gray("#808080");
++ QColor lightGray("#aaaaaa");
++ QColor baseColor("#191919");
++
++ // Active group (the currently focused window)
++ darkPalette.setColor(QPalette::Active, QPalette::Window, darkColor);
++ darkPalette.setColor(QPalette::Active, QPalette::WindowText, Qt::white);
++ darkPalette.setColor(QPalette::Active, QPalette::Base, baseColor);
++ darkPalette.setColor(QPalette::Active, QPalette::AlternateBase, darkColor);
++ darkPalette.setColor(QPalette::Active, QPalette::Button, darkColor);
++ darkPalette.setColor(QPalette::Active, QPalette::ButtonText, Qt::white);
++ darkPalette.setColor(QPalette::Active, QPalette::Text, Qt::white);
++ darkPalette.setColor(QPalette::Active, QPalette::Highlight, QColor("#2A82DA"));
++ darkPalette.setColor(QPalette::Active, QPalette::HighlightedText, Qt::white);
++ darkPalette.setColor(QPalette::Active, QPalette::Link, QColor("#FFA851"));
++
++ // Inactive group (unfocused window)
++ darkPalette.setColor(QPalette::Inactive, QPalette::Window, darkColor);
++ darkPalette.setColor(QPalette::Inactive, QPalette::WindowText, lightGray);
++ darkPalette.setColor(QPalette::Inactive, QPalette::Base, baseColor);
++ darkPalette.setColor(QPalette::Inactive, QPalette::AlternateBase, darkColor);
++ darkPalette.setColor(QPalette::Inactive, QPalette::Button, darkColor);
++ darkPalette.setColor(QPalette::Inactive, QPalette::ButtonText, lightGray);
++ darkPalette.setColor(QPalette::Inactive, QPalette::Text, lightGray);
++ darkPalette.setColor(QPalette::Inactive, QPalette::Highlight, QColor("#2A82DA"));
++ darkPalette.setColor(QPalette::Inactive, QPalette::HighlightedText, lightGray);
++
++ // Disabled group (grayed-out widgets)
++ darkPalette.setColor(QPalette::Disabled, QPalette::Window, darkColor);
++ darkPalette.setColor(QPalette::Disabled, QPalette::WindowText, lightGray);
++ darkPalette.setColor(QPalette::Disabled, QPalette::Base, baseColor);
++ darkPalette.setColor(QPalette::Disabled, QPalette::AlternateBase, darkColor);
++ darkPalette.setColor(QPalette::Disabled, QPalette::Button, lightGray.darker());
++ darkPalette.setColor(QPalette::Disabled, QPalette::ButtonText, gray);
++ darkPalette.setColor(QPalette::Disabled, QPalette::Text, gray);
++ darkPalette.setColor(QPalette::Disabled, QPalette::Highlight, gray);
++ darkPalette.setColor(QPalette::Disabled, QPalette::HighlightedText, gray);
++ darkPalette.setColor(QPalette::Disabled, QPalette::Light, darkColor);
++
++ // Apply the dark palette globally
++ QApplication::setPalette(darkPalette);
++}
++
+ /* Open Interface */
+ static int Open( vlc_object_t *p_this, bool isDialogProvider )
+ {
+@@ -637,9 +693,13 @@ static void *ThreadPlatform( void *obj, char *platform_name )
+
+ /* Loads and tries to apply the preferred QStyle */
+ QString s_style = getSettings()->value( "MainWindow/QtStyle", "" ).toString();
+- if( s_style.compare("") != 0 )
++ if (!s_style.isEmpty())
+ QApplication::setStyle( s_style );
+
++ // Apply dark palette only if dark palette is enabled
++ if (isDarkPaletteEnabled(p_intf))
++ applyDarkPalette();
++
+ /* Launch */
+ app.exec();
+
+diff --git a/modules/gui/qt/qt.hpp b/modules/gui/qt/qt.hpp
+index e59583a..489ef75 100644
+--- a/modules/gui/qt/qt.hpp
++++ b/modules/gui/qt/qt.hpp
+@@ -63,6 +63,9 @@ enum{
+ NOTIFICATION_ALWAYS = 2,
+ };
+
++bool isDarkPaletteEnabled(intf_thread_t *);
++void applyDarkPalette();
++
+ struct intf_sys_t
+ {
+ vlc_thread_t thread;
+diff --git a/modules/gui/qt/ui/about.ui b/modules/gui/qt/ui/about.ui
+index ff05004..619227b 100644
+--- a/modules/gui/qt/ui/about.ui
++++ b/modules/gui/qt/ui/about.ui
+@@ -65,10 +65,6 @@
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+- <property name="styleSheet">
+- <string notr="true">background-color: rgb(245, 245, 245);
+-color:rgb(0,0,0);</string>
+- </property>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="2" column="2" rowspan="4">
+ <widget class="QStackedWidget" name="stackedWidget">
+@@ -288,9 +284,6 @@ margin-bottom: 6px;</string>
+ <height>60</height>
+ </size>
+ </property>
+- <property name="styleSheet">
+- <string notr="true">background-color: rgb(230, 230, 230);color:rgb(0,0,0);</string>
+- </property>
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <property name="margin">
+ <number>0</number>
+diff --git a/modules/gui/qt/ui/sprefs_interface.ui b/modules/gui/qt/ui/sprefs_interface.ui
+index da2faf5..d8425b3 100644
+--- a/modules/gui/qt/ui/sprefs_interface.ui
++++ b/modules/gui/qt/ui/sprefs_interface.ui
+@@ -284,6 +284,13 @@
+ <item row="11" column="2" colspan="2">
+ <widget class="QComboBox" name="autoRaiseComboBox"/>
+ </item>
++ <item row="4" column="2">
++ <widget class="QCheckBox" name="qtdark">
++ <property name="text">
++ <string>Use a dark palette</string>
++ </property>
++ </widget>
++ </item>
+ </layout>
+ </widget>
+ </item>
+diff --git a/modules/gui/qt/util/qvlcframe.hpp b/modules/gui/qt/util/qvlcframe.hpp
+index fc422c2..ab32bc3 100644
+--- a/modules/gui/qt/util/qvlcframe.hpp
++++ b/modules/gui/qt/util/qvlcframe.hpp
+@@ -36,6 +36,47 @@
+
+ #include "qt.hpp"
+
++#ifdef _WIN32
++ #include <QLibrary>
++ #include <QSysInfo>
++ #include <dwmapi.h>
++
++ inline bool setImmersiveDarkModeAttribute(HWND hwnd, bool enable) {
++ typedef HRESULT(WINAPI *DwmSetWindowAttributeFunc)(HWND, DWORD, LPCVOID, DWORD);
++ static const auto dwmSetWindowAttributeFunc = []() -> DwmSetWindowAttributeFunc {
++ if (QSysInfo::windowsVersion() < QSysInfo::WinVersion::WV_WINDOWS10)
++ return nullptr;
++
++ QLibrary dwmapidll("dwmapi");
++ return reinterpret_cast<DwmSetWindowAttributeFunc>(dwmapidll.resolve("DwmSetWindowAttribute"));
++ }();
++
++ if (!dwmSetWindowAttributeFunc || !hwnd)
++ return false;
++
++ const BOOL pvAttribute = enable ? TRUE : FALSE;
++
++ enum Attribute : DWORD {
++ DWMWA_USE_IMMERSIVE_DARK_MODE = 20,
++ DWMWA_USE_DARK_MODE_UNDOCUMENTED = 19
++ };
++
++ return SUCCEEDED(dwmSetWindowAttributeFunc(hwnd, Attribute::DWMWA_USE_IMMERSIVE_DARK_MODE, &pvAttribute, sizeof(pvAttribute)))
++ || SUCCEEDED(dwmSetWindowAttributeFunc(hwnd, Attribute::DWMWA_USE_DARK_MODE_UNDOCUMENTED, &pvAttribute, sizeof(pvAttribute)));
++ }
++
++ // Overloaded function to apply dark mode to QWidget*
++ inline bool setImmersiveDarkModeAttribute(QWidget *widget) {
++ if (widget->isWindow()) {
++ widget->ensurePolished();
++ HWND hwnd = (HWND)widget->winId(); // Get native window handle
++ return setImmersiveDarkModeAttribute(hwnd,true); // Call the HWND version
++ }
++ return false;
++ }
++
++#endif
++
+ class QVLCTools
+ {
+ public:
+@@ -102,7 +143,12 @@ class QVLCFrame : public QWidget
+ {
+ public:
+ QVLCFrame( intf_thread_t *_p_intf ) : QWidget( NULL ), p_intf( _p_intf )
+- {};
++ {
++#ifdef Q_OS_WIN
++ if (isDarkPaletteEnabled(p_intf))
++ setImmersiveDarkModeAttribute(this);
++#endif
++ };
+ virtual ~QVLCFrame() {};
+
+ void toggleVisible()
+@@ -155,6 +201,10 @@ public:
+ {
+ setWindowFlags( Qt::Dialog|Qt::WindowMinMaxButtonsHint|
+ Qt::WindowSystemMenuHint|Qt::WindowCloseButtonHint );
++#ifdef Q_OS_WIN
++ if (isDarkPaletteEnabled(p_intf))
++ setImmersiveDarkModeAttribute(this);
++#endif
+ }
+ virtual ~QVLCDialog() {};
+ void toggleVisible()
+@@ -191,7 +241,13 @@ protected:
+ class QVLCMW : public QMainWindow
+ {
+ public:
+- QVLCMW( intf_thread_t *_p_intf ) : QMainWindow( NULL ), p_intf( _p_intf ){}
++ QVLCMW( intf_thread_t *_p_intf ) : QMainWindow( NULL ), p_intf( _p_intf )
++ {
++#ifdef Q_OS_WIN
++ if (isDarkPaletteEnabled(p_intf))
++ setImmersiveDarkModeAttribute(this);
++#endif
++ }
+ void toggleVisible()
+ {
+ if( isVisible() ) hide();
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Thu, 7 Nov 2024 07:20:57 +0100
+Subject: avcommon: rename LIBAVUTIL_VERSION_CHECK to LIBAV_UTIL_VERSION_CHECK
+
+The LIBAVUTIL_VERSION_CHECK form will be for checks also done in 4.0.
+
+No functional changes.
+---
+ modules/codec/avcodec/audio.c | 2 +-
+ modules/codec/avcodec/avcommon_compat.h | 6 +++---
+ modules/codec/avcodec/chroma.c | 2 +-
+ modules/codec/avcodec/encoder.c | 2 +-
+ modules/codec/avcodec/va.c | 2 +-
+ modules/codec/avcodec/video.c | 6 +++---
+ 6 files changed, 10 insertions(+), 10 deletions(-)
+
+diff --git a/modules/codec/avcodec/audio.c b/modules/codec/avcodec/audio.c
+index c74757c..44335ec 100644
+--- a/modules/codec/avcodec/audio.c
++++ b/modules/codec/avcodec/audio.c
+@@ -41,7 +41,7 @@
+ #include <libavcodec/avcodec.h>
+ #include <libavutil/mem.h>
+
+-#define API_CHANNEL_LAYOUT (LIBAVUTIL_VERSION_CHECK( 52, 2, 6, 0, 100))
++#define API_CHANNEL_LAYOUT (LIBAV_UTIL_VERSION_CHECK( 52, 2, 6, 0, 100))
+
+ #if API_CHANNEL_LAYOUT
+ # include <libavutil/channel_layout.h>
+diff --git a/modules/codec/avcodec/avcommon_compat.h b/modules/codec/avcodec/avcommon_compat.h
+index 561ad83..bb2b9ae 100644
+--- a/modules/codec/avcodec/avcommon_compat.h
++++ b/modules/codec/avcodec/avcommon_compat.h
+@@ -86,15 +86,15 @@
+ #ifdef HAVE_LIBAVUTIL_AVUTIL_H
+ # include <libavutil/avutil.h>
+
+-/* LIBAVUTIL_VERSION_CHECK checks for the right version of libav and FFmpeg
++/* LIBAV_UTIL_VERSION_CHECK checks for the right version of libav and FFmpeg
+ * a is the major version
+ * b and c the minor and micro versions of libav
+ * d and e the minor and micro versions of FFmpeg */
+-#define LIBAVUTIL_VERSION_CHECK( a, b, c, d, e ) \
++#define LIBAV_UTIL_VERSION_CHECK( a, b, c, d, e ) \
+ ( (LIBAVUTIL_VERSION_MICRO < 100 && LIBAVUTIL_VERSION_INT >= AV_VERSION_INT( a, b, c ) ) || \
+ (LIBAVUTIL_VERSION_MICRO >= 100 && LIBAVUTIL_VERSION_INT >= AV_VERSION_INT( a, d, e ) ) )
+
+-#if !LIBAVUTIL_VERSION_CHECK( 52, 11, 0, 32, 100 )
++#if !LIBAV_UTIL_VERSION_CHECK( 52, 11, 0, 32, 100 )
+ # define AV_PIX_FMT_FLAG_HWACCEL PIX_FMT_HWACCEL
+ #endif
+
+diff --git a/modules/codec/avcodec/chroma.c b/modules/codec/avcodec/chroma.c
+index cb9634d..da20bcb 100644
+--- a/modules/codec/avcodec/chroma.c
++++ b/modules/codec/avcodec/chroma.c
+@@ -180,7 +180,7 @@ static const struct
+ {VLC_CODEC_GBR_PLANAR_16B, AV_PIX_FMT_GBRP16BE, 0, 0, 0 },
+
+ /* XYZ */
+-#if LIBAVUTIL_VERSION_CHECK(52, 10, 0, 25, 100)
++#if LIBAV_UTIL_VERSION_CHECK(52, 10, 0, 25, 100)
+ {VLC_CODEC_XYZ12, AV_PIX_FMT_XYZ12, 0xfff0, 0xfff0, 0xfff0},
+ #endif
+ { 0, 0, 0, 0, 0 }
+diff --git a/modules/codec/avcodec/encoder.c b/modules/codec/avcodec/encoder.c
+index ae746c9..c9a34d8 100644
+--- a/modules/codec/avcodec/encoder.c
++++ b/modules/codec/avcodec/encoder.c
+@@ -47,7 +47,7 @@
+ #include "avcodec.h"
+ #include "avcommon.h"
+
+-#define API_CHANNEL_LAYOUT (LIBAVUTIL_VERSION_CHECK( 52, 2, 6, 0, 100))
++#define API_CHANNEL_LAYOUT (LIBAV_UTIL_VERSION_CHECK( 52, 2, 6, 0, 100))
+
+ #if API_CHANNEL_LAYOUT
+ # include <libavutil/channel_layout.h>
+diff --git a/modules/codec/avcodec/va.c b/modules/codec/avcodec/va.c
+index 0feb03b..06de54d 100644
+--- a/modules/codec/avcodec/va.c
++++ b/modules/codec/avcodec/va.c
+@@ -58,7 +58,7 @@ vlc_fourcc_t vlc_va_GetChroma(enum PixelFormat hwfmt, enum PixelFormat swfmt)
+ }
+ break;
+
+-#if LIBAVUTIL_VERSION_CHECK(54, 13, 1, 24, 100)
++#if LIBAV_UTIL_VERSION_CHECK(54, 13, 1, 24, 100)
+ case AV_PIX_FMT_D3D11VA_VLD:
+ switch (swfmt)
+ {
+diff --git a/modules/codec/avcodec/video.c b/modules/codec/avcodec/video.c
+index 8c892dd..deefd30 100644
+--- a/modules/codec/avcodec/video.c
++++ b/modules/codec/avcodec/video.c
+@@ -257,12 +257,12 @@ static int lavc_GetVideoFormat(decoder_t *dec, video_format_t *restrict fmt,
+ case AVCOL_TRC_BT2020_12:
+ fmt->transfer = TRANSFER_FUNC_BT2020;
+ break;
+-#if LIBAVUTIL_VERSION_CHECK( 55, 14, 0, 31, 100)
++#if LIBAV_UTIL_VERSION_CHECK( 55, 14, 0, 31, 100)
+ case AVCOL_TRC_ARIB_STD_B67:
+ fmt->transfer = TRANSFER_FUNC_ARIB_B67;
+ break;
+ #endif
+-#if LIBAVUTIL_VERSION_CHECK( 55, 17, 0, 37, 100)
++#if LIBAV_UTIL_VERSION_CHECK( 55, 17, 0, 37, 100)
+ case AVCOL_TRC_SMPTE2084:
+ fmt->transfer = TRANSFER_FUNC_SMPTE_ST2084;
+ break;
+@@ -687,7 +687,7 @@ static int ffmpeg_OpenVa(decoder_t *p_dec, AVCodecContext *p_context,
+ static const enum PixelFormat hwfmts[] =
+ {
+ #ifdef _WIN32
+-#if LIBAVUTIL_VERSION_CHECK(54, 13, 1, 24, 100)
++#if LIBAV_UTIL_VERSION_CHECK(54, 13, 1, 24, 100)
+ AV_PIX_FMT_D3D11VA_VLD,
+ #endif
+ AV_PIX_FMT_DXVA2_VLD,
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Wed, 19 Jun 2024 13:56:31 +0200
+Subject: avcommon: use a specific macro to check the FFmpeg libavutil version
+
+This macro doesn't check for libav which is assumed to not have to relevant
+code. This is the same macro name used in VLC 4.0.
+---
+ modules/codec/avcodec/avcommon_compat.h | 6 +++++-
+ modules/codec/avcodec/chroma.c | 8 ++++----
+ modules/codec/avcodec/video.c | 7 ++++---
+ 3 files changed, 13 insertions(+), 8 deletions(-)
+
+diff --git a/modules/codec/avcodec/avcommon_compat.h b/modules/codec/avcodec/avcommon_compat.h
+index bb2b9ae..5bade93 100644
+--- a/modules/codec/avcodec/avcommon_compat.h
++++ b/modules/codec/avcodec/avcommon_compat.h
+@@ -86,7 +86,11 @@
+ #ifdef HAVE_LIBAVUTIL_AVUTIL_H
+ # include <libavutil/avutil.h>
+
+-/* LIBAV_UTIL_VERSION_CHECK checks for the right version of libav and FFmpeg
++/* check the FFmpeg libavutil version */
++#define LIBAVUTIL_VERSION_CHECK( a, d, e ) \
++ (LIBAVUTIL_VERSION_MICRO >= 100 && LIBAVUTIL_VERSION_INT >= AV_VERSION_INT( a, d, e ) )
++
++/* LIBAV_UTIL_VERSION_CHECK checks for the right libavutil version of libav and FFmpeg
+ * a is the major version
+ * b and c the minor and micro versions of libav
+ * d and e the minor and micro versions of FFmpeg */
+diff --git a/modules/codec/avcodec/chroma.c b/modules/codec/avcodec/chroma.c
+index da20bcb..156fb0b 100644
+--- a/modules/codec/avcodec/chroma.c
++++ b/modules/codec/avcodec/chroma.c
+@@ -86,7 +86,7 @@ static const struct
+ {VLC_CODEC_I420_9B, AV_PIX_FMT_YUV420P9BE, 0, 0, 0 },
+ {VLC_CODEC_I420_10L, AV_PIX_FMT_YUV420P10LE, 0, 0, 0 },
+ {VLC_CODEC_I420_10B, AV_PIX_FMT_YUV420P10BE, 0, 0, 0 },
+-#if (LIBAVUTIL_VERSION_MICRO >= 100 && LIBAVUTIL_VERSION_INT >= AV_VERSION_INT( 54, 17, 100 ) )
++#if LIBAVUTIL_VERSION_CHECK( 54, 17, 100 )
+ {VLC_CODEC_I420_12L, AV_PIX_FMT_YUV420P12LE, 0, 0, 0 },
+ {VLC_CODEC_I420_12B, AV_PIX_FMT_YUV420P12BE, 0, 0, 0 },
+ #endif
+@@ -100,7 +100,7 @@ static const struct
+ {VLC_CODEC_I422_9B, AV_PIX_FMT_YUV422P9BE, 0, 0, 0 },
+ {VLC_CODEC_I422_10L, AV_PIX_FMT_YUV422P10LE, 0, 0, 0 },
+ {VLC_CODEC_I422_10B, AV_PIX_FMT_YUV422P10BE, 0, 0, 0 },
+-#if (LIBAVUTIL_VERSION_MICRO >= 100 && LIBAVUTIL_VERSION_INT >= AV_VERSION_INT( 54, 17, 100 ) )
++#if LIBAVUTIL_VERSION_CHECK( 54, 17, 100 )
+ {VLC_CODEC_I422_12L, AV_PIX_FMT_YUV422P12LE, 0, 0, 0 },
+ {VLC_CODEC_I422_12B, AV_PIX_FMT_YUV422P12BE, 0, 0, 0 },
+ #endif
+@@ -116,7 +116,7 @@ static const struct
+ {VLC_CODEC_I444_9B, AV_PIX_FMT_YUV444P9BE, 0, 0, 0 },
+ {VLC_CODEC_I444_10L, AV_PIX_FMT_YUV444P10LE, 0, 0, 0 },
+ {VLC_CODEC_I444_10B, AV_PIX_FMT_YUV444P10BE, 0, 0, 0 },
+-#if (LIBAVUTIL_VERSION_MICRO >= 100 && LIBAVUTIL_VERSION_INT >= AV_VERSION_INT( 54, 17, 100 ) )
++#if LIBAVUTIL_VERSION_CHECK( 54, 17, 100 )
+ {VLC_CODEC_I444_12L, AV_PIX_FMT_YUV444P12LE, 0, 0, 0 },
+ {VLC_CODEC_I444_12B, AV_PIX_FMT_YUV444P12BE, 0, 0, 0 },
+ #endif
+@@ -145,7 +145,7 @@ static const struct
+ VLC_RGB( VLC_CODEC_RGB32, AV_PIX_FMT_0BGR32, AV_PIX_FMT_0RGB32, 0x000000ff, 0x0000ff00, 0x00ff0000 )
+ #endif
+
+-#if (LIBAVUTIL_VERSION_MICRO == 0 || LIBAVUTIL_VERSION_INT >= AV_VERSION_INT( 55, 0, 100 ) )
++#if (LIBAVUTIL_VERSION_MICRO == 0 || LIBAVUTIL_VERSION_CHECK( 55, 0, 100 ) )
+ #ifdef WORDS_BIGENDIAN
+ {VLC_CODEC_RGBA64, AV_PIX_FMT_RGBA64BE, 0, 0, 0 },
+ #else /* !WORDS_BIGENDIAN */
+diff --git a/modules/codec/avcodec/video.c b/modules/codec/avcodec/video.c
+index deefd30..d3284da 100644
+--- a/modules/codec/avcodec/video.c
++++ b/modules/codec/avcodec/video.c
+@@ -39,7 +39,8 @@
+ #include <libavcodec/avcodec.h>
+ #include <libavutil/mem.h>
+ #include <libavutil/pixdesc.h>
+-#if (LIBAVUTIL_VERSION_MICRO >= 100 && LIBAVUTIL_VERSION_INT >= AV_VERSION_INT( 55, 16, 101 ) )
++#include "avcommon_compat.h"
++#if LIBAVUTIL_VERSION_CHECK( 55, 16, 101 )
+ #include <libavutil/mastering_display_metadata.h>
+ #endif
+
+@@ -995,7 +996,7 @@ static int DecodeSidedata( decoder_t *p_dec, const AVFrame *frame, picture_t *p_
+ decoder_sys_t *p_sys = p_dec->p_sys;
+ bool format_changed = false;
+
+-#if (LIBAVUTIL_VERSION_MICRO >= 100 && LIBAVUTIL_VERSION_INT >= AV_VERSION_INT( 55, 16, 101 ) )
++#if LIBAVUTIL_VERSION_CHECK( 55, 16, 101 )
+ #define FROM_AVRAT(default_factor, avrat) \
+ (uint64_t)(default_factor) * (avrat).num / (avrat).den
+ const AVFrameSideData *metadata =
+@@ -1050,7 +1051,7 @@ static int DecodeSidedata( decoder_t *p_dec, const AVFrame *frame, picture_t *p_
+ #undef FROM_AVRAT
+ }
+ #endif
+-#if (LIBAVUTIL_VERSION_MICRO >= 100 && LIBAVUTIL_VERSION_INT >= AV_VERSION_INT( 55, 60, 100 ) )
++#if LIBAVUTIL_VERSION_CHECK( 55, 60, 100 )
+ const AVFrameSideData *metadata_lt =
+ av_frame_get_side_data( frame,
+ AV_FRAME_DATA_CONTENT_LIGHT_LEVEL );
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Thu, 7 Nov 2024 07:22:26 +0100
+Subject: avcommon: rename LIBAVFORMAT_VERSION_CHECK to
+ LIBAV_FORMAT_VERSION_CHECK
+
+The LIBAVFORMAT_VERSION_CHECK form will be for checks also done in 4.0.
+
+No functional changes.
+---
+ modules/codec/avcodec/avcommon_compat.h | 2 +-
+ modules/demux/avformat/mux.c | 10 +++++-----
+ 2 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/modules/codec/avcodec/avcommon_compat.h b/modules/codec/avcodec/avcommon_compat.h
+index 5bade93..d0096bc 100644
+--- a/modules/codec/avcodec/avcommon_compat.h
++++ b/modules/codec/avcodec/avcommon_compat.h
+@@ -126,7 +126,7 @@
+ #ifdef HAVE_LIBAVFORMAT_AVFORMAT_H
+ # include <libavformat/avformat.h>
+
+-#define LIBAVFORMAT_VERSION_CHECK( a, b, c, d, e ) \
++#define LIBAV_FORMAT_VERSION_CHECK( a, b, c, d, e ) \
+ ( (LIBAVFORMAT_VERSION_MICRO < 100 && LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT( a, b, c ) ) || \
+ (LIBAVFORMAT_VERSION_MICRO >= 100 && LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT( a, d, e ) ) )
+
+diff --git a/modules/demux/avformat/mux.c b/modules/demux/avformat/mux.c
+index 033a87b..182e945 100644
+--- a/modules/demux/avformat/mux.c
++++ b/modules/demux/avformat/mux.c
+@@ -61,7 +61,7 @@ struct sout_mux_sys_t
+ bool b_write_header;
+ bool b_write_keyframe;
+ bool b_error;
+-#if LIBAVFORMAT_VERSION_CHECK( 57, 7, 0, 40, 100 )
++#if LIBAV_FORMAT_VERSION_CHECK( 57, 7, 0, 40, 100 )
+ bool b_header_done;
+ #endif
+ };
+@@ -80,7 +80,7 @@ static int IOWrite( void *opaque, uint8_t *buf, int buf_size );
+ static int IOWrite( void *opaque, const uint8_t *buf, int buf_size );
+ #endif
+ static int64_t IOSeek( void *opaque, int64_t offset, int whence );
+-#if LIBAVFORMAT_VERSION_CHECK( 57, 7, 0, 40, 100 )
++#if LIBAV_FORMAT_VERSION_CHECK( 57, 7, 0, 40, 100 )
+ # if FF_API_AVIO_WRITE_NONCONST
+ static int IOWriteTyped(void *opaque, uint8_t *buf, int buf_size,
+ enum AVIODataMarkerType type, int64_t time);
+@@ -168,7 +168,7 @@ int avformat_OpenMux( vlc_object_t *p_this )
+ p_sys->b_write_header = true;
+ p_sys->b_write_keyframe = false;
+ p_sys->b_error = false;
+-#if LIBAVFORMAT_VERSION_CHECK( 57, 7, 0, 40, 100 )
++#if LIBAV_FORMAT_VERSION_CHECK( 57, 7, 0, 40, 100 )
+ p_sys->io->write_data_type = IOWriteTyped;
+ p_sys->b_header_done = false;
+ #endif
+@@ -419,7 +419,7 @@ static int MuxBlock( sout_mux_t *p_mux, sout_input_t *p_input )
+ return VLC_SUCCESS;
+ }
+
+-#if LIBAVFORMAT_VERSION_CHECK( 57, 7, 0, 40, 100 )
++#if LIBAV_FORMAT_VERSION_CHECK( 57, 7, 0, 40, 100 )
+ # if FF_API_AVIO_WRITE_NONCONST
+ int IOWriteTyped(void *opaque, uint8_t *buf, int buf_size,
+ enum AVIODataMarkerType type, int64_t time)
+@@ -545,7 +545,7 @@ static int IOWrite( void *opaque, const uint8_t *buf, int buf_size )
+
+ if( p_sys->b_write_header )
+ p_buf->i_flags |= BLOCK_FLAG_HEADER;
+-#if LIBAVFORMAT_VERSION_CHECK( 57, 7, 0, 40, 100 )
++#if LIBAV_FORMAT_VERSION_CHECK( 57, 7, 0, 40, 100 )
+ if( !p_sys->b_header_done )
+ p_buf->i_flags |= BLOCK_FLAG_HEADER;
+ #endif
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Wed, 19 Jun 2024 13:57:24 +0200
+Subject: avcommon: use a specific macro to check the FFmpeg libavformat
+ version
+
+This macro doesn't check for libav which is assumed to not have to relevant
+code. This is the same macro name used in VLC 4.0.
+---
+ modules/codec/avcodec/avcommon.h | 2 +-
+ modules/codec/avcodec/avcommon_compat.h | 8 ++++++++
+ modules/demux/avformat/demux.c | 3 +--
+ modules/demux/avformat/mux.c | 11 ++++-------
+ 4 files changed, 14 insertions(+), 10 deletions(-)
+
+diff --git a/modules/codec/avcodec/avcommon.h b/modules/codec/avcodec/avcommon.h
+index ff5dba0..aa0c0b8 100644
+--- a/modules/codec/avcodec/avcommon.h
++++ b/modules/codec/avcodec/avcommon.h
+@@ -106,7 +106,7 @@ static inline void vlc_init_avformat(vlc_object_t *obj)
+
+ avformat_network_init();
+
+-#if (LIBAVFORMAT_VERSION_MICRO < 100) || (LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(58, 9, 100))
++#if (LIBAVFORMAT_VERSION_MICRO < 100) || !(LIBAVFORMAT_VERSION_CHECK(58, 9, 100))
+ av_register_all();
+ #endif
+
+diff --git a/modules/codec/avcodec/avcommon_compat.h b/modules/codec/avcodec/avcommon_compat.h
+index d0096bc..3feab3a 100644
+--- a/modules/codec/avcodec/avcommon_compat.h
++++ b/modules/codec/avcodec/avcommon_compat.h
+@@ -126,6 +126,14 @@
+ #ifdef HAVE_LIBAVFORMAT_AVFORMAT_H
+ # include <libavformat/avformat.h>
+
++/* check the FFmpeg libavformat version */
++#define LIBAVFORMAT_VERSION_CHECK( a, d, e ) \
++ (LIBAVFORMAT_VERSION_MICRO >= 100 && LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT( a, d, e ) )
++
++/* LIBAV_FORMAT_VERSION_CHECK checks for the right libavformat version of libav and FFmpeg
++ * a is the major version
++ * b and c the minor and micro versions of libav
++ * d and e the minor and micro versions of FFmpeg */
+ #define LIBAV_FORMAT_VERSION_CHECK( a, b, c, d, e ) \
+ ( (LIBAVFORMAT_VERSION_MICRO < 100 && LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT( a, b, c ) ) || \
+ (LIBAVFORMAT_VERSION_MICRO >= 100 && LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT( a, d, e ) ) )
+diff --git a/modules/demux/avformat/demux.c b/modules/demux/avformat/demux.c
+index 830dc01..39d2366 100644
+--- a/modules/demux/avformat/demux.c
++++ b/modules/demux/avformat/demux.c
+@@ -52,8 +52,7 @@
+
+ # define HAVE_AVUTIL_CODEC_ATTACHMENT 1
+
+-#if LIBAVFORMAT_VERSION_MICRO >= 100 && \
+- LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(59, 0, 100)
++#if LIBAVFORMAT_VERSION_CHECK(59, 0, 100)
+ # define AVF_MAYBE_CONST const
+ #else
+ # define AVF_MAYBE_CONST
+diff --git a/modules/demux/avformat/mux.c b/modules/demux/avformat/mux.c
+index 182e945..664a646 100644
+--- a/modules/demux/avformat/mux.c
++++ b/modules/demux/avformat/mux.c
+@@ -95,8 +95,7 @@ int IOWriteTyped(void *opaque, const uint8_t *buf, int buf_size,
+ *****************************************************************************/
+ int avformat_OpenMux( vlc_object_t *p_this )
+ {
+-#if LIBAVFORMAT_VERSION_MICRO >= 100 && \
+- LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(59, 0, 100)
++#if LIBAVFORMAT_VERSION_CHECK(59, 0, 100)
+ const AVOutputFormat *file_oformat;
+ #else
+ AVOutputFormat *file_oformat;
+@@ -104,8 +103,7 @@ int avformat_OpenMux( vlc_object_t *p_this )
+ sout_mux_t *p_mux = (sout_mux_t*)p_this;
+ bool dummy = !strcmp( p_mux->p_access->psz_access, "dummy");
+
+-#if ( (LIBAVFORMAT_VERSION_MICRO >= 100) \
+- && (LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(58, 7, 100)) )
++#if LIBAVFORMAT_VERSION_MICRO >= 100 && !(LIBAVFORMAT_VERSION_CHECK(58, 7, 100))
+ if( dummy && strlen(p_mux->p_access->psz_path)
+ >= sizeof (((AVFormatContext *)NULL)->filename) )
+ return VLC_EGENERIC;
+@@ -144,8 +142,7 @@ int avformat_OpenMux( vlc_object_t *p_this )
+ p_sys->oc->oformat = file_oformat;
+ /* If we use dummy access, let avformat write output */
+ if( dummy )
+-#if ( (LIBAVFORMAT_VERSION_MICRO >= 100) \
+- && (LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(58, 7, 100)) )
++#if LIBAVFORMAT_VERSION_CHECK(58, 7, 100)
+ p_sys->oc->url = av_strdup(p_mux->p_access->psz_path);
+ #else
+ strcpy( p_sys->oc->filename, p_mux->p_access->psz_path );
+@@ -397,7 +394,7 @@ static int MuxBlock( sout_mux_t *p_mux, sout_input_t *p_input )
+ pkt->dts = p_data->i_dts * p_stream->time_base.den /
+ CLOCK_FREQ / p_stream->time_base.num;
+
+-#if LIBAVFORMAT_VERSION_MICRO >= 100 && LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(59, 2, 103)
++#if LIBAVFORMAT_VERSION_MICRO >= 100 && !(LIBAVFORMAT_VERSION_CHECK(59, 2, 103))
+ /* this is another hack to prevent libavformat from triggering the "non monotone timestamps" check in avformat/utils.c */
+ p_stream->cur_dts = ( p_data->i_dts * p_stream->time_base.den /
+ CLOCK_FREQ / p_stream->time_base.num ) - 1;
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Thu, 7 Nov 2024 07:23:27 +0100
+Subject: avcommon: rename LIBAVCODEC_VERSION_CHECK to
+ LIBAV_CODEC_VERSION_CHECK
+
+The LIBAVCODEC_VERSION_CHECK form will be for checks also done in 4.0.
+
+No functional changes.
+---
+ modules/codec/avcodec/audio.c | 8 ++++----
+ modules/codec/avcodec/avcommon_compat.h | 4 ++--
+ modules/codec/avcodec/d3d11va.c | 4 ++--
+ modules/codec/avcodec/encoder.c | 10 +++++-----
+ modules/codec/avcodec/fourcc.c | 14 +++++++-------
+ modules/codec/avcodec/video.c | 2 +-
+ 6 files changed, 21 insertions(+), 21 deletions(-)
+
+diff --git a/modules/codec/avcodec/audio.c b/modules/codec/avcodec/audio.c
+index 44335ec..7a979e9 100644
+--- a/modules/codec/avcodec/audio.c
++++ b/modules/codec/avcodec/audio.c
+@@ -142,7 +142,7 @@ static int OpenAudioCodec( decoder_t *p_dec )
+ }
+
+ ctx->sample_rate = p_dec->fmt_in.audio.i_rate;
+-#if LIBAVCODEC_VERSION_CHECK(59, 999, 999, 24, 100)
++#if LIBAV_CODEC_VERSION_CHECK(59, 999, 999, 24, 100)
+ av_channel_layout_default( &ctx->ch_layout, p_dec->fmt_in.audio.i_channels );
+ #else
+ ctx->channels = p_dec->fmt_in.audio.i_channels;
+@@ -402,7 +402,7 @@ static int DecodeBlock( decoder_t *p_dec, block_t **pp_block )
+ ret = avcodec_receive_frame( ctx, frame );
+ if( ret == 0 )
+ {
+-#if LIBAVCODEC_VERSION_CHECK(59, 999, 999, 24, 100)
++#if LIBAV_CODEC_VERSION_CHECK(59, 999, 999, 24, 100)
+ int channels = frame->ch_layout.nb_channels;
+ #else
+ int channels = ctx->channels;
+@@ -592,7 +592,7 @@ static void SetupOutputFormat( decoder_t *p_dec, bool b_trust )
+ p_dec->fmt_out.audio.i_rate = p_sys->p_context->sample_rate;
+
+ /* */
+-#if LIBAVCODEC_VERSION_CHECK(59, 999, 999, 24, 100)
++#if LIBAV_CODEC_VERSION_CHECK(59, 999, 999, 24, 100)
+ if( p_sys->i_previous_channels == p_sys->p_context->ch_layout.nb_channels &&
+ p_sys->i_previous_layout == p_sys->p_context->ch_layout.u.mask )
+ return;
+@@ -617,7 +617,7 @@ static void SetupOutputFormat( decoder_t *p_dec, bool b_trust )
+
+ int i_channels_src = 0, channel_count;
+ uint64_t channel_layout_mask;
+-#if LIBAVCODEC_VERSION_CHECK(59, 999, 999, 24, 100)
++#if LIBAV_CODEC_VERSION_CHECK(59, 999, 999, 24, 100)
+ channel_layout_mask = p_sys->p_context->ch_layout.u.mask;
+ channel_count = p_sys->p_context->ch_layout.nb_channels;
+ #elif API_CHANNEL_LAYOUT
+diff --git a/modules/codec/avcodec/avcommon_compat.h b/modules/codec/avcodec/avcommon_compat.h
+index 3feab3a..b504fcd 100644
+--- a/modules/codec/avcodec/avcommon_compat.h
++++ b/modules/codec/avcodec/avcommon_compat.h
+@@ -30,11 +30,11 @@
+ #ifdef HAVE_LIBAVCODEC_AVCODEC_H
+ #include <libavcodec/avcodec.h>
+
+-/* LIBAVCODEC_VERSION_CHECK checks for the right version of libav and FFmpeg
++/* LIBAV_CODEC_VERSION_CHECK checks for the right version of libav and FFmpeg
+ * a is the major version
+ * b and c the minor and micro versions of libav
+ * d and e the minor and micro versions of FFmpeg */
+-#define LIBAVCODEC_VERSION_CHECK( a, b, c, d, e ) \
++#define LIBAV_CODEC_VERSION_CHECK( a, b, c, d, e ) \
+ ( (LIBAVCODEC_VERSION_MICRO < 100 && LIBAVCODEC_VERSION_INT >= AV_VERSION_INT( a, b, c ) ) || \
+ (LIBAVCODEC_VERSION_MICRO >= 100 && LIBAVCODEC_VERSION_INT >= AV_VERSION_INT( a, d, e ) ) )
+
+diff --git a/modules/codec/avcodec/d3d11va.c b/modules/codec/avcodec/d3d11va.c
+index 5260628..e1c10d3 100644
+--- a/modules/codec/avcodec/d3d11va.c
++++ b/modules/codec/avcodec/d3d11va.c
+@@ -76,7 +76,7 @@ vlc_module_end()
+ * So we get the surfaces from the decoder pool when needed. We don't need to
+ * extract the decoded surface into the decoder picture anymore.
+ */
+-#define D3D11_DIRECT_DECODE LIBAVCODEC_VERSION_CHECK( 57, 30, 3, 72, 101 )
++#define D3D11_DIRECT_DECODE LIBAV_CODEC_VERSION_CHECK( 57, 30, 3, 72, 101 )
+
+ #include <initguid.h> /* must be last included to not redefine existing GUIDs */
+
+@@ -764,7 +764,7 @@ static int DxCreateDecoderSurfaces(vlc_va_t *va, int codec_id,
+ assert(texDesc.Format == sys->render);
+ assert(texDesc.BindFlags & D3D11_BIND_DECODER);
+
+-#if !LIBAVCODEC_VERSION_CHECK( 57, 27, 2, 61, 102 )
++#if !LIBAV_CODEC_VERSION_CHECK( 57, 27, 2, 61, 102 )
+ if (pic->p_sys->slice_index != surface_idx)
+ {
+ msg_Warn(va, "d3d11va requires decoding slices to be the first in the texture (%d/%d)",
+diff --git a/modules/codec/avcodec/encoder.c b/modules/codec/avcodec/encoder.c
+index c9a34d8..9cf9a7d 100644
+--- a/modules/codec/avcodec/encoder.c
++++ b/modules/codec/avcodec/encoder.c
+@@ -183,7 +183,7 @@ static const uint64_t pi_channels_map[][2] =
+ { AV_CH_STEREO_RIGHT, 0 },
+ };
+
+-# if !LIBAVCODEC_VERSION_CHECK(59, 999, 999, 24, 100)
++# if !LIBAV_CODEC_VERSION_CHECK(59, 999, 999, 24, 100)
+ static const uint32_t channel_mask[][2] = {
+ {0,0},
+ {AOUT_CHAN_CENTER, AV_CH_LAYOUT_MONO},
+@@ -765,7 +765,7 @@ int InitVideoEnc( vlc_object_t *p_this )
+ uint32_t order_mask = 0;
+ int i_channels_src = 0;
+ msg_Dbg( p_enc, "Creating channel order for reordering");
+-# if LIBAVCODEC_VERSION_CHECK(59, 999, 999, 24, 100)
++# if LIBAV_CODEC_VERSION_CHECK(59, 999, 999, 24, 100)
+ av_channel_layout_default( &p_context->ch_layout, p_enc->fmt_out.audio.i_channels );
+ uint64_t channel_mask = p_context->ch_layout.u.mask;
+ # else
+@@ -918,7 +918,7 @@ errmsg:
+
+ if( p_enc->fmt_out.audio.i_channels > 2 )
+ {
+-#if LIBAVCODEC_VERSION_CHECK(59, 999, 999, 24, 100)
++#if LIBAV_CODEC_VERSION_CHECK(59, 999, 999, 24, 100)
+ av_channel_layout_default( &p_context->ch_layout, 2 );
+ #else
+ p_context->channels = 2;
+@@ -1282,7 +1282,7 @@ static block_t *handle_delay_buffer( encoder_t *p_enc, encoder_sys_t *p_sys, uns
+ av_frame_unref( p_sys->frame );
+ p_sys->frame->format = p_sys->p_context->sample_fmt;
+ p_sys->frame->nb_samples = leftover_samples + p_sys->i_samples_delay;
+-#if LIBAVCODEC_VERSION_CHECK(59, 999, 999, 24, 100)
++#if LIBAV_CODEC_VERSION_CHECK(59, 999, 999, 24, 100)
+ av_channel_layout_copy(&p_sys->frame->ch_layout, &p_sys->p_context->ch_layout);
+ #else
+ p_sys->frame->channel_layout = p_sys->p_context->channel_layout;
+@@ -1417,7 +1417,7 @@ static block_t *EncodeAudio( encoder_t *p_enc, block_t *p_aout_buf )
+ p_sys->frame->pts = date_Get( &p_sys->buffer_date ) * p_sys->p_context->time_base.den /
+ CLOCK_FREQ / p_sys->p_context->time_base.num;
+
+-#if LIBAVCODEC_VERSION_CHECK(59, 999, 999, 24, 100)
++#if LIBAV_CODEC_VERSION_CHECK(59, 999, 999, 24, 100)
+ av_channel_layout_copy(&p_sys->frame->ch_layout, &p_sys->p_context->ch_layout);
+ #else
+ p_sys->frame->channel_layout = p_sys->p_context->channel_layout;
+diff --git a/modules/codec/avcodec/fourcc.c b/modules/codec/avcodec/fourcc.c
+index 97f3188..3aea6b5 100644
+--- a/modules/codec/avcodec/fourcc.c
++++ b/modules/codec/avcodec/fourcc.c
+@@ -230,7 +230,7 @@ static const struct vlc_avcodec_fourcc video_codecs[] =
+ { VLC_CODEC_CLLC, AV_CODEC_ID_CLLC },
+ { VLC_CODEC_MSS2, AV_CODEC_ID_MSS2 },
+ { VLC_CODEC_VP9, AV_CODEC_ID_VP9 },
+-#if LIBAVCODEC_VERSION_CHECK( 57, 26, 0, 83, 101 )
++#if LIBAV_CODEC_VERSION_CHECK( 57, 26, 0, 83, 101 )
+ { VLC_CODEC_AV1, AV_CODEC_ID_AV1 },
+ #endif
+ { VLC_CODEC_ICOD, AV_CODEC_ID_AIC },
+@@ -285,19 +285,19 @@ static const struct vlc_avcodec_fourcc video_codecs[] =
+ /* ffmpeg only: AV_CODEC_ID_SNOW */
+ /* ffmpeg only: AV_CODEC_ID_SMVJPEG */
+
+-#if LIBAVCODEC_VERSION_CHECK( 57, 999, 999, 24, 102 )
++#if LIBAV_CODEC_VERSION_CHECK( 57, 999, 999, 24, 102 )
+ { VLC_CODEC_CINEFORM, AV_CODEC_ID_CFHD },
+ #endif
+
+-#if LIBAVCODEC_VERSION_CHECK( 57, 999, 999, 70, 100 )
++#if LIBAV_CODEC_VERSION_CHECK( 57, 999, 999, 70, 100 )
+ { VLC_CODEC_PIXLET, AV_CODEC_ID_PIXLET },
+ #endif
+
+-#if LIBAVCODEC_VERSION_CHECK( 57, 999, 999, 71, 101 )
++#if LIBAV_CODEC_VERSION_CHECK( 57, 999, 999, 71, 101 )
+ { VLC_CODEC_SPEEDHQ, AV_CODEC_ID_SPEEDHQ },
+ #endif
+
+-#if LIBAVCODEC_VERSION_CHECK( 57, 999, 999, 79, 100 )
++#if LIBAV_CODEC_VERSION_CHECK( 57, 999, 999, 79, 100 )
+ { VLC_CODEC_FMVC, AV_CODEC_ID_FMVC },
+ #endif
+ };
+@@ -414,7 +414,7 @@ static const struct vlc_avcodec_fourcc audio_codecs[] =
+ /* AV_CODEC_ID_WESTWOOD_SND1 */
+ { VLC_CODEC_GSM, AV_CODEC_ID_GSM },
+ { VLC_CODEC_QDM2, AV_CODEC_ID_QDM2 },
+-#if LIBAVCODEC_VERSION_CHECK( 57, 999, 999, 71, 100 )
++#if LIBAV_CODEC_VERSION_CHECK( 57, 999, 999, 71, 100 )
+ { VLC_CODEC_QDMC, AV_CODEC_ID_QDMC },
+ #endif
+ { VLC_CODEC_COOK, AV_CODEC_ID_COOK },
+@@ -482,7 +482,7 @@ static const struct vlc_avcodec_fourcc spu_codecs[] =
+ { VLC_CODEC_SSA, AV_CODEC_ID_SSA },
+ /* AV_CODEC_ID_MOV_TEXT */
+ { VLC_CODEC_BD_PG, AV_CODEC_ID_HDMV_PGS_SUBTITLE },
+-#if LIBAVCODEC_VERSION_CHECK( 57, 999, 999, 71, 100 )
++#if LIBAV_CODEC_VERSION_CHECK( 57, 999, 999, 71, 100 )
+ { VLC_CODEC_BD_TEXT, AV_CODEC_ID_HDMV_TEXT_SUBTITLE },
+ #endif
+ { VLC_CODEC_TELETEXT, AV_CODEC_ID_DVB_TELETEXT },
+diff --git a/modules/codec/avcodec/video.c b/modules/codec/avcodec/video.c
+index d3284da..552c602 100644
+--- a/modules/codec/avcodec/video.c
++++ b/modules/codec/avcodec/video.c
+@@ -1307,7 +1307,7 @@ static picture_t *DecodeBlock( decoder_t *p_dec, block_t **pp_block, bool *error
+ }
+
+ /* Compute the PTS */
+-#if LIBAVCODEC_VERSION_CHECK(57, 24, 0, 61, 100)
++#if LIBAV_CODEC_VERSION_CHECK(57, 24, 0, 61, 100)
+ # if LIBAVCODEC_VERSION_MICRO >= 100
+ vlc_tick_t i_pts = frame->best_effort_timestamp;
+ # else
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Wed, 19 Jun 2024 13:59:15 +0200
+Subject: avcommon: use a specific macro to check the FFmpeg libavcodec
+ version
+
+This macro doesn't check for libav which is assumed to not have to relevant
+code. This is the same macro name used in VLC 4.0.
+---
+ modules/codec/avcodec/audio.c | 8 ++++----
+ modules/codec/avcodec/avcommon.h | 2 +-
+ modules/codec/avcodec/avcommon_compat.h | 4 ++++
+ modules/codec/avcodec/directx_va.c | 4 ++--
+ modules/codec/avcodec/encoder.c | 13 ++++++-------
+ modules/codec/avcodec/fourcc.c | 18 ++++++++----------
+ modules/codec/avcodec/video.c | 3 +--
+ modules/demux/avformat/demux.c | 2 +-
+ modules/demux/avformat/mux.c | 2 +-
+ 9 files changed, 28 insertions(+), 28 deletions(-)
+
+diff --git a/modules/codec/avcodec/audio.c b/modules/codec/avcodec/audio.c
+index 7a979e9..a3f67f7 100644
+--- a/modules/codec/avcodec/audio.c
++++ b/modules/codec/avcodec/audio.c
+@@ -142,7 +142,7 @@ static int OpenAudioCodec( decoder_t *p_dec )
+ }
+
+ ctx->sample_rate = p_dec->fmt_in.audio.i_rate;
+-#if LIBAV_CODEC_VERSION_CHECK(59, 999, 999, 24, 100)
++#if LIBAVCODEC_VERSION_CHECK(59, 24, 100)
+ av_channel_layout_default( &ctx->ch_layout, p_dec->fmt_in.audio.i_channels );
+ #else
+ ctx->channels = p_dec->fmt_in.audio.i_channels;
+@@ -402,7 +402,7 @@ static int DecodeBlock( decoder_t *p_dec, block_t **pp_block )
+ ret = avcodec_receive_frame( ctx, frame );
+ if( ret == 0 )
+ {
+-#if LIBAV_CODEC_VERSION_CHECK(59, 999, 999, 24, 100)
++#if LIBAVCODEC_VERSION_CHECK(59, 24, 100)
+ int channels = frame->ch_layout.nb_channels;
+ #else
+ int channels = ctx->channels;
+@@ -592,7 +592,7 @@ static void SetupOutputFormat( decoder_t *p_dec, bool b_trust )
+ p_dec->fmt_out.audio.i_rate = p_sys->p_context->sample_rate;
+
+ /* */
+-#if LIBAV_CODEC_VERSION_CHECK(59, 999, 999, 24, 100)
++#if LIBAVCODEC_VERSION_CHECK(59, 24, 100)
+ if( p_sys->i_previous_channels == p_sys->p_context->ch_layout.nb_channels &&
+ p_sys->i_previous_layout == p_sys->p_context->ch_layout.u.mask )
+ return;
+@@ -617,7 +617,7 @@ static void SetupOutputFormat( decoder_t *p_dec, bool b_trust )
+
+ int i_channels_src = 0, channel_count;
+ uint64_t channel_layout_mask;
+-#if LIBAV_CODEC_VERSION_CHECK(59, 999, 999, 24, 100)
++#if LIBAVCODEC_VERSION_CHECK(59, 24, 100)
+ channel_layout_mask = p_sys->p_context->ch_layout.u.mask;
+ channel_count = p_sys->p_context->ch_layout.nb_channels;
+ #elif API_CHANNEL_LAYOUT
+diff --git a/modules/codec/avcodec/avcommon.h b/modules/codec/avcodec/avcommon.h
+index aa0c0b8..10ad13d 100644
+--- a/modules/codec/avcodec/avcommon.h
++++ b/modules/codec/avcodec/avcommon.h
+@@ -123,7 +123,7 @@ static inline void vlc_init_avcodec(vlc_object_t *obj)
+
+ vlc_init_avutil(obj);
+
+-#if (LIBAVFORMAT_VERSION_MICRO < 100) || (LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58, 10, 100))
++#if (LIBAVFORMAT_VERSION_MICRO < 100) || !(LIBAVCODEC_VERSION_CHECK(58, 10, 100))
+ avcodec_register_all();
+ #endif
+
+diff --git a/modules/codec/avcodec/avcommon_compat.h b/modules/codec/avcodec/avcommon_compat.h
+index b504fcd..ac02c06 100644
+--- a/modules/codec/avcodec/avcommon_compat.h
++++ b/modules/codec/avcodec/avcommon_compat.h
+@@ -30,6 +30,10 @@
+ #ifdef HAVE_LIBAVCODEC_AVCODEC_H
+ #include <libavcodec/avcodec.h>
+
++/* check the FFmpeg libavutil version */
++#define LIBAVCODEC_VERSION_CHECK( a, d, e ) \
++ (LIBAVCODEC_VERSION_MICRO >= 100 && LIBAVCODEC_VERSION_INT >= AV_VERSION_INT( a, d, e ) )
++
+ /* LIBAV_CODEC_VERSION_CHECK checks for the right version of libav and FFmpeg
+ * a is the major version
+ * b and c the minor and micro versions of libav
+diff --git a/modules/codec/avcodec/directx_va.c b/modules/codec/avcodec/directx_va.c
+index 607a1bc..890473e 100644
+--- a/modules/codec/avcodec/directx_va.c
++++ b/modules/codec/avcodec/directx_va.c
+@@ -274,7 +274,7 @@ static const directx_va_mode_t DXVA_MODES[] = {
+
+ /* VPx */
+ { "VP8", &DXVA_ModeVP8_VLD, 8, 0, NULL },
+-#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT( 57, 17, 100 ) && LIBAVCODEC_VERSION_MICRO >= 100
++#if LIBAVCODEC_VERSION_CHECK( 57, 17, 100 )
+ { "VP9 profile 0", &DXVA_ModeVP9_VLD_Profile0, 8, AV_CODEC_ID_VP9, PROF_VP9_MAIN },
+ { "VP9 profile 2", &DXVA_ModeVP9_VLD_10bit_Profile2, 10, AV_CODEC_ID_VP9, PROF_VP9_10 },
+ #else
+@@ -284,7 +284,7 @@ static const directx_va_mode_t DXVA_MODES[] = {
+ { "VP9 profile Intel", &DXVA_ModeVP9_VLD_Intel, 8, 0, NULL },
+
+ /* AV1 */
+-#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT( 58, 112, 103 ) && LIBAVCODEC_VERSION_MICRO >= 100
++#if LIBAVCODEC_VERSION_CHECK( 58, 112, 103 )
+ { "AV1 Main profile 8", &DXVA_ModeAV1_VLD_Profile0, 8, AV_CODEC_ID_AV1, PROF_AV1_MAIN },
+ { "AV1 Main profile 10", &DXVA_ModeAV1_VLD_Profile0, 10, AV_CODEC_ID_AV1, PROF_AV1_MAIN },
+ { "AV1 High profile 8", &DXVA_ModeAV1_VLD_Profile1, 8, AV_CODEC_ID_AV1, PROF_AV1_HIGH },
+diff --git a/modules/codec/avcodec/encoder.c b/modules/codec/avcodec/encoder.c
+index 9cf9a7d..2014b8a 100644
+--- a/modules/codec/avcodec/encoder.c
++++ b/modules/codec/avcodec/encoder.c
+@@ -61,8 +61,7 @@
+
+ #define RAW_AUDIO_FRAME_SIZE (2048)
+
+-#if LIBAVCODEC_VERSION_MICRO >= 100 && \
+- LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(59, 0, 100)
++#if LIBAVCODEC_VERSION_CHECK(59, 0, 100)
+ # define AVC_MAYBE_CONST const
+ #else
+ # define AVC_MAYBE_CONST
+@@ -183,7 +182,7 @@ static const uint64_t pi_channels_map[][2] =
+ { AV_CH_STEREO_RIGHT, 0 },
+ };
+
+-# if !LIBAV_CODEC_VERSION_CHECK(59, 999, 999, 24, 100)
++# if !LIBAVCODEC_VERSION_CHECK(59, 24, 100)
+ static const uint32_t channel_mask[][2] = {
+ {0,0},
+ {AOUT_CHAN_CENTER, AV_CH_LAYOUT_MONO},
+@@ -765,7 +764,7 @@ int InitVideoEnc( vlc_object_t *p_this )
+ uint32_t order_mask = 0;
+ int i_channels_src = 0;
+ msg_Dbg( p_enc, "Creating channel order for reordering");
+-# if LIBAV_CODEC_VERSION_CHECK(59, 999, 999, 24, 100)
++# if LIBAVCODEC_VERSION_CHECK(59, 24, 100)
+ av_channel_layout_default( &p_context->ch_layout, p_enc->fmt_out.audio.i_channels );
+ uint64_t channel_mask = p_context->ch_layout.u.mask;
+ # else
+@@ -918,7 +917,7 @@ errmsg:
+
+ if( p_enc->fmt_out.audio.i_channels > 2 )
+ {
+-#if LIBAV_CODEC_VERSION_CHECK(59, 999, 999, 24, 100)
++#if LIBAVCODEC_VERSION_CHECK(59, 24, 100)
+ av_channel_layout_default( &p_context->ch_layout, 2 );
+ #else
+ p_context->channels = 2;
+@@ -1282,7 +1281,7 @@ static block_t *handle_delay_buffer( encoder_t *p_enc, encoder_sys_t *p_sys, uns
+ av_frame_unref( p_sys->frame );
+ p_sys->frame->format = p_sys->p_context->sample_fmt;
+ p_sys->frame->nb_samples = leftover_samples + p_sys->i_samples_delay;
+-#if LIBAV_CODEC_VERSION_CHECK(59, 999, 999, 24, 100)
++#if LIBAVCODEC_VERSION_CHECK(59, 24, 100)
+ av_channel_layout_copy(&p_sys->frame->ch_layout, &p_sys->p_context->ch_layout);
+ #else
+ p_sys->frame->channel_layout = p_sys->p_context->channel_layout;
+@@ -1417,7 +1416,7 @@ static block_t *EncodeAudio( encoder_t *p_enc, block_t *p_aout_buf )
+ p_sys->frame->pts = date_Get( &p_sys->buffer_date ) * p_sys->p_context->time_base.den /
+ CLOCK_FREQ / p_sys->p_context->time_base.num;
+
+-#if LIBAV_CODEC_VERSION_CHECK(59, 999, 999, 24, 100)
++#if LIBAVCODEC_VERSION_CHECK(59, 24, 100)
+ av_channel_layout_copy(&p_sys->frame->ch_layout, &p_sys->p_context->ch_layout);
+ #else
+ p_sys->frame->channel_layout = p_sys->p_context->channel_layout;
+diff --git a/modules/codec/avcodec/fourcc.c b/modules/codec/avcodec/fourcc.c
+index 3aea6b5..d75c21f 100644
+--- a/modules/codec/avcodec/fourcc.c
++++ b/modules/codec/avcodec/fourcc.c
+@@ -182,12 +182,10 @@ static const struct vlc_avcodec_fourcc video_codecs[] =
+ /* AV_CODEC_ID_V210X */
+ { VLC_CODEC_TMV, AV_CODEC_ID_TMV },
+ { VLC_CODEC_V210, AV_CODEC_ID_V210 },
+-#if LIBAVCODEC_VERSION_MICRO >= 100
+-# if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT( 59, 42, 102 )
++#if LIBAVCODEC_VERSION_CHECK( 59, 42, 102 )
+ { VLC_CODEC_VUYA, AV_CODEC_ID_RAWVIDEO },
+-# elif LIBAVCODEC_VERSION_INT >= AV_VERSION_INT( 54, 50, 100 )
++#elif LIBAVCODEC_VERSION_CHECK( 54, 50, 100 )
+ { VLC_CODEC_VUYA, AV_CODEC_ID_AYUV },
+-# endif
+ #endif
+ /* AV_CODEC_ID_DPX */
+ { VLC_CODEC_MAD, AV_CODEC_ID_MAD },
+@@ -285,19 +283,19 @@ static const struct vlc_avcodec_fourcc video_codecs[] =
+ /* ffmpeg only: AV_CODEC_ID_SNOW */
+ /* ffmpeg only: AV_CODEC_ID_SMVJPEG */
+
+-#if LIBAV_CODEC_VERSION_CHECK( 57, 999, 999, 24, 102 )
++#if LIBAVCODEC_VERSION_CHECK( 57, 24, 102 )
+ { VLC_CODEC_CINEFORM, AV_CODEC_ID_CFHD },
+ #endif
+
+-#if LIBAV_CODEC_VERSION_CHECK( 57, 999, 999, 70, 100 )
++#if LIBAVCODEC_VERSION_CHECK( 57, 70, 100 )
+ { VLC_CODEC_PIXLET, AV_CODEC_ID_PIXLET },
+ #endif
+
+-#if LIBAV_CODEC_VERSION_CHECK( 57, 999, 999, 71, 101 )
++#if LIBAVCODEC_VERSION_CHECK( 57, 71, 101 )
+ { VLC_CODEC_SPEEDHQ, AV_CODEC_ID_SPEEDHQ },
+ #endif
+
+-#if LIBAV_CODEC_VERSION_CHECK( 57, 999, 999, 79, 100 )
++#if LIBAVCODEC_VERSION_CHECK( 57, 79, 100 )
+ { VLC_CODEC_FMVC, AV_CODEC_ID_FMVC },
+ #endif
+ };
+@@ -414,7 +412,7 @@ static const struct vlc_avcodec_fourcc audio_codecs[] =
+ /* AV_CODEC_ID_WESTWOOD_SND1 */
+ { VLC_CODEC_GSM, AV_CODEC_ID_GSM },
+ { VLC_CODEC_QDM2, AV_CODEC_ID_QDM2 },
+-#if LIBAV_CODEC_VERSION_CHECK( 57, 999, 999, 71, 100 )
++#if LIBAVCODEC_VERSION_CHECK( 57, 71, 100 )
+ { VLC_CODEC_QDMC, AV_CODEC_ID_QDMC },
+ #endif
+ { VLC_CODEC_COOK, AV_CODEC_ID_COOK },
+@@ -482,7 +480,7 @@ static const struct vlc_avcodec_fourcc spu_codecs[] =
+ { VLC_CODEC_SSA, AV_CODEC_ID_SSA },
+ /* AV_CODEC_ID_MOV_TEXT */
+ { VLC_CODEC_BD_PG, AV_CODEC_ID_HDMV_PGS_SUBTITLE },
+-#if LIBAV_CODEC_VERSION_CHECK( 57, 999, 999, 71, 100 )
++#if LIBAVCODEC_VERSION_CHECK( 57, 71, 100 )
+ { VLC_CODEC_BD_TEXT, AV_CODEC_ID_HDMV_TEXT_SUBTITLE },
+ #endif
+ { VLC_CODEC_TELETEXT, AV_CODEC_ID_DVB_TELETEXT },
+diff --git a/modules/codec/avcodec/video.c b/modules/codec/avcodec/video.c
+index 552c602..c306e91 100644
+--- a/modules/codec/avcodec/video.c
++++ b/modules/codec/avcodec/video.c
+@@ -1824,8 +1824,7 @@ no_reuse:
+ if (!can_hwaccel)
+ return swfmt;
+
+-#if (LIBAVCODEC_VERSION_MICRO >= 100) \
+- && (LIBAVCODEC_VERSION_INT < AV_VERSION_INT(57, 83, 101))
++#if (LIBAVCODEC_VERSION_MICRO >= 100) && !(LIBAVCODEC_VERSION_CHECK(57, 83, 101))
+ if (p_context->active_thread_type)
+ {
+ msg_Warn(p_dec, "thread type %d: disabling hardware acceleration",
+diff --git a/modules/demux/avformat/demux.c b/modules/demux/avformat/demux.c
+index 39d2366..9975b0f 100644
+--- a/modules/demux/avformat/demux.c
++++ b/modules/demux/avformat/demux.c
+@@ -400,7 +400,7 @@ int avformat_OpenDemux( vlc_object_t *p_this )
+ es_format_Init( &es_fmt, AUDIO_ES, fcc );
+ es_fmt.i_original_fourcc = CodecTagToFourcc( cp->codec_tag );
+ es_fmt.i_bitrate = cp->bit_rate;
+-#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT( 59, 24, 100 ) && LIBAVCODEC_VERSION_MICRO >= 100
++#if LIBAVCODEC_VERSION_CHECK( 59, 24, 100 )
+ es_fmt.audio.i_channels = cp->ch_layout.nb_channels;
+ #else
+ es_fmt.audio.i_channels = cp->channels;
+diff --git a/modules/demux/avformat/mux.c b/modules/demux/avformat/mux.c
+index 664a646..a48190c 100644
+--- a/modules/demux/avformat/mux.c
++++ b/modules/demux/avformat/mux.c
+@@ -273,7 +273,7 @@ static int AddStream( sout_mux_t *p_mux, sout_input_t *p_input )
+ {
+ case AUDIO_ES:
+ codecpar->codec_type = AVMEDIA_TYPE_AUDIO;
+-#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT( 59, 24, 100 ) && LIBAVCODEC_VERSION_MICRO >= 100
++#if LIBAVCODEC_VERSION_CHECK( 59, 24, 100 )
+ av_channel_layout_default( &codecpar->ch_layout, fmt->audio.i_channels );
+ #else
+ codecpar->channels = fmt->audio.i_channels;
--- /dev/null
+From: Zhao Zhili <quinkblack@foxmail.com>
+Date: Fri, 11 Jun 2021 18:02:34 +0800
+Subject: codec: avcodec: check open codec return value
+
+(cherry picked from commit 21ab6be22e7c1831cebf023fd53bd7ffbfad22f6) (edited)
+edited:
+- on 3.0 DecodeBlock returns a picture_t, not an error code
+---
+ modules/codec/avcodec/audio.c | 7 ++++++-
+ modules/codec/avcodec/video.c | 11 +++++++----
+ 2 files changed, 13 insertions(+), 5 deletions(-)
+
+diff --git a/modules/codec/avcodec/audio.c b/modules/codec/avcodec/audio.c
+index a3f67f7..e843675 100644
+--- a/modules/codec/avcodec/audio.c
++++ b/modules/codec/avcodec/audio.c
+@@ -309,7 +309,12 @@ static int DecodeBlock( decoder_t *p_dec, block_t **pp_block )
+ && !avcodec_is_open( ctx ) )
+ {
+ InitDecoderConfig( p_dec, ctx );
+- OpenAudioCodec( p_dec );
++ if( OpenAudioCodec( p_dec ) < 0 )
++ {
++ if( pp_block != NULL && *pp_block != NULL )
++ block_Release( *pp_block );
++ return VLCDEC_ECRITICAL;
++ }
+ }
+
+ if( !avcodec_is_open( ctx ) )
+diff --git a/modules/codec/avcodec/video.c b/modules/codec/avcodec/video.c
+index c306e91..096a0b7 100644
+--- a/modules/codec/avcodec/video.c
++++ b/modules/codec/avcodec/video.c
+@@ -1114,17 +1114,20 @@ static picture_t *DecodeBlock( decoder_t *p_dec, block_t **pp_block, bool *error
+ bool eos_spotted = false;
+
+
+- block_t *p_block;
++ block_t *p_block = pp_block ? *pp_block : NULL;
+ vlc_tick_t current_time;
+
+ if( !p_context->extradata_size && p_dec->fmt_in.i_extra )
+ {
+ ffmpeg_InitCodec( p_dec );
+- if( !avcodec_is_open( p_context ) )
+- OpenVideoCodec( p_dec );
++ if( !avcodec_is_open( p_context ) && OpenVideoCodec(p_dec) < 0 )
++ {
++ if( p_block != NULL )
++ block_Release( p_block );
++ return NULL;
++ }
+ }
+
+- p_block = pp_block ? *pp_block : NULL;
+ if(!p_block && !(p_sys->p_codec->capabilities & AV_CODEC_CAP_DELAY) )
+ return NULL;
+
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Fri, 6 Jan 2023 10:16:09 +0100
+Subject: avcodec: use ARRAY_SIZE instead of custom code
+
+(cherry picked from commit 28c80ee47e6cdf961f501eed9d4837956b38afd1)
+---
+ modules/codec/avcodec/audio.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/codec/avcodec/audio.c b/modules/codec/avcodec/audio.c
+index e843675..2074401 100644
+--- a/modules/codec/avcodec/audio.c
++++ b/modules/codec/avcodec/audio.c
+@@ -558,7 +558,7 @@ vlc_fourcc_t GetVlcAudioFormat( int fmt )
+ [AV_SAMPLE_FMT_FLTP] = VLC_CODEC_FL32,
+ [AV_SAMPLE_FMT_DBLP] = VLC_CODEC_FL64,
+ };
+- if( (sizeof(fcc) / sizeof(fcc[0])) > (unsigned)fmt )
++ if( ARRAY_SIZE(fcc) > (unsigned)fmt )
+ return fcc[fmt];
+ return VLC_CODEC_S16N;
+ }
--- /dev/null
+From: Ilkka Ollakka <ileoo@videolan.org>
+Date: Wed, 5 Jul 2023 15:09:57 +0300
+Subject: avcodec/audio: make channel mapping array 0 terminated
+
+Also change pi_channels_src to be only AOUT_CHAN_MAX instead of same
+size as mapping array.
+
+(cherry picked from commit 0ff86bf8a28a080340f600cb8561815fc43e3b4a) (rebased)
+rebased:
+- the code around is slightly different
+---
+ modules/codec/avcodec/audio.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/modules/codec/avcodec/audio.c b/modules/codec/avcodec/audio.c
+index 2074401..04c5401 100644
+--- a/modules/codec/avcodec/audio.c
++++ b/modules/codec/avcodec/audio.c
+@@ -585,6 +585,7 @@ static const uint64_t pi_channels_map[][2] =
+ { AV_CH_TOP_BACK_RIGHT, 0 },
+ { AV_CH_STEREO_LEFT, 0 },
+ { AV_CH_STEREO_RIGHT, 0 },
++ { 0, 0 },
+ };
+
+ static void SetupOutputFormat( decoder_t *p_dec, bool b_trust )
+@@ -617,8 +618,7 @@ static void SetupOutputFormat( decoder_t *p_dec, bool b_trust )
+ }
+ #endif
+
+- const unsigned i_order_max = sizeof(pi_channels_map)/sizeof(*pi_channels_map);
+- uint32_t pi_order_src[i_order_max];
++ uint32_t pi_order_src[AOUT_CHAN_MAX] = { 0 };
+
+ int i_channels_src = 0, channel_count;
+ uint64_t channel_layout_mask;
+@@ -637,7 +637,7 @@ static void SetupOutputFormat( decoder_t *p_dec, bool b_trust )
+
+ if( channel_layout_mask )
+ {
+- for( unsigned i = 0; i < i_order_max
++ for( unsigned i = 0; pi_channels_map[i][0]
+ && i_channels_src < channel_count; i++ )
+ {
+ if( channel_layout_mask & pi_channels_map[i][0] )
--- /dev/null
+From: =?utf-8?q?Fran=C3=A7ois_Cartegnie?= <fcvlcdev@free.fr>
+Date: Mon, 10 Jun 2024 11:10:37 +0700
+Subject: codec: avcodec: fix ch_layout requirement
+
+refs #28667
+
+(cherry picked from commit 41778535dcae8b145ebfaa0392de281e470a91bf) (edited)
+edited:
+- on 3.0 the audio check was still using a LIBAVCODEC_VERSION_CHECK check
+- the mux/demux checks were already there with different spaces
+---
+ modules/codec/avcodec/audio.c | 2 +-
+ modules/demux/avformat/demux.c | 2 +-
+ modules/demux/avformat/mux.c | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/modules/codec/avcodec/audio.c b/modules/codec/avcodec/audio.c
+index 04c5401..979256c 100644
+--- a/modules/codec/avcodec/audio.c
++++ b/modules/codec/avcodec/audio.c
+@@ -142,7 +142,7 @@ static int OpenAudioCodec( decoder_t *p_dec )
+ }
+
+ ctx->sample_rate = p_dec->fmt_in.audio.i_rate;
+-#if LIBAVCODEC_VERSION_CHECK(59, 24, 100)
++#if LIBAVUTIL_VERSION_CHECK(57, 24, 100)
+ av_channel_layout_default( &ctx->ch_layout, p_dec->fmt_in.audio.i_channels );
+ #else
+ ctx->channels = p_dec->fmt_in.audio.i_channels;
+diff --git a/modules/demux/avformat/demux.c b/modules/demux/avformat/demux.c
+index 9975b0f..c49f7eb 100644
+--- a/modules/demux/avformat/demux.c
++++ b/modules/demux/avformat/demux.c
+@@ -400,7 +400,7 @@ int avformat_OpenDemux( vlc_object_t *p_this )
+ es_format_Init( &es_fmt, AUDIO_ES, fcc );
+ es_fmt.i_original_fourcc = CodecTagToFourcc( cp->codec_tag );
+ es_fmt.i_bitrate = cp->bit_rate;
+-#if LIBAVCODEC_VERSION_CHECK( 59, 24, 100 )
++#if LIBAVCODEC_VERSION_CHECK(59, 24, 100)
+ es_fmt.audio.i_channels = cp->ch_layout.nb_channels;
+ #else
+ es_fmt.audio.i_channels = cp->channels;
+diff --git a/modules/demux/avformat/mux.c b/modules/demux/avformat/mux.c
+index a48190c..090ed9f 100644
+--- a/modules/demux/avformat/mux.c
++++ b/modules/demux/avformat/mux.c
+@@ -273,7 +273,7 @@ static int AddStream( sout_mux_t *p_mux, sout_input_t *p_input )
+ {
+ case AUDIO_ES:
+ codecpar->codec_type = AVMEDIA_TYPE_AUDIO;
+-#if LIBAVCODEC_VERSION_CHECK( 59, 24, 100 )
++#if LIBAVCODEC_VERSION_CHECK(59, 24, 100)
+ av_channel_layout_default( &codecpar->ch_layout, fmt->audio.i_channels );
+ #else
+ codecpar->channels = fmt->audio.i_channels;
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Tue, 18 Jun 2024 15:34:10 +0200
+Subject: ffmpeg: fix libavutil version check for av_channel_layout_default()
+
+It was added in c41899a3770cb4510e15b223fa34d129305b1589 which
+was libavutil 57.23.100 at the time but the minor version was not updated in
+that commit so we check 57.24.100.
+
+The same check applies for av_channel_layout_copy() added in the same commit.
+
+This is part of FFmpeg 5.1.
+
+https://github.com/FFmpeg/FFmpeg/commit/086a8048061bf9fb4c63943f6962db48175f655c
+(cherry picked from commit 195f0c98599b55950c49a62f98d9d3495be310df) (rebased)
+rebased:
+- the code around is slightly different
+---
+ modules/codec/avcodec/encoder.c | 8 ++++----
+ modules/demux/avformat/mux.c | 2 +-
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/modules/codec/avcodec/encoder.c b/modules/codec/avcodec/encoder.c
+index 2014b8a..ec63c9c 100644
+--- a/modules/codec/avcodec/encoder.c
++++ b/modules/codec/avcodec/encoder.c
+@@ -764,7 +764,7 @@ int InitVideoEnc( vlc_object_t *p_this )
+ uint32_t order_mask = 0;
+ int i_channels_src = 0;
+ msg_Dbg( p_enc, "Creating channel order for reordering");
+-# if LIBAVCODEC_VERSION_CHECK(59, 24, 100)
++# if LIBAVCODEC_VERSION_CHECK(59, 24, 100) && LIBAVUTIL_VERSION_CHECK(57, 24, 100)
+ av_channel_layout_default( &p_context->ch_layout, p_enc->fmt_out.audio.i_channels );
+ uint64_t channel_mask = p_context->ch_layout.u.mask;
+ # else
+@@ -917,7 +917,7 @@ errmsg:
+
+ if( p_enc->fmt_out.audio.i_channels > 2 )
+ {
+-#if LIBAVCODEC_VERSION_CHECK(59, 24, 100)
++#if LIBAVCODEC_VERSION_CHECK(59, 24, 100) && LIBAVUTIL_VERSION_CHECK(57, 24, 100)
+ av_channel_layout_default( &p_context->ch_layout, 2 );
+ #else
+ p_context->channels = 2;
+@@ -1281,7 +1281,7 @@ static block_t *handle_delay_buffer( encoder_t *p_enc, encoder_sys_t *p_sys, uns
+ av_frame_unref( p_sys->frame );
+ p_sys->frame->format = p_sys->p_context->sample_fmt;
+ p_sys->frame->nb_samples = leftover_samples + p_sys->i_samples_delay;
+-#if LIBAVCODEC_VERSION_CHECK(59, 24, 100)
++#if LIBAVCODEC_VERSION_CHECK(59, 24, 100) && LIBAVUTIL_VERSION_CHECK(57, 24, 100)
+ av_channel_layout_copy(&p_sys->frame->ch_layout, &p_sys->p_context->ch_layout);
+ #else
+ p_sys->frame->channel_layout = p_sys->p_context->channel_layout;
+@@ -1416,7 +1416,7 @@ static block_t *EncodeAudio( encoder_t *p_enc, block_t *p_aout_buf )
+ p_sys->frame->pts = date_Get( &p_sys->buffer_date ) * p_sys->p_context->time_base.den /
+ CLOCK_FREQ / p_sys->p_context->time_base.num;
+
+-#if LIBAVCODEC_VERSION_CHECK(59, 24, 100)
++#if LIBAVCODEC_VERSION_CHECK(59, 24, 100) && LIBAVUTIL_VERSION_CHECK(57, 24, 100)
+ av_channel_layout_copy(&p_sys->frame->ch_layout, &p_sys->p_context->ch_layout);
+ #else
+ p_sys->frame->channel_layout = p_sys->p_context->channel_layout;
+diff --git a/modules/demux/avformat/mux.c b/modules/demux/avformat/mux.c
+index 090ed9f..bf65ca3 100644
+--- a/modules/demux/avformat/mux.c
++++ b/modules/demux/avformat/mux.c
+@@ -273,7 +273,7 @@ static int AddStream( sout_mux_t *p_mux, sout_input_t *p_input )
+ {
+ case AUDIO_ES:
+ codecpar->codec_type = AVMEDIA_TYPE_AUDIO;
+-#if LIBAVCODEC_VERSION_CHECK(59, 24, 100)
++#if LIBAVUTIL_VERSION_CHECK(57, 24, 100)
+ av_channel_layout_default( &codecpar->ch_layout, fmt->audio.i_channels );
+ #else
+ codecpar->channels = fmt->audio.i_channels;
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Tue, 18 Jun 2024 16:04:41 +0200
+Subject: ffmpeg: fix libavcodec version check for AVCodecParameters.ch_layout
+MIME-Version: 1.0
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: 8bit
+
+It was added in 276c06726fbd2f784d51189870bd834e9284812f which
+was libavcodec 59.23.100 at the time but the minor version was not updated in
+that commit so we check 59.24.100.
+
+This is part of FFmpeg 5.1.
+
+It was erroneously removed in a55ec32ab3760d9edb6f05481cd3a981aa42878d.
+
+https://github.com/FFmpeg/FFmpeg/commit/276c06726fbd2f784d51189870bd834e9284812f
+
+Co-authored-by: François Cartegnie <fcvlcdev@free.fr>
+(cherry picked from commit 597bdb8e0784101b5f412feba3309558ad5b8862)
+---
+ modules/demux/avformat/mux.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/demux/avformat/mux.c b/modules/demux/avformat/mux.c
+index bf65ca3..d8be5d1 100644
+--- a/modules/demux/avformat/mux.c
++++ b/modules/demux/avformat/mux.c
+@@ -273,7 +273,7 @@ static int AddStream( sout_mux_t *p_mux, sout_input_t *p_input )
+ {
+ case AUDIO_ES:
+ codecpar->codec_type = AVMEDIA_TYPE_AUDIO;
+-#if LIBAVUTIL_VERSION_CHECK(57, 24, 100)
++#if LIBAVCODEC_VERSION_CHECK(59, 24, 100) && LIBAVUTIL_VERSION_CHECK(57, 24, 100)
+ av_channel_layout_default( &codecpar->ch_layout, fmt->audio.i_channels );
+ #else
+ codecpar->channels = fmt->audio.i_channels;
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Wed, 19 Jun 2024 13:41:04 +0200
+Subject: avcodec: fix libavcodec version check for AVCodecContext.ch_layout
+MIME-Version: 1.0
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: 8bit
+
+It was added in 548aeb93834b8425c86d1ce60fddc1d41805724d which
+was libavcodec 59.23.100 at the time but the minor version was not updated in
+that commit so we check 59.24.100.
+
+This is part of FFmpeg 5.1.
+
+https://github.com/FFmpeg/FFmpeg/commit/548aeb93834b8425c86d1ce60fddc1d41805724d
+
+Co-authored-by: François Cartegnie <fcvlcdev@free.fr>
+(cherry picked from commit 8fd918b8787b8d077decf1a2b955ab0c7b964bf3) (rebased)
+rebased:
+- on 3.0 fmt_in is not a pointer
+---
+ modules/codec/avcodec/audio.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/codec/avcodec/audio.c b/modules/codec/avcodec/audio.c
+index 979256c..fb22f03 100644
+--- a/modules/codec/avcodec/audio.c
++++ b/modules/codec/avcodec/audio.c
+@@ -142,7 +142,7 @@ static int OpenAudioCodec( decoder_t *p_dec )
+ }
+
+ ctx->sample_rate = p_dec->fmt_in.audio.i_rate;
+-#if LIBAVUTIL_VERSION_CHECK(57, 24, 100)
++#if LIBAVCODEC_VERSION_CHECK(59, 24, 100) && LIBAVUTIL_VERSION_CHECK(57, 24, 100)
+ av_channel_layout_default( &ctx->ch_layout, p_dec->fmt_in.audio.i_channels );
+ #else
+ ctx->channels = p_dec->fmt_in.audio.i_channels;
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Wed, 19 Jun 2024 08:36:40 +0200
+Subject: ffmpeg: fix libavutil version check for AVFrame.ch_layout
+
+It was added in db6efa1815e217ed76f39aee8b15ee5c64698537 which
+was libavutil 57.23.100 at the time but the minor version was not updated in
+that commit so we check 57.24.100.
+
+This is part of FFmpeg 5.1.
+
+https://github.com/FFmpeg/FFmpeg/commit/db6efa1815e217ed76f39aee8b15ee5c64698537
+(cherry picked from commit f237155887f049f8befef2fdfadae7b60f697b0d)
+---
+ modules/codec/avcodec/audio.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/codec/avcodec/audio.c b/modules/codec/avcodec/audio.c
+index fb22f03..c27771a 100644
+--- a/modules/codec/avcodec/audio.c
++++ b/modules/codec/avcodec/audio.c
+@@ -407,7 +407,7 @@ static int DecodeBlock( decoder_t *p_dec, block_t **pp_block )
+ ret = avcodec_receive_frame( ctx, frame );
+ if( ret == 0 )
+ {
+-#if LIBAVCODEC_VERSION_CHECK(59, 24, 100)
++#if LIBAVUTIL_VERSION_CHECK(57, 24, 100)
+ int channels = frame->ch_layout.nb_channels;
+ #else
+ int channels = ctx->channels;
--- /dev/null
+From: =?utf-8?q?Fran=C3=A7ois_Cartegnie?= <fcvlcdev@free.fr>
+Date: Thu, 20 Jun 2024 13:12:37 +0200
+Subject: avcodec: add a define to test for AVCodecContext.ch_layout
+ availability
+
+Co-authored-by: Steve Lhomme <robux4@ycbcr.xyz>
+(cherry picked from commit 3abf93735df97cc2c96e11028b76067547c27eb7) (rebased)
+rebased:
+- on 3.0 the fmt_in is not a pointer
+- the code around is slightly different due to the use of API_CHANNEL_LAYOUT
+---
+ modules/codec/avcodec/audio.c | 8 +++++---
+ modules/codec/avcodec/encoder.c | 12 +++++++-----
+ 2 files changed, 12 insertions(+), 8 deletions(-)
+
+diff --git a/modules/codec/avcodec/audio.c b/modules/codec/avcodec/audio.c
+index c27771a..b6186d6 100644
+--- a/modules/codec/avcodec/audio.c
++++ b/modules/codec/avcodec/audio.c
+@@ -41,6 +41,8 @@
+ #include <libavcodec/avcodec.h>
+ #include <libavutil/mem.h>
+
++#define API_CHANNEL_LAYOUT_STRUCT (LIBAVCODEC_VERSION_CHECK(59, 24, 100)) // AVCodecContext.ch_layout
++
+ #define API_CHANNEL_LAYOUT (LIBAV_UTIL_VERSION_CHECK( 52, 2, 6, 0, 100))
+
+ #if API_CHANNEL_LAYOUT
+@@ -142,7 +144,7 @@ static int OpenAudioCodec( decoder_t *p_dec )
+ }
+
+ ctx->sample_rate = p_dec->fmt_in.audio.i_rate;
+-#if LIBAVCODEC_VERSION_CHECK(59, 24, 100) && LIBAVUTIL_VERSION_CHECK(57, 24, 100)
++#if API_CHANNEL_LAYOUT_STRUCT && LIBAVUTIL_VERSION_CHECK(57, 24, 100)
+ av_channel_layout_default( &ctx->ch_layout, p_dec->fmt_in.audio.i_channels );
+ #else
+ ctx->channels = p_dec->fmt_in.audio.i_channels;
+@@ -598,7 +600,7 @@ static void SetupOutputFormat( decoder_t *p_dec, bool b_trust )
+ p_dec->fmt_out.audio.i_rate = p_sys->p_context->sample_rate;
+
+ /* */
+-#if LIBAVCODEC_VERSION_CHECK(59, 24, 100)
++#if API_CHANNEL_LAYOUT_STRUCT
+ if( p_sys->i_previous_channels == p_sys->p_context->ch_layout.nb_channels &&
+ p_sys->i_previous_layout == p_sys->p_context->ch_layout.u.mask )
+ return;
+@@ -622,7 +624,7 @@ static void SetupOutputFormat( decoder_t *p_dec, bool b_trust )
+
+ int i_channels_src = 0, channel_count;
+ uint64_t channel_layout_mask;
+-#if LIBAVCODEC_VERSION_CHECK(59, 24, 100)
++#if API_CHANNEL_LAYOUT_STRUCT
+ channel_layout_mask = p_sys->p_context->ch_layout.u.mask;
+ channel_count = p_sys->p_context->ch_layout.nb_channels;
+ #elif API_CHANNEL_LAYOUT
+diff --git a/modules/codec/avcodec/encoder.c b/modules/codec/avcodec/encoder.c
+index ec63c9c..b0d3126 100644
+--- a/modules/codec/avcodec/encoder.c
++++ b/modules/codec/avcodec/encoder.c
+@@ -47,6 +47,8 @@
+ #include "avcodec.h"
+ #include "avcommon.h"
+
++#define API_CHANNEL_LAYOUT_STRUCT (LIBAVCODEC_VERSION_CHECK(59, 24, 100)) // AVCodecContext.ch_layout
++
+ #define API_CHANNEL_LAYOUT (LIBAV_UTIL_VERSION_CHECK( 52, 2, 6, 0, 100))
+
+ #if API_CHANNEL_LAYOUT
+@@ -182,7 +184,7 @@ static const uint64_t pi_channels_map[][2] =
+ { AV_CH_STEREO_RIGHT, 0 },
+ };
+
+-# if !LIBAVCODEC_VERSION_CHECK(59, 24, 100)
++# if !API_CHANNEL_LAYOUT_STRUCT
+ static const uint32_t channel_mask[][2] = {
+ {0,0},
+ {AOUT_CHAN_CENTER, AV_CH_LAYOUT_MONO},
+@@ -764,7 +766,7 @@ int InitVideoEnc( vlc_object_t *p_this )
+ uint32_t order_mask = 0;
+ int i_channels_src = 0;
+ msg_Dbg( p_enc, "Creating channel order for reordering");
+-# if LIBAVCODEC_VERSION_CHECK(59, 24, 100) && LIBAVUTIL_VERSION_CHECK(57, 24, 100)
++# if API_CHANNEL_LAYOUT_STRUCT && LIBAVUTIL_VERSION_CHECK(57, 24, 100)
+ av_channel_layout_default( &p_context->ch_layout, p_enc->fmt_out.audio.i_channels );
+ uint64_t channel_mask = p_context->ch_layout.u.mask;
+ # else
+@@ -917,7 +919,7 @@ errmsg:
+
+ if( p_enc->fmt_out.audio.i_channels > 2 )
+ {
+-#if LIBAVCODEC_VERSION_CHECK(59, 24, 100) && LIBAVUTIL_VERSION_CHECK(57, 24, 100)
++#if API_CHANNEL_LAYOUT_STRUCT && LIBAVUTIL_VERSION_CHECK(57, 24, 100)
+ av_channel_layout_default( &p_context->ch_layout, 2 );
+ #else
+ p_context->channels = 2;
+@@ -1281,7 +1283,7 @@ static block_t *handle_delay_buffer( encoder_t *p_enc, encoder_sys_t *p_sys, uns
+ av_frame_unref( p_sys->frame );
+ p_sys->frame->format = p_sys->p_context->sample_fmt;
+ p_sys->frame->nb_samples = leftover_samples + p_sys->i_samples_delay;
+-#if LIBAVCODEC_VERSION_CHECK(59, 24, 100) && LIBAVUTIL_VERSION_CHECK(57, 24, 100)
++#if API_CHANNEL_LAYOUT_STRUCT && LIBAVUTIL_VERSION_CHECK(57, 24, 100)
+ av_channel_layout_copy(&p_sys->frame->ch_layout, &p_sys->p_context->ch_layout);
+ #else
+ p_sys->frame->channel_layout = p_sys->p_context->channel_layout;
+@@ -1416,7 +1418,7 @@ static block_t *EncodeAudio( encoder_t *p_enc, block_t *p_aout_buf )
+ p_sys->frame->pts = date_Get( &p_sys->buffer_date ) * p_sys->p_context->time_base.den /
+ CLOCK_FREQ / p_sys->p_context->time_base.num;
+
+-#if LIBAVCODEC_VERSION_CHECK(59, 24, 100) && LIBAVUTIL_VERSION_CHECK(57, 24, 100)
++#if API_CHANNEL_LAYOUT_STRUCT && LIBAVUTIL_VERSION_CHECK(57, 24, 100)
+ av_channel_layout_copy(&p_sys->frame->ch_layout, &p_sys->p_context->ch_layout);
+ #else
+ p_sys->frame->channel_layout = p_sys->p_context->channel_layout;
--- /dev/null
+From: =?utf-8?q?R=C3=A9mi_Denis-Courmont?= <remi@remlab.net>
+Date: Sat, 16 Jun 2018 21:34:58 +0300
+Subject: configure: use $host_cpu where applicable
+
+(cherry picked from commit a50366bc9702ad4ec0db1e5361bcea8378bf8132)
+---
+ configure.ac | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 079a00d..f328bc0 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -145,8 +145,8 @@ case "${host_os}" in
+
+ dnl Force gcc "-arch" flag
+ ARCH_flag=""
+- case "${host}" in
+- i?86*)
++ case "${host_cpu}" in
++ i?86)
+ ARCH_flag="-arch i386"
+ ;;
+ ppc64*)
+@@ -155,7 +155,7 @@ case "${host_os}" in
+ ppc*)
+ ARCH_flag="-arch ppc"
+ ;;
+- x86_64*)
++ x86_64)
+ ARCH_flag="-arch x86_64"
+ ;;
+ arm*)
+@@ -286,8 +286,8 @@ case "${host_os}" in
+ dnl
+ dnl NSIS/MSI Installer prefix and WIN64
+ dnl
+- case "${host}" in
+- amd64*|x86_64*)
++ case "${host_cpu}" in
++ amd64|x86_64)
+ HAVE_WIN64="1"
+ WINDOWS_ARCH="x64"
+ PROGRAMFILES="PROGRAMFILES64"
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Sat, 9 Nov 2024 13:35:06 +0100
+Subject: demux: mkv: use the internal USF FourCC value
+
+Rather than a local FourCC.
+
+(cherry picked from commit 447116d324f8493120ce84544aed0cfc290aafb2)
+---
+ modules/demux/mkv/matroska_segment_parse.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/demux/mkv/matroska_segment_parse.cpp b/modules/demux/mkv/matroska_segment_parse.cpp
+index b9a2d27..7a5f5fb 100644
+--- a/modules/demux/mkv/matroska_segment_parse.cpp
++++ b/modules/demux/mkv/matroska_segment_parse.cpp
+@@ -2066,7 +2066,7 @@ bool matroska_segment_c::TrackInit( mkv_track_t * p_tk )
+ }
+ S_CASE("S_TEXT/USF") {
+ ONLY_FMT(SPU);
+- vars.p_tk->fmt.i_codec = VLC_FOURCC( 'u', 's', 'f', ' ' );
++ vars.p_tk->fmt.i_codec = VLC_CODEC_USF;
+ vars.p_tk->fmt.subs.psz_encoding = strdup( "UTF-8" );
+ fill_extra_data( vars.p_tk, 0 );
+ }
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Sat, 9 Nov 2024 13:41:37 +0100
+Subject: demux: mkv: use the internal QDMC FourCC value
+
+Rather than a local FourCC.
+
+(cherry picked from commit 71c2622ab992a4bb4485e5e151f3019e60543d35)
+---
+ modules/demux/mkv/matroska_segment_parse.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/demux/mkv/matroska_segment_parse.cpp b/modules/demux/mkv/matroska_segment_parse.cpp
+index 7a5f5fb..1568031 100644
+--- a/modules/demux/mkv/matroska_segment_parse.cpp
++++ b/modules/demux/mkv/matroska_segment_parse.cpp
+@@ -2034,7 +2034,7 @@ bool matroska_segment_c::TrackInit( mkv_track_t * p_tk )
+ }
+ S_CASE("A_QUICKTIME/QDMC") {
+ vars.p_fmt->i_cat = AUDIO_ES;
+- vars.p_fmt->i_codec = VLC_FOURCC('Q','D','M','C');
++ vars.p_fmt->i_codec = VLC_CODEC_QDMC;
+
+ fill_extra_data( vars.p_tk, 0 );
+ }
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Thu, 11 Jul 2024 14:06:59 +0200
+Subject: demux: mkv: add missing helpers from libebml 2.0
+
+The const versions are more versatile.
+
+(cherry picked from commit 42945dadb88c72bd6b34a3468f4ac125d81198f1)
+---
+ modules/demux/mkv/mkv.hpp | 13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+diff --git a/modules/demux/mkv/mkv.hpp b/modules/demux/mkv/mkv.hpp
+index 27a1566..2ea8035 100644
+--- a/modules/demux/mkv/mkv.hpp
++++ b/modules/demux/mkv/mkv.hpp
+@@ -117,6 +117,19 @@ enum
+ #define MKV_CHECKED_PTR_DECL( name, type, src ) type * name = MKV_IS_ID(src, type) ? static_cast<type*>(src) : NULL
+ #define MKV_CHECKED_PTR_DECL_CONST( name, type, src ) const type * name = MKV_IS_ID(src, type) ? static_cast<const type*>(src) : NULL
+
++#if LIBEBML_VERSION < 0x020000
++template <typename Type>
++Type * FindChild(const EbmlMaster & Master)
++{
++ return static_cast<Type *>(Master.FindFirstElt(EBML_INFO(Type)));
++}
++
++template <typename Type>
++Type * FindNextChild(const EbmlMaster & Master, const Type & PastElt)
++{
++ return static_cast<Type *>(Master.FindNextElt(PastElt));
++}
++#endif
+
+ using namespace LIBMATROSKA_NAMESPACE;
+
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Sun, 10 Nov 2024 10:32:44 +0100
+Subject: demux: mkv: read data from KaxBlockAdditions as const
+
+We should not be able to modify what we read.
+
+(cherry picked from commit c03249a02c2d1aa529c7c9a6de7545305b567860) (edited)
+edited:
+- 3.0 doesn't support VPx alpha
+---
+ modules/demux/mkv/mkv.cpp | 6 +++---
+ modules/demux/mkv/mkv.hpp | 2 +-
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/modules/demux/mkv/mkv.cpp b/modules/demux/mkv/mkv.cpp
+index cce9e34..c55af78 100644
+--- a/modules/demux/mkv/mkv.cpp
++++ b/modules/demux/mkv/mkv.cpp
+@@ -488,7 +488,7 @@ static int Seek( demux_t *p_demux, vlc_tick_t i_mk_date, double f_percent, virtu
+
+ /* Needed by matroska_segment::Seek() and Seek */
+ void BlockDecode( demux_t *p_demux, KaxBlock *block, KaxSimpleBlock *simpleblock,
+- KaxBlockAdditions *additions,
++ const KaxBlockAdditions *additions,
+ vlc_tick_t i_pts, int64_t i_duration, bool b_key_picture,
+ bool b_discardable_picture )
+ {
+@@ -613,10 +613,10 @@ void BlockDecode( demux_t *p_demux, KaxBlock *block, KaxSimpleBlock *simpleblock
+ size_t i_addition = 0;
+ if(additions)
+ {
+- KaxBlockMore *blockmore = FindChild<KaxBlockMore>(*additions);
++ auto blockmore = FindChild<const KaxBlockMore>(*additions);
+ if(blockmore)
+ {
+- KaxBlockAdditional *addition = FindChild<KaxBlockAdditional>(*blockmore);
++ auto addition = FindChild<const KaxBlockAdditional>(*blockmore);
+ if(addition)
+ {
+ i_addition = static_cast<std::string::size_type>(addition->GetSize());
+diff --git a/modules/demux/mkv/mkv.hpp b/modules/demux/mkv/mkv.hpp
+index 2ea8035..2a8ad5e 100644
+--- a/modules/demux/mkv/mkv.hpp
++++ b/modules/demux/mkv/mkv.hpp
+@@ -134,7 +134,7 @@ Type * FindNextChild(const EbmlMaster & Master, const Type & PastElt)
+ using namespace LIBMATROSKA_NAMESPACE;
+
+ void BlockDecode( demux_t *p_demux, KaxBlock *block, KaxSimpleBlock *simpleblock,
+- KaxBlockAdditions *additions,
++ const KaxBlockAdditions *additions,
+ vlc_tick_t i_pts, vlc_tick_t i_duration, bool b_key_picture,
+ bool b_discardable_picture );
+
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Sun, 10 Nov 2024 10:41:00 +0100
+Subject: demux: mkv: don't expose local BlockDecode function
+
+(cherry picked from commit e3adf1736cf32bba3db208cc5d0d18b23a7c17a5) (rebased)
+rebased:
+- the code around is different
+---
+ modules/demux/mkv/mkv.cpp | 2 +-
+ modules/demux/mkv/mkv.hpp | 5 -----
+ 2 files changed, 1 insertion(+), 6 deletions(-)
+
+diff --git a/modules/demux/mkv/mkv.cpp b/modules/demux/mkv/mkv.cpp
+index c55af78..2a252a1 100644
+--- a/modules/demux/mkv/mkv.cpp
++++ b/modules/demux/mkv/mkv.cpp
+@@ -487,7 +487,7 @@ static int Seek( demux_t *p_demux, vlc_tick_t i_mk_date, double f_percent, virtu
+ }
+
+ /* Needed by matroska_segment::Seek() and Seek */
+-void BlockDecode( demux_t *p_demux, KaxBlock *block, KaxSimpleBlock *simpleblock,
++static void BlockDecode( demux_t *p_demux, KaxBlock *block, KaxSimpleBlock *simpleblock,
+ const KaxBlockAdditions *additions,
+ vlc_tick_t i_pts, int64_t i_duration, bool b_key_picture,
+ bool b_discardable_picture )
+diff --git a/modules/demux/mkv/mkv.hpp b/modules/demux/mkv/mkv.hpp
+index 2a8ad5e..8497d08 100644
+--- a/modules/demux/mkv/mkv.hpp
++++ b/modules/demux/mkv/mkv.hpp
+@@ -133,11 +133,6 @@ Type * FindNextChild(const EbmlMaster & Master, const Type & PastElt)
+
+ using namespace LIBMATROSKA_NAMESPACE;
+
+-void BlockDecode( demux_t *p_demux, KaxBlock *block, KaxSimpleBlock *simpleblock,
+- const KaxBlockAdditions *additions,
+- vlc_tick_t i_pts, vlc_tick_t i_duration, bool b_key_picture,
+- bool b_discardable_picture );
+-
+ class attachment_c
+ {
+ public:
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Sun, 10 Nov 2024 10:48:38 +0100
+Subject: demux: mkv: fix potential leak of KaxBlockAdditions when seeking
+
+(cherry picked from commit f7c0d24733350e4c43a2dcb84e3106d9e2be9e7b)
+---
+ modules/demux/mkv/matroska_segment_seeker.cpp | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/modules/demux/mkv/matroska_segment_seeker.cpp b/modules/demux/mkv/matroska_segment_seeker.cpp
+index c50a658..105f00e 100644
+--- a/modules/demux/mkv/matroska_segment_seeker.cpp
++++ b/modules/demux/mkv/matroska_segment_seeker.cpp
+@@ -366,7 +366,11 @@ SegmentSeeker::index_unsearched_range( matroska_segment_c& ms, Range search_area
+
+ if( ms.BlockGet( block, simpleblock, additions,
+ &b_key_picture, &b_discardable_picture, &i_block_duration ) )
++ {
++ delete additions;
+ break;
++ }
++ delete additions;
+
+ if( simpleblock ) {
+ block_pos = simpleblock->GetElementPosition();
--- /dev/null
+From: KO Myung-Hun <komh@chollian.net>
+Date: Tue, 28 Feb 2023 23:47:47 +0900
+Subject: qt: PodcastConfiguration inherits QDialog not QWidget
+
+Especially, accept() and reject() slots are in QDialog.
+
+(cherry picked from commit 183acaecc1fafdfe57a3c4981702ec00561c31e0)
+Signed-off-by: Steve Lhomme <robux4@ycbcr.xyz>
+---
+ modules/gui/qt/ui/podcast_configuration.ui | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/gui/qt/ui/podcast_configuration.ui b/modules/gui/qt/ui/podcast_configuration.ui
+index 046bef5..f213963 100644
+--- a/modules/gui/qt/ui/podcast_configuration.ui
++++ b/modules/gui/qt/ui/podcast_configuration.ui
+@@ -1,6 +1,6 @@
+ <ui version="4.0" >
+ <class>PodcastConfiguration</class>
+- <widget class="QWidget" name="PodcastConfiguration" >
++ <widget class="QDialog" name="PodcastConfiguration" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
--- /dev/null
+From: Johannes Kauffmann <johanneskauffmann@hotmail.com>
+Date: Tue, 19 Nov 2024 23:30:23 +0100
+Subject: musicbrainz: fix leak
+
+(cherry picked from commit 2edddb01da361d1040736d7fda637e118ea6aee1) (edited)
+edited:
+- the 3.0 uses the other json parser which outputs the result differently
+---
+ modules/misc/webservices/musicbrainz.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/modules/misc/webservices/musicbrainz.c b/modules/misc/webservices/musicbrainz.c
+index 2393a73..2c35f75 100644
+--- a/modules/misc/webservices/musicbrainz.c
++++ b/modules/misc/webservices/musicbrainz.c
+@@ -56,7 +56,11 @@ static musicbrainz_lookup_t * musicbrainz_lookup(vlc_object_t *p_obj, const char
+ {
+ p_lookup->root = json_parse_document(p_obj, p_buffer);
+ if (!p_lookup->root)
++ {
+ msg_Dbg(p_obj, "No results");
++ musicbrainz_lookup_release(p_lookup);
++ p_lookup = NULL;
++ }
+ }
+ free(p_buffer);
+ return p_lookup;
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Wed, 17 May 2023 10:20:16 +0200
+Subject: es_out_timeshift: explicitely use GetTempPathW
+
+The API is available in UWP builds. _wgetcwd() should work as well.
+
+(cherry picked from commit d00ede66bf27211ca4a75975026f7f0ab312cab7) (edited)
+edited:
+- 3.0 already disabled the code in UWP differently
+---
+ src/input/es_out_timeshift.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/input/es_out_timeshift.c b/src/input/es_out_timeshift.c
+index 7174208..17c3e9f 100644
+--- a/src/input/es_out_timeshift.c
++++ b/src/input/es_out_timeshift.c
+@@ -345,16 +345,16 @@ es_out_t *input_EsOutTimeshiftNew( input_thread_t *p_input, es_out_t *p_next_out
+ (int)p_sys->i_tmp_size_max/(1024*1024) );
+
+ p_sys->psz_tmp_path = var_InheritString( p_input, "input-timeshift-path" );
+-#if defined (_WIN32) && !VLC_WINSTORE_APP
++#if defined (_WIN32)
+ if( p_sys->psz_tmp_path == NULL )
+ {
+- const DWORD count = GetTempPath( 0, NULL );
++ const DWORD count = GetTempPathW( 0, NULL );
+ if( count > 0 )
+ {
+ TCHAR *path = vlc_alloc( count + 1, sizeof(TCHAR) );
+ if( path != NULL )
+ {
+- DWORD ret = GetTempPath( count + 1, path );
++ DWORD ret = GetTempPathW( count + 1, path );
+ if( ret != 0 && ret <= count )
+ p_sys->psz_tmp_path = FromT( path );
+ free( path );
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Tue, 26 Nov 2024 06:33:48 +0100
+Subject: demux: mkv: don't use EbmlDummy elements coming out of FindNextID()
+
+FindNextID() is supposed to return an element of the given type when it's found. But in some cases,
+when the ID and sizes are plausible, an EbmlDummy is returned [1].
+
+We should not use that element as if it was a legit element we're looking for.
+This is especially crucial when we're opening a file to decide if it's an EBML file or not (EbmlHead).
+
+[1] https://github.com/Matroska-Org/libebml/blob/1c4e2f31b8df7f2c137d8943c73385759aae35b9/src/EbmlElement.cpp#L185
+
+(cherry picked from commit 49d4586fe82aa105ebc1f519e8c8b7385f89c211)
+---
+ modules/demux/mkv/demux.cpp | 15 +++++++++++----
+ modules/demux/mkv/matroska_segment.cpp | 3 ++-
+ 2 files changed, 13 insertions(+), 5 deletions(-)
+
+diff --git a/modules/demux/mkv/demux.cpp b/modules/demux/mkv/demux.cpp
+index 154deb0..74b23d8 100644
+--- a/modules/demux/mkv/demux.cpp
++++ b/modules/demux/mkv/demux.cpp
+@@ -458,9 +458,10 @@ bool demux_sys_t::AnalyseAllSegmentsFound( demux_t *p_demux, matroska_stream_c *
+
+ /* verify the EBML Header... it shouldn't be bigger than 1kB */
+ p_l0 = p_stream1->estream.FindNextID(EBML_INFO(EbmlHead), 1024);
+- if (p_l0 == NULL)
++ if (p_l0 == nullptr || p_l0->IsDummy())
+ {
+ msg_Err( p_demux, "No EBML header found" );
++ delete p_l0;
+ return false;
+ }
+
+@@ -494,13 +495,14 @@ bool demux_sys_t::AnalyseAllSegmentsFound( demux_t *p_demux, matroska_stream_c *
+
+ // find all segments in this file
+ p_l0 = p_stream1->estream.FindNextID(EBML_INFO(KaxSegment), UINT64_MAX);
+- if (p_l0 == NULL)
++ if (p_l0 == nullptr || p_l0->IsDummy())
+ {
+ msg_Err( p_demux, "No segment found" );
++ delete p_l0;
+ return false;
+ }
+
+- while (p_l0 != 0)
++ while (p_l0 != nullptr)
+ {
+ bool b_l0_handled = false;
+
+@@ -535,10 +537,15 @@ bool demux_sys_t::AnalyseAllSegmentsFound( demux_t *p_demux, matroska_stream_c *
+ {
+ p_l0->SkipData(p_stream1->estream, KaxMatroska_Context);
+ p_l0 = p_stream1->estream.FindNextID(EBML_INFO(KaxSegment), UINT64_MAX);
++ if (p_l0 != nullptr && p_l0->IsDummy())
++ {
++ delete p_l0;
++ p_l0 = nullptr;
++ }
+ }
+ else
+ {
+- p_l0 = NULL;
++ p_l0 = nullptr;
+ }
+
+ if( b_l0_handled == false )
+diff --git a/modules/demux/mkv/matroska_segment.cpp b/modules/demux/mkv/matroska_segment.cpp
+index 4fb3045..82689f6 100644
+--- a/modules/demux/mkv/matroska_segment.cpp
++++ b/modules/demux/mkv/matroska_segment.cpp
+@@ -713,10 +713,11 @@ bool matroska_segment_c::LoadSeekHeadItem( const EbmlCallbacks & ClassInfos, int
+ es.I_O().setFilePointer( i_element_position, seek_beginning );
+ el = es.FindNextID( ClassInfos, 0xFFFFFFFFL);
+
+- if( el == NULL )
++ if( el == nullptr || el->IsDummy() )
+ {
+ msg_Err( &sys.demuxer, "cannot load some cues/chapters/tags etc. (broken seekhead or file)" );
+ es.I_O().setFilePointer( i_sav_position, seek_beginning );
++ delete el;
+ return false;
+ }
+
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Fri, 29 Nov 2024 11:57:36 +0100
+Subject: packetizer/av1: fill the full extradata if it doesn't have the
+ optional OBU
+
+The optional part needed by the decoders.
+This will restart the decoders if needed, but they should have received no frames yet
+or the hardware decoder may be usable again or not (after a sequence header change).
+
+(cherry picked from commit a95213e20de69d584324f6d0c9f37c7a7cdfe3e3) (edited)
+edited:
+- fmt_in was not a pointer in 3.0
+---
+ modules/packetizer/av1.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/modules/packetizer/av1.c b/modules/packetizer/av1.c
+index dc970dc..964c0f7 100644
+--- a/modules/packetizer/av1.c
++++ b/modules/packetizer/av1.c
+@@ -158,8 +158,9 @@ static void UpdateDecoderFormat(decoder_t *p_dec)
+ p_dec->fmt_out.i_extra = 0;
+ }
+
+- if(!p_dec->fmt_in.i_extra && !p_dec->fmt_out.i_extra)
++ if(p_dec->fmt_out.i_extra <= 4)
+ {
++ free(p_dec->fmt_out.p_extra);
+ p_dec->fmt_out.i_extra =
+ AV1_create_DecoderConfigurationRecord((uint8_t **)&p_dec->fmt_out.p_extra,
+ p_sys->p_sequence_header,
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Fri, 29 Nov 2024 11:27:50 +0100
+Subject: demux/mkv: force the packetizer to fill AV1 extradata without
+ optional OBUs
+
+The hardware decoders need it and the packetizer can fill it for us.
+
+(cherry picked from commit f05f3388d32bfff5c20de710f79a87a914dcd166)
+---
+ modules/demux/mkv/matroska_segment_parse.cpp | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/modules/demux/mkv/matroska_segment_parse.cpp b/modules/demux/mkv/matroska_segment_parse.cpp
+index 1568031..428e781 100644
+--- a/modules/demux/mkv/matroska_segment_parse.cpp
++++ b/modules/demux/mkv/matroska_segment_parse.cpp
+@@ -1621,6 +1621,8 @@ bool matroska_segment_c::TrackInit( mkv_track_t * p_tk )
+ vars.p_tk->b_pts_only = true;
+
+ fill_extra_data( vars.p_tk, 0 );
++ if (vars.p_fmt->i_extra <= 4)
++ vars.p_fmt->b_packetized = false; // force full extradata by the packetizer
+ }
+ S_CASE("V_MPEG4/MS/V3") {
+ vars.p_fmt->i_codec = VLC_CODEC_DIV3;
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Fri, 29 Nov 2024 11:28:46 +0100
+Subject: demux/mp4: force the packetizer to fill AV1 extradata without
+ optional OBUs
+
+The hardware decoders need it and the packetizer can fill it for us.
+
+(cherry picked from commit fe8b4bf937ad08d17d69de07ae21e9f326e2bd96) (edited)
+edited:
+- the extradata handling is missing many backports, adapting the to 3.0 code
+---
+ modules/demux/mp4/essetup.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/modules/demux/mp4/essetup.c b/modules/demux/mp4/essetup.c
+index 81d6550..5ac7af6 100644
+--- a/modules/demux/mp4/essetup.c
++++ b/modules/demux/mp4/essetup.c
+@@ -545,6 +545,8 @@ int SetupVideoES( demux_t *p_demux, mp4_track_t *p_track, MP4_Box_t *p_sample )
+ BOXDATA(p_av1C)->i_av1C );
+ p_track->fmt.i_extra = BOXDATA(p_av1C)->i_av1C;
+ }
++ if (p_track->fmt.i_extra <= 4)
++ p_track->fmt.b_packetized = false; // force full extradata by the packetizer
+ }
+ }
+ break;
--- /dev/null
+From: Mangal Kushwah <mangalk2324@gmail.com>
+Date: Thu, 12 Sep 2024 12:03:58 +0530
+Subject: mediacodec: set color keys in media format explicitly
+
+Fixes issues where by default mediacodec sets wrong keys for video.
+See #26948
+
+(cherry picked from commit 55e0779f98b71ab135a4c0c78c2cb91b16a72547)
+---
+ modules/codec/omxil/mediacodec.c | 44 ++++++++++++++++++++++++++++++++++++
+ modules/codec/omxil/mediacodec.h | 30 ++++++++++++++++++++++++
+ modules/codec/omxil/mediacodec_jni.c | 4 ++++
+ modules/codec/omxil/mediacodec_ndk.c | 5 ++++
+ 4 files changed, 83 insertions(+)
+
+diff --git a/modules/codec/omxil/mediacodec.c b/modules/codec/omxil/mediacodec.c
+index 1a2c97a..46d9807 100644
+--- a/modules/codec/omxil/mediacodec.c
++++ b/modules/codec/omxil/mediacodec.c
+@@ -497,6 +497,50 @@ static int StartMediaCodec(decoder_t *p_dec)
+
+ args.video.p_surface = p_sys->video.p_surface;
+ args.video.p_jsurface = p_sys->video.p_jsurface;
++
++ if (p_dec->fmt_out.video.b_color_range_full)
++ args.video.color_range = MC_COLOR_RANGE_FULL;
++ else
++ args.video.color_range = MC_COLOR_RANGE_LIMITED;
++
++ switch (p_dec->fmt_out.video.primaries)
++ {
++ case COLOR_PRIMARIES_BT601_525:
++ args.video.color_standard = MC_COLOR_STANDARD_BT601_NTSC;
++ break;
++ case COLOR_PRIMARIES_BT601_625:
++ args.video.color_standard = MC_COLOR_STANDARD_BT601_PAL;
++ break;
++ case COLOR_PRIMARIES_BT709:
++ args.video.color_standard = MC_COLOR_STANDARD_BT709;
++ break;
++ case COLOR_PRIMARIES_BT2020:
++ args.video.color_standard = MC_COLOR_STANDARD_BT2020;
++ break;
++ default:
++ args.video.color_standard = MC_COLOR_STANDARD_UNSPECIFIED;
++ break;
++ }
++
++ switch (p_dec->fmt_out.video.transfer)
++ {
++ case TRANSFER_FUNC_LINEAR:
++ args.video.color_transfer = MC_COLOR_TRANSFER_LINEAR;
++ break;
++ case TRANSFER_FUNC_SMPTE_ST2084:
++ args.video.color_transfer = MC_COLOR_TRANSFER_ST2084;
++ break;
++ case TRANSFER_FUNC_HLG:
++ args.video.color_transfer = MC_COLOR_TRANSFER_HLG;
++ break;
++ case TRANSFER_FUNC_BT709:
++ args.video.color_transfer = MC_COLOR_TRANSFER_SDR_VIDEO;
++ break;
++ default:
++ args.video.color_transfer = MC_COLOR_TRANSFER_UNSPECIFIED;
++ break;
++ }
++
+ args.video.b_tunneled_playback = args.video.p_surface ?
+ var_InheritBool(p_dec, CFG_PREFIX "tunneled-playback") : false;
+ if (p_sys->b_adaptive)
+diff --git a/modules/codec/omxil/mediacodec.h b/modules/codec/omxil/mediacodec.h
+index 6a7fd96..8fc1fca 100644
+--- a/modules/codec/omxil/mediacodec.h
++++ b/modules/codec/omxil/mediacodec.h
+@@ -49,6 +49,33 @@ int MediaCodecNdk_Init(mc_api*);
+ #define MC_API_VIDEO_QUIRKS_ADAPTIVE 0x1000
+ #define MC_API_VIDEO_QUIRKS_IGNORE_SIZE 0x2000
+
++/* cf. https://github.com/FFmpeg/FFmpeg/blob/00f5a34c9a5f0adee28aca11971918d6aca48745/libavcodec/mediacodec_wrapper.h#L348
++ * cf. https://developer.android.com/reference/android/media/MediaFormat#constants_1*/
++enum mc_media_format_color_range_t
++{
++ MC_COLOR_RANGE_UNSPECIFIED = 0x0,
++ MC_COLOR_RANGE_FULL = 0x1,
++ MC_COLOR_RANGE_LIMITED = 0x2,
++};
++
++enum mc_media_format_color_standard_t
++{
++ MC_COLOR_STANDARD_UNSPECIFIED = 0x0,
++ MC_COLOR_STANDARD_BT709 = 0x1,
++ MC_COLOR_STANDARD_BT601_PAL = 0x2,
++ MC_COLOR_STANDARD_BT601_NTSC = 0x4,
++ MC_COLOR_STANDARD_BT2020 = 0x6,
++};
++
++enum mc_media_format_color_transfer_t
++{
++ MC_COLOR_TRANSFER_UNSPECIFIED = 0x0,
++ MC_COLOR_TRANSFER_LINEAR = 0x1,
++ MC_COLOR_TRANSFER_SDR_VIDEO = 0x3,
++ MC_COLOR_TRANSFER_ST2084 = 0x6,
++ MC_COLOR_TRANSFER_HLG = 0x7,
++};
++
+ struct mc_api_out
+ {
+ enum {
+@@ -99,6 +126,9 @@ union mc_api_args
+ int i_angle;
+ bool b_tunneled_playback;
+ bool b_adaptive_playback;
++ enum mc_media_format_color_transfer_t color_transfer;
++ enum mc_media_format_color_range_t color_range;
++ enum mc_media_format_color_standard_t color_standard;
+ } video;
+ struct
+ {
+diff --git a/modules/codec/omxil/mediacodec_jni.c b/modules/codec/omxil/mediacodec_jni.c
+index 8c9041e..a9721c1 100644
+--- a/modules/codec/omxil/mediacodec_jni.c
++++ b/modules/codec/omxil/mediacodec_jni.c
+@@ -638,6 +638,10 @@ static int Start(mc_api *api, union mc_api_args *p_args)
+ if (p_args->video.i_angle != 0)
+ SET_INTEGER(jformat, "rotation-degrees", p_args->video.i_angle);
+
++ SET_INTEGER(jformat, "color-range", p_args->video.color_range);
++ SET_INTEGER(jformat, "color-standard", p_args->video.color_standard);
++ SET_INTEGER(jformat, "color-transfer", p_args->video.color_transfer);
++
+ if (b_direct_rendering)
+ {
+ /* feature-tunneled-playback available since API 21 */
+diff --git a/modules/codec/omxil/mediacodec_ndk.c b/modules/codec/omxil/mediacodec_ndk.c
+index c84d81e..c861e81 100644
+--- a/modules/codec/omxil/mediacodec_ndk.c
++++ b/modules/codec/omxil/mediacodec_ndk.c
+@@ -356,6 +356,11 @@ static int Start(mc_api *api, union mc_api_args *p_args)
+ syms.AMediaFormat.setInt32(p_sys->p_format, "width", p_args->video.i_width);
+ syms.AMediaFormat.setInt32(p_sys->p_format, "height", p_args->video.i_height);
+ syms.AMediaFormat.setInt32(p_sys->p_format, "rotation-degrees", p_args->video.i_angle);
++
++ syms.AMediaFormat.setInt32(p_sys->p_format, "color-range", p_args->video.color_range);
++ syms.AMediaFormat.setInt32(p_sys->p_format, "color-standard", p_args->video.color_standard);
++ syms.AMediaFormat.setInt32(p_sys->p_format, "color-transfer", p_args->video.color_transfer);
++
+ if (p_args->video.p_surface)
+ {
+ p_anw = p_args->video.p_surface;
--- /dev/null
+From: Martin Tuma <martin.tuma@digiteqautomotive.com>
+Date: Mon, 2 Dec 2024 12:36:22 +0100
+Subject: access/v4l2: add support for V4L2_PIX_FMT_ABGR32 and
+ V4L2_PIX_FMT_XBGR32
+
+Fix broken v4l2 pixel format selection when the device supports/uses
+the V4L2_PIX_FMT_ABGR32 or V4L2_PIX_FMT_XBGR32 pixel formats.
+
+See the v4l2 documentation for the pixel formats details:
+https://docs.kernel.org/userspace-api/media/v4l/pixfmt-rgb.html
+---
+ modules/access/v4l2/demux.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/modules/access/v4l2/demux.c b/modules/access/v4l2/demux.c
+index 81a479f..bed02b8 100644
+--- a/modules/access/v4l2/demux.c
++++ b/modules/access/v4l2/demux.c
+@@ -155,10 +155,13 @@ static const vlc_v4l2_fmt_t v4l2_fmts[] =
+ // { V4L2_PIX_FMT_NV12MT, },
+ // { V4L2_PIX_FMT_M420, },
+
++ { V4L2_PIX_FMT_ABGR32, VLC_CODEC_BGRA, 4, 0, 0, 0 },
++
+ /* Packed RGB */
+ #ifdef WORDS_BIGENDIAN
+ { V4L2_PIX_FMT_RGB32, VLC_CODEC_RGB32, 4, 0xFF00, 0xFF0000, 0xFF000000 },
+ { V4L2_PIX_FMT_BGR32, VLC_CODEC_RGB32, 4, 0xFF000000, 0xFF0000, 0xFF00 },
++ { V4L2_PIX_FMT_XBGR32, VLC_CODEC_RGB32, 4, 0xFF000000, 0xFF0000, 0xFF00 },
+ { V4L2_PIX_FMT_RGB24, VLC_CODEC_RGB24, 3, 0xFF0000, 0x00FF00, 0x0000FF },
+ { V4L2_PIX_FMT_BGR24, VLC_CODEC_RGB24, 3, 0x0000FF, 0x00FF00, 0xFF0000 },
+ // { V4L2_PIX_FMT_BGR666, },
+@@ -170,6 +173,7 @@ static const vlc_v4l2_fmt_t v4l2_fmts[] =
+ #else
+ { V4L2_PIX_FMT_RGB32, VLC_CODEC_RGB32, 4, 0x0000FF, 0x00FF00, 0xFF0000 },
+ { V4L2_PIX_FMT_BGR32, VLC_CODEC_RGB32, 4, 0xFF0000, 0x00FF00, 0x0000FF },
++ { V4L2_PIX_FMT_XBGR32, VLC_CODEC_RGB32, 4, 0xFF0000, 0x00FF00, 0x0000FF },
+ { V4L2_PIX_FMT_RGB24, VLC_CODEC_RGB24, 3, 0x0000FF, 0x00FF00, 0xFF0000 },
+ { V4L2_PIX_FMT_BGR24, VLC_CODEC_RGB24, 3, 0xFF0000, 0x00FF00, 0x0000FF },
+ // { V4L2_PIX_FMT_BGR666, },
--- /dev/null
+From: fengchao wei <1358610673@qq.com>
+Date: Sat, 14 Dec 2024 13:27:36 +0000
+Subject: interop_vaapi: fix mem leak while pause
+
+---
+ modules/video_output/opengl/converter_vaapi.c | 72 +++++++++++++--------------
+ 1 file changed, 36 insertions(+), 36 deletions(-)
+
+diff --git a/modules/video_output/opengl/converter_vaapi.c b/modules/video_output/opengl/converter_vaapi.c
+index 845776c..5307320 100644
+--- a/modules/video_output/opengl/converter_vaapi.c
++++ b/modules/video_output/opengl/converter_vaapi.c
+@@ -196,38 +196,40 @@ tc_vaegl_update(const opengl_tex_converter_t *tc, GLuint *textures,
+ if (pic == priv->last.pic)
+ {
+ #if VA_CHECK_VERSION(1, 1, 0)
+- va_surface_descriptor = priv->last.va_surface_descriptor;
++ for (unsigned i = 0; i < priv->last.va_surface_descriptor.num_layers; ++i)
+ #else
+- va_image = priv->last.va_image;
++ for (unsigned i = 0; i < priv->last.va_image.num_planes; ++i)
+ #endif
+- for (unsigned i = 0; i < priv->last.num_planes; ++i)
+- egl_images[i] = priv->last.egl_images[i];
++ {
++ tc->vt->BindTexture(tc->tex_target, textures[i]);
++ priv->glEGLImageTargetTexture2DOES(tc->tex_target, egl_images[i]);
++ }
++ return VLC_SUCCESS;
+ }
+- else
+- {
++
++
+ #if VA_CHECK_VERSION(1, 1, 0)
+- if (vlc_vaapi_ExportSurfaceHandle(o, priv->vadpy, vlc_vaapi_PicGetSurface(pic),
+- VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2, 0,
+- &va_surface_descriptor))
+- goto error;
+- release_image = true;
++ if (vlc_vaapi_ExportSurfaceHandle(o, priv->vadpy, vlc_vaapi_PicGetSurface(pic),
++ VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2, 0,
++ &va_surface_descriptor))
++ goto error;
++ release_image = true;
+ #else
+- if (vlc_vaapi_DeriveImage(o, priv->vadpy, vlc_vaapi_PicGetSurface(pic),
+- &va_image))
+- goto error;
+- release_image = true;
++ if (vlc_vaapi_DeriveImage(o, priv->vadpy, vlc_vaapi_PicGetSurface(pic),
++ &va_image))
++ goto error;
++ release_image = true;
+
+- assert(va_image.format.fourcc == priv->fourcc);
++ assert(va_image.format.fourcc == priv->fourcc);
+
+- va_buffer_info = (VABufferInfo) {
+- .mem_type = VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME
+- };
+- if (vlc_vaapi_AcquireBufferHandle(o, priv->vadpy, va_image.buf,
+- &va_buffer_info))
+- goto error;
++ va_buffer_info = (VABufferInfo) {
++ .mem_type = VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME
++ };
++ if (vlc_vaapi_AcquireBufferHandle(o, priv->vadpy, va_image.buf,
++ &va_buffer_info))
++ goto error;
+ #endif
+- release_buffer_info = true;
+- }
++ release_buffer_info = true;
+
+ #if VA_CHECK_VERSION(1, 1, 0)
+ num_planes = va_surface_descriptor.num_layers;
+@@ -273,22 +275,20 @@ tc_vaegl_update(const opengl_tex_converter_t *tc, GLuint *textures,
+ }
+ #endif
+
+- if (pic != priv->last.pic)
+- {
+- if (priv->last.pic != NULL)
+- vaegl_release_last_pic(tc, priv);
+- priv->last.pic = picture_Hold(pic);
++ if (priv->last.pic != NULL)
++ vaegl_release_last_pic(tc, priv);
++ priv->last.pic = picture_Hold(pic);
+ #if VA_CHECK_VERSION(1, 1, 0)
+- priv->last.va_surface_descriptor = va_surface_descriptor;
++ priv->last.va_surface_descriptor = va_surface_descriptor;
+ #else
+- priv->last.va_image = va_image;
+- priv->last.va_buffer_info = va_buffer_info;
++ priv->last.va_image = va_image;
++ priv->last.va_buffer_info = va_buffer_info;
+ #endif
+- priv->last.num_planes = num_planes;
++ priv->last.num_planes = num_planes;
++
++ for (unsigned i = 0; i < num_planes; ++i)
++ priv->last.egl_images[i] = egl_images[i];
+
+- for (unsigned i = 0; i < num_planes; ++i)
+- priv->last.egl_images[i] = egl_images[i];
+- }
+
+ return VLC_SUCCESS;
+
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Thu, 5 Dec 2024 10:50:50 +0100
+Subject: qt: remove unused meta_to_mlmeta()
+
+---
+ modules/gui/qt/components/playlist/sorting.h | 22 ----------------------
+ 1 file changed, 22 deletions(-)
+
+diff --git a/modules/gui/qt/components/playlist/sorting.h b/modules/gui/qt/components/playlist/sorting.h
+index 6c1e935..64ce5e0 100644
+--- a/modules/gui/qt/components/playlist/sorting.h
++++ b/modules/gui/qt/components/playlist/sorting.h
+@@ -136,26 +136,4 @@ static inline int i_column_sorting( uint32_t i_column )
+ }
+ }
+
+-/* Return the media library query select type */
+-static inline ml_select_e meta_to_mlmeta( uint32_t i_column )
+-{
+- switch( i_column )
+- {
+- case COLUMN_NUMBER: return ML_ID;
+- case COLUMN_TITLE: return ML_TITLE;
+- case COLUMN_DURATION: return ML_DURATION;
+- case COLUMN_ARTIST: return ML_ARTIST;
+- case COLUMN_GENRE: return ML_GENRE;
+- case COLUMN_ALBUM: return ML_ALBUM;
+- case COLUMN_TRACK_NUMBER: return ML_TRACK_NUMBER;
+- case COLUMN_DESCRIPTION: return ML_EXTRA;
+- case COLUMN_URI: return ML_URI;
+- case COLUMN_RATING: return ML_VOTE;
+- case COLUMN_COVER: return ML_COVER;
+- case COLUMN_DISC_NUMBER: return ML_DISC_NUMBER;
+- case COLUMN_DATE: return ML_YEAR;
+- default: abort();
+- }
+-}
+-
+ #endif
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Tue, 10 Dec 2024 14:51:58 +0100
+Subject: qt: fix IN_ITEM_ROLE documentation
+
+---
+ modules/gui/qt/components/playlist/selector.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/gui/qt/components/playlist/selector.hpp b/modules/gui/qt/components/playlist/selector.hpp
+index b7d629a..2e333a3 100644
+--- a/modules/gui/qt/components/playlist/selector.hpp
++++ b/modules/gui/qt/components/playlist/selector.hpp
+@@ -58,7 +58,7 @@ enum {
+ LONGNAME_ROLE, //QString
+ PL_ITEM_ROLE, //playlist_item_t*
+ PL_ITEM_ID_ROLE, //playlist_item_t->i_id
+- IN_ITEM_ROLE, //input_item_t->i_id
++ IN_ITEM_ROLE, //input_item_t*
+ SPECIAL_ROLE, //SpecialData
+ CAP_SEARCH_ROLE,
+ SD_CATEGORY_ROLE,
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Tue, 10 Dec 2024 15:37:46 +0100
+Subject: qt: remove deprecated QPainter::HighQualityAntialiasing usage
+
+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 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/1e4e006c3f6e8cbd0092fe882bc23a2280352a91
+---
+ modules/gui/qt/util/timetooltip.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/gui/qt/util/timetooltip.cpp b/modules/gui/qt/util/timetooltip.cpp
+index 8cfdab3..6de5cf1 100644
+--- a/modules/gui/qt/util/timetooltip.cpp
++++ b/modules/gui/qt/util/timetooltip.cpp
+@@ -142,7 +142,7 @@ void TimeTooltip::show()
+ void TimeTooltip::paintEvent( QPaintEvent * )
+ {
+ QPainter p( this );
+- p.setRenderHints( QPainter::HighQualityAntialiasing | QPainter::TextAntialiasing );
++ p.setRenderHints( QPainter::TextAntialiasing );
+
+ p.setPen( Qt::black );
+ p.setBrush( qApp->palette().base() );
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Mon, 16 Dec 2024 15:48:41 +0100
+Subject: qt: fix bitfield added values set in QVariant
+
+It's checked with actions[i]->data().toInt() anyway.
+
+The code was removed in 4.0 with e1c82853965d44b4390af78d9184bd0b60ccc3fb
+but was never fixed.
+---
+ modules/gui/qt/menus.cpp | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/modules/gui/qt/menus.cpp b/modules/gui/qt/menus.cpp
+index 460653c..70a475f 100644
+--- a/modules/gui/qt/menus.cpp
++++ b/modules/gui/qt/menus.cpp
+@@ -846,20 +846,20 @@ void VLCMenuBar::PopupMenuPlaylistEntries( QMenu *menu,
+ action = addMIMStaticEntry( p_intf, menu, qtr( "Pre&vious" ),
+ ":/toolbar/previous_b.svg", SLOT( prev() ), true );
+ action->setEnabled( !bPlaylistEmpty );
+- action->setData( ACTION_NO_CLEANUP + ACTION_DELETE_ON_REBUILD );
++ action->setData( static_cast<int>(ACTION_NO_CLEANUP | ACTION_DELETE_ON_REBUILD) );
+ CONNECT( THEMIM, playlistNotEmpty(bool), action, setEnabled(bool) );
+
+ action = addMIMStaticEntry( p_intf, menu, qtr( "Ne&xt" ),
+ ":/toolbar/next_b.svg", SLOT( next() ), true );
+ action->setEnabled( !bPlaylistEmpty );
+- action->setData( ACTION_NO_CLEANUP + ACTION_DELETE_ON_REBUILD );
++ action->setData( static_cast<int>(ACTION_NO_CLEANUP | ACTION_DELETE_ON_REBUILD) );
+ CONNECT( THEMIM, playlistNotEmpty(bool), action, setEnabled(bool) );
+
+ action = menu->addAction( qtr( "Record" ), THEAM, SLOT( record() ) );
+ action->setIcon( QIcon( ":/toolbar/record.svg" ) );
+ if( !p_input )
+ action->setEnabled( false );
+- action->setData( ACTION_NO_CLEANUP + ACTION_DELETE_ON_REBUILD );
++ action->setData( static_cast<int>(ACTION_NO_CLEANUP | ACTION_DELETE_ON_REBUILD) );
+ menu->addSeparator();
+ }
+
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Tue, 17 Dec 2024 09:09:39 +0100
+Subject: qt: fix UTF-8 string usage
+
+Similar to bbb9f6a07adfd20c544d29198ea2fec601bf3e62.
+---
+ modules/gui/qt/components/preferences_widgets.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/gui/qt/components/preferences_widgets.cpp b/modules/gui/qt/components/preferences_widgets.cpp
+index b634d53..4239fd2 100644
+--- a/modules/gui/qt/components/preferences_widgets.cpp
++++ b/modules/gui/qt/components/preferences_widgets.cpp
+@@ -1230,7 +1230,7 @@ void KeySelectorControl::finish()
+ treeItem->setText( HOTKEY_COL, keys );
+ treeItem->setToolTip( HOTKEY_COL, qtr("Double click to change.\nDelete key to remove.") );
+ treeItem->setToolTip( GLOBAL_HOTKEY_COL, qtr("Double click to change.\nDelete key to remove.") );
+- treeItem->setData( HOTKEY_COL, Qt::UserRole, QVariant( p_config_item->value.psz ) );
++ treeItem->setData( HOTKEY_COL, Qt::UserRole, QVariant( qfu( p_config_item->value.psz ) ) );
+ table->addTopLevelItem( treeItem );
+ continue;
+ }
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Tue, 17 Dec 2024 09:17:00 +0100
+Subject: qt: add missing QActionGroup include
+
+To be able to use rendererGroup.
+---
+ modules/gui/qt/actions_manager.cpp | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/modules/gui/qt/actions_manager.cpp b/modules/gui/qt/actions_manager.cpp
+index efa3044..f1ada88 100644
+--- a/modules/gui/qt/actions_manager.cpp
++++ b/modules/gui/qt/actions_manager.cpp
+@@ -38,6 +38,8 @@
+ #include "components/extended_panels.hpp"
+ #include "menus.hpp"
+
++#include <QActionGroup>
++
+ ActionsManager::ActionsManager( intf_thread_t * _p_i )
+ : p_intf( _p_i )
+ , m_scanning( false )
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Tue, 17 Dec 2024 08:41:58 +0100
+Subject: qt: use QLayout::setContentsMargins() instead of
+ QLayout::setMargin()
+
+Similar to ed986711c159499b873157d4e5d4a53026d94719.
+
+It's deprecated in Qt 5.15 [^1], since 5.13 [^2], and removed in Qt 6.
+
+[^1] https://doc.qt.io/qt-5/qlayout-obsolete.html#setMargin
+[^2] https://github.com/qt/qtbase/commit/d6d33f0b80dd85043c71f71a3ed5485d6014e6c4
+---
+ modules/gui/qt/components/controller.cpp | 16 ++++++++--------
+ modules/gui/qt/components/controller_widget.cpp | 2 +-
+ modules/gui/qt/components/playlist/playlist.cpp | 2 +-
+ modules/gui/qt/components/playlist/standardpanel.cpp | 2 +-
+ modules/gui/qt/components/playlist/views.cpp | 2 +-
+ modules/gui/qt/dialogs/external.cpp | 2 +-
+ modules/gui/qt/dialogs/preferences.cpp | 2 +-
+ modules/gui/qt/dialogs/toolbar.cpp | 6 +++---
+ modules/gui/qt/main_interface.cpp | 4 ++--
+ 9 files changed, 19 insertions(+), 19 deletions(-)
+
+diff --git a/modules/gui/qt/components/controller.cpp b/modules/gui/qt/components/controller.cpp
+index 3adfe67..0006a74 100644
+--- a/modules/gui/qt/components/controller.cpp
++++ b/modules/gui/qt/components/controller.cpp
+@@ -536,12 +536,12 @@ QFrame *AbstractController::discFrame()
+ QFrame *discFrame = new QFrame( this );
+
+ QHBoxLayout *discLayout = new QHBoxLayout( discFrame );
+- discLayout->setSpacing( 0 ); discLayout->setMargin( 0 );
++ discLayout->setSpacing( 0 ); discLayout->setContentsMargins( 0, 0, 0, 0 );
+
+
+ QFrame *chapFrame = new QFrame( discFrame );
+ QHBoxLayout *chapLayout = new QHBoxLayout( chapFrame );
+- chapLayout->setSpacing( 0 ); chapLayout->setMargin( 0 );
++ chapLayout->setSpacing( 0 ); chapLayout->setContentsMargins( 0, 0, 0, 0 );
+
+ QToolButton *prevSectionButton = new QToolButton( chapFrame );
+ setupButton( prevSectionButton );
+@@ -560,7 +560,7 @@ QFrame *AbstractController::discFrame()
+
+ QFrame *menuFrame = new QFrame( discFrame );
+ QHBoxLayout *menuLayout = new QHBoxLayout( menuFrame );
+- menuLayout->setSpacing( 0 ); menuLayout->setMargin( 0 );
++ menuLayout->setSpacing( 0 ); menuLayout->setContentsMargins( 0, 0, 0, 0 );
+
+ QToolButton *menuButton = new QToolButton( menuFrame );
+ setupButton( menuButton );
+@@ -594,7 +594,7 @@ QFrame *AbstractController::telexFrame()
+ **/
+ QFrame *telexFrame = new QFrame( this );
+ QHBoxLayout *telexLayout = new QHBoxLayout( telexFrame );
+- telexLayout->setSpacing( 0 ); telexLayout->setMargin( 0 );
++ telexLayout->setSpacing( 0 ); telexLayout->setContentsMargins( 0, 0, 0, 0 );
+ CONNECT( THEMIM->getIM(), teletextPossible( bool ),
+ telexFrame, setVisible( bool ) );
+
+@@ -720,14 +720,14 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i,
+ controlLayout->setContentsMargins( 3, 1, 0, 1 );
+ controlLayout->setSpacing( 0 );
+ QHBoxLayout *controlLayout1 = new QHBoxLayout;
+- controlLayout1->setSpacing( 0 ); controlLayout1->setMargin( 0 );
++ controlLayout1->setSpacing( 0 ); controlLayout1->setContentsMargins( 0, 0, 0, 0 );
+
+ QString line1 = getSettings()->value( "MainWindow/MainToolbar1", MAIN_TB1_DEFAULT )
+ .toString();
+ parseAndCreate( line1, controlLayout1 );
+
+ QHBoxLayout *controlLayout2 = new QHBoxLayout;
+- controlLayout2->setSpacing( 0 ); controlLayout2->setMargin( 0 );
++ controlLayout2->setSpacing( 0 ); controlLayout2->setContentsMargins( 0, 0, 0, 0 );
+ QString line2 = getSettings()->value( "MainWindow/MainToolbar2", MAIN_TB2_DEFAULT )
+ .toString();
+ parseAndCreate( line2, controlLayout2 );
+@@ -760,7 +760,7 @@ AdvControlsWidget::AdvControlsWidget( intf_thread_t *_p_i, QWidget *_parent ) :
+ {
+ RTL_UNAFFECTED_WIDGET
+ controlLayout = new QHBoxLayout( this );
+- controlLayout->setMargin( 0 );
++ controlLayout->setContentsMargins( 0, 0, 0, 0 );
+ controlLayout->setSpacing( 0 );
+ #ifdef DEBUG_LAYOUT
+ setStyleSheet( "background: orange ");
+@@ -777,7 +777,7 @@ InputControlsWidget::InputControlsWidget( intf_thread_t *_p_i, QWidget *_parent
+ {
+ RTL_UNAFFECTED_WIDGET
+ controlLayout = new QHBoxLayout( this );
+- controlLayout->setMargin( 0 );
++ controlLayout->setContentsMargins( 0, 0, 0, 0 );
+ controlLayout->setSpacing( 0 );
+ #ifdef DEBUG_LAYOUT
+ setStyleSheet( "background: green ");
+diff --git a/modules/gui/qt/components/controller_widget.cpp b/modules/gui/qt/components/controller_widget.cpp
+index 45ce421..2cbbbc8 100644
+--- a/modules/gui/qt/components/controller_widget.cpp
++++ b/modules/gui/qt/components/controller_widget.cpp
+@@ -49,7 +49,7 @@ SoundWidget::SoundWidget( QWidget *_parent, intf_thread_t * _p_intf,
+ {
+ /* We need a layout for this widget */
+ QHBoxLayout *layout = new QHBoxLayout( this );
+- layout->setSpacing( 0 ); layout->setMargin( 0 );
++ layout->setSpacing( 0 ); layout->setContentsMargins( 0, 0, 0, 0 );
+
+ /* We need a Label for the pix */
+ volMuteLabel = new QLabel;
+diff --git a/modules/gui/qt/components/playlist/playlist.cpp b/modules/gui/qt/components/playlist/playlist.cpp
+index d2849a2..5f6a248 100644
+--- a/modules/gui/qt/components/playlist/playlist.cpp
++++ b/modules/gui/qt/components/playlist/playlist.cpp
+@@ -53,7 +53,7 @@ PlaylistWidget::PlaylistWidget( intf_thread_t *_p_i, QWidget *_par )
+ setContentsMargins( 0, 3, 0, 3 );
+
+ QGridLayout *layout = new QGridLayout( this );
+- layout->setMargin( 0 ); layout->setSpacing( 0 );
++ layout->setContentsMargins( 0, 0, 0, 0 ); layout->setSpacing( 0 );
+
+ /*******************
+ * Left *
+diff --git a/modules/gui/qt/components/playlist/standardpanel.cpp b/modules/gui/qt/components/playlist/standardpanel.cpp
+index 226914f..326f4f0 100644
+--- a/modules/gui/qt/components/playlist/standardpanel.cpp
++++ b/modules/gui/qt/components/playlist/standardpanel.cpp
+@@ -89,7 +89,7 @@ StandardPLPanel::StandardPLPanel( PlaylistWidget *_parent,
+ p_selector( _p_selector )
+ {
+ viewStack = new QStackedLayout( this );
+- viewStack->setSpacing( 0 ); viewStack->setMargin( 0 );
++ viewStack->setSpacing( 0 ); viewStack->setContentsMargins( 0, 0, 0, 0 );
+ setMinimumWidth( 300 );
+
+ iconView = NULL;
+diff --git a/modules/gui/qt/components/playlist/views.cpp b/modules/gui/qt/components/playlist/views.cpp
+index 70dd29d..2e80e13 100644
+--- a/modules/gui/qt/components/playlist/views.cpp
++++ b/modules/gui/qt/components/playlist/views.cpp
+@@ -477,7 +477,7 @@ void PlTreeView::keyPressEvent( QKeyEvent *event )
+ PicFlowView::PicFlowView( QAbstractItemModel *p_model, QWidget *parent ) : QAbstractItemView( parent )
+ {
+ QHBoxLayout *layout = new QHBoxLayout( this );
+- layout->setMargin( 0 );
++ layout->setContentsMargins( 0, 0, 0, 0 );
+ picFlow = new PictureFlow( this, p_model );
+ picFlow->setContextMenuPolicy( Qt::CustomContextMenu );
+ connect( picFlow, SIGNAL(customContextMenuRequested( const QPoint & )),
+diff --git a/modules/gui/qt/dialogs/external.cpp b/modules/gui/qt/dialogs/external.cpp
+index 4c78c61..69929f7 100644
+--- a/modules/gui/qt/dialogs/external.cpp
++++ b/modules/gui/qt/dialogs/external.cpp
+@@ -190,7 +190,7 @@ void DialogHandler::displayLogin(vlc_dialog_id *p_id, const QString &title,
+ dialog->setWindowTitle (title);
+ dialog->setWindowRole ("vlc-login");
+ dialog->setModal(true);
+- layout->setMargin (2);
++ layout->setContentsMargins( 2, 2, 2, 2 );
+
+ /* Username and password fields */
+ QWidget *panel = new QWidget (dialog);
+diff --git a/modules/gui/qt/dialogs/preferences.cpp b/modules/gui/qt/dialogs/preferences.cpp
+index 110c60d..e0b7692 100644
+--- a/modules/gui/qt/dialogs/preferences.cpp
++++ b/modules/gui/qt/dialogs/preferences.cpp
+@@ -126,7 +126,7 @@ PrefsDialog::PrefsDialog( QWidget *parent, intf_thread_t *_p_intf )
+ setLayout( main_layout );
+
+ /* Margins */
+- simple_tree_panel->layout()->setMargin( 1 );
++ simple_tree_panel->layout()->setContentsMargins( 1, 1, 1, 1 );
+ simple_panels_stack->layout()->setContentsMargins( 6, 0, 0, 3 );
+
+ for( int i = 0; i < SPrefsMax ; i++ ) simple_panels[i] = NULL;
+diff --git a/modules/gui/qt/dialogs/toolbar.cpp b/modules/gui/qt/dialogs/toolbar.cpp
+index 58a90f7..22e351c 100644
+--- a/modules/gui/qt/dialogs/toolbar.cpp
++++ b/modules/gui/qt/dialogs/toolbar.cpp
+@@ -497,7 +497,7 @@ WidgetListing::WidgetListing( intf_thread_t *p_intf, QWidget *_parent )
+ QWidget *discFrame = new QWidget( this );
+ //discFrame->setLineWidth( 1 );
+ QHBoxLayout *discLayout = new QHBoxLayout( discFrame );
+- discLayout->setSpacing( 0 ); discLayout->setMargin( 0 );
++ discLayout->setSpacing( 0 ); discLayout->setContentsMargins( 0, 0, 0, 0 );
+
+ QToolButton *prevSectionButton = new QToolButton( discFrame );
+ prevSectionButton->setIcon( QIcon( ":/toolbar/dvd_prev.svg" ) );
+@@ -522,7 +522,7 @@ WidgetListing::WidgetListing( intf_thread_t *p_intf, QWidget *_parent )
+ {
+ QWidget *telexFrame = new QWidget( this );
+ QHBoxLayout *telexLayout = new QHBoxLayout( telexFrame );
+- telexLayout->setSpacing( 0 ); telexLayout->setMargin( 0 );
++ telexLayout->setSpacing( 0 ); telexLayout->setContentsMargins( 0, 0, 0, 0 );
+
+ QToolButton *telexOn = new QToolButton( telexFrame );
+ telexOn->setIcon( QIcon( ":/toolbar/tv.svg" ) );
+@@ -638,7 +638,7 @@ DroppingController::DroppingController( intf_thread_t *_p_intf,
+ setAcceptDrops( true );
+ controlLayout = new QHBoxLayout( this );
+ controlLayout->setSpacing( 5 );
+- controlLayout->setMargin( 0 );
++ controlLayout->setContentsMargins( 0, 0, 0, 0 );
+ setFrameShape( QFrame::StyledPanel );
+ setFrameShadow( QFrame::Raised );
+ setMinimumHeight( 20 );
+diff --git a/modules/gui/qt/main_interface.cpp b/modules/gui/qt/main_interface.cpp
+index 095c765..fc33ec5 100644
+--- a/modules/gui/qt/main_interface.cpp
++++ b/modules/gui/qt/main_interface.cpp
+@@ -364,7 +364,7 @@ void MainInterface::createResumePanel( QWidget *w )
+ resumePanel = new QWidget( w );
+ resumePanel->hide();
+ QHBoxLayout *resumePanelLayout = new QHBoxLayout( resumePanel );
+- resumePanelLayout->setSpacing( 0 ); resumePanelLayout->setMargin( 0 );
++ resumePanelLayout->setSpacing( 0 ); resumePanelLayout->setContentsMargins( 0, 0, 0, 0 );
+
+ QLabel *continuePixmapLabel = new QLabel();
+ continuePixmapLabel->setPixmap( ImageHelper::loadSvgToPixmap( ":/menu/help.svg" , fontMetrics().height(), fontMetrics().height()) );
+@@ -458,7 +458,7 @@ void MainInterface::createMainWidget( QSettings *creationSettings )
+ setCentralWidget( main );
+ mainLayout = new QVBoxLayout( main );
+ main->setContentsMargins( 0, 0, 0, 0 );
+- mainLayout->setSpacing( 0 ); mainLayout->setMargin( 0 );
++ mainLayout->setSpacing( 0 ); mainLayout->setContentsMargins( 0, 0, 0, 0 );
+
+ createResumePanel( main );
+ /* */
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Wed, 18 Dec 2024 11:57:05 +0100
+Subject: qt: use QString::setNum() rather than QString::sprintf()
+
+It's deprecated and one of the replacement suggested in the doc [^1].
+QString::asprint() might be the more logical choice, but it's also not recommended [^2].
+
+[^1] https://doc.qt.io/qt-5/qstring-obsolete.html#sprintf
+[^2] https://doc.qt.io/qt-5/qstring.html#asprintf
+---
+ modules/gui/qt/menus.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/gui/qt/menus.cpp b/modules/gui/qt/menus.cpp
+index 70a475f..a689b4c 100644
+--- a/modules/gui/qt/menus.cpp
++++ b/modules/gui/qt/menus.cpp
+@@ -1438,7 +1438,7 @@ int VLCMenuBar::CreateChoicesMenu( QMenu *submenu, const char *psz_var,
+ case VLC_VAR_FLOAT:
+ var_Get( p_object, psz_var, &val );
+ if( CURTEXT ) menutext = qfue( CURTEXT );
+- else menutext.sprintf( "%.2f", CURVAL.f_float );
++ else menutext.setNum(CURVAL.f_float, 'f', 2);
+ CreateAndConnect( submenu, psz_var, menutext, "", RADIO_OR_COMMAND,
+ p_object, CURVAL, i_type,
+ CURVAL.f_float == val.f_float );
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Mon, 16 Dec 2024 16:01:44 +0100
+Subject: qt: use QString::arg() rather than QString::sprintf()
+
+It's deprecated and one of the replacement suggested in the doc [^1].
+QString::asprint() might be the more logical choice, but it's also not recommended [^2].
+
+[^1] https://doc.qt.io/qt-5/qstring-obsolete.html#sprintf
+[^2] https://doc.qt.io/qt-5/qstring.html#asprintf
+---
+ modules/gui/qt/dialogs/bookmarks.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/gui/qt/dialogs/bookmarks.cpp b/modules/gui/qt/dialogs/bookmarks.cpp
+index 1fb05e3..186b4d5 100644
+--- a/modules/gui/qt/dialogs/bookmarks.cpp
++++ b/modules/gui/qt/dialogs/bookmarks.cpp
+@@ -146,7 +146,7 @@ void BookmarksDialog::update()
+ QStringList row;
+ row << QString( qfu( pp_bookmarks[i]->psz_name ) );
+ row << qfu("-");
+- row << QString().sprintf( "%02u:%02u:%06.3f", hours, minutes, seconds );
++ row << QString( "%1:%2:%3" ).arg( hours, 2, 10, QChar('0')).arg( minutes, 2, 10, QChar('0')).arg(seconds, 10, 'f', 3, QChar('0'));
+
+ QTreeWidgetItem *item = new QTreeWidgetItem( bookmarksList, row );
+ item->setFlags( Qt::ItemIsSelectable | Qt::ItemIsEditable |
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Tue, 17 Dec 2024 09:39:26 +0100
+Subject: qt: use std::sort instead of deprecated qSort()
+
+Similar to c49140dcff3a2ba2729cec8756c7f78b198d50c9.
+---
+ modules/gui/qt/components/playlist/playlist_model.cpp | 2 +-
+ modules/gui/qt/dialogs/bookmarks.cpp | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/modules/gui/qt/components/playlist/playlist_model.cpp b/modules/gui/qt/components/playlist/playlist_model.cpp
+index a6bdd1f..5b24a0f 100644
+--- a/modules/gui/qt/components/playlist/playlist_model.cpp
++++ b/modules/gui/qt/components/playlist/playlist_model.cpp
+@@ -126,7 +126,7 @@ QMimeData *PLModel::mimeData( const QModelIndexList &indexes ) const
+ list.append(index);
+ }
+
+- qSort(list.begin(), list.end(), modelIndexLessThen);
++ std::sort(list.begin(), list.end(), modelIndexLessThen);
+
+ AbstractPLItem *item = NULL;
+ foreach( const QModelIndex &index, list ) {
+diff --git a/modules/gui/qt/dialogs/bookmarks.cpp b/modules/gui/qt/dialogs/bookmarks.cpp
+index 186b4d5..4282a3e 100644
+--- a/modules/gui/qt/dialogs/bookmarks.cpp
++++ b/modules/gui/qt/dialogs/bookmarks.cpp
+@@ -186,7 +186,7 @@ void BookmarksDialog::del()
+ b_ignore_updates = true;
+ /* Sort needed to make sure that selected elements are deleted in descending
+ order, otherwise the indexes might change and wrong bookmarks are deleted. */
+- qSort( selected.begin(), selected.end() );
++ std::sort( selected.begin(), selected.end() );
+ QModelIndexList::Iterator it = selected.end();
+ for( --it; it != selected.begin(); it-- )
+ {
--- /dev/null
+From: David Rosca <nowrep@gmail.com>
+Date: Fri, 20 Dec 2024 20:24:36 +0100
+Subject: avcodec: vaapi: Support VAAPI with latest FFmpeg
+
+---
+ configure.ac | 20 +----------------
+ modules/codec/Makefile.am | 2 +-
+ modules/codec/avcodec/avcommon_compat.h | 3 +++
+ modules/codec/avcodec/vaapi.c | 38 +++++++++++++++++++++++++++++++--
+ 4 files changed, 41 insertions(+), 22 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index f328bc0..5b150c3 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2469,25 +2469,7 @@ AM_CONDITIONAL([HAVE_VAAPI], [test "${have_vaapi}" = "yes"])
+ AM_CONDITIONAL([HAVE_VAAPI_DRM], [test "${have_vaapi_drm}" = "yes"])
+ AM_CONDITIONAL([HAVE_VAAPI_X11], [test "${have_vaapi_x11}" = "yes"])
+ AM_CONDITIONAL([HAVE_VAAPI_WL], [test "${have_vaapi_wl}" = "yes"])
+-
+-have_avcodec_vaapi="no"
+-AS_IF([test "${have_vaapi}" = "yes" -a "${have_avcodec}" = "yes"], [
+- VLC_SAVE_FLAGS
+- CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
+- CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
+- AC_CHECK_HEADERS([libavcodec/vaapi.h], [
+- AC_MSG_NOTICE([VA API acceleration activated])
+- have_avcodec_vaapi="yes"
+- ],[
+- AS_IF([test -n "${enable_libva}"], [
+- AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
+- ], [
+- AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
+- ])
+- ])
+- VLC_RESTORE_FLAGS
+-])
+-AM_CONDITIONAL([HAVE_AVCODEC_VAAPI], [test "${have_avcodec_vaapi}" = "yes"])
++AM_CONDITIONAL([HAVE_AVCODEC_VAAPI], [test "${have_vaapi}" = "yes" -a "${have_avcodec}" = "yes"])
+
+ dnl
+ dnl dxva2 needs avcodec
+diff --git a/modules/codec/Makefile.am b/modules/codec/Makefile.am
+index 6d9465f..dd04391 100644
+--- a/modules/codec/Makefile.am
++++ b/modules/codec/Makefile.am
+@@ -416,7 +416,7 @@ libvaapi_plugin_la_SOURCES = \
+ codec/avcodec/vaapi.c hw/vaapi/vlc_vaapi.c hw/vaapi/vlc_vaapi.h
+ libvaapi_plugin_la_CPPFLAGS = $(AM_CPPFLAGS)
+ libvaapi_plugin_la_CFLAGS = $(AM_CFLAGS) $(AVCODEC_CFLAGS)
+-libvaapi_plugin_la_LIBADD = $(LIBVA_LIBS)
++libvaapi_plugin_la_LIBADD = $(LIBVA_LIBS) $(AVCODEC_LIBS)
+ if HAVE_AVCODEC_VAAPI
+ if HAVE_VAAPI_DRM
+ codec_LTLIBRARIES += libvaapi_drm_plugin.la
+diff --git a/modules/codec/avcodec/avcommon_compat.h b/modules/codec/avcodec/avcommon_compat.h
+index ac02c06..8ab6910 100644
+--- a/modules/codec/avcodec/avcommon_compat.h
++++ b/modules/codec/avcodec/avcommon_compat.h
+@@ -84,6 +84,9 @@
+ #ifndef FF_API_AVIO_WRITE_NONCONST // removed in ffmpeg 7
+ # define FF_API_AVIO_WRITE_NONCONST (LIBAVFORMAT_VERSION_MAJOR < 61)
+ #endif
++#ifndef FF_API_STRUCT_VAAPI_CONTEXT
++# define FF_API_STRUCT_VAAPI_CONTEXT (LIBAVCODEC_VERSION_MAJOR < 59)
++#endif
+
+ #endif /* HAVE_LIBAVCODEC_AVCODEC_H */
+
+diff --git a/modules/codec/avcodec/vaapi.c b/modules/codec/avcodec/vaapi.c
+index c83269e..e203baa 100644
+--- a/modules/codec/avcodec/vaapi.c
++++ b/modules/codec/avcodec/vaapi.c
+@@ -42,12 +42,25 @@
+ # include <va/va_drm.h>
+ #endif
+ #include <libavcodec/avcodec.h>
++#if FF_API_STRUCT_VAAPI_CONTEXT
+ #include <libavcodec/vaapi.h>
++#else
++#include <libavutil/hwcontext_vaapi.h>
++#endif
+
+ #include "avcodec.h"
+ #include "va.h"
+ #include "../../hw/vaapi/vlc_vaapi.h"
+
++#if !FF_API_STRUCT_VAAPI_CONTEXT
++struct vaapi_context
++{
++ VADisplay display;
++ VAConfigID config_id;
++ VAContextID context_id;
++};
++#endif
++
+ struct vlc_va_sys_t
+ {
+ struct vlc_vaapi_instance *va_inst;
+@@ -145,8 +158,10 @@ static void Delete(vlc_va_t *va, void **hwctx)
+
+ (void) hwctx;
+
+- vlc_vaapi_DestroyContext(o, sys->hw_ctx.display, sys->hw_ctx.context_id);
+- vlc_vaapi_DestroyConfig(o, sys->hw_ctx.display, sys->hw_ctx.config_id);
++ if (sys->hw_ctx.context_id != VA_INVALID_ID)
++ vlc_vaapi_DestroyContext(o, sys->hw_ctx.display, sys->hw_ctx.context_id);
++ if (sys->hw_ctx.config_id != VA_INVALID_ID)
++ vlc_vaapi_DestroyConfig(o, sys->hw_ctx.display, sys->hw_ctx.config_id);
+ vlc_vaapi_ReleaseInstance(sys->va_inst);
+ free(sys);
+ }
+@@ -196,6 +211,7 @@ static int Create(vlc_va_t *va, AVCodecContext *ctx, const AVPixFmtDescriptor *d
+ sys->hw_ctx.config_id = VA_INVALID_ID;
+ sys->hw_ctx.context_id = VA_INVALID_ID;
+
++#if FF_API_STRUCT_VAAPI_CONTEXT
+ sys->hw_ctx.config_id =
+ vlc_vaapi_CreateConfigChecked(o, sys->hw_ctx.display, i_profile,
+ VAEntrypointVLD, i_vlc_chroma);
+@@ -211,6 +227,24 @@ static int Create(vlc_va_t *va, AVCodecContext *ctx, const AVPixFmtDescriptor *d
+ goto error;
+
+ ctx->hwaccel_context = &sys->hw_ctx;
++#else
++ AVBufferRef *hwdev_ref = av_hwdevice_ctx_alloc(AV_HWDEVICE_TYPE_VAAPI);
++ if (hwdev_ref == NULL)
++ goto error;
++
++ AVHWDeviceContext *hwdev_ctx = (void *) hwdev_ref->data;
++ AVVAAPIDeviceContext *vadev_ctx = hwdev_ctx->hwctx;
++ vadev_ctx->display = va_dpy;
++
++ if (av_hwdevice_ctx_init(hwdev_ref) < 0)
++ {
++ av_buffer_unref(&hwdev_ref);
++ goto error;
++ }
++
++ ctx->hw_device_ctx = hwdev_ref;
++#endif
++
+ va->sys = sys;
+ va->description = vaQueryVendorString(sys->hw_ctx.display);
+ va->get = Get;
--- /dev/null
+From: Steve Lhomme <robux4@ycbcr.xyz>
+Date: Mon, 13 Jan 2025 10:35:07 +0100
+Subject: 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
+---
+ modules/codec/x265.c | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/modules/codec/x265.c b/modules/codec/x265.c
+index 50fe328..9c3c231 100644
+--- a/modules/codec/x265.c
++++ b/modules/codec/x265.c
+@@ -39,6 +39,9 @@
+ #ifndef X265_MAX_FRAME_THREADS
+ # define X265_MAX_FRAME_THREADS 16
+ #endif
++#if X265_BUILD > 210 && X265_BUILD <= 214
++#define X265_OUTPUT_ARRAY 1
++#endif
+
+ /*****************************************************************************
+ * Module descriptor
+@@ -74,7 +77,7 @@ static block_t *Encode(encoder_t *p_enc, picture_t *p_pict)
+ x265_picture pic;
+
+ x265_picture_init(&p_sys->param, &pic);
+-#ifdef MAX_SCALABLE_LAYERS
++#ifdef X265_OUTPUT_ARRAY
+ /* Handle API changes for scalable layers output in x265 4.0 */
+ x265_picture *pics[MAX_SCALABLE_LAYERS] = {NULL};
+ pics[0] = &pic;
+@@ -97,7 +100,7 @@ static block_t *Encode(encoder_t *p_enc, picture_t *p_pict)
+
+ x265_nal *nal;
+ uint32_t i_nal = 0;
+-#ifdef MAX_SCALABLE_LAYERS
++#ifdef X265_OUTPUT_ARRAY
+ x265_encoder_encode(p_sys->h, &nal, &i_nal,
+ likely(p_pict) ? &pic : NULL, pics);
+ #else
--- /dev/null
+0001-configure-fix-linking-on-RISC-V-ISA.patch
+0002-Do-not-generate-cache-during-build.patch
+0003-Bump-module-ABI-for-time_t-transition.patch
+0004-demux-image-detect-ICC-profile-before-JFIF-data.patch
+0005-demux-avi-do-not-set-up-invalid-bitsperpixel.patch
+0006-opus_header-fix-channel-mapping-family-1-parsing.patch
+0007-vlc_common-remove-warnings-on-VLC_OBJECT.patch
+0008-transcode-fix-destructive-assignment-after-drain.patch
+0009-transcode-fix-picture-fifo-leak.patch
+0010-sftp-fix-seek-for-large-files-on-32-bit-OS.patch
+0011-qt-hardcode-the-name-of-the-shortcut-for-the-AMD-VQ-.patch
+0012-packetizer-h264-fix-reading-prediction-weight-tables.patch
+0013-demux-adaptive-fix-start-with-indexes-only.patch
+0014-UPnP-remove-SAT-IP-channel-list-fallback.patch
+0015-spectrogram-fix-FFT-result-scaling-factor.patch
+0016-spectrogram-convert-int16-to-unsigned-for-correct-ra.patch
+0017-spectrogram-allows-better-visualization-of-low-frequ.patch
+0018-magnify-check-the-image-conversion-worked.patch
+0019-opencv-check-the-image-conversion-worked.patch
+0020-packetizer-hxxx_common-rename-function-pointer.patch
+0021-packetizer-hxxx-pass-opaque-to-callbacks-instead-of-.patch
+0022-packetizer-hxxx-add-missing-drain-for-non-annexb-con.patch
+0023-demux-asf-add-missing-subpayloads-drain-on-EOF.patch
+0024-demux-AVI-insert-packetizer-for-XVID-MPEG-4-video.patch
+0025-codec-videotoolbox-remove-sw-decoder-fallback-for-mp.patch
+0026-Use-vlc_fourcc_GetCodec-to-map-XVID-to-MP4V.patch
+0027-dav1d-treat-RGB-formats-separately.patch
+0028-dav1d-add-dav1d-all-layers-flag.patch
+0029-dts_header-initialize-SUBSTREAM_LBR-size-to-0.patch
+0030-packetizer-dts-check-for-frame_size-for-the-first-sy.patch
+0031-aom-make-BGR-matching-stricter.patch
+0032-taglib-.m4v-are-already-registered-as-MP4-files.patch
+0033-modules-taglib-simplify-reading-embedded-art.patch
+0034-taglib-IOStream-Return-the-url-as-fileName.patch
+0035-taglib-Always-use-IOStream-to-read-the-media.patch
+0036-taglib-Enable-prefetch-cache-on-the-IOStream.patch
+0037-taglib-fix-Wdeprecated-copy-warnings.patch
+0038-meta_engine-taglib-increment-VlcIostream-readpos.patch
+0039-meta_engine-taglib-reject-read-on-failed-seek.patch
+0040-meta_engine-taglib-add-sequential-read-limit-on-VlcI.patch
+0041-meta_engine-taglib-restrict-unlimited-reads-on-strea.patch
+0042-meta-taglib-reject-non-expected-schemes.patch
+0043-taglib-fix-variable-shadowing.patch
+0044-taglib-Don-t-convert-base64-strings-to-UTF8.patch
+0045-taglib-ByteVector-null-is-now-deprecated.patch
+0046-taglib-Remove-usages-of-deprecated-itemListMap.patch
+0047-taglib-Remove-use-of-deprecated-String-isNull.patch
+0048-taglib-Remove-explicit-invocation-of-default-constru.patch
+0049-taglib-Implement-new-StreamTypeResolver-interface-wh.patch
+0050-taglib-Use-nullptr-instead-of-0-for-pointers.patch
+0051-taglib-Fix-invalid-version-check.patch
+0052-meta-taglib-use-std-min.patch
+0053-taglib-don-t-cast-the-file-st_size-to-a-possibly-sma.patch
+0054-taglib-remove-VLC-path-define-check.patch
+0055-Taglib-Use-ID3v2Tag-instead-of-tag-for-RIFF-WAV-File.patch
+0056-lua-don-t-use-operator-on-VLC-errors.patch
+0057-demux-mkv-fix-link-to-ALAC-documentation.patch
+0058-demux-mkv-write-the-actual-extra-data-size-in-the-AL.patch
+0059-demux-mkv-handle-mkv-use-chapter-codec-option.patch
+0060-hw-amf-keep-the-AMF-version-in-the-context.patch
+0061-archive-Add-support-for-RAR-5.0-format.patch
+0062-archive-fix-the-type-used-for-libarchive_skip_cb.patch
+0063-stream_extractor-set-correct-offset-on-read-failure.patch
+0064-hw-amf-let-the-AMF-system-know-what-version-was-used.patch
+0065-avcodec-avoid-signedness-mismatch-warning.patch
+0066-avcodec-use-p_dec-fmt_out-instead-of-context-channel.patch
+0067-avcodec-audio-decoder-to-use-ch_layout.patch
+0068-avcodec-use-p_enc-audio-channels-instead-of-context-.patch
+0069-codec-avcodec-map-AYUV-as-RAWVIDEO-with-ffmpeg-6.0.patch
+0070-avcodec-encoder-fix-channel_layout-conditionals.patch
+0071-codec-avcodec-fix-audio-channel_layout-conditionals.patch
+0072-demux-mux-avformat-use-ch_layout-from-ffmpeg-5.1.patch
+0073-avcodec-add-handling-of-new-ch_layout-in-audio-encod.patch
+0074-avcodec-use-ch_layout-for-channel-layout-in-audio-en.patch
+0075-codec-avcodec-bypass-removed-define-for-Intel-workar.patch
+0076-codec-x265-handle-X265_MAX_FRAME_THREADS-on-newer-CP.patch
+0077-codec-x265-handle-4.0-encoding-API-change.patch
+0078-mux-avformat-fix-avio-callbacks-signature-with-ffmpe.patch
+0079-fetcher-don-t-download-network-metadata-if-the-user-.patch
+0080-hds-fix-crash-if-bootstrap-data-or-URL-are-missing.patch
+0081-qt-add-option-to-use-dark-palette.patch
+0082-avcommon-rename-LIBAVUTIL_VERSION_CHECK-to-LIBAV_UTI.patch
+0083-avcommon-use-a-specific-macro-to-check-the-FFmpeg-li.patch
+0084-avcommon-rename-LIBAVFORMAT_VERSION_CHECK-to-LIBAV_F.patch
+0085-avcommon-use-a-specific-macro-to-check-the-FFmpeg-li.patch
+0086-avcommon-rename-LIBAVCODEC_VERSION_CHECK-to-LIBAV_CO.patch
+0087-avcommon-use-a-specific-macro-to-check-the-FFmpeg-li.patch
+0088-codec-avcodec-check-open-codec-return-value.patch
+0089-avcodec-use-ARRAY_SIZE-instead-of-custom-code.patch
+0090-avcodec-audio-make-channel-mapping-array-0-terminate.patch
+0091-codec-avcodec-fix-ch_layout-requirement.patch
+0092-ffmpeg-fix-libavutil-version-check-for-av_channel_la.patch
+0093-ffmpeg-fix-libavcodec-version-check-for-AVCodecParam.patch
+0094-avcodec-fix-libavcodec-version-check-for-AVCodecCont.patch
+0095-ffmpeg-fix-libavutil-version-check-for-AVFrame.ch_la.patch
+0096-avcodec-add-a-define-to-test-for-AVCodecContext.ch_l.patch
+0097-configure-use-host_cpu-where-applicable.patch
+0098-demux-mkv-use-the-internal-USF-FourCC-value.patch
+0099-demux-mkv-use-the-internal-QDMC-FourCC-value.patch
+0100-demux-mkv-add-missing-helpers-from-libebml-2.0.patch
+0101-demux-mkv-read-data-from-KaxBlockAdditions-as-const.patch
+0102-demux-mkv-don-t-expose-local-BlockDecode-function.patch
+0103-demux-mkv-fix-potential-leak-of-KaxBlockAdditions-wh.patch
+0104-qt-PodcastConfiguration-inherits-QDialog-not-QWidget.patch
+0105-musicbrainz-fix-leak.patch
+0106-es_out_timeshift-explicitely-use-GetTempPathW.patch
+0107-demux-mkv-don-t-use-EbmlDummy-elements-coming-out-of.patch
+0108-packetizer-av1-fill-the-full-extradata-if-it-doesn-t.patch
+0109-demux-mkv-force-the-packetizer-to-fill-AV1-extradata.patch
+0110-demux-mp4-force-the-packetizer-to-fill-AV1-extradata.patch
+0111-mediacodec-set-color-keys-in-media-format-explicitly.patch
+0112-access-v4l2-add-support-for-V4L2_PIX_FMT_ABGR32-and-.patch
+0113-interop_vaapi-fix-mem-leak-while-pause.patch
+0114-qt-remove-unused-meta_to_mlmeta.patch
+0115-qt-fix-IN_ITEM_ROLE-documentation.patch
+0116-qt-remove-deprecated-QPainter-HighQualityAntialiasin.patch
+0117-qt-fix-bitfield-added-values-set-in-QVariant.patch
+0118-qt-fix-UTF-8-string-usage.patch
+0119-qt-add-missing-QActionGroup-include.patch
+0120-qt-use-QLayout-setContentsMargins-instead-of-QLayout.patch
+0121-qt-use-QString-setNum-rather-than-QString-sprintf.patch
+0122-qt-use-QString-arg-rather-than-QString-sprintf.patch
+0123-qt-use-std-sort-instead-of-deprecated-qSort.patch
+0124-avcodec-vaapi-Support-VAAPI-with-latest-FFmpeg.patch
+0125-x265-fix-API-signature-with-x265-4.1.patch
--- /dev/null
+#!/usr/bin/make -f
+
+DEB_BUILD_MAINT_OPTIONS=hardening=+all
+
+include /usr/share/dpkg/architecture.mk
+include /usr/share/dpkg/pkg-info.mk
+include /usr/share/dpkg/vendor.mk
+
+export VLC_COMPILE_BY=$(DEB_VENDOR) buildd for $(DEB_DISTRIBUTION)
+export VLC_COMPILE_HOST=$(DEB_VENDOR) $(DEB_HOST_ARCH) buildd
+
+# custom build option: debug
+# VLC enables assertions if --enable-debug is passed to the configure script. To debug issues, it
+# might be useful to have them enabled. In that case, rebuilding the package with
+# DEB_BUILD_OPTIONS=debug produces a build with the assertions enabled.
+ifneq (,$(filter debug,$(DEB_BUILD_OPTIONS)))
+confflags += --enable-debug
+else
+confflags += --disable-debug
+endif
+
+# configure flags
+confflags += \
+ --config-cache \
+ --disable-update-check \
+ --enable-fast-install \
+ --docdir=/usr/share/doc/vlc \
+ --with-binary-version=$(DEB_VERSION) \
+ $(NULL)
+# configure features
+confflags += \
+ --enable-a52 \
+ --enable-aa \
+ --enable-aribsub \
+ --enable-avahi \
+ --enable-bluray \
+ --enable-caca \
+ --enable-chromaprint \
+ --enable-chromecast \
+ --enable-dav1d \
+ --enable-dbus \
+ --enable-dca \
+ --enable-dvbpsi \
+ --enable-dvdnav \
+ --enable-faad \
+ --enable-flac \
+ --enable-fluidsynth \
+ --enable-freetype \
+ --enable-fribidi \
+ --enable-gles2 \
+ --enable-gnutls \
+ --enable-harfbuzz \
+ --enable-jack \
+ --enable-kate \
+ --enable-libass \
+ --enable-libmpeg2 \
+ --enable-libxml2 \
+ --enable-lirc \
+ --enable-mad \
+ --enable-matroska \
+ --enable-mod \
+ --enable-mpc \
+ --enable-mpg123 \
+ --enable-mtp \
+ --enable-ncurses \
+ --enable-notify \
+ --enable-ogg \
+ --enable-opus \
+ --enable-pulse \
+ --enable-qt \
+ --enable-realrtsp \
+ --enable-samplerate \
+ --enable-sftp \
+ --enable-shine \
+ --enable-shout \
+ --enable-skins2 \
+ --enable-soxr \
+ --enable-spatialaudio \
+ --enable-speex \
+ --enable-srt \
+ --enable-svg \
+ --enable-svgdec \
+ --enable-taglib \
+ --enable-theora \
+ --enable-twolame \
+ --enable-upnp \
+ --enable-vdpau \
+ --enable-vnc \
+ --enable-vorbis \
+ --enable-x264 \
+ --enable-x265 \
+ --enable-zvbi \
+ --with-kde-solid=/usr/share/solid/actions/ \
+ $(NULL)
+# Reasons for disabling features:
+# aom: dav1d support enabled
+# crystalhd: unusble without firmware (#934242)
+# d3d11va: Windows only
+# decklink: not in Debian
+# directx: Windows only
+# dsm: not in Debian
+# dxva2: Windows only
+# fdkaac: in Debian contrib
+# fluidlite: fluidsynth is enabled
+# freerdp: removed from Debian (#888323)
+# goom: not in Debian
+# gst-decode: not needed when having libavcodec
+# libplacebo: is too new
+# libtar: security issue (#737534)
+# live555: non-free code from RFC 3550 (#981439)
+# macosx*: MacOX only
+# mfx: currently not supported on Linux
+# microdns: functionality already provided by avahi
+# omxil: removed from Debian (#1065623)
+# opencv: developer plugin not required by end users
+# oss: use PulseAudio instead of oss
+# projectm: broken
+# schroedinger: removed from Debian (#845037)
+# sdl-image: SDL 1.2 is deprecated (#1038590)
+# sndio: NMU maintained key package
+# sparkle: MacOS X only
+# telx: incompatible with zvbi
+# vpx: not needed when having libavcodec
+# vsxu: not in Debian
+# wasapi: Windows only
+confflags += \
+ --disable-aom \
+ --disable-crystalhd \
+ --disable-d3d11va \
+ --disable-decklink \
+ --disable-directx \
+ --disable-dsm \
+ --disable-dxva2 \
+ --disable-fdkaac \
+ --disable-fluidlite \
+ --disable-freerdp \
+ --disable-goom \
+ --disable-gst-decode \
+ --disable-libplacebo \
+ --disable-libtar \
+ --disable-live555 \
+ --disable-macosx \
+ --disable-macosx-avfoundation \
+ --disable-macosx-qtkit \
+ --disable-mfx \
+ --disable-microdns \
+ --disable-omxil \
+ --disable-opencv \
+ --disable-oss \
+ --disable-projectm \
+ --disable-schroedinger \
+ --disable-sdl-image \
+ --disable-sndio \
+ --disable-sparkle \
+ --disable-telx \
+ --disable-vpx \
+ --disable-vsxu \
+ --disable-wasapi \
+ $(NULL)
+
+# Linux specific flags
+ifeq ($(DEB_HOST_ARCH_OS),linux)
+confflags += \
+ --enable-alsa \
+ --enable-dc1394 \
+ --enable-dv1394 \
+ --enable-linsys \
+ --enable-nfs \
+ --enable-udev \
+ --enable-v4l2 \
+ --enable-wayland \
+ $(NULL)
+else
+# V4L2 is disabled on Hurd due to a build failure.
+confflags += \
+ --disable-alsa \
+ --disable-dc1394 \
+ --disable-dv1394 \
+ --disable-linsys \
+ --disable-nfs \
+ --disable-udev \
+ --disable-v4l2 \
+ --disable-wayland \
+ $(NULL)
+removeplugins += \
+ alsa \
+ dc1394 \
+ dtv \
+ dv1394 \
+ dvb \
+ fb \
+ linsys \
+ nfs \
+ systemd \
+ udev \
+ v4l2 \
+ wayland \
+ $(NULL)
+endif
+
+# Linux specific flags (disabled on Hurd)
+ifeq (,$(filter-out linux,$(DEB_HOST_ARCH_OS)))
+confflags += \
+ --enable-libva \
+ --enable-vcd \
+ --enable-smbclient \
+ $(NULL)
+else
+confflags += \
+ --disable-libva \
+ --disable-vcd \
+ --disable-smbclient \
+ $(NULL)
+removeplugins += \
+ cdda \
+ libva \
+ smbclient \
+ vcd \
+ $(NULL)
+endif
+
+ifneq (,$(filter noopt,$(DEB_BUILD_OPTIONS)))
+confflags += \
+ --disable-optimizations \
+ --disable-mmx \
+ --disable-sse \
+ --disable-altivec \
+ --disable-neon \
+ $(NULL)
+removeplugins += mmx sse2 altivec neon
+else
+# amd64 and i386 specific optimizations
+ifeq (,$(filter-out amd64 i386,$(DEB_HOST_ARCH_CPU)))
+confflags += --enable-mmx --enable-sse
+else
+confflags += --disable-mmx --disable-sse
+removeplugins += mmx sse2
+endif
+
+# ARM specific optimizations
+ifeq (,$(filter-out armhf,$(DEB_HOST_ARCH_CPU)))
+confflags += --enable-neon
+else
+confflags += --disable-neon
+removeplugins += neon
+endif
+
+# PowerPC specific optimizations (excluding powerpcspe)
+ifeq (,$(filter-out powerpc,$(DEB_HOST_ARCH_CPU))$(filter powerpcspe,$(DEB_HOST_ARCH)))
+confflags += --enable-altivec
+else
+confflags += --disable-altivec
+removeplugins += altivec
+endif
+
+# PowerPCSPE specific optimizations
+ifeq (,$(filter-out powerpcspe,$(DEB_HOST_ARCH)))
+DEB_CFLAGS_MAINT_APPEND += -mtune=8548
+DEB_CXXFLAGS_MAINT_APPEND += -mtune=8548
+endif
+endif
+
+export DEB_BUILD_MAINT_OPTIONS
+export DEB_CFLAGS_MAINT_APPEND
+export DEB_CXXFLAGS_MAINT_APPEND
+export removeplugins
+
+%:
+ dh $@
+
+override_dh_auto_configure:
+ dh_auto_configure -- $(confflags)
+
+execute_after_dh_auto_build:
+ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
+ # Build zsh completion
+ BUILDDIR=$(CURDIR) \
+ cd extras/analyser && ./zsh_completion.sh
+endif
+
+override_dh_auto_test:
+ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
+ifeq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
+ ./vlc -vvv --ignore-config --no-plugins-cache --list --no-color
+endif
+endif
+
+override_dh_install:
+ # Remove plugin cache
+ find debian/tmp/usr/lib -name plugins.dat -delete
+ # Clean up libtool la files
+ find debian/tmp -name '*.la' -delete
+ # Remove useless stuff
+ ln -sf /usr/share/fonts/truetype/freefont/FreeSans.ttf debian/tmp/usr/share/vlc/skins2/fonts/FreeSans.ttf
+ ln -sf /usr/share/fonts/truetype/freefont/FreeMonoBold.ttf debian/tmp/usr/share/vlc/skins2/fonts/FreeSansBold.ttf
+ rm -f debian/tmp/usr/share/man/man1/vlc-config.1
+ # Remove additional license files
+ find debian/tmp -name LICENSE -delete
+ # Remove examples installed in -dev packages
+ rm -rf debian/tmp/usr/share/doc/vlc/libvlc
+ # Install
+ dh_install
+ifeq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
+ # Install zsh completion
+ dh_install -pvlc-bin extras/analyser/_vlc usr/share/zsh/vendor-completions
+endif
+ifeq (Ubuntu,$(DEB_VENDOR))
+ dh_install -pvlc-bin debian/source_vlc.py usr/share/apport/package-hooks/
+endif
+ # Create empty directory for plugins.dat
+ mkdir -p debian/libvlc-bin/usr/lib/${DEB_HOST_MULTIARCH}/vlc/plugins
+
+override_dh_installchangelogs:
+ dh_installchangelogs NEWS
+
+override_dh_makeshlibs:
+ dh_makeshlibs -Xlibvlc_vdpau -Xlibvlc_pulse -Xlibvlc_xcb_events
+
+debian/shlibs.local:
+ echo "libvlc 5 libvlc5 (>= $(DEB_VERSION_UPSTREAM))" > debian/shlibs.local
+ echo "libvlccore 9 libvlccore9 (>= $(DEB_VERSION_UPSTREAM))" >> debian/shlibs.local
+
+execute_before_dh_shlibdeps: debian/shlibs.local
+
+override_dh_bugfiles:
+ dh_bugfiles -A
+
+execute_before_dh_installdeb-arch:
+ sed 's/#DEB_HOST_MULTIARCH#/${DEB_HOST_MULTIARCH}/g' \
+ debian/libvlc-bin.postinst.in > debian/libvlc-bin.postinst
+ sed 's/#DEB_HOST_MULTIARCH#/${DEB_HOST_MULTIARCH}/g' \
+ debian/libvlc-bin.prerm.in > debian/libvlc-bin.prerm
+ echo 'interest-noawait /usr/lib/${DEB_HOST_MULTIARCH}/vlc/plugins' > debian/libvlc-bin.triggers
+
+override_dh_gencontrol-arch:
+ sed -n 's/^# define MODULE_SYMBOL \([0-9][_0-9a-z]*\)/-Vvlc:PluginABI=vlc-plugin-abi-\1/p' \
+ include/vlc_plugin.h | tr _ - | xargs dh_gencontrol -a --
--- /dev/null
+3.0 (quilt)
--- /dev/null
+# unreliable tags, see lintian bug #802028
+vlc source: source-contains-prebuilt-javascript-object share/lua/http/js/common.js
+vlc source: source-is-missing share/lua/http/js/common.js
+vlc source: source-contains-prebuilt-javascript-object share/lua/http/js/controllers.js
+vlc source: source-is-missing share/lua/http/js/controllers.js
+vlc source: source-contains-prebuilt-javascript-object share/lua/http/js/jquery.jstree.js
+vlc source: source-is-missing share/lua/http/js/jquery.jstree.js
--- /dev/null
+'''apport package hook for vlc
+
+(c) 2010 Canonical Ltd.
+Author: Brian Murray <brian@ubuntu.com>
+'''
+
+from apport.hookutils import attach_related_packages
+
+def add_info(report):
+ attach_related_packages(report, [
+ "libgl1-mesa-glx",
+ "libgl1",
+ "libglib2.0-0",
+ "libgtk2.0-0",
+ "libnotify1",
+ "libnotify1-gtk2.10",
+ "libqt5core5a",
+ "libqt5gui5",
+ "libx11-6",
+ "libxcb-keysyms1",
+ "libxcb1",
+ "libxext6",
+ "libxinerama1",
+ "libxv1",
+ "libxxf86vm1",
+ ])
--- /dev/null
+Tests: vlc-bin
+Depends: vlc-bin
+Restrictions: allow-stderr
+
+Tests: vlc
+Depends: vlc
+Restrictions: allow-stderr
+
+Tests: vlc-all
+Depends:
+ vlc,
+ vlc-plugin-access-extra,
+ vlc-plugin-fluidsynth,
+ vlc-plugin-jack,
+ vlc-plugin-notify,
+ vlc-plugin-svg,
+ vlc-plugin-samba,
+ vlc-plugin-skins2,
+ vlc-plugin-video-splitter,
+ vlc-plugin-visualization,
+ gdb
+Restrictions: allow-stderr
--- /dev/null
+#!/bin/sh
+set -e
+
+DEB_HOST_MULTIARCH=$(dpkg-architecture -q DEB_HOST_MULTIARCH)
+
+if ! test -f /usr/lib/$DEB_HOST_MULTIARCH/vlc/plugins/plugins.dat
+then
+ cp -R --preserve /usr/lib/$DEB_HOST_MULTIARCH/vlc/plugins $AUTOPKGTEST_TMP
+ gdb -batch -ex run -ex "bt full" -ex quit --args \
+ /usr/lib/$DEB_HOST_MULTIARCH/vlc/vlc-cache-gen $AUTOPKGTEST_TMP/plugins
+fi
+
+vlc -vvv --ignore-config --list --no-color
--- /dev/null
+#!/bin/sh
+set -e
+
+vlc -vvv --ignore-config --list --no-color
--- /dev/null
+#!/bin/sh
+set -e
+
+vlc -vvv --ignore-config --list --no-color
--- /dev/null
+Bug-Database: https://code.videolan.org/videolan/vlc/-/issues
+Contact: https://forum.videolan.org/
+FAQ: https://wiki.videolan.org/Frequently_Asked_Questions/
+Repository: https://code.videolan.org/videolan/vlc.git
+Repository-Browse: https://code.videolan.org/videolan/vlc/-/tree/3.0.x
+Donation: https://www.videolan.org/contribute.html#money
--- /dev/null
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQGiBFD9w2QRBACoEzH9KKirWE4wgiuPPynNnxks+p+t5i1z3CG+1XhagmTHoOf3
+v8i19kKHV6WnVMn2CKJFgwTTLYXOJTrBM/4ABVtu11cHeeueeo+pCSkdoLzYJ5QF
+HbByB6j33QUbwKF0frEs+ge4LxzvYyCDAmNAW560QtOAR9Lk1Fo5B1GXzwCg1kDk
+RkSe7EOZNm1U2rYAQ2VPrfsEAIHr4ooOyUByPR7XpoDOKoaXEG0hjpgh46lbgse+
+dQx8YrxS9vXQLwYokfWLrs55avx9Ys0iVv2TMv7X4Tn5sTVaK5K+NbKhxhLORxGI
+sgKqRn7W5SG5xoO0w/dmQj756ppjITGbxjFuhYE0X5S6NeMhUuFci7sJ42R7F1Ko
+6sYuA/wOMUxCk4XOXeQF16ApyyenjE/UWbBNEhBmjEsZkYAFNc89pAEnEFSnIxK8
+fcuCQioM6ojjaW+aEs/q3/klI0nat9LMLhNSCebjriMHwJDU70NeCn4nPWsfItT1
+eKvbHNcX+3bq3D/i2Wa3PZ5YFFF01C61dHmVC9YGh4sAOXO09LQjVmlkZW9MQU4g
+UmVsZWFzZSBTaWduaW5nIEtleSAoMjAxMymIaAQTEQIAKAIbAwYLCQgHAwIGFQgC
+CQoLBBYCAwECHgECF4AFAlcfgjEFCQgC8jUACgkQcYBxO+WNGtws1wCfdckVSmW/
+7G+0CNufK+4ZKSXW9BoAoLaxPIFa2qpZdmDr5eci5gdXJI1mtCNWaWRlb0xBTiBS
+ZWxlYXNlIFNpZ25pbmcgS2V5ICgyMDE0KYhpBBMRAgApAhsDBwsJCAcDAgEGFQgC
+CQoLBBYCAwECHgECF4AFAlcfgjEFCQgC8jUACgkQcYBxO+WNGtwkYACgmifLHzLQ
+rbevTlGVWnAfn8AyW8MAn1AIh61iO83YycA1fYoP1sOPBCK/tCNWaWRlb0xBTiBS
+ZWxlYXNlIFNpZ25pbmcgS2V5ICgyMDE1KYhqBBMRAgAqAhsDBQsJCAcCBhUICQoL
+AgQWAgMBAh4BAheAAhkBBQJXH4IjBQkIAvI1AAoJEHGAcTvljRrcSjsAoL/BM6qq
+KwWv2DwdqLd+XRpYlrpyAJ0c43AR1uE2UoMhkUu3vsX75fqELbQjVmlkZW9MQU4g
+UmVsZWFzZSBTaWduaW5nIEtleSAoMjAxNimIaAQTEQIAKAIbAwYLCQgHAwIGFQgC
+CQoLBBYCAwECHgECF4AFAlbGNhQFCQeppiwACgkQcYBxO+WNGtwQ3wCfb8IB8Mdt
+ahoyr5OjvOQL6IQFuUcAoMCyREB9Yn5oLU+6OSnarOAHwzvq
+=QHfT
+-----END PGP PUBLIC KEY BLOCK-----
--- /dev/null
+usr/bin/cvlc
+usr/bin/nvlc
+usr/bin/rvlc
+usr/bin/vlc
+usr/bin/vlc-wrapper
+usr/share/man
--- /dev/null
+/usr/share/man/man1/vlc.1.gz /usr/share/man/man1/cvlc.1.gz
+/usr/share/man/man1/vlc.1.gz /usr/share/man/man1/nvlc.1.gz
+/usr/share/man/man1/vlc.1.gz /usr/share/man/man1/rvlc.1.gz
--- /dev/null
+usr/share/doc/vlc/fortunes.*
+usr/share/doc/vlc/lua
+usr/share/icons
+usr/share/vlc/lua
+usr/share/vlc/utils
+usr/share/vlc/vlc.ico
--- /dev/null
+usr/share/locale
--- /dev/null
+usr/lib/*/vlc/plugins/access/libvnc_plugin.so
+usr/lib/*/vlc/plugins/access/libxcb_screen_plugin.so
+usr/lib/*/vlc/plugins/access/libaccess_srt_plugin.so
+usr/lib/*/vlc/plugins/access_output/libaccess_output_srt_plugin.so
--- /dev/null
+#!/bin/bash
+exec python3 $(dirname $0)/filter-plugin.py <<EOF
+usr/lib/*/vlc/lua
+usr/lib/*/vlc/libvlc_pulse.so*
+usr/lib/*/vlc/plugins/access/libaccess_alsa_plugin.so [alsa]
+usr/lib/*/vlc/plugins/access/libaccess_concat_plugin.so
+usr/lib/*/vlc/plugins/access/libaccess_imem_plugin.so
+usr/lib/*/vlc/plugins/access/libaccess_mms_plugin.so
+usr/lib/*/vlc/plugins/access/libaccess_mtp_plugin.so
+usr/lib/*/vlc/plugins/access/libaccess_realrtsp_plugin.so
+usr/lib/*/vlc/plugins/access/libattachment_plugin.so
+usr/lib/*/vlc/plugins/access/libavio_plugin.so
+usr/lib/*/vlc/plugins/access/libcdda_plugin.so [cdda]
+usr/lib/*/vlc/plugins/access/libdc1394_plugin.so [dc1394]
+usr/lib/*/vlc/plugins/access/libdtv_plugin.so [dtv]
+usr/lib/*/vlc/plugins/access/libdv1394_plugin.so [dv1394]
+usr/lib/*/vlc/plugins/access/libdvb_plugin.so [dvb]
+usr/lib/*/vlc/plugins/access/libdvdnav_plugin.so
+usr/lib/*/vlc/plugins/access/libdvdread_plugin.so
+usr/lib/*/vlc/plugins/access/libfilesystem_plugin.so
+usr/lib/*/vlc/plugins/access/libftp_plugin.so
+usr/lib/*/vlc/plugins/access/libhttp_plugin.so
+usr/lib/*/vlc/plugins/access/libhttps_plugin.so
+usr/lib/*/vlc/plugins/access/libidummy_plugin.so
+usr/lib/*/vlc/plugins/access/libimem_plugin.so
+usr/lib/*/vlc/plugins/access/liblibbluray_plugin.so
+usr/lib/*/vlc/plugins/access/liblinsys_hdsdi_plugin.so [linsys]
+usr/lib/*/vlc/plugins/access/liblinsys_sdi_plugin.so [linsys]
+usr/lib/*/vlc/plugins/access/libnfs_plugin.so [nfs]
+usr/lib/*/vlc/plugins/access/libpulsesrc_plugin.so
+usr/lib/*/vlc/plugins/access/librist_plugin.so
+usr/lib/*/vlc/plugins/access/librtp_plugin.so
+usr/lib/*/vlc/plugins/access/libsatip_plugin.so
+usr/lib/*/vlc/plugins/access/libsdp_plugin.so
+usr/lib/*/vlc/plugins/access/libsftp_plugin.so
+usr/lib/*/vlc/plugins/access/libshm_plugin.so
+usr/lib/*/vlc/plugins/access/libtcp_plugin.so
+usr/lib/*/vlc/plugins/access/libtimecode_plugin.so
+usr/lib/*/vlc/plugins/access/libudp_plugin.so
+usr/lib/*/vlc/plugins/access/libv4l2_plugin.so [v4l2]
+usr/lib/*/vlc/plugins/access/libvcd_plugin.so [vcd]
+usr/lib/*/vlc/plugins/access/libvdr_plugin.so
+usr/lib/*/vlc/plugins/access_output/libaccess_output_dummy_plugin.so
+usr/lib/*/vlc/plugins/access_output/libaccess_output_file_plugin.so
+usr/lib/*/vlc/plugins/access_output/libaccess_output_http_plugin.so
+usr/lib/*/vlc/plugins/access_output/libaccess_output_livehttp_plugin.so
+usr/lib/*/vlc/plugins/access_output/libaccess_output_shout_plugin.so
+usr/lib/*/vlc/plugins/access_output/libaccess_output_udp_plugin.so
+usr/lib/*/vlc/plugins/access_output/libaccess_output_rist_plugin.so
+usr/lib/*/vlc/plugins/arm_neon [neon]
+usr/lib/*/vlc/plugins/audio_filter
+usr/lib/*/vlc/plugins/audio_mixer
+usr/lib/*/vlc/plugins/audio_output/libadummy_plugin.so
+usr/lib/*/vlc/plugins/audio_output/libafile_plugin.so
+usr/lib/*/vlc/plugins/audio_output/libalsa_plugin.so [alsa]
+usr/lib/*/vlc/plugins/audio_output/libamem_plugin.so
+usr/lib/*/vlc/plugins/audio_output/libpulse_plugin.so
+usr/lib/*/vlc/plugins/codec/liba52_plugin.so
+usr/lib/*/vlc/plugins/codec/libadpcm_plugin.so
+usr/lib/*/vlc/plugins/codec/libaes3_plugin.so
+usr/lib/*/vlc/plugins/codec/libaraw_plugin.so
+usr/lib/*/vlc/plugins/codec/libaribsub_plugin.so
+usr/lib/*/vlc/plugins/codec/libavcodec_plugin.so
+usr/lib/*/vlc/plugins/codec/libcc_plugin.so
+usr/lib/*/vlc/plugins/codec/libcdg_plugin.so
+usr/lib/*/vlc/plugins/codec/libcvdsub_plugin.so
+usr/lib/*/vlc/plugins/codec/libdav1d_plugin.so
+usr/lib/*/vlc/plugins/codec/libdca_plugin.so
+usr/lib/*/vlc/plugins/codec/libddummy_plugin.so
+usr/lib/*/vlc/plugins/codec/libdvbsub_plugin.so
+usr/lib/*/vlc/plugins/codec/libedummy_plugin.so
+usr/lib/*/vlc/plugins/codec/libfaad_plugin.so
+usr/lib/*/vlc/plugins/codec/libflac_plugin.so
+usr/lib/*/vlc/plugins/codec/libg711_plugin.so
+usr/lib/*/vlc/plugins/codec/libjpeg_plugin.so
+usr/lib/*/vlc/plugins/codec/libkate_plugin.so
+usr/lib/*/vlc/plugins/codec/liblibass_plugin.so
+usr/lib/*/vlc/plugins/codec/liblibmpeg2_plugin.so
+usr/lib/*/vlc/plugins/codec/liblpcm_plugin.so
+usr/lib/*/vlc/plugins/codec/libmpg123_plugin.so
+usr/lib/*/vlc/plugins/codec/liboggspots_plugin.so
+usr/lib/*/vlc/plugins/codec/libopus_plugin.so
+usr/lib/*/vlc/plugins/codec/libpng_plugin.so
+usr/lib/*/vlc/plugins/codec/librawvideo_plugin.so
+usr/lib/*/vlc/plugins/codec/librtpvideo_plugin.so
+usr/lib/*/vlc/plugins/codec/libscte18_plugin.so
+usr/lib/*/vlc/plugins/codec/libscte27_plugin.so
+usr/lib/*/vlc/plugins/codec/libshine_plugin.so
+usr/lib/*/vlc/plugins/codec/libspdif_plugin.so
+usr/lib/*/vlc/plugins/codec/libspeex_plugin.so
+usr/lib/*/vlc/plugins/codec/libspudec_plugin.so
+usr/lib/*/vlc/plugins/codec/libstl_plugin.so
+usr/lib/*/vlc/plugins/codec/libsubsdec_plugin.so
+usr/lib/*/vlc/plugins/codec/libsubstx3g_plugin.so
+usr/lib/*/vlc/plugins/codec/libsubsusf_plugin.so
+usr/lib/*/vlc/plugins/codec/libsvcdsub_plugin.so
+usr/lib/*/vlc/plugins/codec/libsvgdec_plugin.so
+usr/lib/*/vlc/plugins/codec/libt140_plugin.so
+usr/lib/*/vlc/plugins/codec/libtextst_plugin.so
+usr/lib/*/vlc/plugins/codec/libtheora_plugin.so
+usr/lib/*/vlc/plugins/codec/libttml_plugin.so
+usr/lib/*/vlc/plugins/codec/libtwolame_plugin.so
+usr/lib/*/vlc/plugins/codec/libuleaddvaudio_plugin.so
+usr/lib/*/vlc/plugins/codec/libvaapi_drm_plugin.so [libva]
+usr/lib/*/vlc/plugins/codec/libvaapi_plugin.so [libva]
+usr/lib/*/vlc/plugins/codec/libvorbis_plugin.so
+usr/lib/*/vlc/plugins/codec/libwebvtt_plugin.so
+usr/lib/*/vlc/plugins/codec/libx264_plugin.so
+usr/lib/*/vlc/plugins/codec/libx26410b_plugin.so
+usr/lib/*/vlc/plugins/codec/libx265_plugin.so
+usr/lib/*/vlc/plugins/codec/libxwd_plugin.so
+usr/lib/*/vlc/plugins/codec/libzvbi_plugin.so
+usr/lib/*/vlc/plugins/control/libdbus_plugin.so
+usr/lib/*/vlc/plugins/control/libdummy_plugin.so
+usr/lib/*/vlc/plugins/control/libgestures_plugin.so
+usr/lib/*/vlc/plugins/control/libhotkeys_plugin.so
+usr/lib/*/vlc/plugins/control/liblirc_plugin.so
+usr/lib/*/vlc/plugins/control/libmotion_plugin.so
+usr/lib/*/vlc/plugins/control/libnetsync_plugin.so
+usr/lib/*/vlc/plugins/control/liboldrc_plugin.so
+usr/lib/*/vlc/plugins/control/libxcb_hotkeys_plugin.so
+usr/lib/*/vlc/plugins/demux
+usr/lib/*/vlc/plugins/gui/libncurses_plugin.so
+usr/lib/*/vlc/plugins/keystore/libfile_keystore_plugin.so
+usr/lib/*/vlc/plugins/keystore/libkwallet_plugin.so
+usr/lib/*/vlc/plugins/keystore/libmemory_keystore_plugin.so
+usr/lib/*/vlc/plugins/keystore/libsecret_plugin.so
+usr/lib/*/vlc/plugins/logger/libconsole_logger_plugin.so
+usr/lib/*/vlc/plugins/logger/libfile_logger_plugin.so
+usr/lib/*/vlc/plugins/logger/libsd_journal_plugin.so [systemd]
+usr/lib/*/vlc/plugins/logger/libsyslog_plugin.so
+usr/lib/*/vlc/plugins/lua/liblua_plugin.so
+usr/lib/*/vlc/plugins/meta_engine
+usr/lib/*/vlc/plugins/misc/libaddonsfsstorage_plugin.so
+usr/lib/*/vlc/plugins/misc/libaddonsvorepository_plugin.so
+usr/lib/*/vlc/plugins/misc/libaudioscrobbler_plugin.so
+usr/lib/*/vlc/plugins/misc/libdbus_screensaver_plugin.so
+usr/lib/*/vlc/plugins/misc/libexport_plugin.so
+usr/lib/*/vlc/plugins/misc/libfingerprinter_plugin.so
+usr/lib/*/vlc/plugins/misc/libgnutls_plugin.so
+usr/lib/*/vlc/plugins/misc/liblogger_plugin.so
+usr/lib/*/vlc/plugins/misc/libstats_plugin.so
+usr/lib/*/vlc/plugins/misc/libvod_rtsp_plugin.so
+usr/lib/*/vlc/plugins/misc/libxdg_screensaver_plugin.so
+usr/lib/*/vlc/plugins/misc/libxml_plugin.so
+usr/lib/*/vlc/plugins/mux
+usr/lib/*/vlc/plugins/packetizer
+usr/lib/*/vlc/plugins/services_discovery/libavahi_plugin.so
+usr/lib/*/vlc/plugins/services_discovery/libmediadirs_plugin.so
+usr/lib/*/vlc/plugins/services_discovery/libmtp_plugin.so
+usr/lib/*/vlc/plugins/services_discovery/libpodcast_plugin.so
+usr/lib/*/vlc/plugins/services_discovery/libpulselist_plugin.so
+usr/lib/*/vlc/plugins/services_discovery/libsap_plugin.so
+usr/lib/*/vlc/plugins/services_discovery/libudev_plugin.so [udev]
+usr/lib/*/vlc/plugins/services_discovery/libupnp_plugin.so
+usr/lib/*/vlc/plugins/services_discovery/libxcb_apps_plugin.so
+usr/lib/*/vlc/plugins/spu/libaudiobargraph_v_plugin.so
+usr/lib/*/vlc/plugins/spu/libdynamicoverlay_plugin.so
+usr/lib/*/vlc/plugins/spu/liblogo_plugin.so
+usr/lib/*/vlc/plugins/spu/libmarq_plugin.so
+usr/lib/*/vlc/plugins/spu/libmosaic_plugin.so
+usr/lib/*/vlc/plugins/spu/libremoteosd_plugin.so
+usr/lib/*/vlc/plugins/spu/librss_plugin.so
+usr/lib/*/vlc/plugins/spu/libsubsdelay_plugin.so
+usr/lib/*/vlc/plugins/stream_extractor/libarchive_plugin.so
+usr/lib/*/vlc/plugins/stream_filter
+usr/lib/*/vlc/plugins/stream_out/libstream_out_autodel_plugin.so
+usr/lib/*/vlc/plugins/stream_out/libstream_out_bridge_plugin.so
+usr/lib/*/vlc/plugins/stream_out/libstream_out_chromaprint_plugin.so
+usr/lib/*/vlc/plugins/stream_out/libstream_out_chromecast_plugin.so [chromecast]
+usr/lib/*/vlc/plugins/stream_out/libstream_out_cycle_plugin.so
+usr/lib/*/vlc/plugins/stream_out/libstream_out_delay_plugin.so
+usr/lib/*/vlc/plugins/stream_out/libstream_out_description_plugin.so
+usr/lib/*/vlc/plugins/stream_out/libstream_out_display_plugin.so
+usr/lib/*/vlc/plugins/stream_out/libstream_out_dummy_plugin.so
+usr/lib/*/vlc/plugins/stream_out/libstream_out_duplicate_plugin.so
+usr/lib/*/vlc/plugins/stream_out/libstream_out_es_plugin.so
+usr/lib/*/vlc/plugins/stream_out/libstream_out_gather_plugin.so
+usr/lib/*/vlc/plugins/stream_out/libstream_out_mosaic_bridge_plugin.so
+usr/lib/*/vlc/plugins/stream_out/libstream_out_record_plugin.so
+usr/lib/*/vlc/plugins/stream_out/libstream_out_rtp_plugin.so
+usr/lib/*/vlc/plugins/stream_out/libstream_out_setid_plugin.so
+usr/lib/*/vlc/plugins/stream_out/libstream_out_smem_plugin.so
+usr/lib/*/vlc/plugins/stream_out/libstream_out_standard_plugin.so
+usr/lib/*/vlc/plugins/stream_out/libstream_out_stats_plugin.so
+usr/lib/*/vlc/plugins/stream_out/libstream_out_transcode_plugin.so
+usr/lib/*/vlc/plugins/text_renderer/libfreetype_plugin.so
+usr/lib/*/vlc/plugins/text_renderer/libtdummy_plugin.so
+usr/lib/*/vlc/plugins/video_chroma
+usr/lib/*/vlc/plugins/video_filter/libadjust_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libalphamask_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libanaglyph_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libantiflicker_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libball_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libblend_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libblendbench_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libbluescreen_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libcanvas_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libcolorthres_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libcroppadd_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libdeinterlace_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libedgedetection_plugin.so
+usr/lib/*/vlc/plugins/video_filter/liberase_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libextract_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libfps_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libfreeze_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libgaussianblur_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libgradfun_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libgradient_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libgrain_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libhqdn3d_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libinvert_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libmagnify_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libmirror_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libmotionblur_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libmotiondetect_plugin.so
+usr/lib/*/vlc/plugins/video_filter/liboldmovie_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libposterize_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libpostproc_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libpsychedelic_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libpuzzle_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libripple_plugin.so
+usr/lib/*/vlc/plugins/video_filter/librotate_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libscale_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libscene_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libsepia_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libsharpen_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libtransform_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libvhs_plugin.so
+usr/lib/*/vlc/plugins/video_filter/libwave_plugin.so
+usr/lib/*/vlc/plugins/video_output/libfb_plugin.so [fb]
+usr/lib/*/vlc/plugins/video_output/libvdummy_plugin.so
+usr/lib/*/vlc/plugins/video_output/libvmem_plugin.so
+usr/lib/*/vlc/plugins/video_output/libyuv_plugin.so
+EOF
--- /dev/null
+usr/lib/*/vlc/plugins/codec/libfluidsynth_plugin.so
--- /dev/null
+usr/lib/*/vlc/plugins/access/libaccess_jack_plugin.so
+usr/lib/*/vlc/plugins/audio_output/libjack_plugin.so
--- /dev/null
+usr/lib/*/vlc/plugins/notify/libnotify_plugin.so
--- /dev/null
+usr/bin/qvlc
+usr/lib/*/vlc/plugins/gui/libqt_plugin.so
--- /dev/null
+/usr/share/man/man1/vlc.1.gz /usr/share/man/man1/qvlc.1.gz
--- /dev/null
+# Lintian fails to detect UTF-8 names (bug #588661)
+vlc-plugin-qt binary: spelling-error-in-binary usr/lib/*/vlc/plugins/gui/libqt_plugin.so ment meant
--- /dev/null
+usr/lib/*/vlc/plugins/access/libsmb_plugin.so
--- /dev/null
+usr/bin/svlc
+usr/lib/*/vlc/plugins/gui/libskins2_plugin.so
+usr/share/vlc/skins2
--- /dev/null
+/usr/share/man/man1/vlc.1.gz /usr/share/man/man1/svlc.1.gz
--- /dev/null
+usr/lib/*/vlc/plugins/text_renderer/libsvg_plugin.so
--- /dev/null
+#!/bin/bash
+exec python3 $(dirname $0)/filter-plugin.py <<EOF
+usr/lib/*/vlc/libvlc_vdpau.so*
+usr/lib/*/vlc/libvlc_xcb_events.so*
+usr/lib/*/vlc/plugins/vaapi/libvaapi_filters_plugin.so [libva]
+usr/lib/*/vlc/plugins/vdpau
+usr/lib/*/vlc/plugins/video_output/libaa_plugin.so
+usr/lib/*/vlc/plugins/video_output/libcaca_plugin.so
+usr/lib/*/vlc/plugins/video_output/libegl_wl_plugin.so [wayland]
+usr/lib/*/vlc/plugins/video_output/libegl_x11_plugin.so
+usr/lib/*/vlc/plugins/video_output/libflaschen_plugin.so
+usr/lib/*/vlc/plugins/video_output/libgl_plugin.so
+usr/lib/*/vlc/plugins/video_output/libglconv_vaapi_drm_plugin.so [libva]
+usr/lib/*/vlc/plugins/video_output/libglconv_vaapi_wl_plugin.so [libva,wayland]
+usr/lib/*/vlc/plugins/video_output/libglconv_vaapi_x11_plugin.so [libva]
+usr/lib/*/vlc/plugins/video_output/libglconv_vdpau_plugin.so
+usr/lib/*/vlc/plugins/video_output/libgles2_plugin.so
+usr/lib/*/vlc/plugins/video_output/libglx_plugin.so
+usr/lib/*/vlc/plugins/video_output/libwl_shell_plugin.so [wayland]
+usr/lib/*/vlc/plugins/video_output/libwl_shm_plugin.so [wayland]
+usr/lib/*/vlc/plugins/video_output/libxcb_window_plugin.so
+usr/lib/*/vlc/plugins/video_output/libxcb_x11_plugin.so
+usr/lib/*/vlc/plugins/video_output/libxcb_xv_plugin.so
+usr/lib/*/vlc/plugins/video_output/libxdg_shell_plugin.so [wayland]
+EOF
--- /dev/null
+usr/lib/*/vlc/plugins/video_splitter
--- /dev/null
+usr/lib/*/vlc/plugins/visualization
--- /dev/null
+AUTHORS
+README
+THANKS
--- /dev/null
+usr/share/applications
+usr/share/metainfo
+usr/share/solid
--- /dev/null
+# The vlc executable is in vlc-bin but the .desktop file is only relevant to vlc(-with-x)
+vlc binary: desktop-command-not-in-package usr/share/applications/vlc.desktop usr/bin/vlc
--- /dev/null
+video/mpeg; vlc %s; description="MPEG Video"; test=test -n "$DISPLAY"; priority=7
+video/mpeg; vlc -I rc -V caca %s; needsterminal; description="MPEG Video"; priority=4
+video/x-mpeg; vlc %s; description="MPEG Video"; test=test -n "$DISPLAY"; priority=7
+video/x-mpeg; vlc -I rc -V caca %s; needsterminal; description="MPEG Video"; priority=4
+video/mpeg-system; vlc %s; description="MPEG Video"; test=test -n "$DISPLAY"; priority=7
+video/mpeg-system; vlc -I rc -V caca %s; needsterminal; description="MPEG Video"; priority=4
+video/x-mpeg-system; vlc %s; description="MPEG Video"; test=test -n "$DISPLAY"; priority=7
+video/x-mpeg-system; vlc -I rc -V caca %s; needsterminal; description="MPEG Video"; priority=4
+
+audio/x-wav; vlc %s; description="WAV Audio"; nametemplate=%s.wav; test=test -n "$DISPLAY"; priority=7
+audio/x-wav; vlc -I rc -V caca %s; nametemplate=%s.wav; needsterminal; description="WAV Audio"; priority=4
+
+video/mpeg4; vlc %s; description="MPEG-4 Video"; test=test -n "$DISPLAY"; priority=7
+video/mpeg4; vlc -I rc -V caca %s; needsterminal; description="MPEG-4 Video"; priority=4
+audio/mpeg; vlc %s; description="MPEG Audio"; nametemplate=%s.mpg; test=test -n "$DISPLAY"; priority=7
+audio/mpeg; vlc -I rc -V caca %s; nametemplate=%s.mpg; needsterminal; description="MPEG Audio"; priority=4
+audio/mpegurl; vlc %s; description="MPEG Audio URL"; nametemplate=%s.m3u; test=test -n "$DISPLAY"; priority=7
+audio/mpegurl; vlc -I rc -V caca %s; nametemplate=%s.m3u; needsterminal; description="MPEG Audio URL"; priority=4
+audio/x-mp3; vlc %s; nametemplate=%s.mp3; description="MPEG Audio"; test=test -n "$DISPLAY"; priority=7
+audio/x-mp3; vlc -I rc -V caca %s; nametemplate=%s.mp3; needsterminal; description="MPEG Audio"; priority=4
+audio/mpeg4; vlc %s; description="MPEG-4 Audio"; test=test -n "$DISPLAY"; priority=7
+audio/mpeg4; vlc -I rc -V caca %s; needsterminal; description="MPEG-4 Audio"; priority=4
+application/mpeg4-iod; vlc %s; description="MPEG-4 Video"; test=test -n "$DISPLAY"; priority=7
+application/mpeg4-iod; vlc -I rc -V caca %s; needsterminal; description="MPEG-4 Video"; priority=4
+application/mpeg4-muxcodetable; vlc %s; description="MPEG-4 Video"; test=test -n "$DISPLAY"; priority=7
+application/mpeg4-muxcodetable; vlc -I rc -V caca %s; needsterminal; description="MPEG-4 Video"; priority=4
+
+video/x-msvideo; vlc %s; description="MS Video (AVI)"; test=test -n "$DISPLAY"; priority=4
+video/x-msvideo; vlc -I rc -V caca %s; needsterminal; description="MS Video (AVI)"; priority=3
+
+video/quicktime; vlc %s; description="Apple Quicktime Video"; test=test -n "$DISPLAY"; priority=4
+video/quicktime; vlc -I rc -V caca %s; needsterminal; description="Apple Quicktime Video"; priority=3
+
+application/ogg; vlc %s; nametemplate=%s.ogg; description="Ogg stream"; test=test -n "$DISPLAY"; priority=4
+application/ogg; vlc -I rc -V caca %s; nametemplate=%s.ogg; needsterminal; description="Ogg stream"; priority=3
+application/x-ogg; vlc %s; nametemplate=%s.ogg; description="Ogg stream"; test=test -n "$DISPLAY"; priority=4
+application/x-ogg; vlc -I rc -V caca %s; nametemplate=%s.ogg; needsterminal; description="Ogg stream"; priority=3
+video/ogg; vlc %s; description="Ogg Video"; test=test -n "$DISPLAY"; priority=4
+video/ogg; vlc -I rc -V caca %s; needsterminal; description="Ogg Video"; priority=3
+
+application/x-ms-asf-plugin; vlc %s; description="Windows Media Video"; test=test -n "$DISPLAY"; priority=4
+application/x-ms-asf-plugin; vlc -I rc -V caca %s; needsterminal; description="Windows Media Video"; priority=3
+application/x-mplayer2; vlc %s; description="Windows Media"; test=test -n "$DISPLAY"; priority=4
+application/x-mplayer2; vlc -I rc -V caca %s; needsterminal; description="Windows Media"; priority=3
--- /dev/null
+version=4
+opts=pgpsigurlmangle=s/$/.asc/ \
+https://download.videolan.org/pub/videolan/vlc/([\d][\d\.]+[a-z]?)/vlc-([\d][\d\.]+[a-z]?)\.tar\.xz