vlc (3.0.21-6) unstable; urgency=medium
authorSebastian Ramacher <sramacher@debian.org>
Tue, 14 Jan 2025 22:09:47 +0000 (23:09 +0100)
committerSebastian Ramacher <sramacher@debian.org>
Tue, 14 Jan 2025 22:09:47 +0000 (23:09 +0100)
  * 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)

[dgit import unpatched vlc 3.0.21-6]

178 files changed:
1  2 
debian/bug-control
debian/bug-presubj
debian/changelog
debian/clean
debian/control
debian/copyright
debian/filter-plugin.py
debian/gbp.conf
debian/libvlc-bin.install
debian/libvlc-bin.lintian-overrides
debian/libvlc-bin.postinst.in
debian/libvlc-bin.prerm.in
debian/libvlc-dev.examples
debian/libvlc-dev.install
debian/libvlc5.install
debian/libvlc5.symbols
debian/libvlccore-dev.install
debian/libvlccore9.install
debian/libvlccore9.symbols
debian/patches/0001-configure-fix-linking-on-RISC-V-ISA.patch
debian/patches/0002-Do-not-generate-cache-during-build.patch
debian/patches/0003-Bump-module-ABI-for-time_t-transition.patch
debian/patches/0004-demux-image-detect-ICC-profile-before-JFIF-data.patch
debian/patches/0005-demux-avi-do-not-set-up-invalid-bitsperpixel.patch
debian/patches/0006-opus_header-fix-channel-mapping-family-1-parsing.patch
debian/patches/0007-vlc_common-remove-warnings-on-VLC_OBJECT.patch
debian/patches/0008-transcode-fix-destructive-assignment-after-drain.patch
debian/patches/0009-transcode-fix-picture-fifo-leak.patch
debian/patches/0010-sftp-fix-seek-for-large-files-on-32-bit-OS.patch
debian/patches/0011-qt-hardcode-the-name-of-the-shortcut-for-the-AMD-VQ-.patch
debian/patches/0012-packetizer-h264-fix-reading-prediction-weight-tables.patch
debian/patches/0013-demux-adaptive-fix-start-with-indexes-only.patch
debian/patches/0014-UPnP-remove-SAT-IP-channel-list-fallback.patch
debian/patches/0015-spectrogram-fix-FFT-result-scaling-factor.patch
debian/patches/0016-spectrogram-convert-int16-to-unsigned-for-correct-ra.patch
debian/patches/0017-spectrogram-allows-better-visualization-of-low-frequ.patch
debian/patches/0018-magnify-check-the-image-conversion-worked.patch
debian/patches/0019-opencv-check-the-image-conversion-worked.patch
debian/patches/0020-packetizer-hxxx_common-rename-function-pointer.patch
debian/patches/0021-packetizer-hxxx-pass-opaque-to-callbacks-instead-of-.patch
debian/patches/0022-packetizer-hxxx-add-missing-drain-for-non-annexb-con.patch
debian/patches/0023-demux-asf-add-missing-subpayloads-drain-on-EOF.patch
debian/patches/0024-demux-AVI-insert-packetizer-for-XVID-MPEG-4-video.patch
debian/patches/0025-codec-videotoolbox-remove-sw-decoder-fallback-for-mp.patch
debian/patches/0026-Use-vlc_fourcc_GetCodec-to-map-XVID-to-MP4V.patch
debian/patches/0027-dav1d-treat-RGB-formats-separately.patch
debian/patches/0028-dav1d-add-dav1d-all-layers-flag.patch
debian/patches/0029-dts_header-initialize-SUBSTREAM_LBR-size-to-0.patch
debian/patches/0030-packetizer-dts-check-for-frame_size-for-the-first-sy.patch
debian/patches/0031-aom-make-BGR-matching-stricter.patch
debian/patches/0032-taglib-.m4v-are-already-registered-as-MP4-files.patch
debian/patches/0033-modules-taglib-simplify-reading-embedded-art.patch
debian/patches/0034-taglib-IOStream-Return-the-url-as-fileName.patch
debian/patches/0035-taglib-Always-use-IOStream-to-read-the-media.patch
debian/patches/0036-taglib-Enable-prefetch-cache-on-the-IOStream.patch
debian/patches/0037-taglib-fix-Wdeprecated-copy-warnings.patch
debian/patches/0038-meta_engine-taglib-increment-VlcIostream-readpos.patch
debian/patches/0039-meta_engine-taglib-reject-read-on-failed-seek.patch
debian/patches/0040-meta_engine-taglib-add-sequential-read-limit-on-VlcI.patch
debian/patches/0041-meta_engine-taglib-restrict-unlimited-reads-on-strea.patch
debian/patches/0042-meta-taglib-reject-non-expected-schemes.patch
debian/patches/0043-taglib-fix-variable-shadowing.patch
debian/patches/0044-taglib-Don-t-convert-base64-strings-to-UTF8.patch
debian/patches/0045-taglib-ByteVector-null-is-now-deprecated.patch
debian/patches/0046-taglib-Remove-usages-of-deprecated-itemListMap.patch
debian/patches/0047-taglib-Remove-use-of-deprecated-String-isNull.patch
debian/patches/0048-taglib-Remove-explicit-invocation-of-default-constru.patch
debian/patches/0049-taglib-Implement-new-StreamTypeResolver-interface-wh.patch
debian/patches/0050-taglib-Use-nullptr-instead-of-0-for-pointers.patch
debian/patches/0051-taglib-Fix-invalid-version-check.patch
debian/patches/0052-meta-taglib-use-std-min.patch
debian/patches/0053-taglib-don-t-cast-the-file-st_size-to-a-possibly-sma.patch
debian/patches/0054-taglib-remove-VLC-path-define-check.patch
debian/patches/0055-Taglib-Use-ID3v2Tag-instead-of-tag-for-RIFF-WAV-File.patch
debian/patches/0056-lua-don-t-use-operator-on-VLC-errors.patch
debian/patches/0057-demux-mkv-fix-link-to-ALAC-documentation.patch
debian/patches/0058-demux-mkv-write-the-actual-extra-data-size-in-the-AL.patch
debian/patches/0059-demux-mkv-handle-mkv-use-chapter-codec-option.patch
debian/patches/0060-hw-amf-keep-the-AMF-version-in-the-context.patch
debian/patches/0061-archive-Add-support-for-RAR-5.0-format.patch
debian/patches/0062-archive-fix-the-type-used-for-libarchive_skip_cb.patch
debian/patches/0063-stream_extractor-set-correct-offset-on-read-failure.patch
debian/patches/0064-hw-amf-let-the-AMF-system-know-what-version-was-used.patch
debian/patches/0065-avcodec-avoid-signedness-mismatch-warning.patch
debian/patches/0066-avcodec-use-p_dec-fmt_out-instead-of-context-channel.patch
debian/patches/0067-avcodec-audio-decoder-to-use-ch_layout.patch
debian/patches/0068-avcodec-use-p_enc-audio-channels-instead-of-context-.patch
debian/patches/0069-codec-avcodec-map-AYUV-as-RAWVIDEO-with-ffmpeg-6.0.patch
debian/patches/0070-avcodec-encoder-fix-channel_layout-conditionals.patch
debian/patches/0071-codec-avcodec-fix-audio-channel_layout-conditionals.patch
debian/patches/0072-demux-mux-avformat-use-ch_layout-from-ffmpeg-5.1.patch
debian/patches/0073-avcodec-add-handling-of-new-ch_layout-in-audio-encod.patch
debian/patches/0074-avcodec-use-ch_layout-for-channel-layout-in-audio-en.patch
debian/patches/0075-codec-avcodec-bypass-removed-define-for-Intel-workar.patch
debian/patches/0076-codec-x265-handle-X265_MAX_FRAME_THREADS-on-newer-CP.patch
debian/patches/0077-codec-x265-handle-4.0-encoding-API-change.patch
debian/patches/0078-mux-avformat-fix-avio-callbacks-signature-with-ffmpe.patch
debian/patches/0079-fetcher-don-t-download-network-metadata-if-the-user-.patch
debian/patches/0080-hds-fix-crash-if-bootstrap-data-or-URL-are-missing.patch
debian/patches/0081-qt-add-option-to-use-dark-palette.patch
debian/patches/0082-avcommon-rename-LIBAVUTIL_VERSION_CHECK-to-LIBAV_UTI.patch
debian/patches/0083-avcommon-use-a-specific-macro-to-check-the-FFmpeg-li.patch
debian/patches/0084-avcommon-rename-LIBAVFORMAT_VERSION_CHECK-to-LIBAV_F.patch
debian/patches/0085-avcommon-use-a-specific-macro-to-check-the-FFmpeg-li.patch
debian/patches/0086-avcommon-rename-LIBAVCODEC_VERSION_CHECK-to-LIBAV_CO.patch
debian/patches/0087-avcommon-use-a-specific-macro-to-check-the-FFmpeg-li.patch
debian/patches/0088-codec-avcodec-check-open-codec-return-value.patch
debian/patches/0089-avcodec-use-ARRAY_SIZE-instead-of-custom-code.patch
debian/patches/0090-avcodec-audio-make-channel-mapping-array-0-terminate.patch
debian/patches/0091-codec-avcodec-fix-ch_layout-requirement.patch
debian/patches/0092-ffmpeg-fix-libavutil-version-check-for-av_channel_la.patch
debian/patches/0093-ffmpeg-fix-libavcodec-version-check-for-AVCodecParam.patch
debian/patches/0094-avcodec-fix-libavcodec-version-check-for-AVCodecCont.patch
debian/patches/0095-ffmpeg-fix-libavutil-version-check-for-AVFrame.ch_la.patch
debian/patches/0096-avcodec-add-a-define-to-test-for-AVCodecContext.ch_l.patch
debian/patches/0097-configure-use-host_cpu-where-applicable.patch
debian/patches/0098-demux-mkv-use-the-internal-USF-FourCC-value.patch
debian/patches/0099-demux-mkv-use-the-internal-QDMC-FourCC-value.patch
debian/patches/0100-demux-mkv-add-missing-helpers-from-libebml-2.0.patch
debian/patches/0101-demux-mkv-read-data-from-KaxBlockAdditions-as-const.patch
debian/patches/0102-demux-mkv-don-t-expose-local-BlockDecode-function.patch
debian/patches/0103-demux-mkv-fix-potential-leak-of-KaxBlockAdditions-wh.patch
debian/patches/0104-qt-PodcastConfiguration-inherits-QDialog-not-QWidget.patch
debian/patches/0105-musicbrainz-fix-leak.patch
debian/patches/0106-es_out_timeshift-explicitely-use-GetTempPathW.patch
debian/patches/0107-demux-mkv-don-t-use-EbmlDummy-elements-coming-out-of.patch
debian/patches/0108-packetizer-av1-fill-the-full-extradata-if-it-doesn-t.patch
debian/patches/0109-demux-mkv-force-the-packetizer-to-fill-AV1-extradata.patch
debian/patches/0110-demux-mp4-force-the-packetizer-to-fill-AV1-extradata.patch
debian/patches/0111-mediacodec-set-color-keys-in-media-format-explicitly.patch
debian/patches/0112-access-v4l2-add-support-for-V4L2_PIX_FMT_ABGR32-and-.patch
debian/patches/0113-interop_vaapi-fix-mem-leak-while-pause.patch
debian/patches/0114-qt-remove-unused-meta_to_mlmeta.patch
debian/patches/0115-qt-fix-IN_ITEM_ROLE-documentation.patch
debian/patches/0116-qt-remove-deprecated-QPainter-HighQualityAntialiasin.patch
debian/patches/0117-qt-fix-bitfield-added-values-set-in-QVariant.patch
debian/patches/0118-qt-fix-UTF-8-string-usage.patch
debian/patches/0119-qt-add-missing-QActionGroup-include.patch
debian/patches/0120-qt-use-QLayout-setContentsMargins-instead-of-QLayout.patch
debian/patches/0121-qt-use-QString-setNum-rather-than-QString-sprintf.patch
debian/patches/0122-qt-use-QString-arg-rather-than-QString-sprintf.patch
debian/patches/0123-qt-use-std-sort-instead-of-deprecated-qSort.patch
debian/patches/0124-avcodec-vaapi-Support-VAAPI-with-latest-FFmpeg.patch
debian/patches/series
debian/rules
debian/source/format
debian/source/lintian-overrides
debian/source_vlc.py
debian/tests/control
debian/tests/vlc
debian/tests/vlc-all
debian/tests/vlc-bin
debian/upstream/metadata
debian/upstream/signing-key.asc
debian/vlc-bin.install
debian/vlc-bin.links
debian/vlc-data.install
debian/vlc-l10n.install
debian/vlc-plugin-access-extra.install
debian/vlc-plugin-base.install
debian/vlc-plugin-fluidsynth.install
debian/vlc-plugin-jack.install
debian/vlc-plugin-notify.install
debian/vlc-plugin-qt.install
debian/vlc-plugin-qt.links
debian/vlc-plugin-qt.lintian-overrides
debian/vlc-plugin-samba.install
debian/vlc-plugin-skins2.install
debian/vlc-plugin-skins2.links
debian/vlc-plugin-svg.install
debian/vlc-plugin-video-output.install
debian/vlc-plugin-video-splitter.install
debian/vlc-plugin-visualization.install
debian/vlc.docs
debian/vlc.install
debian/vlc.lintian-overrides
debian/vlc.mime
debian/watch

