diff --git a/0001-Use-a-local-qthelper.cpp-copy.patch b/0001-Use-a-local-qthelper.cpp-copy.patch deleted file mode 100644 index c6fcada..0000000 --- a/0001-Use-a-local-qthelper.cpp-copy.patch +++ /dev/null @@ -1,26 +0,0 @@ -From b870cecd8070974e85db99b082e9bb0e9a903fe0 Mon Sep 17 00:00:00 2001 -From: Christophe Giboudeaux -Date: Wed, 11 Mar 2020 11:28:38 +0100 -Subject: [PATCH] Use a local qthelper.cpp copy - -mpv >= 0.33 no longer provides this header and suggests copying this header locally. ---- - src/videoplayerplugins/mpv/mpvbackend.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/videoplayerplugins/mpv/mpvbackend.h b/src/videoplayerplugins/mpv/mpvbackend.h -index d0edf2e..036ac5e 100644 ---- a/src/videoplayerplugins/mpv/mpvbackend.h -+++ b/src/videoplayerplugins/mpv/mpvbackend.h -@@ -23,7 +23,7 @@ - - #include "videoplayer/playerbackend.h" - --#include -+#include "qthelper.hpp" - - #include - #include --- -2.25.1 - diff --git a/qthelper.hpp b/qthelper.hpp deleted file mode 100644 index e65f98b..0000000 --- a/qthelper.hpp +++ /dev/null @@ -1,386 +0,0 @@ -/* Copyright (C) 2017 the mpv developers - * - * Permission to use, copy, modify, and/or 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. - */ - -#ifndef MPV_CLIENT_API_QTHELPER_H_ -#define MPV_CLIENT_API_QTHELPER_H_ - -#include - -#if !MPV_ENABLE_DEPRECATED -#error "This helper is deprecated. Copy it into your project instead." -#else - -/** - * Note: these helpers are provided for convenience for C++/Qt applications. - * This is based on the public API in client.h, and it does not encode any - * knowledge that is not known or guaranteed outside of the C client API. You - * can even copy and modify this code as you like, or implement similar things - * for other languages. - */ - -#include - -#include -#include -#include -#include -#include -#include - -namespace mpv { -namespace qt { - -// Wrapper around mpv_handle. Does refcounting under the hood. -class Handle -{ - struct container { - container(mpv_handle *h) : mpv(h) {} - ~container() { mpv_terminate_destroy(mpv); } - mpv_handle *mpv; - }; - QSharedPointer sptr; -public: - // Construct a new Handle from a raw mpv_handle with refcount 1. If the - // last Handle goes out of scope, the mpv_handle will be destroyed with - // mpv_terminate_destroy(). - // Never destroy the mpv_handle manually when using this wrapper. You - // will create dangling pointers. Just let the wrapper take care of - // destroying the mpv_handle. - // Never create multiple wrappers from the same raw mpv_handle; copy the - // wrapper instead (that's what it's for). - static Handle FromRawHandle(mpv_handle *handle) { - Handle h; - h.sptr = QSharedPointer(new container(handle)); - return h; - } - - // Return the raw handle; for use with the libmpv C API. - operator mpv_handle*() const { return sptr ? (*sptr).mpv : 0; } -}; - -static inline QVariant node_to_variant(const mpv_node *node) -{ - switch (node->format) { - case MPV_FORMAT_STRING: - return QVariant(QString::fromUtf8(node->u.string)); - case MPV_FORMAT_FLAG: - return QVariant(static_cast(node->u.flag)); - case MPV_FORMAT_INT64: - return QVariant(static_cast(node->u.int64)); - case MPV_FORMAT_DOUBLE: - return QVariant(node->u.double_); - case MPV_FORMAT_NODE_ARRAY: { - mpv_node_list *list = node->u.list; - QVariantList qlist; - for (int n = 0; n < list->num; n++) - qlist.append(node_to_variant(&list->values[n])); - return QVariant(qlist); - } - case MPV_FORMAT_NODE_MAP: { - mpv_node_list *list = node->u.list; - QVariantMap qmap; - for (int n = 0; n < list->num; n++) { - qmap.insert(QString::fromUtf8(list->keys[n]), - node_to_variant(&list->values[n])); - } - return QVariant(qmap); - } - default: // MPV_FORMAT_NONE, unknown values (e.g. future extensions) - return QVariant(); - } -} - -struct node_builder { - node_builder(const QVariant& v) { - set(&node_, v); - } - ~node_builder() { - free_node(&node_); - } - mpv_node *node() { return &node_; } -private: - Q_DISABLE_COPY(node_builder) - mpv_node node_; - mpv_node_list *create_list(mpv_node *dst, bool is_map, int num) { - dst->format = is_map ? MPV_FORMAT_NODE_MAP : MPV_FORMAT_NODE_ARRAY; - mpv_node_list *list = new mpv_node_list(); - dst->u.list = list; - if (!list) - goto err; - list->values = new mpv_node[num](); - if (!list->values) - goto err; - if (is_map) { - list->keys = new char*[num](); - if (!list->keys) - goto err; - } - return list; - err: - free_node(dst); - return NULL; - } - char *dup_qstring(const QString &s) { - QByteArray b = s.toUtf8(); - char *r = new char[b.size() + 1]; - if (r) - std::memcpy(r, b.data(), b.size() + 1); - return r; - } - bool test_type(const QVariant &v, QMetaType::Type t) { - // The Qt docs say: "Although this function is declared as returning - // "QVariant::Type(obsolete), the return value should be interpreted - // as QMetaType::Type." - // So a cast really seems to be needed to avoid warnings (urgh). - return static_cast(v.type()) == static_cast(t); - } - void set(mpv_node *dst, const QVariant &src) { - if (test_type(src, QMetaType::QString)) { - dst->format = MPV_FORMAT_STRING; - dst->u.string = dup_qstring(src.toString()); - if (!dst->u.string) - goto fail; - } else if (test_type(src, QMetaType::Bool)) { - dst->format = MPV_FORMAT_FLAG; - dst->u.flag = src.toBool() ? 1 : 0; - } else if (test_type(src, QMetaType::Int) || - test_type(src, QMetaType::LongLong) || - test_type(src, QMetaType::UInt) || - test_type(src, QMetaType::ULongLong)) - { - dst->format = MPV_FORMAT_INT64; - dst->u.int64 = src.toLongLong(); - } else if (test_type(src, QMetaType::Double)) { - dst->format = MPV_FORMAT_DOUBLE; - dst->u.double_ = src.toDouble(); - } else if (src.canConvert()) { - QVariantList qlist = src.toList(); - mpv_node_list *list = create_list(dst, false, qlist.size()); - if (!list) - goto fail; - list->num = qlist.size(); - for (int n = 0; n < qlist.size(); n++) - set(&list->values[n], qlist[n]); - } else if (src.canConvert()) { - QVariantMap qmap = src.toMap(); - mpv_node_list *list = create_list(dst, true, qmap.size()); - if (!list) - goto fail; - list->num = qmap.size(); - for (int n = 0; n < qmap.size(); n++) { - list->keys[n] = dup_qstring(qmap.keys()[n]); - if (!list->keys[n]) { - free_node(dst); - goto fail; - } - set(&list->values[n], qmap.values()[n]); - } - } else { - goto fail; - } - return; - fail: - dst->format = MPV_FORMAT_NONE; - } - void free_node(mpv_node *dst) { - switch (dst->format) { - case MPV_FORMAT_STRING: - delete[] dst->u.string; - break; - case MPV_FORMAT_NODE_ARRAY: - case MPV_FORMAT_NODE_MAP: { - mpv_node_list *list = dst->u.list; - if (list) { - for (int n = 0; n < list->num; n++) { - if (list->keys) - delete[] list->keys[n]; - if (list->values) - free_node(&list->values[n]); - } - delete[] list->keys; - delete[] list->values; - } - delete list; - break; - } - default: ; - } - dst->format = MPV_FORMAT_NONE; - } -}; - -/** - * RAII wrapper that calls mpv_free_node_contents() on the pointer. - */ -struct node_autofree { - mpv_node *ptr; - node_autofree(mpv_node *a_ptr) : ptr(a_ptr) {} - ~node_autofree() { mpv_free_node_contents(ptr); } -}; - -#if MPV_ENABLE_DEPRECATED - -/** - * Return the given property as mpv_node converted to QVariant, or QVariant() - * on error. - * - * @deprecated use get_property() instead - * - * @param name the property name - */ -static inline QVariant get_property_variant(mpv_handle *ctx, const QString &name) -{ - mpv_node node; - if (mpv_get_property(ctx, name.toUtf8().data(), MPV_FORMAT_NODE, &node) < 0) - return QVariant(); - node_autofree f(&node); - return node_to_variant(&node); -} - -/** - * Set the given property as mpv_node converted from the QVariant argument. - - * @deprecated use set_property() instead - */ -static inline int set_property_variant(mpv_handle *ctx, const QString &name, - const QVariant &v) -{ - node_builder node(v); - return mpv_set_property(ctx, name.toUtf8().data(), MPV_FORMAT_NODE, node.node()); -} - -/** - * Set the given option as mpv_node converted from the QVariant argument. - * - * @deprecated use set_property() instead - */ -static inline int set_option_variant(mpv_handle *ctx, const QString &name, - const QVariant &v) -{ - node_builder node(v); - return mpv_set_option(ctx, name.toUtf8().data(), MPV_FORMAT_NODE, node.node()); -} - -/** - * mpv_command_node() equivalent. Returns QVariant() on error (and - * unfortunately, the same on success). - * - * @deprecated use command() instead - */ -static inline QVariant command_variant(mpv_handle *ctx, const QVariant &args) -{ - node_builder node(args); - mpv_node res; - if (mpv_command_node(ctx, node.node(), &res) < 0) - return QVariant(); - node_autofree f(&res); - return node_to_variant(&res); -} - -#endif - -/** - * This is used to return error codes wrapped in QVariant for functions which - * return QVariant. - * - * You can use get_error() or is_error() to extract the error status from a - * QVariant value. - */ -struct ErrorReturn -{ - /** - * enum mpv_error value (or a value outside of it if ABI was extended) - */ - int error; - - ErrorReturn() : error(0) {} - explicit ErrorReturn(int err) : error(err) {} -}; - -/** - * Return the mpv error code packed into a QVariant, or 0 (success) if it's not - * an error value. - * - * @return error code (<0) or success (>=0) - */ -static inline int get_error(const QVariant &v) -{ - if (!v.canConvert()) - return 0; - return v.value().error; -} - -/** - * Return whether the QVariant carries a mpv error code. - */ -static inline bool is_error(const QVariant &v) -{ - return get_error(v) < 0; -} - -/** - * Return the given property as mpv_node converted to QVariant, or QVariant() - * on error. - * - * @param name the property name - * @return the property value, or an ErrorReturn with the error code - */ -static inline QVariant get_property(mpv_handle *ctx, const QString &name) -{ - mpv_node node; - int err = mpv_get_property(ctx, name.toUtf8().data(), MPV_FORMAT_NODE, &node); - if (err < 0) - return QVariant::fromValue(ErrorReturn(err)); - node_autofree f(&node); - return node_to_variant(&node); -} - -/** - * Set the given property as mpv_node converted from the QVariant argument. - * - * @return mpv error code (<0 on error, >= 0 on success) - */ -static inline int set_property(mpv_handle *ctx, const QString &name, - const QVariant &v) -{ - node_builder node(v); - return mpv_set_property(ctx, name.toUtf8().data(), MPV_FORMAT_NODE, node.node()); -} - -/** - * mpv_command_node() equivalent. - * - * @param args command arguments, with args[0] being the command name as string - * @return the property value, or an ErrorReturn with the error code - */ -static inline QVariant command(mpv_handle *ctx, const QVariant &args) -{ - node_builder node(args); - mpv_node res; - int err = mpv_command_node(ctx, node.node(), &res); - if (err < 0) - return QVariant::fromValue(ErrorReturn(err)); - node_autofree f(&res); - return node_to_variant(&res); -} - -} -} - -Q_DECLARE_METATYPE(mpv::qt::ErrorReturn) - -#endif /* else #if MPV_ENABLE_DEPRECATED */ - -#endif diff --git a/subtitlecomposer-0.7.0.tar.gz b/subtitlecomposer-0.7.0.tar.gz deleted file mode 100644 index 0179ee5..0000000 --- a/subtitlecomposer-0.7.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:90dee806df0ee57f4098d417f62014b4533dbf5598d5535c9da1066536c1ed41 -size 1649840 diff --git a/subtitlecomposer-0.7.1.tar.xz b/subtitlecomposer-0.7.1.tar.xz new file mode 100644 index 0000000..1609cbb --- /dev/null +++ b/subtitlecomposer-0.7.1.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef9cb3c0c1fe1f40cf9d8e795859b9b28adf2da3be77a076d46bc28df4cd0255 +size 636808 diff --git a/subtitlecomposer-0.7.1.tar.xz.sig b/subtitlecomposer-0.7.1.tar.xz.sig new file mode 100644 index 0000000..1a029b4 --- /dev/null +++ b/subtitlecomposer-0.7.1.tar.xz.sig @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCAAdFiEEdveQB6VKS2jxVHko4kGHRu+dmyYFAmFdHngACgkQ4kGHRu+d +mybPihAAgwFv4Ksuo6ZgSX4R6N/dd7Bmw94GSd/zjOZQpQ7ELvjd9eFy4ReSTZaY +g1KlsG1gJf7D3HSR5eaCfWGhfZ/wS3yIT+eeij8BlGNThdyuPh4eBEeXergM3nBj +jgcUBUQ7eoy/wkI99jZlNY8i5ouRiqlVGp93Tq1wtbSqaJ1Xf6+FAX8xa+9SjuLJ +p2cHLrqHEb27p5Ae3WC9+Eiaqgj6pLYOPfiut629J1x6Bx0O9qcSQxdqm7FVBDve +q0JLDQo3IrBL1mVrp3aWjVdScHGeBp+nL3R9hh7Hor9y5HSYfHD4m1SewCl6chCN +73PxFy6BQ10XLcxs34qCtsiSueY0ToS/+yFbC833YSEgymYKXcgeh4Hm2zc59dDe +GtEf5J6N94Knbd85AoB1p+/zRF3fv/ec7BlX4l0gJAnpEwOZKbxe5YjrqdylEWb4 +4ddHtHGRJAWyEAhJMoH7ayDSYCUhtEcuGBgFZqhYIojpJihLeBnsgbPua/54iBYH +Z71a5tM6xcOu09beIDgxcsV5aBbiV/mgBaK+CAg4/4kAPYWnTzbM5xJXpEplxjZr +l9citFgZzMyAWzA0zl+hMbPTkyt230Unj79NAk1iSNHRlMNIomkgJNWVw0SYFzgE +frQ2HVnBYsMACX06MYS9YCyaW/6aGYTnJa8kaJTwbFu016ZbGAA= +=FxK6 +-----END PGP SIGNATURE----- diff --git a/subtitlecomposer.changes b/subtitlecomposer.changes index e73a603..954ea99 100644 --- a/subtitlecomposer.changes +++ b/subtitlecomposer.changes @@ -1,3 +1,32 @@ +------------------------------------------------------------------- +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 diff --git a/subtitlecomposer.keyring b/subtitlecomposer.keyring new file mode 100644 index 0000000..af304ee --- /dev/null +++ b/subtitlecomposer.keyring @@ -0,0 +1,52 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +wnFHTqh0Ix5Y2oHbqs4xpTQ= +=K8XE +-----END PGP PUBLIC KEY BLOCK----- diff --git a/subtitlecomposer.spec b/subtitlecomposer.spec index b0e6439..2e63c34 100644 --- a/subtitlecomposer.spec +++ b/subtitlecomposer.spec @@ -1,7 +1,7 @@ # # spec file for package subtitlecomposer # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,19 +17,18 @@ Name: subtitlecomposer -Version: 0.7.0 +Version: 0.7.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://github.com/maxrd2/%{name}/archive/v%{version}/%{name}-%{version}.tar.gz -# No longer part of mpv >= 0.33 -Source1: https://raw.githubusercontent.com/mpv-player/mpv/v0.32.0/libmpv/qthelper.hpp -# PATCH-FIX-UPSTREAM use a local qthelper.hpp copy -Patch0: 0001-Use-a-local-qthelper.cpp-copy.patch +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 BuildRequires: cmake >= 3.10 BuildRequires: extra-cmake-modules +BuildRequires: libQt5Widgets-private-headers-devel BuildRequires: pkgconfig BuildRequires: update-desktop-files BuildRequires: cmake(KF5Auth) @@ -44,22 +43,23 @@ BuildRequires: cmake(KF5Sonnet) BuildRequires: cmake(KF5TextWidgets) BuildRequires: cmake(KF5WidgetsAddons) BuildRequires: cmake(KF5XmlGui) -BuildRequires: cmake(Qt5Core) >= 5.6 +BuildRequires: cmake(Qt5Core) BuildRequires: cmake(Qt5Gui) BuildRequires: cmake(Qt5Test) BuildRequires: cmake(Qt5Widgets) -BuildRequires: pkgconfig(gstreamer-1.0) -BuildRequires: pkgconfig(gstreamer-plugins-base-1.0) BuildRequires: pkgconfig(icu-i18n) BuildRequires: pkgconfig(icu-uc) BuildRequires: pkgconfig(libavcodec) -BuildRequires: pkgconfig(libavformat) +BuildRequires: pkgconfig(libavformat) >= 57.83.100 BuildRequires: pkgconfig(libavutil) -BuildRequires: pkgconfig(libxine) -BuildRequires: pkgconfig(libxml-2.0) -BuildRequires: pkgconfig(mpv) -BuildRequires: pkgconfig(phonon4qt5) +BuildRequires: pkgconfig(libswscale) +BuildRequires: pkgconfig(openal) +%if 0%{?suse_version} > 1500 +BuildRequires: pkgconfig(pocketsphinx) >= 5 +%endif Recommends: %{name}-lang = %{version} +# GLES not yet supported, see https://invent.kde.org/multimedia/subtitlecomposer/-/issues/58 +ExcludeArch: %arm aarch64 %description A text-based subtitles editor that supports basic operations. It supports @@ -69,13 +69,7 @@ has speech Recognition using PocketSphinx. %lang_package %prep -%setup -q -n SubtitleComposer-%{version} -%patch0 -p1 - -cp %{SOURCE1} src/videoplayerplugins/mpv/ - -# Fix permissions -chmod 644 ChangeLog +%autosetup -p1 # We build kross-interpreters without python support anyway, so we can # remove the python examples to remove an useless dependency on python2 @@ -105,8 +99,6 @@ rm -rf %{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 -%suse_update_desktop_file -r %{name} Qt KDE AudioVideo AudioVideoEditing - %find_lang %{name} %{kf5_post_install} @@ -117,14 +109,16 @@ perl -pi -e "s|'api'|'%{_docdir}/subtitlecomposer/api'|" %{buildroot}%{_kf5_apps %config(noreplace) %{_kf5_configdir}/%{name}rc %dir %{_kf5_iconsdir}/hicolor/256x256 %dir %{_kf5_iconsdir}/hicolor/256x256/apps -%{_datadir}/mime/packages/%{name}.xml -%{_kf5_applicationsdir}/%{name}.desktop +%{_kf5_applicationsdir}/org.kde.%{name}.desktop %{_kf5_appsdir}/%{name}/ -%{_kf5_appstreamdir}/%{name}.desktop.appdata.xml +%{_kf5_appstreamdir}/org.kde.%{name}.appdata.xml %{_kf5_bindir}/%{name} %{_kf5_iconsdir}/hicolor/*/*/* %{_kf5_kxmlguidir}/%{name}/ +%{_kf5_sharedir}/mime/packages/%{name}.xml +%if 0%{?suse_version} > 1500 %{_kf5_libdir}/%{name}/ +%endif %files lang -f %{name}.lang