From c11b047c1e0005f9f1af3ddd6438fecc8cd22dca47acbe01a368315d9402dca3 Mon Sep 17 00:00:00 2001 From: Luigi Baldoni Date: Tue, 16 Sep 2025 09:32:21 +0200 Subject: [PATCH 01/15] Delete subtitlecomposer.spec --- subtitlecomposer.spec | 127 ------------------------------------------ 1 file changed, 127 deletions(-) delete mode 100644 subtitlecomposer.spec diff --git a/subtitlecomposer.spec b/subtitlecomposer.spec deleted file mode 100644 index 3e49616..0000000 --- a/subtitlecomposer.spec +++ /dev/null @@ -1,127 +0,0 @@ -# -# spec file for package subtitlecomposer -# -# Copyright (c) 2024 SUSE LLC -# -# All modifications and additions to the file contributed by third parties -# remain the property of their copyright owners, unless otherwise agreed -# upon. The license for this file, and modifications and additions to the -# file, is the same license as for the pristine package itself (unless the -# license for the pristine package is not an Open Source License, in which -# case the license is the MIT License). An "Open Source License" is a -# license that conforms to the Open Source Definition (Version 1.9) -# published by the Open Source Initiative. - -# Please submit bugfixes or comments via https://bugs.opensuse.org/ -# - - -Name: subtitlecomposer -Version: 0.8.1 -Release: 0 -Summary: A text-based subtitle editor -License: GPL-2.0-or-later -Group: Productivity/Multimedia/Video/Editors and Convertors -URL: https://invent.kde.org/multimedia/subtitlecomposer -Source0: https://download.kde.org/stable/subtitlecomposer/%{name}-%{version}.tar.xz -Source1: https://download.kde.org/stable/subtitlecomposer/%{name}-%{version}.tar.xz.sig -Source2: subtitlecomposer.keyring -# PATCH-FIX-UPSTREAM refreshment of ffmpeg related code -Patch0: 0001-Replaced-deprecated-FFmpeg-channel-layout-code.patch -Patch1: 0002-VideoPlayer-check-AVFMT_NO_BYTE_SEEK-flag-for-seek_b.patch -Patch2: 0003-VideoPlayer-drop-an-unused-function-argument.patch -Patch3: 0004-VideoPlayer-stop-using-AVFrame.pkt_pos.patch -Patch4: 0005-VideoPlayer-remove-usage-of-internal-AVInputFormat.r.patch -Patch5: 0006-VideoPlayer-stop-injecting-stream-side-data-in-packe.patch -Patch6: 0007-VideoPlayer-check-return-of-swr_alloc_set_opts2.patch -Patch7: 0008-StreamProcessor-stop-using-pkt_duration.patch -Patch8: 0009-StreamProcessor-stop-using-AVFrame-duration.patch -Patch9: 0010-Require-FFmpeg-5.1.5.patch -# PATCH-FIX-UPSTREAM https://invent.kde.org/multimedia/subtitlecomposer/-/merge_requests/48 -Patch10: use-pocketsphinx-5.0.0-api.patch -BuildRequires: cmake >= 3.10 -BuildRequires: extra-cmake-modules -BuildRequires: libQt5Widgets-private-headers-devel -BuildRequires: pkgconfig -BuildRequires: update-desktop-files -BuildRequires: cmake(KF5Auth) -BuildRequires: cmake(KF5Codecs) -BuildRequires: cmake(KF5Config) -BuildRequires: cmake(KF5ConfigWidgets) -BuildRequires: cmake(KF5CoreAddons) -BuildRequires: cmake(KF5I18n) -BuildRequires: cmake(KF5KIO) -BuildRequires: cmake(KF5Kross) -BuildRequires: cmake(KF5Sonnet) -BuildRequires: cmake(KF5TextWidgets) -BuildRequires: cmake(KF5WidgetsAddons) -BuildRequires: cmake(KF5XmlGui) -BuildRequires: cmake(Qt5Core) -BuildRequires: cmake(Qt5Gui) -BuildRequires: cmake(Qt5Qml) -BuildRequires: cmake(Qt5Test) -BuildRequires: cmake(Qt5Widgets) -BuildRequires: pkgconfig(icu-i18n) -BuildRequires: pkgconfig(icu-uc) -BuildRequires: pkgconfig(libavcodec) -BuildRequires: pkgconfig(libavformat) >= 59.27.100 -BuildRequires: pkgconfig(libavutil) -BuildRequires: pkgconfig(libswscale) -BuildRequires: pkgconfig(openal) -BuildRequires: pkgconfig(openssl) -%if 0%{?suse_version} > 1500 -%ifnarch ppc64 s390x -BuildRequires: pkgconfig(pocketsphinx) >= 5 -%endif -%endif - -%description -A text-based subtitles editor that supports basic operations. It supports -SubRip (SRT), MicroDVD, SSA/ASS, MPlayer, TMPlayer and YouTube captions, and -has speech Recognition using PocketSphinx. - -%lang_package - -%prep -%autosetup -p1 - -%build -%cmake_kf5 -d build - -%cmake_build - -%install -%kf5_makeinstall -C build - -# Fix rpmlint error (devel-file-in-non-devel-package) and install header files as doc (since they are installed just for help) -mkdir files_for_doc -cp -a %{buildroot}%{_kf5_appsdir}/%{name}/scripts/api/ files_for_doc/ -rm -r %{buildroot}%{_kf5_appsdir}/%{name}/scripts/api/ -# Point to the correct path of the header files directory (doc) -perl -pi -e "s|'api'|'%{_docdir}/subtitlecomposer/api'|" %{buildroot}%{_kf5_appsdir}/%{name}/scripts/README - -%find_lang %{name} - -%{kf5_post_install} - -%files -%doc ChangeLog README.md files_for_doc/api -%license LICENSE -%config(noreplace) %{_kf5_configdir}/%{name}rc -%dir %{_kf5_iconsdir}/hicolor/256x256 -%dir %{_kf5_iconsdir}/hicolor/256x256/apps -%{_kf5_applicationsdir}/org.kde.%{name}.desktop -%{_kf5_appsdir}/%{name}/ -%{_kf5_appstreamdir}/org.kde.%{name}.appdata.xml -%{_kf5_bindir}/%{name} -%{_kf5_iconsdir}/hicolor/*/*/* -%{_kf5_sharedir}/mime/packages/%{name}.xml -%if 0%{?suse_version} > 1500 -%ifnarch ppc64 s390x -%{_kf5_libdir}/%{name}/ -%endif -%endif - -%files lang -f %{name}.lang - -%changelog -- 2.51.1 From 43a96a42a1956828c39b563d9f7cda5f38a15fa4c1bc0ede3f32a5f6f3f8689d Mon Sep 17 00:00:00 2001 From: Luigi Baldoni Date: Tue, 16 Sep 2025 09:32:32 +0200 Subject: [PATCH 02/15] Delete subtitlecomposer.changes --- subtitlecomposer.changes | 477 --------------------------------------- 1 file changed, 477 deletions(-) delete mode 100644 subtitlecomposer.changes diff --git a/subtitlecomposer.changes b/subtitlecomposer.changes deleted file mode 100644 index 95e86ee..0000000 --- a/subtitlecomposer.changes +++ /dev/null @@ -1,477 +0,0 @@ -------------------------------------------------------------------- -Wed Dec 18 18:57:02 UTC 2024 - Antonio Larrosa - -- Add patch to fix build with pocketsphinx 5.0.3 in TW since - the API changed in the 5.0.0 release. Also, removed some - parameters that don't seem to be configurable by pocketsphinx - anymore: - * use-pocketsphinx-5.0.0-api.patch - -------------------------------------------------------------------- -Tue Aug 20 07:14:06 UTC 2024 - Christophe Marin - -- Add upstream changes: - * 0001-Replaced-deprecated-FFmpeg-channel-layout-code.patch - * 0002-VideoPlayer-check-AVFMT_NO_BYTE_SEEK-flag-for-seek_b.patch - * 0003-VideoPlayer-drop-an-unused-function-argument.patch - * 0004-VideoPlayer-stop-using-AVFrame.pkt_pos.patch - * 0005-VideoPlayer-remove-usage-of-internal-AVInputFormat.r.patch - * 0006-VideoPlayer-stop-injecting-stream-side-data-in-packe.patch - * 0007-VideoPlayer-check-return-of-swr_alloc_set_opts2.patch - * 0008-StreamProcessor-stop-using-pkt_duration.patch - * 0009-StreamProcessor-stop-using-AVFrame-duration.patch - * 0010-Require-FFmpeg-5.1.5.patch - -------------------------------------------------------------------- -Tue Jun 11 12:19:54 UTC 2024 - Luigi Baldoni - -- Update to version 0.8.1 - * Fixed (rare) memory issues and crashes - * Fixed crashes on waveform widget - * Fixed video player rendering in Qt 6.7 - * Fixed scripts manager assert failures - * Fixed inability to view non-script files in scripts manager - * Fixed seeking in some media formats - * Fixed video player subtitle rendering - * Fixed broken rendering on hi-res videos - * Fixed HDR video rendering (SMPTE-ST-2084 gamma transfer) - * Added check for maximum number of characters per line - * Added MinT translate engine - * Improved translation support and UI - * Improved video player scaling - * Dropped KIO file operations -- Drop 0001-Increased-required-std-to-C-17-100.patch (merged - upstream) - -------------------------------------------------------------------- -Mon May 27 19:56:20 UTC 2024 - Christophe Marin - -- Add upstream build fix: - * 0001-Increased-required-std-to-C-17-100.patch - -------------------------------------------------------------------- -Mon Nov 6 17:44:47 UTC 2023 - Luigi Baldoni - -- Update to version 0.8.0 - * Fixed video player on GLES only hardware - * Fixed skewed video on video player - * Fixed closing fullscreen video player - * Fixed subtitles under fullscreen video toolbar - * Fixed video player media state notifications - * Fixed subtitle video overlay font size accuracy - * Fixed deadlock/crash while changing audio stream on - paused/stopped media - * Improved Waveform widget performance - * Fixed waveform misalignment due to rounding error - * Fixed waveform widget drawing on null image and painting of - removed lines - * Fixed waveform default zoom scale - * Fixed subtitle text line separator draw on LinesWidget - * Fixed unbreak lines (newline searches in QTextDocument) - * Fixed crash in split lines - * Fixed VobSub import ignoring Text styles - * Fixed VobSub crash when moving to previous image - * Fixed YouTubeCaptions format parsing/saving - * Fixed undo/redo actions creation order, incorrect state - * Fixed some memory and saving issues - * Fixed embedded ASS decoding - * Fixed example remove hearing impaired script - * Fixed broken about dialog - * Added Qt6 support - * Added WebVTT format support - * Added subtitle positioning UI and support - * Added subtitle class/comments/voice UI and support - * Improved rich text editing/preview - * Rich text rendering on waveform/video/editors - * Added DeepL translate engine - * Added Google Cloud translate engine - * Recreated translation interface - * Added/improved ffmpeg 5 support - * Subtitle lines are always time sorted; remove sort lines - menu action - * Replaced Kross with QJSEngine, removed ruby and python - support - * Improved script manager and tools menu -- Drop subtitlecomposer-ARM_GLES.patch, - subtitlecomposer-fix_empty_lines_crash.patch, - 0001-Fix-compilation-with-ffmpeg5-63.patch, - 0001-VideoPlayer-Fix-usage-of-deprecated-removed-AVCodec-.patch, - and 0001-Use-non-deprecated-ffmpeg-api.patch (merged upstream) - -------------------------------------------------------------------- -Tue May 9 08:28:01 UTC 2023 - Christophe Marin - -- Add patch: - * 0001-Use-non-deprecated-ffmpeg-api.patch -- Rename 4f4f560e40ba0b760cf688eb024be3cc734ca347.patch to - 0001-Fix-compilation-with-ffmpeg5-63.patch -- Rename d8f9797d9c0d45fa9f4402f79c539544b74d2cc7.patch to - 0001-VideoPlayer-Fix-usage-of-deprecated-removed-AVCodec-.patch - -------------------------------------------------------------------- -Sun Apr 16 09:14:38 UTC 2023 - Benoît Monin - -- Add d8f9797d9c0d45fa9f4402f79c539544b74d2cc7.patch: Fix video - player with newer version of ffmpeg - -------------------------------------------------------------------- -Tue Jul 12 20:38:48 UTC 2022 - Bjørn Lie - -- Add 4f4f560e40ba0b760cf688eb024be3cc734ca347.patch: Fix build - with ffmpeg 5, patch from upstream git. - -------------------------------------------------------------------- -Thu Nov 4 10:48:42 UTC 2021 - Luigi Baldoni - -- Add subtitlecomposer-fix_empty_lines_crash.patch - (fixes boo#1192342) - -------------------------------------------------------------------- -Sat Oct 16 05:19:18 UTC 2021 - Luigi Baldoni - -- Add subtitlecomposer-ARM_GLES.patch -- Allow build on more targets - -------------------------------------------------------------------- -Tue Oct 5 20:05:25 UTC 2021 - Luigi Baldoni - -- Update to version 0.7.1 - * Fixed theme/icons/look outside KDE environment - * Fixed various bugs and rare crashes - * Fixed Undo stack and improved text editing undo - * Improved/replaced Video player(s) (performance, Wayland - support, OpenGL/FFmpeg) - * Improved Waveform performance - * Improved LinesWidget/Model performance - * Improved Wayland support - * Improved open/save file dialogs to use native dialogs - * Improved text charsets/encodings/end-of-line selection, - detection and handling - * Improved VobSub support - * Improved inline editor to support text styles - * Improved subtitle style rendering - * Improved character/sec support and added coloring - * Improvide command line - ability to open all subtitle/media - files - * Added Pause/Duration columns to list view - * Removed invalid subpicture/x-pgs mime - * Updated/added many translations - thanks to KDE community -- Drop 0001-Use-a-local-qthelper.cpp-copy.patch and qthelper.hpp - (no longer necessary) -- Add .sig file and subtitlecomposer.keyring as sources -- Spec cleanup - -------------------------------------------------------------------- -Thu Aug 27 16:37:02 UTC 2020 - Christophe Giboudeaux - -- Spec cleanup - -------------------------------------------------------------------- -Sat Mar 14 11:37:30 UTC 2020 - Antonio Larrosa - -- Move URL to the new upstream location at invent.kde.org -- Remove the dependency on python-base (python2) by removing the - python examples (so we don't install any python scripts anymore). - The python scripts can't be used anyway since we build - kross-interpreters without python support. - -------------------------------------------------------------------- -Wed Mar 11 10:30:18 UTC 2020 - Christophe Giboudeaux - -- Add a local qthelper.cpp copy. mpv >= 0.33 doesn't provide this - header anymore and suggest keeping a local copy until using a - better wrapper. -- Add 0001-Use-a-local-qthelper.cpp-copy.patch - -------------------------------------------------------------------- -Thu Jun 27 19:10:58 UTC 2019 - Luigi Baldoni - -- Update to version 0.7.0 - * Fixed parsing of absolute paths containing '#' character - * Fixed open dialogs not showing all supported files - * Fixed subtitle text not respecting system font configuration - * Fixed waveform not rendering correctly/completely on some - formats - * Fixed waveform displaying subtitles at wrong times - * Fixed waveform not working with some - * Fixes to MPV, GStreamer and Xine video player backends - * Waveform scrolling is configurable - * PocketSphinx language models and VAD are configurable - * Added show status bar action to main window popup menu - * Improved (scripting) performance - * Spell checker will use translation text when it is selected - * Waveform and video docks can be hidden - * Split lines won't split text on spaces while there are - multiple lines - * Subtitle lines will always stay sorted by their time - * Improved fullscreen video player - * Added ability to step by frame - * Added play rate controls to video menu - * Updated Croatian translation - * Updated Italian translation - * Updated Russian translation - -- Dropped fix_build_with_qt5.11.patch (merged upstream) - -------------------------------------------------------------------- -Tue Jun 12 17:58:02 UTC 2018 - asterios.dramis@gmail.com - -- Added a patch (fix_build_with_qt5.11.patch), taken from upstream, - to fix build failure with Qt 5.11. - -------------------------------------------------------------------- -Sun Feb 11 09:30:06 UTC 2018 - aloisio@gmx.com - -- Update to version 0.6.6 - * Fixed open video dialog filters - * Fixed "Insert Line" on waveform adding at the wrong index - - thanks @qsniyg - * Added MMB seeking on waveform - thanks @qsniyg - * Fixed some compilation issues - * Updated translations - thanks @gogogogi, @muzena - * Fixed vobsub when opening from video file and symbol cache - filename - * Fixed subtitle loading times of huge files - * Improved vobsub text detection - * Fixed ASS rich text parsing on import subtitle stream action - * Replaced buggy mplayer vobsub import code with ffmpeg - * Fixed memory leaks/usage of WaveformWidget's scroll animation - * Optimized import subtitle stream from video action - * Replaced gstreamer with ffmpeg libraries in application core - usage - * Added abort button to speech recognition - * Waveform smooth scrolling - * Added join/split lines actions to waveform context menu - * Fixed some crashes, memory leaks and overall code cleanups - * Cleaned up settings widget and texts - -- Dropped subtitlecomposer-Qt56.patch (merged upstream) - -- Spec cleanup - -------------------------------------------------------------------- -Fri Nov 3 08:36:25 UTC 2017 - aloisio@gmx.com - -- Update to version 0.6.5 - add: - * Added support for binary subtitle formats - * fine control video playback speed - * controls for video playback speed - mod: - * GStreamer backend audio improvements. - * Moved open video actions under File menu - * More tolerant parsing of SubRip subtitles. - * Improved split lines command - * Updated Czech translation - thanks @goliashcz - * Updated Croatian translations - thanks @muzena - fix: - * Waveform widget dragging and speed improvements, fixed - buffer overflow - * WaveformWidget: zoom out wasn't working on movies without - audio - * Fixed cases where subtitle hide time would end up before - show time. - * Improved context menus. - * Fixed moving of anchored lines. - * Open subtitle wouldn't autoload video in some cases - * Open video now includes .divx and .webm extensions - * Tools menu scripts are filtered based on installed kross - interpreters - * Moved custom icons to more standard location, using - QIcon::fromTheme() - * Error Check > Absolute Duration config fields were changing - incorrect values. - * MPV Backend: fixed deprecated options, updated vo devices - - thanks @luzfcb - * better rendering on high DPI screens. - * MPV Backend: framerate/video length wasn't reported to - subtitle composer anymore - * detection/handling of current playing line - * Parsing text containing without color attribute - * compilation without xine - thanks @pinotree - * ASS parsing - thanks @Martchus - -- Added subtitlecomposer-Qt56.patch to be able to build against - Qt 5.6 on Leap - -------------------------------------------------------------------- -Tue Jun 13 13:30:08 UTC 2017 - jengelh@inai.de - -- Reword vague description. - -------------------------------------------------------------------- -Mon Oct 31 19:06:55 UTC 2016 - asterios.dramis@gmail.com - -- Update directories not owned by package to cover also - Factory/Tumbleweed. - -------------------------------------------------------------------- -Thu Jun 23 20:03:40 UTC 2016 - asterios.dramis@gmail.com - -- Update to 0.6.4: - * ADD: WaveformWidget: context menu - * MOD: Updated German translations - thanks @Martchus - * MOD: Updated Croatian translations - thanks @muzena - * FIX: Inserting subtitle line would corrupt subtitle indexes - * FIX: Display audio of WebM/FLV files in waveform - thanks - @Martchus - From 0.6.3: - * ADD: WaveformWidget: customization settings page - * ADD: Speech recognition with PocketSphinx - * MOD: Waveform and Player widgets can be docked to any side of - the main window - * MOD: WaveformWidget: can be manually scrolled even if - autoscroll is enabled - * MOD: WaveformWidget: ability to drag whole subtitle line - * MOD: Updated croatian translation - thanks @muzena - * FIX: Video player fullscreen and icon display under was not - right under some desktop environments - thanks @Martchus - * FIX: WaveformWidget: when dragging subtitle borders (or - clicking near them), show/hide time was jumping to mouse - position - * FIX: po/Messages.sh will generate .po files compatible with Qt - Linguist, and will run from any path - * FIX: Build cleanups - thanks @pinotree - From 0.6.2: - * ADD: Ability to demux text streams from loaded video - * MOD: WaveformWidget: added scrollbar and manual scrolling mode, - improved zoom, widget state is loaded/saved - * MOD: WaveformWidget: double click will seek in video player - * MOD: WaveformWidget: subtitle show/hide time can be dragged - * MOD: Added default shortcut for play/pause video. - * MOD: Support for building with cmake older version than 3.3 - * FIX: Changing player backend setting will reopen loaded video - in new player backend. - * FIX: Timeline after last anchored subtitle was scaled - incorrectly. - * FIX: WaveformWidget: optimizations and speed improvements - * FIX: Recent files list was not saved properly in some cases - (subtitle list full). - * FIX: WaveformWidget: fixed crash after closing subtitle - * FIX: WaveformWidget: editing of non-anchored lines is not - allowed - * FIX: StreamProcessor was not freeing it's resources. - * FIX: Updated configure and install scripts - * FIX: Removed "Decoder backend" entry from video player settings - page. - From 0.6.1: - * FIX: Anchor points syncing wasn't working right in some cases - From 0.6.0: - * ADD: Anchor points syncing - * ADD: Waveform widget. - * MOD: Improved precision of the Time class. - * MOD: GStreamerPlayerBackend will pause when reaching - end-of-stream instead of stopping/resetting player. - * MOD: Converted playerbackends to plugins - * MOD: updated German translation - * FIX: Video player widget will repaint background correctly. - * FIX: Code refactoring, cleanups and optimizations. - * FIX: fixed/enabled Drag & Drop - From 0.5.9: - * FIX: Improved error reporting during video open. - * MOD: Added italian translation. - From 0.5.8: - * ADD: MPV player support - * MOD: Replaced remaining KDE4 deprecated code, removed - KDELibs4Support dependency. Finalized KF5 porting. - * MOD: Update croatian translation and README.md - * MOD: Added option not to resume playback after subtitle - doubleclick if player is paused - * FIX: Gettext translations were not created during build - process. - * FIX: FindGStreamer.cmake was not searching for and including - arch-specific include dir - * FIX: Errors/Spelling in "Error Check" settings - * FIX: Build process fixes - * FIX: improved player/decoder backends, solved crashes when - switching backends - * FIX: Added option to antialias subtitles - * FIX: Phonon player backend was displaying embeded subtitles - * FIX: OBS (OpenSuse) package creation was failing -- Updated build/runtime requirements to KF5/Qt5. -- Added new build requirement mpv-devel. -- Removed fdupes macro (not needed anymore). -- Removed NULL-pointer.patch and - Find-platform-dependant-include-files-of-GStreamer.patch (fixed - upstream). - -------------------------------------------------------------------- -Sun Jan 3 17:57:44 UTC 2016 - asterios.dramis@gmail.com - -- Added Find-platform-dependant-include-files-of-GStreamer.patch in - order to fix finding of platform-dependant include files of - GStreamer (fixes compilation failure). - -------------------------------------------------------------------- -Sun Nov 16 23:30:51 UTC 2014 - hrvoje.senjan@gmail.com - -- Update to 0.5.7 - * GStreamer 1.0 API support -- Switch BuildRequires to reflect above change -- Added NULL-pointer.patch from upstream, to resolve post-buid-check - failure - -------------------------------------------------------------------- -Wed Dec 4 20:34:36 UTC 2013 - asterios.dramis@gmail.com - -- Update to 0.5.6 - # Continuation of original package since initial author stopped development - * SubStation Alpha format fixes and color support - * source cleanup - From 0.5.5: - * text color support - * SubRip text color support - * reworked MicroDVD open/save - From 0.5.4: - * mplayer2 support - * mplayer VDPAU decoding support - * minor cmake build fixes -- Added libicu-devel build requirement. -- Removed all previous patches (fixed upstream). - -------------------------------------------------------------------- -Sun Jan 29 15:08:50 UTC 2012 - asterios.dramis@gmail.com - -- Updated no-copy-dt-needed-entries.patch to fix a new linking error with - libX11. - -------------------------------------------------------------------- -Mon Dec 5 21:47:07 UTC 2011 - asterios.dramis@gmail.com - -- Added a patch (no-copy-dt-needed-entries.patch) to fix linking with - --no-copy-dt-needed-entries. -- Spec file updates: - * Changes based on spec-cleaner run. - * Changed License: to GPL-2.0+ (SPDX style). - -------------------------------------------------------------------- -Thu Jun 2 18:40:29 UTC 2011 - asterios.dramis@gmail.com - -- Spec file updates: - * Recommend instead of Suggest the subtitlecomposer-lang package. - * Added update-mime-database in %post/%postun scripts for the mime file - installed by the package. - * Minor other updates. - -------------------------------------------------------------------- -Tue Jan 18 18:17:00 UTC 2011 - asterios.dramis@gmail.com - -- Spec file updates: - * Added a subtitlecomposer-lang package. - * Changes based on rpmdevtools templates and spec-cleaner run. - * Updates in Buildrequires:, %prep and %install sections. - * Fixed rpmlint warnings (devel-file-in-non-devel-package, - non-executable-script). - * Fixed rpm post build check about directories not owned by a package. -- Add a patch to fix installation of python scripting examples. - -------------------------------------------------------------------- -Thu Jun 24 08:17:49 UTC 2010 - cmorve69@yahoo.es - -- Fix compilation with GCC 4.5 - -------------------------------------------------------------------- -Sun Jul 5 01:35:46 CEST 2009 - cmorve69@yahoo.es - -- First version - -- 2.51.1 From 093df7cd51cfaeed8f94390bb6aaee7e09e539d092a0b77d2f0b113f842f56c8 Mon Sep 17 00:00:00 2001 From: Luigi Baldoni Date: Tue, 16 Sep 2025 09:32:58 +0200 Subject: [PATCH 03/15] Delete subtitlecomposer-0.8.1.tar.xz.sig --- subtitlecomposer-0.8.1.tar.xz.sig | 16 ---------------- 1 file changed, 16 deletions(-) delete mode 100644 subtitlecomposer-0.8.1.tar.xz.sig diff --git a/subtitlecomposer-0.8.1.tar.xz.sig b/subtitlecomposer-0.8.1.tar.xz.sig deleted file mode 100644 index c534d3a..0000000 --- a/subtitlecomposer-0.8.1.tar.xz.sig +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQIzBAABCAAdFiEEdveQB6VKS2jxVHko4kGHRu+dmyYFAmZnWHQACgkQ4kGHRu+d -myb0FRAAoPOW2UTpjPVwFTpHSWRXU6kF8mybG/jadN0xAlBDS2AZu1tKW221GJl+ -F6/gpQoV2NYzLaTpn3zK4D/z9Ojunb2H9XDK0lGCqJ1e+BgcktVcjEa4P7Wdy8Wj -D+T5tCqUTo7pmUCbE//QTuT4SChZjg2rpRPBVAqHnYWBcZ3BAXCC6Fnkvq94/LWP -mnZQyqMhbIoVSLIp15eBLgcTKXE/yjHutxIkaAcaMZO6+c7afI+eCF3qz8JrT9nc -RO2a36a3jcJI3mH3o6ub2eZHnUXOEQ3ve3k5lUITp0J1UYqEuuFYOhdIfUEGqJSp -g2sbz66Jo9lkQq+oKiy9a2/2PitpCKGUIv4wcS31rmErmmacBhcax9h+qHpSexxp -6M3yqKDEAKg/rrlKWOHlZrBNvmsGuCYwLT1bULnIZv5b9h1oqDzE3cU6WEMKl1wO -/rT5ELCuYizkJZuXv2zn4T68Gm+d8vdM9ewqf/JvMfj0Hv36phE7Fuf6G5KVMSCM -jiytkJakJi52PXaRK//4KldDVFdQAQr7cxpuOaZ7DiRjzHa/uEmsKM9kL5BChkQw -4G5eVq2lWv1vU7h8M6B/ZH/3OGdQM9IGhoAzAUIOvn1gYJ/ZZMofDthuamJ44Tq0 -ulNAb4TUk1vJGrPcETaDo5a1qihvHjEK+nDtymHUskOU/7DqOT4= -=fgNS ------END PGP SIGNATURE----- -- 2.51.1 From 30415171dc71feb37ffabb768b4f1e0fa73a329f572bd4b43abce2f0f4fde904 Mon Sep 17 00:00:00 2001 From: Luigi Baldoni Date: Tue, 16 Sep 2025 09:33:03 +0200 Subject: [PATCH 04/15] Delete subtitlecomposer-0.8.1.tar.xz --- subtitlecomposer-0.8.1.tar.xz | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 subtitlecomposer-0.8.1.tar.xz diff --git a/subtitlecomposer-0.8.1.tar.xz b/subtitlecomposer-0.8.1.tar.xz deleted file mode 100644 index d49b2c0..0000000 --- a/subtitlecomposer-0.8.1.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:23c022768d7422c092149f41d51ebea80f54b27655573cf43f736efb88c30027 -size 763276 -- 2.51.1 From b410439a05262d83ad7561b2f6dcd5e403d0421b2964555d4f4e708aab0cf210 Mon Sep 17 00:00:00 2001 From: Luigi Baldoni Date: Tue, 16 Sep 2025 09:33:08 +0200 Subject: [PATCH 05/15] Delete 0010-Require-FFmpeg-5.1.5.patch --- 0010-Require-FFmpeg-5.1.5.patch | 25 ------------------------- 1 file changed, 25 deletions(-) delete mode 100644 0010-Require-FFmpeg-5.1.5.patch diff --git a/0010-Require-FFmpeg-5.1.5.patch b/0010-Require-FFmpeg-5.1.5.patch deleted file mode 100644 index 5d3a3f8..0000000 --- a/0010-Require-FFmpeg-5.1.5.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 98a77fc69fc62b857054f3b1cdbb7a8a03e2ae36 Mon Sep 17 00:00:00 2001 -From: Mladen Milinkovic -Date: Thu, 1 Aug 2024 11:32:04 +0200 -Subject: [PATCH 10/11] Require FFmpeg >= 5.1.5 - ---- - src/CMakeLists.txt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index bacf025f..5fd2a09c 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -33,7 +33,7 @@ if(APPIMAGE) - set(SC_APPIMAGE 1 CACHE INTERNAL EXPORTEDVARIABLE) - endif() - --find_package(FFmpeg 57.83.100 REQUIRED) -+find_package(FFmpeg 59.27.100 REQUIRED) - find_package(OpenAL REQUIRED) - find_package(ICU) - --- -2.46.0 - -- 2.51.1 From 8add92acf3cf9cdf28a05644eff9073a29539bc6179d422d0510987e8f5d1be8 Mon Sep 17 00:00:00 2001 From: Luigi Baldoni Date: Tue, 16 Sep 2025 09:33:13 +0200 Subject: [PATCH 06/15] Delete 0009-StreamProcessor-stop-using-AVFrame-duration.patch --- ...rocessor-stop-using-AVFrame-duration.patch | 28 ------------------- 1 file changed, 28 deletions(-) delete mode 100644 0009-StreamProcessor-stop-using-AVFrame-duration.patch diff --git a/0009-StreamProcessor-stop-using-AVFrame-duration.patch b/0009-StreamProcessor-stop-using-AVFrame-duration.patch deleted file mode 100644 index e12a637..0000000 --- a/0009-StreamProcessor-stop-using-AVFrame-duration.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 1e8f6320e8bb914c5dce50a90c8ae290bb5d9919 Mon Sep 17 00:00:00 2001 -From: Mladen Milinkovic -Date: Thu, 1 Aug 2024 11:27:22 +0200 -Subject: [PATCH 09/11] StreamProcessor: stop using AVFrame::duration - -Calculate duration as duration field might be unknown, and -duration/pkt_duration do not exist on FFmpeg 5/6 ---- - src/streamprocessor/streamprocessor.cpp | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/src/streamprocessor/streamprocessor.cpp b/src/streamprocessor/streamprocessor.cpp -index b30c9631..f27fa667 100644 ---- a/src/streamprocessor/streamprocessor.cpp -+++ b/src/streamprocessor/streamprocessor.cpp -@@ -447,8 +447,7 @@ StreamProcessor::processAudio() - timeFrameDuration = frameResampled->nb_samples * 1000 / frameResampled->sample_rate; - } else { - frameSize = frame->nb_samples * av_get_bytes_per_sample(static_cast(frame->format)); -- if(frame->duration) -- timeFrameDuration = frame->duration * 1000 * m_avStream->time_base.num / m_avStream->time_base.den; -+ timeFrameDuration = int64_t(frame->nb_samples) * 1000 / frame->sample_rate; - } - timeFrameEnd = timeFrameStart + timeFrameDuration; - --- -2.46.0 - -- 2.51.1 From beb04beeaf5348dd94b42ede30b536dddcea721677d0c434e642b906a80d58c1 Mon Sep 17 00:00:00 2001 From: Luigi Baldoni Date: Tue, 16 Sep 2025 09:33:21 +0200 Subject: [PATCH 07/15] Delete 0008-StreamProcessor-stop-using-pkt_duration.patch --- ...eamProcessor-stop-using-pkt_duration.patch | 28 ------------------- 1 file changed, 28 deletions(-) delete mode 100644 0008-StreamProcessor-stop-using-pkt_duration.patch diff --git a/0008-StreamProcessor-stop-using-pkt_duration.patch b/0008-StreamProcessor-stop-using-pkt_duration.patch deleted file mode 100644 index 0021437..0000000 --- a/0008-StreamProcessor-stop-using-pkt_duration.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 7959dcc03a3943f551b21bbfeba97e8ae1e3814a Mon Sep 17 00:00:00 2001 -From: Mladen Milinkovic -Date: Thu, 1 Aug 2024 10:51:08 +0200 -Subject: [PATCH 08/11] StreamProcessor: stop using pkt_duration - -Fixes compilation with FFmpeg6 ---- - src/streamprocessor/streamprocessor.cpp | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/streamprocessor/streamprocessor.cpp b/src/streamprocessor/streamprocessor.cpp -index aa27a66e..b30c9631 100644 ---- a/src/streamprocessor/streamprocessor.cpp -+++ b/src/streamprocessor/streamprocessor.cpp -@@ -447,8 +447,8 @@ StreamProcessor::processAudio() - timeFrameDuration = frameResampled->nb_samples * 1000 / frameResampled->sample_rate; - } else { - frameSize = frame->nb_samples * av_get_bytes_per_sample(static_cast(frame->format)); -- if(frame->pkt_duration) -- timeFrameDuration = frame->pkt_duration * 1000 * m_avStream->time_base.num / m_avStream->time_base.den; -+ if(frame->duration) -+ timeFrameDuration = frame->duration * 1000 * m_avStream->time_base.num / m_avStream->time_base.den; - } - timeFrameEnd = timeFrameStart + timeFrameDuration; - --- -2.46.0 - -- 2.51.1 From 544bb8ead631fcc4853fe06749fc0e6ee02757a04100ac2ed244d0f82853a5ab Mon Sep 17 00:00:00 2001 From: Luigi Baldoni Date: Tue, 16 Sep 2025 09:33:25 +0200 Subject: [PATCH 08/15] Delete 0007-VideoPlayer-check-return-of-swr_alloc_set_opts2.patch --- ...-check-return-of-swr_alloc_set_opts2.patch | 31 ------------------- 1 file changed, 31 deletions(-) delete mode 100644 0007-VideoPlayer-check-return-of-swr_alloc_set_opts2.patch diff --git a/0007-VideoPlayer-check-return-of-swr_alloc_set_opts2.patch b/0007-VideoPlayer-check-return-of-swr_alloc_set_opts2.patch deleted file mode 100644 index 06658fc..0000000 --- a/0007-VideoPlayer-check-return-of-swr_alloc_set_opts2.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 5ad0c6046828f842650de39438afa276902e1c94 Mon Sep 17 00:00:00 2001 -From: Mladen Milinkovic -Date: Thu, 1 Aug 2024 10:18:38 +0200 -Subject: [PATCH 07/11] VideoPlayer: check return of swr_alloc_set_opts2() - -This probably makes no difference but its more correct ---- - src/videoplayer/backend/audiodecoder.cpp | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/videoplayer/backend/audiodecoder.cpp b/src/videoplayer/backend/audiodecoder.cpp -index 35144965..d4675a52 100644 ---- a/src/videoplayer/backend/audiodecoder.cpp -+++ b/src/videoplayer/backend/audiodecoder.cpp -@@ -371,11 +371,11 @@ AudioDecoder::decodeFrame(Frame *af) - || af->frame->sample_rate != m_fmtSrc.freq - || (wantedNbSamples != af->frame->nb_samples && !m_swrCtx)) { - swr_free(&m_swrCtx); -- swr_alloc_set_opts2(&m_swrCtx, -+ int ret = swr_alloc_set_opts2(&m_swrCtx, - &m_fmtTgt.chLayout, m_fmtTgt.fmt, m_fmtTgt.freq, - &af->frame->ch_layout, AVSampleFormat(af->frame->format), af->frame->sample_rate, - 0, nullptr); -- if(!m_swrCtx || swr_init(m_swrCtx) < 0) { -+ if(ret < 0 || !m_swrCtx || swr_init(m_swrCtx) < 0) { - av_log(nullptr, AV_LOG_ERROR, - "Cannot create sample rate converter for conversion of %d Hz %s %d channels to %d Hz %s %d channels!\n", - af->frame->sample_rate, av_get_sample_fmt_name((AVSampleFormat)af->frame->format), --- -2.46.0 - -- 2.51.1 From 3583db67971a762b48c85b7147b5b67f88d20309218bb95379afc9082e8c4759 Mon Sep 17 00:00:00 2001 From: Luigi Baldoni Date: Tue, 16 Sep 2025 09:33:31 +0200 Subject: [PATCH 09/15] Delete 0006-VideoPlayer-stop-injecting-stream-side-data-in-packe.patch --- ...-injecting-stream-side-data-in-packe.patch | 27 ------------------- 1 file changed, 27 deletions(-) delete mode 100644 0006-VideoPlayer-stop-injecting-stream-side-data-in-packe.patch diff --git a/0006-VideoPlayer-stop-injecting-stream-side-data-in-packe.patch b/0006-VideoPlayer-stop-injecting-stream-side-data-in-packe.patch deleted file mode 100644 index d1b0de4..0000000 --- a/0006-VideoPlayer-stop-injecting-stream-side-data-in-packe.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 616d5d60572ba57fad45aa139a99eb6a43a73c5f Mon Sep 17 00:00:00 2001 -From: Mladen Milinkovic -Date: Thu, 1 Aug 2024 10:56:02 +0200 -Subject: [PATCH 06/11] VideoPlayer: stop injecting stream side data in packets - -This is no longer needed as the side data is available for decoders in the -AVCodecContext. ---- - src/videoplayer/backend/streamdemuxer.cpp | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/src/videoplayer/backend/streamdemuxer.cpp b/src/videoplayer/backend/streamdemuxer.cpp -index 9c949fa8..eda2b267 100644 ---- a/src/videoplayer/backend/streamdemuxer.cpp -+++ b/src/videoplayer/backend/streamdemuxer.cpp -@@ -501,8 +501,6 @@ StreamDemuxer::run() - if(m_vs->genpts) - ic->flags |= AVFMT_FLAG_GENPTS; - -- av_format_inject_global_side_data(ic); -- - { // find_stream_info - const int origNbStreams = ic->nb_streams; - AVDictionary **opts = (AVDictionary **)av_calloc(origNbStreams, sizeof(*opts)); --- -2.46.0 - -- 2.51.1 From d84543a12ed329ced507069d540ad997e46e4fd2d026d292045b5743c850a665 Mon Sep 17 00:00:00 2001 From: Luigi Baldoni Date: Tue, 16 Sep 2025 09:33:35 +0200 Subject: [PATCH 10/15] Delete 0005-VideoPlayer-remove-usage-of-internal-AVInputFormat.r.patch --- ...ve-usage-of-internal-AVInputFormat.r.patch | 30 ------------------- 1 file changed, 30 deletions(-) delete mode 100644 0005-VideoPlayer-remove-usage-of-internal-AVInputFormat.r.patch diff --git a/0005-VideoPlayer-remove-usage-of-internal-AVInputFormat.r.patch b/0005-VideoPlayer-remove-usage-of-internal-AVInputFormat.r.patch deleted file mode 100644 index 29c8737..0000000 --- a/0005-VideoPlayer-remove-usage-of-internal-AVInputFormat.r.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 6de245940eea868762021c5ba7ee4c621404feeb Mon Sep 17 00:00:00 2001 -From: Mladen Milinkovic -Date: Thu, 4 Jul 2024 01:54:10 +0200 -Subject: [PATCH 05/11] VideoPlayer: remove usage of internal - AVInputFormat.read_seek field - -It's an internal field, so it should not be touched. ---- - src/videoplayer/backend/streamdemuxer.cpp | 4 +--- - 1 file changed, 1 insertion(+), 3 deletions(-) - -diff --git a/src/videoplayer/backend/streamdemuxer.cpp b/src/videoplayer/backend/streamdemuxer.cpp -index 3fb7476f..9c949fa8 100644 ---- a/src/videoplayer/backend/streamdemuxer.cpp -+++ b/src/videoplayer/backend/streamdemuxer.cpp -@@ -314,10 +314,8 @@ StreamDemuxer::componentOpen(int streamIndex) - m_vs->audStream = ic->streams[streamIndex]; - - m_vs->audDec.init(avCtx, &m_vs->audPQ, nullptr, m_vs->continueReadThread); -- if((m_vs->fmtContext->iformat->flags & (AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH | AVFMT_NO_BYTE_SEEK)) -- && !m_vs->fmtContext->iformat->read_seek) { -+ if(m_vs->fmtContext->iformat->flags & AVFMT_NOTIMESTAMPS) - m_vs->audDec.startPts(m_vs->audStream->start_time, m_vs->audStream->time_base); -- } - m_vs->audDec.start(); - m_vs->audDec.pause(); - break; --- -2.46.0 - -- 2.51.1 From a6ccf68841bceb0d6c69a0d0600d1b7b401b14b2a62c85ffd943769b5fd05006 Mon Sep 17 00:00:00 2001 From: Luigi Baldoni Date: Tue, 16 Sep 2025 09:33:41 +0200 Subject: [PATCH 11/15] Delete 0004-VideoPlayer-stop-using-AVFrame.pkt_pos.patch --- ...deoPlayer-stop-using-AVFrame.pkt_pos.patch | 93 ------------------- 1 file changed, 93 deletions(-) delete mode 100644 0004-VideoPlayer-stop-using-AVFrame.pkt_pos.patch diff --git a/0004-VideoPlayer-stop-using-AVFrame.pkt_pos.patch b/0004-VideoPlayer-stop-using-AVFrame.pkt_pos.patch deleted file mode 100644 index 0825945..0000000 --- a/0004-VideoPlayer-stop-using-AVFrame.pkt_pos.patch +++ /dev/null @@ -1,93 +0,0 @@ -From 91b414a778cfc8fcee55f72352043aade2582627 Mon Sep 17 00:00:00 2001 -From: Mladen Milinkovic -Date: Thu, 1 Aug 2024 10:46:54 +0200 -Subject: [PATCH 04/11] VideoPlayer: stop using AVFrame.pkt_pos - -This field is ad-hoc and will be deprecated. Use the recently-added -AV_CODEC_FLAG_COPY_OPAQUE to pass arbitrary user data from packets to -frames. ---- - src/videoplayer/backend/audiodecoder.cpp | 4 +++- - src/videoplayer/backend/decoder.cpp | 17 +++++++++++++---- - src/videoplayer/backend/decoder.h | 4 ++++ - src/videoplayer/backend/videodecoder.cpp | 4 +++- - 4 files changed, 23 insertions(+), 6 deletions(-) - -diff --git a/src/videoplayer/backend/audiodecoder.cpp b/src/videoplayer/backend/audiodecoder.cpp -index 8c0b943e..35144965 100644 ---- a/src/videoplayer/backend/audiodecoder.cpp -+++ b/src/videoplayer/backend/audiodecoder.cpp -@@ -490,8 +490,10 @@ AudioDecoder::run() - if(!(af->frame = av_frame_alloc())) - break; - -+ Decoder::FrameData *fd = reinterpret_cast(frame->opaque_ref ? frame->opaque_ref->data : nullptr); -+ - af->pts = frame->pts == AV_NOPTS_VALUE ? NAN : double(frame->pts) / frame->sample_rate; -- af->pos = frame->pkt_pos; -+ af->pos = fd ? fd->pkt_pos : -1; - af->serial = m_pktSerial; - af->duration = double(frame->nb_samples) / frame->sample_rate; - -diff --git a/src/videoplayer/backend/decoder.cpp b/src/videoplayer/backend/decoder.cpp -index 80fb993f..222056d0 100644 ---- a/src/videoplayer/backend/decoder.cpp -+++ b/src/videoplayer/backend/decoder.cpp -@@ -133,10 +133,19 @@ Decoder::decodeFrame(AVFrame *frame, AVSubtitle *sub) - } else { - ret = pkt->data ? AVERROR(EAGAIN) : AVERROR_EOF; - } -- } else if(avcodec_send_packet(m_avCtx, pkt) == AVERROR(EAGAIN)) { -- av_log(m_avCtx, AV_LOG_ERROR, "Receive_frame and send_packet both returned EAGAIN, which is an API violation.\n"); -- m_pkt = pkt; -- pkt = nullptr; -+ } else { -+ if(pkt->buf && !pkt->opaque_ref) { -+ pkt->opaque_ref = av_buffer_allocz(sizeof(Decoder::FrameData)); -+ if(!pkt->opaque_ref) -+ return AVERROR(ENOMEM); -+ Decoder::FrameData *fd = reinterpret_cast(pkt->opaque_ref->data); -+ fd->pkt_pos = pkt->pos; -+ } -+ if(avcodec_send_packet(m_avCtx, pkt) == AVERROR(EAGAIN)) { -+ av_log(m_avCtx, AV_LOG_ERROR, "Receive_frame and send_packet both returned EAGAIN, which is an API violation.\n"); -+ m_pkt = pkt; -+ pkt = nullptr; -+ } - } - av_packet_free(&pkt); - } -diff --git a/src/videoplayer/backend/decoder.h b/src/videoplayer/backend/decoder.h -index 55970668..f4dd8c7e 100644 ---- a/src/videoplayer/backend/decoder.h -+++ b/src/videoplayer/backend/decoder.h -@@ -55,6 +55,10 @@ protected: - AVRational m_startPtsTb; - int64_t m_nextPts; - AVRational m_nextPtsTb; -+ -+ struct FrameData { -+ int64_t pkt_pos; -+ }; - }; - } - -diff --git a/src/videoplayer/backend/videodecoder.cpp b/src/videoplayer/backend/videodecoder.cpp -index 851f6268..d5bd111e 100644 ---- a/src/videoplayer/backend/videodecoder.cpp -+++ b/src/videoplayer/backend/videodecoder.cpp -@@ -101,8 +101,10 @@ VideoDecoder::run() - if(!ret) - continue; - -+ Decoder::FrameData *fd = reinterpret_cast(frame->opaque_ref ? frame->opaque_ref->data : nullptr); -+ - double pts = (frame->pts == AV_NOPTS_VALUE) ? NAN : frame->pts * m_timeBase; -- ret = queuePicture(frame, pts, frameDuration, frame->pkt_pos, pktSerial()); -+ ret = queuePicture(frame, pts, frameDuration, fd ? fd->pkt_pos : -1, pktSerial()); - av_frame_unref(frame); - - if(ret < 0) --- -2.46.0 - -- 2.51.1 From e2062a0ca200cc159f9cd357590eb2049bf83a47a18fd49d44a8d87123e4f8f4 Mon Sep 17 00:00:00 2001 From: Luigi Baldoni Date: Tue, 16 Sep 2025 09:33:47 +0200 Subject: [PATCH 12/15] Delete 0003-VideoPlayer-drop-an-unused-function-argument.patch --- ...yer-drop-an-unused-function-argument.patch | 48 ------------------- 1 file changed, 48 deletions(-) delete mode 100644 0003-VideoPlayer-drop-an-unused-function-argument.patch diff --git a/0003-VideoPlayer-drop-an-unused-function-argument.patch b/0003-VideoPlayer-drop-an-unused-function-argument.patch deleted file mode 100644 index 6e070ba..0000000 --- a/0003-VideoPlayer-drop-an-unused-function-argument.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 3ea1fe04047fba05a333a48a2248c01edde8adbb Mon Sep 17 00:00:00 2001 -From: Mladen Milinkovic -Date: Thu, 1 Aug 2024 10:26:07 +0200 -Subject: [PATCH 03/11] VideoPlayer: drop an unused function argument - ---- - src/videoplayer/backend/renderthread.cpp | 4 ++-- - src/videoplayer/backend/renderthread.h | 2 +- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/videoplayer/backend/renderthread.cpp b/src/videoplayer/backend/renderthread.cpp -index d6a044c4..99c374bd 100644 ---- a/src/videoplayer/backend/renderthread.cpp -+++ b/src/videoplayer/backend/renderthread.cpp -@@ -103,7 +103,7 @@ retry: - - m_vs->vidFQ.m_mutex->lock(); - if(!std::isnan(vp->pts)) -- updateVideoPts(vp->pts, vp->pos, vp->serial); -+ updateVideoPts(vp->pts, vp->serial); - m_vs->vidFQ.m_mutex->unlock(); - - if(m_vs->vidFQ.nbRemaining() > 1) { -@@ -187,7 +187,7 @@ RenderThread::vpDuration(Frame *vp, Frame *nextvp) - } - - void --RenderThread::updateVideoPts(double pts, int64_t /*pos*/, int serial) -+RenderThread::updateVideoPts(double pts, int serial) - { - // update current video pts - m_vs->vidClk.set(pts, serial); -diff --git a/src/videoplayer/backend/renderthread.h b/src/videoplayer/backend/renderthread.h -index 80fc66d4..7768886e 100644 ---- a/src/videoplayer/backend/renderthread.h -+++ b/src/videoplayer/backend/renderthread.h -@@ -33,7 +33,7 @@ private: - void videoRefresh(double *remainingTime); - void videoDisplay(); - double vpDuration(Frame *vp, Frame *nextvp); -- void updateVideoPts(double pts, int64_t pos, int serial); -+ void updateVideoPts(double pts, int serial); - double computeTargetDelay(double delay); - void updateSampleDisplay(short *samples, int samplesSize); - void toggleAudioDisplay(); --- -2.46.0 - -- 2.51.1 From 42bdef7bcc06f93c89ac9c5d878120c1640105f4fcb8572b64da57d1dfd542af Mon Sep 17 00:00:00 2001 From: Luigi Baldoni Date: Tue, 16 Sep 2025 09:33:50 +0200 Subject: [PATCH 13/15] Delete 0002-VideoPlayer-check-AVFMT_NO_BYTE_SEEK-flag-for-seek_b.patch --- ...k-AVFMT_NO_BYTE_SEEK-flag-for-seek_b.patch | 27 ------------------- 1 file changed, 27 deletions(-) delete mode 100644 0002-VideoPlayer-check-AVFMT_NO_BYTE_SEEK-flag-for-seek_b.patch diff --git a/0002-VideoPlayer-check-AVFMT_NO_BYTE_SEEK-flag-for-seek_b.patch b/0002-VideoPlayer-check-AVFMT_NO_BYTE_SEEK-flag-for-seek_b.patch deleted file mode 100644 index 1eb404a..0000000 --- a/0002-VideoPlayer-check-AVFMT_NO_BYTE_SEEK-flag-for-seek_b.patch +++ /dev/null @@ -1,27 +0,0 @@ -From cba7681e7931d7217cc063dc256939baec83a19e Mon Sep 17 00:00:00 2001 -From: Mladen Milinkovic -Date: Thu, 1 Aug 2024 10:06:12 +0200 -Subject: [PATCH 02/11] VideoPlayer: check AVFMT_NO_BYTE_SEEK flag for - seek_by_bytes - -Applied ffplay release/5.1 patches ---- - src/videoplayer/backend/streamdemuxer.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/videoplayer/backend/streamdemuxer.cpp b/src/videoplayer/backend/streamdemuxer.cpp -index 2eb59af1..3fb7476f 100644 ---- a/src/videoplayer/backend/streamdemuxer.cpp -+++ b/src/videoplayer/backend/streamdemuxer.cpp -@@ -529,7 +529,7 @@ StreamDemuxer::run() - ic->pb->eof_reached = 0; // FIXME hack, ffplay maybe should not use avio_feof() to test for the end - - if(m_vs->seek_by_bytes < 0) -- m_vs->seek_by_bytes = !!(ic->iformat->flags & AVFMT_TS_DISCONT) && strcmp("ogg", ic->iformat->name); -+ m_vs->seek_by_bytes = !(ic->iformat->flags & AVFMT_NO_BYTE_SEEK) && !!(ic->iformat->flags & AVFMT_TS_DISCONT) && strcmp("ogg", ic->iformat->name); - - m_vs->maxFrameDuration = (ic->iformat->flags & AVFMT_TS_DISCONT) ? 10.0 : 3600.0; - --- -2.46.0 - -- 2.51.1 From f3e3c4708d96aaa8e65633f75efac2f75cb866b1bbbb128bb16dbdd5205ce03b Mon Sep 17 00:00:00 2001 From: Luigi Baldoni Date: Tue, 16 Sep 2025 09:33:56 +0200 Subject: [PATCH 14/15] Delete 0001-Replaced-deprecated-FFmpeg-channel-layout-code.patch --- ...eprecated-FFmpeg-channel-layout-code.patch | 437 ------------------ 1 file changed, 437 deletions(-) delete mode 100644 0001-Replaced-deprecated-FFmpeg-channel-layout-code.patch diff --git a/0001-Replaced-deprecated-FFmpeg-channel-layout-code.patch b/0001-Replaced-deprecated-FFmpeg-channel-layout-code.patch deleted file mode 100644 index 16740d4..0000000 --- a/0001-Replaced-deprecated-FFmpeg-channel-layout-code.patch +++ /dev/null @@ -1,437 +0,0 @@ -From bc9f0507df17c42746ef5acc06313a7a058391d4 Mon Sep 17 00:00:00 2001 -From: Mladen Milinkovic -Date: Fri, 18 Nov 2022 15:59:10 +0100 -Subject: [PATCH 01/11] Replaced deprecated FFmpeg channel layout code - ---- - src/CMakeLists.txt | 8 ++++ - src/streamprocessor/streamprocessor.cpp | 48 ++++++++++++------- - src/streamprocessor/streamprocessor.h | 17 +++---- - src/videoplayer/backend/audiodecoder.cpp | 57 ++++++++++++----------- - src/videoplayer/backend/audiodecoder.h | 5 +- - src/videoplayer/backend/streamdemuxer.cpp | 22 +++++---- - src/videoplayer/backend/videostate.cpp | 2 +- - 7 files changed, 92 insertions(+), 67 deletions(-) - -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index bf0043ea..bacf025f 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -5,6 +5,14 @@ endif() - - if(CMAKE_COMPILER_IS_GNUCC) - message(STATUS "GNU C compiler detected") -+ if(SC_NO_DEPRECATED) -+ set(CMAKE_C_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wno-deprecated-declarations") -+ set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wno-deprecated-declarations") -+ endif() -+ if(SC_WARN_ERRORS) -+ set(CMAKE_C_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Werror") -+ set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Werror") -+ endif() - set(CMAKE_C_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall -Og -g") - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall -Og -g") - set(CMAKE_C_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wall -O3") -diff --git a/src/streamprocessor/streamprocessor.cpp b/src/streamprocessor/streamprocessor.cpp -index 1e883780..aa27a66e 100644 ---- a/src/streamprocessor/streamprocessor.cpp -+++ b/src/streamprocessor/streamprocessor.cpp -@@ -35,13 +35,15 @@ StreamProcessor::StreamProcessor(QObject *parent) - m_avFormat(nullptr), - m_avStream(nullptr), - m_codecCtx(nullptr), -- m_swResample(nullptr) -+ m_swResample(nullptr), -+ m_audioChLayout(new AVChannelLayout{}) - { - } - - StreamProcessor::~StreamProcessor() - { - close(); -+ delete m_audioChLayout; - } - - bool -@@ -81,7 +83,7 @@ StreamProcessor::open(const QString &filename) - - m_opened = true; - -- return true; -+ return true; - } - - void -@@ -92,6 +94,7 @@ StreamProcessor::close() - wait(); - } - -+ av_channel_layout_uninit(m_audioChLayout); - if(m_swResample) - swr_free(&m_swResample); - if(m_codecCtx) -@@ -273,28 +276,40 @@ StreamProcessor::initAudio(int streamIndex, const WaveFormat &waveFormat) - return false; - } - -+ av_channel_layout_uninit(m_audioChLayout); -+ - // figure channel layout or update stream format -- if(!m_codecCtx->channel_layout) -- m_codecCtx->channel_layout = av_get_default_channel_layout(m_codecCtx->channels);; -+ if(m_codecCtx->ch_layout.order != AV_CHANNEL_ORDER_NATIVE) { -+ const int cc = m_codecCtx->ch_layout.nb_channels; -+ av_channel_layout_uninit(&m_codecCtx->ch_layout); -+ av_channel_layout_default(&m_codecCtx->ch_layout, cc); -+ } - - if(m_audioStreamFormat.channels() == 0) { -- m_audioStreamFormat.setChannels(m_codecCtx->channels); -- m_audioChannelLayout = m_codecCtx->channel_layout; -+ m_audioStreamFormat.setChannels(m_codecCtx->ch_layout.nb_channels); -+ av_channel_layout_copy(m_audioChLayout, &m_codecCtx->ch_layout); - } else { -- m_audioChannelLayout = av_get_default_channel_layout(m_audioStreamFormat.channels()); -+ av_channel_layout_default(m_audioChLayout, m_audioStreamFormat.channels()); - } - - // setup resampler if needed -- const bool convChannels = m_codecCtx->channel_layout != m_audioChannelLayout; -+ const bool convChannels = av_channel_layout_compare(&m_codecCtx->ch_layout, m_audioChLayout) != 0; - const bool convSampleRate = m_codecCtx->sample_rate != m_audioStreamFormat.sampleRate(); - const bool convSampleFormat = m_codecCtx->sample_fmt != m_audioSampleFormat; - if(convChannels || convSampleRate || convSampleFormat) { -- m_swResample = swr_alloc_set_opts(nullptr, -- m_audioChannelLayout, static_cast(m_audioSampleFormat), m_audioStreamFormat.sampleRate(), -- m_codecCtx->channel_layout, m_codecCtx->sample_fmt, m_codecCtx->sample_rate, -- 0, nullptr); -+ swr_alloc_set_opts2(&m_swResample, -+ m_audioChLayout, AVSampleFormat(m_audioSampleFormat), m_audioStreamFormat.sampleRate(), -+ &m_codecCtx->ch_layout, m_codecCtx->sample_fmt, m_codecCtx->sample_rate, -+ 0, nullptr); - // NOTE: swr_convert_frame() will call swr_init() and swr_config_frame() which is better as it seems m_codecCtx can -- // end up with different config that what is actually in the stream -+ // end up with different config than what is actually in the stream -+ if(!m_swResample) { -+ av_log(nullptr, AV_LOG_ERROR, -+ "Cannot create sample rate converter for conversion of %d Hz %s %d channels to %d Hz %s %d channels!\n", -+ m_codecCtx->sample_rate, av_get_sample_fmt_name(m_codecCtx->sample_fmt), m_codecCtx->ch_layout.nb_channels, -+ m_audioStreamFormat.sampleRate(), av_get_sample_fmt_name(AVSampleFormat(m_audioSampleFormat)), m_audioChLayout->nb_channels); -+ return false; -+ } - } - - return true; -@@ -363,7 +378,8 @@ StreamProcessor::processAudio() - if(m_swResample) { - frameResampled = av_frame_alloc(); - Q_ASSERT(frameResampled != nullptr); -- frameResampled->channel_layout = m_audioChannelLayout; -+ av_channel_layout_uninit(&frameResampled->ch_layout); -+ av_channel_layout_copy(&frameResampled->ch_layout, m_audioChLayout); - frameResampled->sample_rate = m_audioStreamFormat.sampleRate(); - frameResampled->format = m_audioSampleFormat; - } -@@ -448,12 +464,12 @@ StreamProcessor::processAudio() - - if(m_swResample) { - Q_ASSERT(frameResampled != nullptr); -- emit audioDataAvailable(frameResampled->data[0], qint32(frameSize * frameResampled->channels), -+ emit audioDataAvailable(frameResampled->data[0], qint32(frameSize * frameResampled->ch_layout.nb_channels), - &m_audioStreamFormat, qint64(timeFrameStart + timeResampleDelay), qint64(timeFrameDuration)); - - drainSampleBuffer = swr_get_out_samples(m_swResample, 0) > 1000; - } else { -- emit audioDataAvailable(frame->data[0], qint32(frameSize * frame->channels), -+ emit audioDataAvailable(frame->data[0], qint32(frameSize * frame->ch_layout.nb_channels), - &m_audioStreamFormat, qint64(timeFrameStart), qint64(timeFrameDuration)); - } - } while(!conversionComplete && !isInterruptionRequested() && drainSampleBuffer); -diff --git a/src/streamprocessor/streamprocessor.h b/src/streamprocessor/streamprocessor.h -index 152a985a..02e7f3b1 100644 ---- a/src/streamprocessor/streamprocessor.h -+++ b/src/streamprocessor/streamprocessor.h -@@ -16,14 +16,11 @@ - - QT_FORWARD_DECLARE_CLASS(QTimer) - --QT_FORWARD_DECLARE_STRUCT(AVFormatContext) --typedef struct AVFormatContext AVFormatContext; --QT_FORWARD_DECLARE_STRUCT(AVCodecContext) --typedef struct AVCodecContext AVCodecContext; --QT_FORWARD_DECLARE_STRUCT(AVStream) --typedef struct AVStream AVStream; --QT_FORWARD_DECLARE_STRUCT(SwrContext) --typedef struct SwrContext SwrContext; -+struct AVFormatContext; -+struct AVCodecContext; -+struct AVStream; -+struct SwrContext; -+struct AVChannelLayout; - - namespace SubtitleComposer { - -@@ -59,7 +56,7 @@ protected: - int findStream(int streamType, int streamIndex, bool imageSub); - void processAudio(); - void processText(); -- virtual void run() override; -+ virtual void run() override; - - private: - bool m_opened; -@@ -86,7 +83,7 @@ private: - AVCodecContext *m_codecCtx; - SwrContext *m_swResample; - int m_audioSampleFormat; -- uint64_t m_audioChannelLayout; -+ AVChannelLayout *m_audioChLayout; - }; - - } -diff --git a/src/videoplayer/backend/audiodecoder.cpp b/src/videoplayer/backend/audiodecoder.cpp -index c0c99bb3..8c0b943e 100644 ---- a/src/videoplayer/backend/audiodecoder.cpp -+++ b/src/videoplayer/backend/audiodecoder.cpp -@@ -37,6 +37,8 @@ using namespace SubtitleComposer; - AudioDecoder::AudioDecoder(VideoState *state, QObject *parent) - : Decoder(parent), - m_vs(state), -+ m_fmtSrc({}), -+ m_fmtTgt({}), - m_swrCtx(nullptr), - m_audioBuf(nullptr), - m_bufSize(0), -@@ -147,7 +149,7 @@ AudioDecoder::close() - } - - bool --AudioDecoder::open(int64_t wantChLayout, int wantNbChan, int wantSampleRate) -+AudioDecoder::open(AVChannelLayout *wantChLayout, int wantSampleRate) - { - const static QMap bufFmtMap = { - { 4, "AL_FORMAT_QUAD16" }, -@@ -158,12 +160,12 @@ AudioDecoder::open(int64_t wantChLayout, int wantNbChan, int wantSampleRate) - - int err; - -- if(wantSampleRate <= 0 || wantNbChan <= 0) { -+ if(wantSampleRate <= 0 || !wantChLayout || wantChLayout->nb_channels <= 0) { - av_log(nullptr, AV_LOG_ERROR, "openal: invalid sample rate or channel count!\n"); - return false; - } - -- int availNbChan = wantNbChan; -+ int availNbChan = wantChLayout->nb_channels; - for(;;) { - while(availNbChan > 2 && !bufFmtMap.contains(availNbChan)) - availNbChan--; -@@ -171,15 +173,15 @@ AudioDecoder::open(int64_t wantChLayout, int wantNbChan, int wantSampleRate) - m_bufFmt = availNbChan == 2 ? AL_FORMAT_STEREO16 : AL_FORMAT_MONO16; - break; - } -- m_bufFmt = alGetEnumValue(bufFmtMap[wantNbChan]); -+ m_bufFmt = alGetEnumValue(bufFmtMap[wantChLayout->nb_channels]); - if(m_bufFmt) - break; - availNbChan--; - } - -- if(!wantChLayout || wantNbChan != availNbChan || wantNbChan != av_get_channel_layout_nb_channels(wantChLayout)) { -- wantChLayout = av_get_default_channel_layout(availNbChan); -- wantChLayout &= ~AV_CH_LAYOUT_STEREO_DOWNMIX; -+ if(wantChLayout->nb_channels != availNbChan || wantChLayout->order != AV_CHANNEL_ORDER_NATIVE) { -+ av_channel_layout_uninit(wantChLayout); -+ av_channel_layout_default(wantChLayout, availNbChan); - } - - m_alDev = alcOpenDevice(nullptr); -@@ -212,10 +214,14 @@ AudioDecoder::open(int64_t wantChLayout, int wantNbChan, int wantSampleRate) - - m_fmtTgt.fmt = AV_SAMPLE_FMT_S16; - m_fmtTgt.freq = wantSampleRate; -- m_fmtTgt.channelLayout = wantChLayout; -- m_fmtTgt.channels = availNbChan; -- m_fmtTgt.frameSize = av_samples_get_buffer_size(nullptr, m_fmtTgt.channels, 1, m_fmtTgt.fmt, 1); -- m_fmtTgt.bytesPerSec = av_samples_get_buffer_size(nullptr, m_fmtTgt.channels, m_fmtTgt.freq, m_fmtTgt.fmt, 1); -+ if((err = av_channel_layout_copy(&m_fmtTgt.chLayout, wantChLayout)) < 0) { -+ av_log(nullptr, AV_LOG_ERROR, "av_channel_layout_copy() failed (errL %d).\n", err); -+ close(); -+ return false; -+ } -+ -+ m_fmtTgt.frameSize = av_samples_get_buffer_size(nullptr, m_fmtTgt.chLayout.nb_channels, 1, m_fmtTgt.fmt, 1); -+ m_fmtTgt.bytesPerSec = av_samples_get_buffer_size(nullptr, m_fmtTgt.chLayout.nb_channels, m_fmtTgt.freq, m_fmtTgt.fmt, 1); - if(m_fmtTgt.bytesPerSec <= 0 || m_fmtTgt.frameSize <= 0) { - av_log(nullptr, AV_LOG_ERROR, "av_samples_get_buffer_size failed\n"); - close(); -@@ -349,47 +355,44 @@ AudioDecoder::syncAudio(int nbSamples) - int - AudioDecoder::decodeFrame(Frame *af) - { -+ // CONVERTED maxrd2 - if(af->serial != m_queue->serial()) - return -1; - -- int dataSize = av_samples_get_buffer_size(nullptr, af->frame->channels, -+ int dataSize = av_samples_get_buffer_size(nullptr, af->frame->ch_layout.nb_channels, - af->frame->nb_samples, - (AVSampleFormat)af->frame->format, 1); - int resampledDataSize; - -- uint64_t decChannelLayout = -- (af->frame->channel_layout && -- af->frame->channels == av_get_channel_layout_nb_channels(af->frame->channel_layout)) ? -- af->frame->channel_layout : av_get_default_channel_layout(af->frame->channels); - int wantedNbSamples = syncAudio(af->frame->nb_samples); - - if(af->frame->format != m_fmtSrc.fmt -- || decChannelLayout != m_fmtSrc.channelLayout -+ || av_channel_layout_compare(&af->frame->ch_layout, &m_fmtSrc.chLayout) - || af->frame->sample_rate != m_fmtSrc.freq - || (wantedNbSamples != af->frame->nb_samples && !m_swrCtx)) { - swr_free(&m_swrCtx); -- m_swrCtx = swr_alloc_set_opts(nullptr, -- m_fmtTgt.channelLayout, m_fmtTgt.fmt, m_fmtTgt.freq, -- decChannelLayout, (AVSampleFormat)af->frame->format, af->frame->sample_rate, -- 0, nullptr); -+ swr_alloc_set_opts2(&m_swrCtx, -+ &m_fmtTgt.chLayout, m_fmtTgt.fmt, m_fmtTgt.freq, -+ &af->frame->ch_layout, AVSampleFormat(af->frame->format), af->frame->sample_rate, -+ 0, nullptr); - if(!m_swrCtx || swr_init(m_swrCtx) < 0) { - av_log(nullptr, AV_LOG_ERROR, - "Cannot create sample rate converter for conversion of %d Hz %s %d channels to %d Hz %s %d channels!\n", - af->frame->sample_rate, av_get_sample_fmt_name((AVSampleFormat)af->frame->format), -- af->frame->channels, -- m_fmtTgt.freq, av_get_sample_fmt_name(m_fmtTgt.fmt), m_fmtTgt.channels); -+ af->frame->ch_layout.nb_channels, -+ m_fmtTgt.freq, av_get_sample_fmt_name(m_fmtTgt.fmt), m_fmtTgt.chLayout.nb_channels); - swr_free(&m_swrCtx); - return -1; - } -- m_fmtSrc.channelLayout = decChannelLayout; -- m_fmtSrc.channels = af->frame->channels; -+ if(av_channel_layout_copy(&m_fmtSrc.chLayout, &af->frame->ch_layout) < 0) -+ return -1; - m_fmtSrc.freq = af->frame->sample_rate; - m_fmtSrc.fmt = (AVSampleFormat)af->frame->format; - } - - if(m_swrCtx) { - const int outCount = (int64_t)wantedNbSamples * m_fmtTgt.freq / af->frame->sample_rate + 256; -- const int outSize = av_samples_get_buffer_size(nullptr, m_fmtTgt.channels, outCount, m_fmtTgt.fmt, 0); -+ const int outSize = av_samples_get_buffer_size(nullptr, m_fmtTgt.chLayout.nb_channels, outCount, m_fmtTgt.fmt, 0); - if(outSize < 0) { - av_log(nullptr, AV_LOG_ERROR, "av_samples_get_buffer_size() failed\n"); - return -1; -@@ -417,7 +420,7 @@ AudioDecoder::decodeFrame(Frame *af) - swr_free(&m_swrCtx); - } - m_audioBuf = m_audioBuf1; -- resampledDataSize = outSamplesPerChannel * m_fmtTgt.channels * av_get_bytes_per_sample(m_fmtTgt.fmt); -+ resampledDataSize = outSamplesPerChannel * m_fmtTgt.chLayout.nb_channels * av_get_bytes_per_sample(m_fmtTgt.fmt); - } else { - m_audioBuf = af->frame->data[0]; - resampledDataSize = dataSize; -diff --git a/src/videoplayer/backend/audiodecoder.h b/src/videoplayer/backend/audiodecoder.h -index ae579078..5b32b9a3 100644 ---- a/src/videoplayer/backend/audiodecoder.h -+++ b/src/videoplayer/backend/audiodecoder.h -@@ -37,8 +37,7 @@ private: - - struct Params { - int freq; -- int channels; -- uint64_t channelLayout; -+ AVChannelLayout chLayout; - AVSampleFormat fmt; - int frameSize; - int bytesPerSec; -@@ -50,7 +49,7 @@ private: - void queueBuffer(uint8_t *data, int len); - int syncAudio(int nbSamples); - -- bool open(int64_t wanted_channel_layout, int wanted_nb_channels, int wanted_sample_rate); -+ bool open(AVChannelLayout *wantChLayout, int wantSampleRate); - void close(); - void flush(); - void play(); -diff --git a/src/videoplayer/backend/streamdemuxer.cpp b/src/videoplayer/backend/streamdemuxer.cpp -index 72d21896..2eb59af1 100644 ---- a/src/videoplayer/backend/streamdemuxer.cpp -+++ b/src/videoplayer/backend/streamdemuxer.cpp -@@ -233,9 +233,9 @@ StreamDemuxer::componentOpen(int streamIndex) - AVCodecContext *avCtx; - const AVCodec *codec; - AVDictionary *opts = nullptr; -- AVDictionaryEntry *t = nullptr; -- int sampleRate, nbChannels; -- int64_t channelLayout; -+ const AVDictionaryEntry *t = nullptr; -+ int sampleRate; -+ AVChannelLayout chLayout = {}; - int ret = 0; - int stream_lowres = m_vs->lowres; - -@@ -301,19 +301,21 @@ StreamDemuxer::componentOpen(int streamIndex) - switch(avCtx->codec_type) { - case AVMEDIA_TYPE_AUDIO: - sampleRate = avCtx->sample_rate; -- nbChannels = avCtx->channels; -- channelLayout = avCtx->channel_layout; -+ if((ret = av_channel_layout_copy(&chLayout, &avCtx->ch_layout)) < 0) { -+ av_log(nullptr, AV_LOG_ERROR, "av_channel_layout_copy() failed (errL %d).\n", ret); -+ goto fail; -+ } - - // prepare audio output -- if(!m_vs->audDec.open(channelLayout, nbChannels, sampleRate)) -+ if(!m_vs->audDec.open(&chLayout, sampleRate)) - goto fail; - - m_vs->audStreamIdx = streamIndex; - m_vs->audStream = ic->streams[streamIndex]; - - m_vs->audDec.init(avCtx, &m_vs->audPQ, nullptr, m_vs->continueReadThread); -- if((m_vs->fmtContext->iformat->flags & (AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH | AVFMT_NO_BYTE_SEEK)) && -- !m_vs->fmtContext->iformat->read_seek) { -+ if((m_vs->fmtContext->iformat->flags & (AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH | AVFMT_NO_BYTE_SEEK)) -+ && !m_vs->fmtContext->iformat->read_seek) { - m_vs->audDec.startPts(m_vs->audStream->start_time, m_vs->audStream->time_base); - } - m_vs->audDec.start(); -@@ -342,6 +344,7 @@ StreamDemuxer::componentOpen(int streamIndex) - fail: - avcodec_free_context(&avCtx); - out: -+ av_channel_layout_uninit(&chLayout); - av_dict_free(&opts); - - return ret; -@@ -397,8 +400,7 @@ StreamDemuxer::cycleStream(int codecType) - /* check that parameters are OK */ - switch(codecType) { - case AVMEDIA_TYPE_AUDIO: -- if(st->codecpar->sample_rate != 0 && -- st->codecpar->channels != 0) -+ if(st->codecpar->sample_rate != 0 && st->codecpar->ch_layout.nb_channels != 0) - goto the_end; - break; - case AVMEDIA_TYPE_VIDEO: -diff --git a/src/videoplayer/backend/videostate.cpp b/src/videoplayer/backend/videostate.cpp -index e34399df..a09f2466 100644 ---- a/src/videoplayer/backend/videostate.cpp -+++ b/src/videoplayer/backend/videostate.cpp -@@ -131,7 +131,7 @@ VideoState::notifyLoaded() - continue; - - *streamName += QStringLiteral(": "); -- AVDictionaryEntry *tag = av_dict_get(stream->metadata, "lang", nullptr, AV_DICT_IGNORE_SUFFIX); -+ const AVDictionaryEntry *tag = av_dict_get(stream->metadata, "lang", nullptr, AV_DICT_IGNORE_SUFFIX); - *streamName += tag ? QString("%2 (%3)").arg(LanguageCode::nameFromIso(tag->value)).arg(tag->value) : QStringLiteral("Unknown"); - - if((tag = av_dict_get(stream->metadata, "title", nullptr, 0)) != nullptr) --- -2.46.0 - -- 2.51.1 From 2b86cd97ed119813c2a3a33dd56773bed012deb0d763f7bac1acde302fe2e2b8 Mon Sep 17 00:00:00 2001 From: Luigi Baldoni Date: Tue, 16 Sep 2025 09:34:24 +0200 Subject: [PATCH 15/15] Upload files to "/" --- subtitlecomposer-0.8.2.tar.xz | 3 + subtitlecomposer-0.8.2.tar.xz.sig | 16 + subtitlecomposer.changes | 500 ++++++++++++++++++++++++++++++ subtitlecomposer.spec | 116 +++++++ 4 files changed, 635 insertions(+) create mode 100644 subtitlecomposer-0.8.2.tar.xz create mode 100644 subtitlecomposer-0.8.2.tar.xz.sig create mode 100644 subtitlecomposer.changes create mode 100644 subtitlecomposer.spec diff --git a/subtitlecomposer-0.8.2.tar.xz b/subtitlecomposer-0.8.2.tar.xz new file mode 100644 index 0000000..d486219 --- /dev/null +++ b/subtitlecomposer-0.8.2.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72e9307f0c7669029f27178cee07395b3dae4cef99accc6720e41fa511b40fe5 +size 795360 diff --git a/subtitlecomposer-0.8.2.tar.xz.sig b/subtitlecomposer-0.8.2.tar.xz.sig new file mode 100644 index 0000000..6a3ce45 --- /dev/null +++ b/subtitlecomposer-0.8.2.tar.xz.sig @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEdveQB6VKS2jxVHko4kGHRu+dmyYFAmjHHvoACgkQ4kGHRu+d +myZrURAArgPh6Y86jzhcvEUtId5YmgzhspLGacnGcbJadl6Th2cj+14TAwhn22xG +hOKCyo2kpPHn8AETTIrHV4JxqyG8fkBcDDc7igJMXJcrV2RXjAKrl62gAr7oU31S +FBQwra3OYbpXyZNtt9N2SstR6JeEEAG6pNiRU6ylSKyyDvEyFiMGDqDFCL9+LaR/ +upx6gKtcDtrxMc4ur/MrEoA0p40aBwz+UFmS8pu4RXkBAorOB1joWLRaP7nWkUak +JEwWJmZb7EQowoMr/JYDVC2D5w4rJxOPkBoOCnorPhr/mEaI+GWEvvE9GxVg42a3 +Vb3/mHK3wxf0YuuY+p7xilbQjOPt5FfcfFFvyljvBkxxljrVgExw6yhsTtHChIS/ +duxp83effjRzO+WLz+g1gBX2b6atEUwjLaMwYZKEErFHVm0Wbz57iCqVjG12NCE7 +Ge1fxt087a3xfxY9TcF3KfUiqZZInDCDZrvEJj0d4/nIM6yYeyR8KlNs6DSyBnm5 +rnEIOw+rWKfTOWHajUi8cUZ4Nl5QWKn4cbN9vmI2eMhoYJEmr70tHXy+dFU1Ly14 +x8N5x/t0rZkBFzqfoJPUHuSQuBlUR0LzcrBRDIwOsaApWXvfzPr4n9xt0E6aF/RA +7Cge5CCIz5jKntVX2+0e+ukSGBfOMoMK5lnfBxJm7vr0bgnwmlY= +=0klP +-----END PGP SIGNATURE----- diff --git a/subtitlecomposer.changes b/subtitlecomposer.changes new file mode 100644 index 0000000..a823de7 --- /dev/null +++ b/subtitlecomposer.changes @@ -0,0 +1,500 @@ +------------------------------------------------------------------- +Mon Sep 15 13:06:55 UTC 2025 - Luigi Baldoni + +- Update to version 0.8.2 + * Fixed issues and crashes with newer Qt6 versions + * Fixed Waveform and VideoPlayer paint issues + * Fixed PGS subtitle mime type + * Improved Wayland compatibility + * Improved GoogleCloudEngine translations + * Added configurable whitespace detection to VobSub import + * Replaced deprecated FFmpeg channel code + * Require FFmpeg >= 5.1.5 +- Drop 0001-Replaced-deprecated-FFmpeg-channel-layout-code.patch, + 0002-VideoPlayer-check-AVFMT_NO_BYTE_SEEK-flag-for-seek_b.patch, + 0003-VideoPlayer-drop-an-unused-function-argument.patch, + 0004-VideoPlayer-stop-using-AVFrame.pkt_pos.patch, + 0005-VideoPlayer-remove-usage-of-internal-AVInputFormat.r.patch, + 0006-VideoPlayer-stop-injecting-stream-side-data-in-packe.patch, + 0007-VideoPlayer-check-return-of-swr_alloc_set_opts2.patch, + 0008-StreamProcessor-stop-using-pkt_duration.patch, + 0009-StreamProcessor-stop-using-AVFrame-duration.patch and + 0010-Require-FFmpeg-5.1.5.patch (merged upstream) + +------------------------------------------------------------------- +Wed Dec 18 18:57:02 UTC 2024 - Antonio Larrosa + +- Add patch to fix build with pocketsphinx 5.0.3 in TW since + the API changed in the 5.0.0 release. Also, removed some + parameters that don't seem to be configurable by pocketsphinx + anymore: + * use-pocketsphinx-5.0.0-api.patch + +------------------------------------------------------------------- +Tue Aug 20 07:14:06 UTC 2024 - Christophe Marin + +- Add upstream changes: + * 0001-Replaced-deprecated-FFmpeg-channel-layout-code.patch + * 0002-VideoPlayer-check-AVFMT_NO_BYTE_SEEK-flag-for-seek_b.patch + * 0003-VideoPlayer-drop-an-unused-function-argument.patch + * 0004-VideoPlayer-stop-using-AVFrame.pkt_pos.patch + * 0005-VideoPlayer-remove-usage-of-internal-AVInputFormat.r.patch + * 0006-VideoPlayer-stop-injecting-stream-side-data-in-packe.patch + * 0007-VideoPlayer-check-return-of-swr_alloc_set_opts2.patch + * 0008-StreamProcessor-stop-using-pkt_duration.patch + * 0009-StreamProcessor-stop-using-AVFrame-duration.patch + * 0010-Require-FFmpeg-5.1.5.patch + +------------------------------------------------------------------- +Tue Jun 11 12:19:54 UTC 2024 - Luigi Baldoni + +- Update to version 0.8.1 + * Fixed (rare) memory issues and crashes + * Fixed crashes on waveform widget + * Fixed video player rendering in Qt 6.7 + * Fixed scripts manager assert failures + * Fixed inability to view non-script files in scripts manager + * Fixed seeking in some media formats + * Fixed video player subtitle rendering + * Fixed broken rendering on hi-res videos + * Fixed HDR video rendering (SMPTE-ST-2084 gamma transfer) + * Added check for maximum number of characters per line + * Added MinT translate engine + * Improved translation support and UI + * Improved video player scaling + * Dropped KIO file operations +- Drop 0001-Increased-required-std-to-C-17-100.patch (merged + upstream) + +------------------------------------------------------------------- +Mon May 27 19:56:20 UTC 2024 - Christophe Marin + +- Add upstream build fix: + * 0001-Increased-required-std-to-C-17-100.patch + +------------------------------------------------------------------- +Mon Nov 6 17:44:47 UTC 2023 - Luigi Baldoni + +- Update to version 0.8.0 + * Fixed video player on GLES only hardware + * Fixed skewed video on video player + * Fixed closing fullscreen video player + * Fixed subtitles under fullscreen video toolbar + * Fixed video player media state notifications + * Fixed subtitle video overlay font size accuracy + * Fixed deadlock/crash while changing audio stream on + paused/stopped media + * Improved Waveform widget performance + * Fixed waveform misalignment due to rounding error + * Fixed waveform widget drawing on null image and painting of + removed lines + * Fixed waveform default zoom scale + * Fixed subtitle text line separator draw on LinesWidget + * Fixed unbreak lines (newline searches in QTextDocument) + * Fixed crash in split lines + * Fixed VobSub import ignoring Text styles + * Fixed VobSub crash when moving to previous image + * Fixed YouTubeCaptions format parsing/saving + * Fixed undo/redo actions creation order, incorrect state + * Fixed some memory and saving issues + * Fixed embedded ASS decoding + * Fixed example remove hearing impaired script + * Fixed broken about dialog + * Added Qt6 support + * Added WebVTT format support + * Added subtitle positioning UI and support + * Added subtitle class/comments/voice UI and support + * Improved rich text editing/preview + * Rich text rendering on waveform/video/editors + * Added DeepL translate engine + * Added Google Cloud translate engine + * Recreated translation interface + * Added/improved ffmpeg 5 support + * Subtitle lines are always time sorted; remove sort lines + menu action + * Replaced Kross with QJSEngine, removed ruby and python + support + * Improved script manager and tools menu +- Drop subtitlecomposer-ARM_GLES.patch, + subtitlecomposer-fix_empty_lines_crash.patch, + 0001-Fix-compilation-with-ffmpeg5-63.patch, + 0001-VideoPlayer-Fix-usage-of-deprecated-removed-AVCodec-.patch, + and 0001-Use-non-deprecated-ffmpeg-api.patch (merged upstream) + +------------------------------------------------------------------- +Tue May 9 08:28:01 UTC 2023 - Christophe Marin + +- Add patch: + * 0001-Use-non-deprecated-ffmpeg-api.patch +- Rename 4f4f560e40ba0b760cf688eb024be3cc734ca347.patch to + 0001-Fix-compilation-with-ffmpeg5-63.patch +- Rename d8f9797d9c0d45fa9f4402f79c539544b74d2cc7.patch to + 0001-VideoPlayer-Fix-usage-of-deprecated-removed-AVCodec-.patch + +------------------------------------------------------------------- +Sun Apr 16 09:14:38 UTC 2023 - Benoît Monin + +- Add d8f9797d9c0d45fa9f4402f79c539544b74d2cc7.patch: Fix video + player with newer version of ffmpeg + +------------------------------------------------------------------- +Tue Jul 12 20:38:48 UTC 2022 - Bjørn Lie + +- Add 4f4f560e40ba0b760cf688eb024be3cc734ca347.patch: Fix build + with ffmpeg 5, patch from upstream git. + +------------------------------------------------------------------- +Thu Nov 4 10:48:42 UTC 2021 - Luigi Baldoni + +- Add subtitlecomposer-fix_empty_lines_crash.patch + (fixes boo#1192342) + +------------------------------------------------------------------- +Sat Oct 16 05:19:18 UTC 2021 - Luigi Baldoni + +- Add subtitlecomposer-ARM_GLES.patch +- Allow build on more targets + +------------------------------------------------------------------- +Tue Oct 5 20:05:25 UTC 2021 - Luigi Baldoni + +- Update to version 0.7.1 + * Fixed theme/icons/look outside KDE environment + * Fixed various bugs and rare crashes + * Fixed Undo stack and improved text editing undo + * Improved/replaced Video player(s) (performance, Wayland + support, OpenGL/FFmpeg) + * Improved Waveform performance + * Improved LinesWidget/Model performance + * Improved Wayland support + * Improved open/save file dialogs to use native dialogs + * Improved text charsets/encodings/end-of-line selection, + detection and handling + * Improved VobSub support + * Improved inline editor to support text styles + * Improved subtitle style rendering + * Improved character/sec support and added coloring + * Improvide command line - ability to open all subtitle/media + files + * Added Pause/Duration columns to list view + * Removed invalid subpicture/x-pgs mime + * Updated/added many translations - thanks to KDE community +- Drop 0001-Use-a-local-qthelper.cpp-copy.patch and qthelper.hpp + (no longer necessary) +- Add .sig file and subtitlecomposer.keyring as sources +- Spec cleanup + +------------------------------------------------------------------- +Thu Aug 27 16:37:02 UTC 2020 - Christophe Giboudeaux + +- Spec cleanup + +------------------------------------------------------------------- +Sat Mar 14 11:37:30 UTC 2020 - Antonio Larrosa + +- Move URL to the new upstream location at invent.kde.org +- Remove the dependency on python-base (python2) by removing the + python examples (so we don't install any python scripts anymore). + The python scripts can't be used anyway since we build + kross-interpreters without python support. + +------------------------------------------------------------------- +Wed Mar 11 10:30:18 UTC 2020 - Christophe Giboudeaux + +- Add a local qthelper.cpp copy. mpv >= 0.33 doesn't provide this + header anymore and suggest keeping a local copy until using a + better wrapper. +- Add 0001-Use-a-local-qthelper.cpp-copy.patch + +------------------------------------------------------------------- +Thu Jun 27 19:10:58 UTC 2019 - Luigi Baldoni + +- Update to version 0.7.0 + * Fixed parsing of absolute paths containing '#' character + * Fixed open dialogs not showing all supported files + * Fixed subtitle text not respecting system font configuration + * Fixed waveform not rendering correctly/completely on some + formats + * Fixed waveform displaying subtitles at wrong times + * Fixed waveform not working with some + * Fixes to MPV, GStreamer and Xine video player backends + * Waveform scrolling is configurable + * PocketSphinx language models and VAD are configurable + * Added show status bar action to main window popup menu + * Improved (scripting) performance + * Spell checker will use translation text when it is selected + * Waveform and video docks can be hidden + * Split lines won't split text on spaces while there are + multiple lines + * Subtitle lines will always stay sorted by their time + * Improved fullscreen video player + * Added ability to step by frame + * Added play rate controls to video menu + * Updated Croatian translation + * Updated Italian translation + * Updated Russian translation + +- Dropped fix_build_with_qt5.11.patch (merged upstream) + +------------------------------------------------------------------- +Tue Jun 12 17:58:02 UTC 2018 - asterios.dramis@gmail.com + +- Added a patch (fix_build_with_qt5.11.patch), taken from upstream, + to fix build failure with Qt 5.11. + +------------------------------------------------------------------- +Sun Feb 11 09:30:06 UTC 2018 - aloisio@gmx.com + +- Update to version 0.6.6 + * Fixed open video dialog filters + * Fixed "Insert Line" on waveform adding at the wrong index - + thanks @qsniyg + * Added MMB seeking on waveform - thanks @qsniyg + * Fixed some compilation issues + * Updated translations - thanks @gogogogi, @muzena + * Fixed vobsub when opening from video file and symbol cache + filename + * Fixed subtitle loading times of huge files + * Improved vobsub text detection + * Fixed ASS rich text parsing on import subtitle stream action + * Replaced buggy mplayer vobsub import code with ffmpeg + * Fixed memory leaks/usage of WaveformWidget's scroll animation + * Optimized import subtitle stream from video action + * Replaced gstreamer with ffmpeg libraries in application core + usage + * Added abort button to speech recognition + * Waveform smooth scrolling + * Added join/split lines actions to waveform context menu + * Fixed some crashes, memory leaks and overall code cleanups + * Cleaned up settings widget and texts + +- Dropped subtitlecomposer-Qt56.patch (merged upstream) + +- Spec cleanup + +------------------------------------------------------------------- +Fri Nov 3 08:36:25 UTC 2017 - aloisio@gmx.com + +- Update to version 0.6.5 + add: + * Added support for binary subtitle formats + * fine control video playback speed + * controls for video playback speed + mod: + * GStreamer backend audio improvements. + * Moved open video actions under File menu + * More tolerant parsing of SubRip subtitles. + * Improved split lines command + * Updated Czech translation - thanks @goliashcz + * Updated Croatian translations - thanks @muzena + fix: + * Waveform widget dragging and speed improvements, fixed + buffer overflow + * WaveformWidget: zoom out wasn't working on movies without + audio + * Fixed cases where subtitle hide time would end up before + show time. + * Improved context menus. + * Fixed moving of anchored lines. + * Open subtitle wouldn't autoload video in some cases + * Open video now includes .divx and .webm extensions + * Tools menu scripts are filtered based on installed kross + interpreters + * Moved custom icons to more standard location, using + QIcon::fromTheme() + * Error Check > Absolute Duration config fields were changing + incorrect values. + * MPV Backend: fixed deprecated options, updated vo devices - + thanks @luzfcb + * better rendering on high DPI screens. + * MPV Backend: framerate/video length wasn't reported to + subtitle composer anymore + * detection/handling of current playing line + * Parsing text containing without color attribute + * compilation without xine - thanks @pinotree + * ASS parsing - thanks @Martchus + +- Added subtitlecomposer-Qt56.patch to be able to build against + Qt 5.6 on Leap + +------------------------------------------------------------------- +Tue Jun 13 13:30:08 UTC 2017 - jengelh@inai.de + +- Reword vague description. + +------------------------------------------------------------------- +Mon Oct 31 19:06:55 UTC 2016 - asterios.dramis@gmail.com + +- Update directories not owned by package to cover also + Factory/Tumbleweed. + +------------------------------------------------------------------- +Thu Jun 23 20:03:40 UTC 2016 - asterios.dramis@gmail.com + +- Update to 0.6.4: + * ADD: WaveformWidget: context menu + * MOD: Updated German translations - thanks @Martchus + * MOD: Updated Croatian translations - thanks @muzena + * FIX: Inserting subtitle line would corrupt subtitle indexes + * FIX: Display audio of WebM/FLV files in waveform - thanks + @Martchus + From 0.6.3: + * ADD: WaveformWidget: customization settings page + * ADD: Speech recognition with PocketSphinx + * MOD: Waveform and Player widgets can be docked to any side of + the main window + * MOD: WaveformWidget: can be manually scrolled even if + autoscroll is enabled + * MOD: WaveformWidget: ability to drag whole subtitle line + * MOD: Updated croatian translation - thanks @muzena + * FIX: Video player fullscreen and icon display under was not + right under some desktop environments - thanks @Martchus + * FIX: WaveformWidget: when dragging subtitle borders (or + clicking near them), show/hide time was jumping to mouse + position + * FIX: po/Messages.sh will generate .po files compatible with Qt + Linguist, and will run from any path + * FIX: Build cleanups - thanks @pinotree + From 0.6.2: + * ADD: Ability to demux text streams from loaded video + * MOD: WaveformWidget: added scrollbar and manual scrolling mode, + improved zoom, widget state is loaded/saved + * MOD: WaveformWidget: double click will seek in video player + * MOD: WaveformWidget: subtitle show/hide time can be dragged + * MOD: Added default shortcut for play/pause video. + * MOD: Support for building with cmake older version than 3.3 + * FIX: Changing player backend setting will reopen loaded video + in new player backend. + * FIX: Timeline after last anchored subtitle was scaled + incorrectly. + * FIX: WaveformWidget: optimizations and speed improvements + * FIX: Recent files list was not saved properly in some cases + (subtitle list full). + * FIX: WaveformWidget: fixed crash after closing subtitle + * FIX: WaveformWidget: editing of non-anchored lines is not + allowed + * FIX: StreamProcessor was not freeing it's resources. + * FIX: Updated configure and install scripts + * FIX: Removed "Decoder backend" entry from video player settings + page. + From 0.6.1: + * FIX: Anchor points syncing wasn't working right in some cases + From 0.6.0: + * ADD: Anchor points syncing + * ADD: Waveform widget. + * MOD: Improved precision of the Time class. + * MOD: GStreamerPlayerBackend will pause when reaching + end-of-stream instead of stopping/resetting player. + * MOD: Converted playerbackends to plugins + * MOD: updated German translation + * FIX: Video player widget will repaint background correctly. + * FIX: Code refactoring, cleanups and optimizations. + * FIX: fixed/enabled Drag & Drop + From 0.5.9: + * FIX: Improved error reporting during video open. + * MOD: Added italian translation. + From 0.5.8: + * ADD: MPV player support + * MOD: Replaced remaining KDE4 deprecated code, removed + KDELibs4Support dependency. Finalized KF5 porting. + * MOD: Update croatian translation and README.md + * MOD: Added option not to resume playback after subtitle + doubleclick if player is paused + * FIX: Gettext translations were not created during build + process. + * FIX: FindGStreamer.cmake was not searching for and including + arch-specific include dir + * FIX: Errors/Spelling in "Error Check" settings + * FIX: Build process fixes + * FIX: improved player/decoder backends, solved crashes when + switching backends + * FIX: Added option to antialias subtitles + * FIX: Phonon player backend was displaying embeded subtitles + * FIX: OBS (OpenSuse) package creation was failing +- Updated build/runtime requirements to KF5/Qt5. +- Added new build requirement mpv-devel. +- Removed fdupes macro (not needed anymore). +- Removed NULL-pointer.patch and + Find-platform-dependant-include-files-of-GStreamer.patch (fixed + upstream). + +------------------------------------------------------------------- +Sun Jan 3 17:57:44 UTC 2016 - asterios.dramis@gmail.com + +- Added Find-platform-dependant-include-files-of-GStreamer.patch in + order to fix finding of platform-dependant include files of + GStreamer (fixes compilation failure). + +------------------------------------------------------------------- +Sun Nov 16 23:30:51 UTC 2014 - hrvoje.senjan@gmail.com + +- Update to 0.5.7 + * GStreamer 1.0 API support +- Switch BuildRequires to reflect above change +- Added NULL-pointer.patch from upstream, to resolve post-buid-check + failure + +------------------------------------------------------------------- +Wed Dec 4 20:34:36 UTC 2013 - asterios.dramis@gmail.com + +- Update to 0.5.6 + # Continuation of original package since initial author stopped development + * SubStation Alpha format fixes and color support + * source cleanup + From 0.5.5: + * text color support + * SubRip text color support + * reworked MicroDVD open/save + From 0.5.4: + * mplayer2 support + * mplayer VDPAU decoding support + * minor cmake build fixes +- Added libicu-devel build requirement. +- Removed all previous patches (fixed upstream). + +------------------------------------------------------------------- +Sun Jan 29 15:08:50 UTC 2012 - asterios.dramis@gmail.com + +- Updated no-copy-dt-needed-entries.patch to fix a new linking error with + libX11. + +------------------------------------------------------------------- +Mon Dec 5 21:47:07 UTC 2011 - asterios.dramis@gmail.com + +- Added a patch (no-copy-dt-needed-entries.patch) to fix linking with + --no-copy-dt-needed-entries. +- Spec file updates: + * Changes based on spec-cleaner run. + * Changed License: to GPL-2.0+ (SPDX style). + +------------------------------------------------------------------- +Thu Jun 2 18:40:29 UTC 2011 - asterios.dramis@gmail.com + +- Spec file updates: + * Recommend instead of Suggest the subtitlecomposer-lang package. + * Added update-mime-database in %post/%postun scripts for the mime file + installed by the package. + * Minor other updates. + +------------------------------------------------------------------- +Tue Jan 18 18:17:00 UTC 2011 - asterios.dramis@gmail.com + +- Spec file updates: + * Added a subtitlecomposer-lang package. + * Changes based on rpmdevtools templates and spec-cleaner run. + * Updates in Buildrequires:, %prep and %install sections. + * Fixed rpmlint warnings (devel-file-in-non-devel-package, + non-executable-script). + * Fixed rpm post build check about directories not owned by a package. +- Add a patch to fix installation of python scripting examples. + +------------------------------------------------------------------- +Thu Jun 24 08:17:49 UTC 2010 - cmorve69@yahoo.es + +- Fix compilation with GCC 4.5 + +------------------------------------------------------------------- +Sun Jul 5 01:35:46 CEST 2009 - cmorve69@yahoo.es + +- First version + diff --git a/subtitlecomposer.spec b/subtitlecomposer.spec new file mode 100644 index 0000000..a208c65 --- /dev/null +++ b/subtitlecomposer.spec @@ -0,0 +1,116 @@ +# +# spec file for package subtitlecomposer +# +# Copyright (c) 2025 SUSE LLC and contributors +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +Name: subtitlecomposer +Version: 0.8.2 +Release: 0 +Summary: A text-based subtitle editor +License: GPL-2.0-or-later +Group: Productivity/Multimedia/Video/Editors and Convertors +URL: https://invent.kde.org/multimedia/subtitlecomposer +Source0: https://download.kde.org/stable/subtitlecomposer/%{name}-%{version}.tar.xz +Source1: https://download.kde.org/stable/subtitlecomposer/%{name}-%{version}.tar.xz.sig +Source2: subtitlecomposer.keyring +# PATCH-FIX-UPSTREAM https://invent.kde.org/multimedia/subtitlecomposer/-/merge_requests/48 +Patch10: use-pocketsphinx-5.0.0-api.patch +BuildRequires: cmake >= 3.10 +BuildRequires: extra-cmake-modules +BuildRequires: libQt5Widgets-private-headers-devel +BuildRequires: pkgconfig +BuildRequires: update-desktop-files +BuildRequires: cmake(KF5Auth) +BuildRequires: cmake(KF5Codecs) +BuildRequires: cmake(KF5Config) +BuildRequires: cmake(KF5ConfigWidgets) +BuildRequires: cmake(KF5CoreAddons) +BuildRequires: cmake(KF5I18n) +BuildRequires: cmake(KF5KIO) +BuildRequires: cmake(KF5Kross) +BuildRequires: cmake(KF5Sonnet) +BuildRequires: cmake(KF5TextWidgets) +BuildRequires: cmake(KF5WidgetsAddons) +BuildRequires: cmake(KF5XmlGui) +BuildRequires: cmake(Qt5Core) +BuildRequires: cmake(Qt5Gui) +BuildRequires: cmake(Qt5Qml) +BuildRequires: cmake(Qt5Test) +BuildRequires: cmake(Qt5Widgets) +BuildRequires: pkgconfig(icu-i18n) +BuildRequires: pkgconfig(icu-uc) +BuildRequires: pkgconfig(libavcodec) +BuildRequires: pkgconfig(libavformat) >= 59.27.100 +BuildRequires: pkgconfig(libavutil) +BuildRequires: pkgconfig(libswscale) +BuildRequires: pkgconfig(openal) +BuildRequires: pkgconfig(openssl) +%if 0%{?suse_version} > 1500 +%ifnarch ppc64 s390x +BuildRequires: pkgconfig(pocketsphinx) >= 5 +%endif +%endif + +%description +A text-based subtitles editor that supports basic operations. It supports +SubRip (SRT), MicroDVD, SSA/ASS, MPlayer, TMPlayer and YouTube captions, and +has speech Recognition using PocketSphinx. + +%lang_package + +%prep +%autosetup -p1 + +%build +%cmake_kf5 -d build + +%cmake_build + +%install +%kf5_makeinstall -C build + +# Fix rpmlint error (devel-file-in-non-devel-package) and install header files as doc (since they are installed just for help) +mkdir files_for_doc +cp -a %{buildroot}%{_kf5_appsdir}/%{name}/scripts/api/ files_for_doc/ +rm -r %{buildroot}%{_kf5_appsdir}/%{name}/scripts/api/ +# Point to the correct path of the header files directory (doc) +perl -pi -e "s|'api'|'%{_docdir}/subtitlecomposer/api'|" %{buildroot}%{_kf5_appsdir}/%{name}/scripts/README + +%find_lang %{name} + +%{kf5_post_install} + +%files +%doc ChangeLog README.md files_for_doc/api +%license LICENSE +%config(noreplace) %{_kf5_configdir}/%{name}rc +%dir %{_kf5_iconsdir}/hicolor/256x256 +%dir %{_kf5_iconsdir}/hicolor/256x256/apps +%{_kf5_applicationsdir}/org.kde.%{name}.desktop +%{_kf5_appsdir}/%{name}/ +%{_kf5_appstreamdir}/org.kde.%{name}.appdata.xml +%{_kf5_bindir}/%{name} +%{_kf5_iconsdir}/hicolor/*/*/* +%{_kf5_sharedir}/mime/packages/%{name}.xml +%if 0%{?suse_version} > 1500 +%ifnarch ppc64 s390x +%{_kf5_libdir}/%{name}/ +%endif +%endif + +%files lang -f %{name}.lang + +%changelog -- 2.51.1