index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..e3a04092d4a986aef72893aab74e3466f95811ae
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..c985627d01668f5413dbc5bd9c73380e1053ec21
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,27 @@@
++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.
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8ddab57a001c69febabfe270c9a90fa2896023d1
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,4340 @@@
++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
diff --cc debian/clean
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..3f6a7c63a9534f67a1b8a7520ec0d78ebfba38d6
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,14 @@@
++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
diff --cc debian/control
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..2f947d2f3df73d95569a2f6d2598e6ca4050e9aa
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,487 @@@
++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.
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..ae9b16146089799d958b0959b6e62d98310df980
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1542 @@@
++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.
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..84a007c5604fb762ffce293a3da815aabbca99f7
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,31 @@@
++#!/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)
diff --cc debian/gbp.conf
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..73ff49d06f733906446496ed3d0d6e4605d8c3d7
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,8 @@@
++[DEFAULT]
++debian-branch = master
++upstream-branch = upstream
++pristine-tar = True
++compression = xz
++
++[dch]
++meta = True
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..a296739a6d4e68b7a3f0302589e00518a66ae842
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++usr/lib/*/vlc/vlc-cache-gen
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..7d05e12701acdae98cbc7b365f8138a3f7b8686f
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,2 @@@
++# Maintainer scripts create plugins.dat there.
++libvlc-bin binary: package-contains-empty-directory usr/lib/*/vlc/plugins/
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..59da0869f6db13319c82bfe55a3bfad356bad290
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,34 @@@
++#!/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#
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..28ac6dc32d4d104bc8e7208b326a82e2eee2a824
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,10 @@@
++#! /bin/sh
++set -e
++
++#DEBHELPER#
++
++case "$1" in
++    remove)
++        rm -f /usr/lib/#DEB_HOST_MULTIARCH#/vlc/plugins/plugins.dat
++        ;;
++esac
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..9bdd87c48cad0fff3673524df0731397ae61749f
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,5 @@@
++doc/libvlc/QtPlayer
++doc/libvlc/gtk_player.c
++doc/libvlc/libvlc_DVD_ripper.c
++doc/libvlc/vlc-thumb.c
++doc/libvlc/wx_player.cpp
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..ffaa00c93307054b85f362803642aa1e28b0307f
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,3 @@@
++usr/include/vlc/*.h
++usr/lib/*/libvlc.so
++usr/lib/*/pkgconfig/libvlc.pc
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..2137b9019912f21790a384fec637cd2caa172a26
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++usr/lib/*/libvlc.so.*
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..2a84ca607dcc155d76f51339a8c2ead3f4edacb2
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,314 @@@
++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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..b90fe24bbf655f13e79cb28443157505265405ca
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,4 @@@
++usr/include/vlc/plugins/*.h
++usr/lib/*/libvlccore.so
++usr/lib/*/pkgconfig/vlc-plugin.pc
++usr/lib/*/vlc/libcompat.a
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8066c95ab6244e6860a71d5ac39242929919af19
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++usr/lib/*/libvlccore.so.*
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..48a118df71ff77c9ca8b2d29ce2ed2a3914a36aa
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,762 @@@
++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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d48636ca22f42730aad2937060b04cab7e276091
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,20 @@@
++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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..3c3297892375d2e39a65f1bdc394a3b20572bc5c
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,72 @@@
++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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..0a06d87812e6a9a1afc18b00573ace50cb14e683
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,23 @@@
++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.
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d9de9fbfdba6faf5c85c4f08b4d53d6db65fb80d
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,42 @@@
++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 */
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..dfdf5d7eb75248104ae2b72c4af5f853018b046c
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,25 @@@
++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;
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..c276c6c7d0ef8d787b50839821891222ea6553b0
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,24 @@@
++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;
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..33ccb0c673e6950168070d507917bc16353f1e3a
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,33 @@@
++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)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..3ad33c5e970beaa42b0f84d90cb126ae26a9f8ef
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,42 @@@
++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 );
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..99d9c11ff65ec9f0d1a6c55137fe34fc601161e7
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,42 @@@
++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 )
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..05bfa8b21c18517611adc58be8a3987b27558100
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,22 @@@
++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;
++ }
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..aacb32a9df068d15f6236fc0e8e84215bf9afa7e
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,34 @@@
++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 )
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d07821358a03abdbc6c05eb8e05757eeac4c8eab
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,52 @@@
++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 */
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..f661cd4b8ade13b13f86b521d014387b3ee69f8b
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,59 @@@
++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))
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d78d3e0e7bd8283b43b40bb44a13b1686bb3b27c
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,194 @@@
++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 )
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..c75d7592e2b6de6c17c0feb8197e641fdde058cb
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,85 @@@
++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;
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..2e0b9dbc0551fd655cb91809ffed06df045d166c
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,51 @@@
++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 */
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d5f07328acd19acd70552d71d6392f7355f5b728
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,67 @@@
++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;
++         }
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..0a53a82be128e5b98cc1c9f6dcd1b4f438960c0f
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,44 @@@
++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 );
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..aaa563e214ace7ba5857c80931b218ff1f09527a
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,38 @@@
++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 );
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..20821b9aefff9221102f30aba327a09eacd3a5bb
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,39 @@@
++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
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..b0c096d09ce61bbf943879c11016eb93c11a30bb
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,116 @@@
++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
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..0f37185b617f4f067ff440a13fc62dc384cb4207
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,78 @@@
++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
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..7138d490fbf5b088468cbd68e0be673b6ab17094
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,31 @@@
++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 )
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..6e99e38d0964edf9ac13945c8b3428ed25e9790d
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,26 @@@
++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 */
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..86c76f21290a74c9c69a11fae795590a5f588d7c
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,29 @@@
++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;
++         }
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..a543b7a12ab9a7e8f7562345bd13c6c610e2c726
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,21 @@@
++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 ) )
++                     {
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..e52b83e7f8942ea8a389516ef50a1d896b975bc5
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,95 @@@
++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)
++     {
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..93539e4a1e6357adf533c4fa04745797cc93fdb9
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,45 @@@
++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;
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8b87099b29a2858ba577eb47cbfb289351d36689
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,26 @@@
++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;
++ }
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..e00102bf4896e0c044797c59a550e0cc7a50ef9b
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,26 @@@
++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 );
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..3460afbcee9a93b2a2452671645266f64608cc94
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,78 @@@
++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;
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..0054f0d63228f3e4e2e5f75aceb525b7f0f685ef
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,30 @@@
++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;
++     }
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..67f6bebb314a4ec03c64d4e2d81ded65fcbdd6c6
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,248 @@@
++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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..5aa17305244712b3543a4a46c7f6329e4f37fd66
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,27 @@@
++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)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8b98183bfd5b6110595527bad8e160d68a85f37b
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,87 @@@
++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;
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..bcbc85ca9ef0ad90647d143a112f8894d09b3623
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,26 @@@
++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 );
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8d4a27914016722a5d15b8586524a0bccd335187
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,125 @@@
++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,
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..28e2e17425de6be92de185a2c117428c33772e56
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,21 @@@
++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;
++     }
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..202e808efae06223773b70c58b7f754bec3faf28
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,72 @@@
++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 */
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..59e155afa006ffd3dd770ea869e096e3c4a9ac35
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,78 @@@
++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 */
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..dac57eff440213bc0a108bd25571cbc998cee63f
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,34 @@@
++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 );
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..b19796d1003e32d1f1819f1a330c5a5533d923e9
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,54 @@@
++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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..2224dc08a54b77ea5b7e3382807c9fde99045b3c
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,35 @@@
++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**),
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..6c7cc4f432f3d5bdfd66a40b8dbe1d32254d666c
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,35 @@@
++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,
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..f364c02115ab042dc98f322b7d2fd5e7b340620f
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,27 @@@
++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;
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..2e8ee3a558ef8631c0ec2ec476ba019b5998650f
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,48 @@@
++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",
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..16d3ef671bd846bd50efca67541b511ddb77c7aa
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,24 @@@
++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() )                                                      \
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8baf5de1b0905687e2133b7d2b2c12e361ee81b8
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,24 @@@
++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);
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..671656ff4c7418760df420d9f58bad8e90446e87
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,69 @@@
++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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8724bfcea9bc7b9ad2078ad07d17fa4189842372
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,22 @@@
++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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..e0d2a44fac6d0710c7359076e31828782c2dff73
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,22 @@@
++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
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..24ac8f6a59b3f5d7b32c633b48ea65a08beeda6c
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,22 @@@
++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 );
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..9fa217ad277ea713eb0ef036ba349cf3c05b15e4
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,24 @@@
++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 );
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..c3dfeb92e8370ecea610e1bed746160b109f312d
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,25 @@@
++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
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..2d0c11e4059189f584e5d23dd0527457286fe9e1
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,136 @@@
++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()) )
++     {
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..dee8a998c649d8cd6b95db558d16e968e68f898d
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,39 @@@
++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)",
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..55442f2e326df87108a9bef338f1b392035e212a
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,33 @@@
++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 )
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d0888de20df6c07978e4f837dab42329a5e5681b
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,26 @@@
++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 );
++ }
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..0fe5590de0afc4f21eef87238978186eed5cb0c5
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,27 @@@
++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++ )
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..c816e500a910f54bde8ce64ce02ce3f005d00131
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,52 @@@
++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;
++ };
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..cac34f2f0410c88b218e2c912ee1c49ac45867a0
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,29 @@@
++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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..ce4e10152ee32e35b914f769e93fc27d6f5d261d
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,24 @@@
++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 );
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..aba9c6b2d4b1723425f2fb0ff703e34d98193977
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,51 @@@
++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;
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d2c4e68378d1315a38bc1be002fc374ff2f9fca9
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,25 @@@
++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;
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..9ed5133a51656e83d1ae15517be492d558c02a65
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,27 @@@
++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 )
++     {
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..63752c2100f286e851195cac1aca5c2191fafcb8
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,61 @@@
++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 */
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..cb2ebabc9d4282c6a424eeb1100e718d92005a0a
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,109 @@@
++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 );
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..5d172847faef45a11d98ca6f0762f4f17c1b2946
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,121 @@@
++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;
++     }
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..c153686443f6d5dbd3bcd4765c3a9b93a946e958
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,27 @@@
++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 },
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..6092fed3d609122cdd681a9122e82a7c21b7091a
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,63 @@@
++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 =
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..add27326d819e3aed2610cfccf3bf180b97edd5a
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,60 @@@
++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 )
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..c25a72fe5887b2496c841e811b94aa8538cc85d0
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,43 @@@
++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) {
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d11d4f5dae9ea7d84551b1ad546d3576f5abaff4
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,58 @@@
++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;
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..b55fd618408cb25abfcaf3075f001ef88c1c595a
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,110 @@@
++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 )
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..424ce1125d1712c5f9ae6ab8d0607805e110c694
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,40 @@@
++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 **);
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..4cbca90aef5afb21edda1ff40fd9ec50ae01d91f
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,37 @@@
++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 */
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..80a503dbb4dd98c53015909d92bc35b9f7a4ddc1
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,41 @@@
++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;
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..e4be1773017bbf44a212a61f859c4895d2e0a4c3
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,78 @@@
++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;
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..ace955ae0a5ed64927fe47317c0ce774389796c3
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,29 @@@
++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 ) )
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..5c38d5481c5327b8c375bd42a7f17dd0c59fdef5
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,31 @@@
++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 ) ) )
++                     {
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d974f4aaa79c182d6f9e1cfec522594357f789a6
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,395 @@@
++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();
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8f5ce5b21bad4516d462212debc3d5c3bdaf005e
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,119 @@@
++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,
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..5b0e9facb76ec9f211bb3b85da3f8e99c9a0d60e
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,101 @@@
++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 );
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..63a6d284b5e50fb0e5a9e9e319b25e269f67b147
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,75 @@@
++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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..1d9e5409cc6811bacafb8b94483fdf54607d3029
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,103 @@@
++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;
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8406e77a72ebaaaf58e8fc1b94ff85525ce39b6d
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,214 @@@
++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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..9163f72fbe97d48831c5009eee52b1d1aec89e31
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,269 @@@
++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;
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..efc50653893bdb04486aca6749ed2555d7728fee
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,59 @@@
++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;
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..eac46af6a57107d9049dbb3460b554e33414dabe
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,22 @@@
++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;
++ }
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..24dee8ce47b4858dfe694f01738f3c3f0f891e16
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,45 @@@
++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] )
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..68873a49b4e4022507402d63fbe90d5bbac0469f
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,55 @@@
++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;
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..a9d2263194a9fb9a277c87a31c72644c4a202cfd
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,74 @@@
++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;
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..2fce396141c66c86a78936beb96589b841d1bb55
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,36 @@@
++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;
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..955b3e0effd7fa22638c1b53b800d7a179578839
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,36 @@@
++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;
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..ea19dcaba322ac89eeb996c54226bc64f98d51f9
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,29 @@@
++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;
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..18499374a47bb0d24ff86176e63e21bbc65eeb96
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,113 @@@
++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;
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..4f806615123b7a6f3ccf01da6f9ebb52378c3ca2
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,44 @@@
++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"
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..93719ad848069e8ae41408e77c9517c3ac704593
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,24 @@@
++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 );
++         }
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..e19c01dcc7cdfcf34e08d11fd627714aba267fbb
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,24 @@@
++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 );
++         }
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8e805ada333331a383606df1c475f5539bd7416f
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,35 @@@
++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;
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d96606ebf27402e0226c44955bc9f5944a982118
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,53 @@@
++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 );
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..88fd5e0bd02d91486a99b4605dba8a6492dde200
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,41 @@@
++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:
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..82b2dbfe86a9358c2f43f0febe076c555888af28
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,25 @@@
++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();
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..af6b4b8c53d1df78850cdfd589c3f99d0778f6a2
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,24 @@@
++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>
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..39d0f9fd1fcdf761dc22f8ded279077bc28a358c
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,27 @@@
++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;
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8d91a38068310e9e0e96010abb4c91ddab31f0cc
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,37 @@@
++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 );
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..38bedcac9db71260af07d0f6d2569f795d03f6f9
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,85 @@@
++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;
++     }
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..6a834f0ae8e27177b351cdfda00404211aec2441
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,31 @@@
++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,
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..03b430adc04fe5b83f52f96b079469e4f396e1d4
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,25 @@@
++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;
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..bec5ea800e5e813c15c6673b87b15d4324690701
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,27 @@@
++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;
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..ebf27e9f0db74b6489737b8e62cfc9b09b9df000
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,149 @@@
++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;
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..434b16b92ec3f54563ddd02f604e565c5659fef6
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,40 @@@
++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,    },
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..6f55e38017fd41b25bd4eeeffd6299414faaa9af
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,110 @@@
++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;
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..1ad3b23ef7768978e483902c5566485dcdeb2666
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,39 @@@
++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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..11d31efe758c8e99c29ca46df0852afc086d5997
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,21 @@@
++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,
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..06f30d406dbf2d04921521c21f31786ef66ac29f
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,28 @@@
++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() );
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8cbb47cd2a44e3a7ac502e12b40dfba45752de88
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,40 @@@
++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();
++ }
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d88bc0d89b30672a5e999f0a9285a58677ca7b78
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,22 @@@
++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;
++         }
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..b8d83e18ac931cf9e1716bb9bec73ed8c9cde82e
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,22 @@@
++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 )
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..ff107ffe933a2cf6c50a3c2b517f0c5604a4c721
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,226 @@@
++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 );
++     /* */
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..e3861a236b741f459059e1945ccc2d9ef875f60e
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,26 @@@
++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 );
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..49694d01ab4a68337727a0e46f62a8b18912ba7e
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,26 @@@
++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 |
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..92e4217c967bef290810185a514b89cb54575481
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,36 @@@
++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-- )
++         {
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8e7c99f6f2ae90d143975f83ee7cf7207e728201
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,145 @@@
++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;
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..e7d7d60a02215a5da0d7737bce96a54d05324be3
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,124 @@@
++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
diff --cc debian/rules
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..defa4dbbd3ee488dd476b01bc6c34bc62fb1d66f
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,337 @@@
++#!/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 --
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..163aaf8d82b6c54f23c45f32895dbdfdcc27b047
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++3.0 (quilt)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d90ff6a20d9ed377480cc91a7afc25353de2110b
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,7 @@@
++# 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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..fd039a6c8617f63843e4ff88a06d51f91307399e
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,26 @@@
++'''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",
++            ])
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..38de2606f3bf57d335152ff1c8ccd0024bb55cac
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,22 @@@
++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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..7659643626ef77184206e9265f19ce57c2f0db4c
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,13 @@@
++#!/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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d37c4ee219d8d4b22f779e767ea6f18e412e2ef0
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,4 @@@
++#!/bin/sh
++set -e
++
++vlc -vvv --ignore-config --list --no-color
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d37c4ee219d8d4b22f779e767ea6f18e412e2ef0
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,4 @@@
++#!/bin/sh
++set -e
++
++vlc -vvv --ignore-config --list --no-color
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..f561a0497184ab27839023aafb6a7acc552644d6
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,6 @@@
++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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..1091ddf2a8500adf4e88ccaac30291a0eeac33f0
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,25 @@@
++-----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-----
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..10900dac267fc84c1c61c64180a007d9cf9352c5
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,6 @@@
++usr/bin/cvlc
++usr/bin/nvlc
++usr/bin/rvlc
++usr/bin/vlc
++usr/bin/vlc-wrapper
++usr/share/man
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..55edb9054c0dc1aa33fe4985f95adf406edc7efe
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,3 @@@
++/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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..7fb0c491b536c467803a102d4afecbd4cebcdf12
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,6 @@@
++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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..363548064091a4d8d56ae4c40346327bfa8b75a1
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++usr/share/locale
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..a12655e29e1c77310ddfafc30ea2eabdf9a009ef
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,4 @@@
++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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..1c047df78d8ff0df62fe25ba0a82b66ebdcc69c5
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,235 @@@
++#!/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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..4e3e115b206188878d97e37c618e7cba1a385ead
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++usr/lib/*/vlc/plugins/codec/libfluidsynth_plugin.so
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..a9b5b214b947f27aceb51ee44cc189e0158f9154
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,2 @@@
++usr/lib/*/vlc/plugins/access/libaccess_jack_plugin.so
++usr/lib/*/vlc/plugins/audio_output/libjack_plugin.so
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d43dfbcc55b47d6b1e602c9db3820a168f8fce79
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++usr/lib/*/vlc/plugins/notify/libnotify_plugin.so
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..57fd31f95bd3862417e8bf6e6e88489a2c5b7d6a
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,2 @@@
++usr/bin/qvlc
++usr/lib/*/vlc/plugins/gui/libqt_plugin.so
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..174eae101514a22f55359e52527866b7bde37b1d
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++/usr/share/man/man1/vlc.1.gz /usr/share/man/man1/qvlc.1.gz
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..958f8a4a6bf22e09bb5cee8d4938ea1706d598c9
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,2 @@@
++# 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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..4c4648993716dfcd20a0ff851c848d4cedc8ccde
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++usr/lib/*/vlc/plugins/access/libsmb_plugin.so
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..bf3c311d27720c209ad45d43cdf159f47801ecd3
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,3 @@@
++usr/bin/svlc
++usr/lib/*/vlc/plugins/gui/libskins2_plugin.so
++usr/share/vlc/skins2
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..5faf4adc8bea133877645b4c91eba6c3af50ba3a
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++/usr/share/man/man1/vlc.1.gz /usr/share/man/man1/svlc.1.gz
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..49ba3703ff8f0fc4506830e2f45258f42416d91b
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++usr/lib/*/vlc/plugins/text_renderer/libsvg_plugin.so
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..4a9bf50e8d839f203674b53ea63691bd59b6f1cd
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,25 @@@
++#!/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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..667e40b3b5af7624ba654ebe03da827b220f0082
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++usr/lib/*/vlc/plugins/video_splitter
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..ca4fb06950c150bfe80545ecad20cc22d14ed984
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++usr/lib/*/vlc/plugins/visualization
diff --cc debian/vlc.docs
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..93625aa288fe7edef23c8124c669ddaf6d9243eb
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,3 @@@
++AUTHORS
++README
++THANKS
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..3423c11ffcc52e3f273e2c1cddefa7eaa5cfaf35
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,3 @@@
++usr/share/applications
++usr/share/metainfo
++usr/share/solid
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8c02be1c76bf909683dcd136faa1dd25364862af
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,2 @@@
++# 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
diff --cc debian/vlc.mime
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..4b00753158a785955442126a22ab97b1d5dc2a60
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,44 @@@
++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
diff --cc debian/watch
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..ed71a926fc70be2b9ab206f7984991edf4df3b1e
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,3 @@@
++version=4
++opts=pgpsigurlmangle=s/$/.asc/ \
++https://download.videolan.org/pub/videolan/vlc/([\d][\d\.]+[a-z]?)/vlc-([\d][\d\.]+[a-z]?)\.tar\.xz