summaryrefslogtreecommitdiff
path: root/media-video/orion
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2019-11-03 16:06:58 +0000
committerV3n3RiX <venerix@redcorelinux.org>2019-11-03 16:06:58 +0000
commitbd4aeefe33e63f613512604e47bfca7b2187697d (patch)
treeadb35b5a9a00ee7ea591ab0c987f70167c23b597 /media-video/orion
parent48ece6662cbd443015f5a57ae6d8cbdbd69ef37c (diff)
gentoo resync : 03.11.2019
Diffstat (limited to 'media-video/orion')
-rw-r--r--media-video/orion/Manifest5
-rw-r--r--media-video/orion/files/orion-1.6.6-fix_login.patch32
-rw-r--r--media-video/orion/files/orion-1.6.6-mpv_backwards.patch147
-rw-r--r--media-video/orion/files/orion-1.6.6-mpv_compilation.patch39
-rw-r--r--media-video/orion/orion-1.6.6.ebuild60
5 files changed, 283 insertions, 0 deletions
diff --git a/media-video/orion/Manifest b/media-video/orion/Manifest
index 79b866a58739..ce1fe980567a 100644
--- a/media-video/orion/Manifest
+++ b/media-video/orion/Manifest
@@ -1,6 +1,11 @@
AUX orion-1.6.1-fix_desktop.patch 491 BLAKE2B 70d44443f10c55023120f2ef9f53186e095306d149302e091ecdbb64076cad1d07413018bc4af4b90c5de32371ab609a641d81a34026ffb9a54991dcb03d203d SHA512 82b6a12d3fac7e0283154c961684bef1ae34490b8a1ec065ee1f1876bfeaa7eb9bc5d4e2c6d5b10291af80126c790c5bed1d8d796d81f98e112a419e449cd961
+AUX orion-1.6.6-fix_login.patch 999 BLAKE2B 43f37299be369aa56d612ec6393c4a240c06a65b37a9e22dd499b774497c22eb5fe342ecd6b030912cab2354ef4774d067b10c1fa0288f5a6c8554dea9aef1e3 SHA512 a5b45ca8dae9008bb21ca73a8fa57ccff56da46cdb0aa3f9cc03299ca9d864bfa311a622e7735505a52b4a6c7cc66399756f159fa3757ef17a0f00d7b4304792
+AUX orion-1.6.6-mpv_backwards.patch 4470 BLAKE2B 19ca0d4e5226038d5e8bc528856d2f145a6750a87d9f20591810165d513a1fd3067bda2e483088d3e2cf1a44a963ff7498e530d03099ddc6b6ef2a4661d4ac84 SHA512 79f421e95a97f22e91dda2e350c94e8612230123ee64a18f15926bc111c67a6965dc740def5d9624575024f6b0e11871dfa3c26ce0e4e7abb4e3d3c1811ddd9b
+AUX orion-1.6.6-mpv_compilation.patch 1108 BLAKE2B 021660340ba3f6cf7f70fda13af65544ea26edafb50331b4f5bba0af0b1662840ec25a5993b1f19335c7c2ebb5129c04d487640fad975cb797a1a07bd400ca29 SHA512 ffff325f22eace89c0b2f59701e0f119c759ea3d2f2c5d2422b6e3f0eac74e08fa56e442502895ab78cc41be9fe2182f2a62d036ba872c3dfc9457ad61e324af
DIST orion-1.6.1.tar.gz 614216 BLAKE2B 8fc0909c1dd433e72d4ed41046d38a861ec48cbe6e93e1a9cc48f31cb3ef381e1b5b998c501d20756883431464eef798859b9ba4d086b89575281dbc17afca69 SHA512 3db0b59a89d2364f2d0586c3f318fc793f73a17d767adb0f44b89830e397be6f24c2ab662b7c84e7d857bc42b952fdf7fa280090313f5e39e37205eb8fb6dc9e
DIST orion-1.6.5.tar.gz 624005 BLAKE2B ca2c40a299ab3f1abc7f383f2a5f39ebbe1e6ce6737efc3da0acd8cbbc04753dab865f417bd8e39d7e42dd7db8de703dd3b251296b8820a9027ca3ad2cd5de1d SHA512 6add27b81bf2520354e1a8854c2be4caf81d1c7c161003cb86bb4911852965cff938381c0ea481c64dc91c36d45f5af44cfb6e9a6d1c379f8b3b3011bbe47c6f
+DIST orion-1.6.6.tar.gz 629917 BLAKE2B 303af947533aeb26561fb3fc57d4ffbbd6d168e1e51ffe196a0de82fca3406599cfb84c1ae361c9b7b84c9c01b47bb6147b98f62cc5b1dec3d08d0588cbc7327 SHA512 88c7efe1796d1135f18bd53c83a25747df1bbf35163b27c625711ab5027e988425e3ba13ff6e3349d30cdc99d24cae0642d1d058e401a24b240d73c6b47a2aaf
EBUILD orion-1.6.1.ebuild 972 BLAKE2B 475db2a56a07a0ec72a56e87c5f17f721e0a4dec0278847dde90b2374ce0e009d9f68e45128165d5dc64ea9582a77599a9e6f9f387014233bb1fdaf3c06941a3 SHA512 b6eb5de3734dbae9c8cbcb2f61cf0baf50f83a10b7f8bfa03a0cbabbd5c2985d628df544024e9c45dc282d1f2a5dd7e89b0f473dc8c6a1894032836b76108ffc
EBUILD orion-1.6.5.ebuild 988 BLAKE2B 9703326fe52193570e84fc3428941167b12680cb40a891920fa4b2e45a0144110322dcf391146b939647b0aacb0a7de5c72641dec5ada927b741cb7393eb68da SHA512 81dd5dd6ef117820bcdfb63449271f31ffec5724e24df52532d53c07fb49be71ea7d5e520db43f863a0f12e22a9ec6963155c9c52500ebdc5031c7ba04866acc
+EBUILD orion-1.6.6.ebuild 1246 BLAKE2B 9e411ef69e8d9ef745fb7b545d2467df0ab10973005b1cded89ebb059d9da36b6c27c7fd39208b88e3122d1f12ebf699c252dabb5615e1c09428a5279c422bbe SHA512 1787dc3362bc1b9e7e13a1cf7e31dac30b2d1d3b442d6bc54143778faf25b4306ad7679ddff691cb2c34034b16332995b0b2551e026721701475f627eaee0652
MISC metadata.xml 574 BLAKE2B de16e0fa5f9fbb443c5218a093048811e4ad9e633ec0e23cbd8b00e5322f7709af121ff3fa8cc4ef9cbc164f84d57cbf9ce9c542b7753195f09735e859fb5a55 SHA512 4ffbe221d97a40411dbaefc31fad97978f2ae823d14e1fbfef1aa9d84697c9ea06f7d58c7174ff1daa3b8f64863d62350dc469414e0b55917a227e2953b86bc9
diff --git a/media-video/orion/files/orion-1.6.6-fix_login.patch b/media-video/orion/files/orion-1.6.6-fix_login.patch
new file mode 100644
index 000000000000..c6aced452ca7
--- /dev/null
+++ b/media-video/orion/files/orion-1.6.6-fix_login.patch
@@ -0,0 +1,32 @@
+From 69c58ba5af5f83903be70629b02f348fc3ad8757 Mon Sep 17 00:00:00 2001
+From: Andrew Tonner <rakslice@gmail.com>
+Date: Tue, 26 Mar 2019 14:58:40 -0700
+Subject: [PATCH] Fix HTTP request socket output
+
+---
+ src/network/httpserver.cpp | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/src/network/httpserver.cpp b/src/network/httpserver.cpp
+index 235e073..b0368eb 100644
+--- a/src/network/httpserver.cpp
++++ b/src/network/httpserver.cpp
+@@ -89,7 +89,6 @@ void HttpServer::onRead() {
+
+ // Respond with 200
+ QByteArray block;
+- QDataStream out(&block, QIODevice::WriteOnly);
+
+ // http payload message body
+ QByteArray content;
+@@ -111,9 +110,7 @@ void HttpServer::onRead() {
+ response += "Content-Length: " + QString::number(content.length()) + "\n";
+ response += "\n" + content;
+
+- out << response.toUtf8();
+-
+- socket->write(block);
++ socket->write(response.toUtf8());
+ socket->waitForBytesWritten();
+ socket->disconnectFromHost();
+
diff --git a/media-video/orion/files/orion-1.6.6-mpv_backwards.patch b/media-video/orion/files/orion-1.6.6-mpv_backwards.patch
new file mode 100644
index 000000000000..4cd302cb3d1f
--- /dev/null
+++ b/media-video/orion/files/orion-1.6.6-mpv_backwards.patch
@@ -0,0 +1,147 @@
+From 755fae82a31105808ec978855803f52affa01f87 Mon Sep 17 00:00:00 2001
+From: mrgreywater <mr.greywater@googlemail.com>
+Date: Fri, 19 Oct 2018 22:21:07 +0200
+Subject: [PATCH] opengl-cb backward compatibility
+
+---
+ src/player/mpvobject.cpp | 43 ++++++++++++++++++++++++++++++++++------
+ src/player/mpvobject.h | 15 +++++++++++++-
+ 2 files changed, 51 insertions(+), 7 deletions(-)
+
+diff --git a/src/player/mpvobject.cpp b/src/player/mpvobject.cpp
+index 2955063..31cdf73 100644
+--- a/src/player/mpvobject.cpp
++++ b/src/player/mpvobject.cpp
+@@ -48,16 +48,25 @@ class MpvRenderer : public QQuickFramebufferObject::Renderer
+ MpvRenderer(MpvObject *new_obj)
+ : obj{new_obj}
+ {
+-
++#ifdef USE_OPENGL_CB
++ int r = mpv_opengl_cb_init_gl(obj->mpv_gl, nullptr, &get_proc_address_mpv, nullptr);
++ if (r < 0)
++ throw std::runtime_error("could not initialize OpenGL");
++#endif
+ }
+
+ virtual ~MpvRenderer()
+- {}
++ {
++#ifdef USE_OPENGL_CB
++ mpv_opengl_cb_uninit_gl(obj->mpv_gl);
++#endif
++ }
+
+ // This function is called when a new FBO is needed.
+ // This happens on the initial frame.
+ QOpenGLFramebufferObject * createFramebufferObject(const QSize &size)
+ {
++#ifndef USE_OPENGL_CB
+ // init mpv_gl:
+ if (!obj->mpv_gl)
+ {
+@@ -72,15 +81,17 @@ class MpvRenderer : public QQuickFramebufferObject::Renderer
+ throw std::runtime_error("failed to initialize mpv GL context");
+ mpv_render_context_set_update_callback(obj->mpv_gl, on_mpv_redraw, obj);
+ }
+-
++#endif
+ return QQuickFramebufferObject::Renderer::createFramebufferObject(size);
+ }
+
+ void render()
+ {
+ obj->window()->resetOpenGLState();
+-
+ QOpenGLFramebufferObject *fbo = framebufferObject();
++#ifdef USE_OPENGL_CB
++ mpv_opengl_cb_draw(obj->mpv_gl, fbo->handle(), fbo->width(), fbo->height());
++#else
+ mpv_opengl_fbo mpfbo{static_cast<int>(fbo->handle()), fbo->width(), fbo->height(), 0};
+ int flip_y{0};
+
+@@ -97,7 +108,7 @@ class MpvRenderer : public QQuickFramebufferObject::Renderer
+ // See render_gl.h on what OpenGL environment mpv expects, and
+ // other API details.
+ mpv_render_context_render(obj->mpv_gl, params);
+-
++#endif
+ obj->window()->resetOpenGLState();
+ }
+ };
+@@ -115,11 +126,27 @@ MpvObject::MpvObject(QQuickItem * parent)
+ mpv_set_option_string(mpv, "msg-level", "all=v");
+ #endif
+
++#ifdef USE_OPENGL_CB
++ mpv_set_option_string(mpv, "vo", "opengl-cb");
++#endif
++
+ if (mpv_initialize(mpv) < 0)
+ throw std::runtime_error("could not initialize mpv context");
+
+ // Request hw decoding, just for testing.
+- mpv::qt::set_option_variant(mpv, "hwdec", "auto");
++ mpv_set_option_string(mpv, "hwdec", "auto");
++
++#ifdef USE_OPENGL_CB
++ // Setup the callback that will make QtQuick update and redraw if there
++ // is a new video frame. Use a queued connection: this makes sure the
++ // doUpdate() function is run on the GUI thread.
++ mpv_gl = (mpv_opengl_cb_context *)mpv_get_sub_api(mpv, MPV_SUB_API_OPENGL_CB);
++
++ if (!mpv_gl)
++ throw std::runtime_error("OpenGL not compiled in");
++
++ mpv_opengl_cb_set_update_callback(mpv_gl, MpvObject::on_update, (void *)this);
++#endif
+
+ mpv_set_wakeup_callback(mpv, wakeup, this);
+
+@@ -130,7 +157,11 @@ MpvObject::~MpvObject()
+ {
+ if (mpv_gl) // only initialized if something got drawn
+ {
++#ifdef USE_OPENGL_CB
++ mpv_opengl_cb_set_update_callback(mpv_gl, nullptr, nullptr);
++#else
+ mpv_render_context_free(mpv_gl);
++#endif
+ }
+
+ mpv_terminate_destroy(mpv);
+diff --git a/src/player/mpvobject.h b/src/player/mpvobject.h
+index 0ec0b7a..eeaa250 100644
+--- a/src/player/mpvobject.h
++++ b/src/player/mpvobject.h
+@@ -6,8 +6,21 @@
+
+ #include <QtQuick/QQuickFramebufferObject>
+
++
+ #include <mpv/client.h>
++
++#if MPV_CLIENT_API_VERSION < MPV_MAKE_VERSION(1, 28)
++#define USE_OPENGL_CB
++#endif
++
++#ifdef USE_OPENGL_CB
++#include <mpv/opengl_cb.h>
++typedef mpv_opengl_cb_context mpv_context;
++#else
+ #include <mpv/render_gl.h>
++typedef mpv_render_context mpv_context;
++#endif
++
+ #include <mpv/qthelper.hpp>
+
+ class MpvRenderer;
+@@ -17,7 +30,7 @@ class MpvObject : public QQuickFramebufferObject
+ Q_OBJECT
+
+ mpv_handle *mpv;
+- mpv_render_context *mpv_gl;
++ mpv_context *mpv_gl;
+ std::vector<std::unique_ptr<QJSValue>> callbacks;
+
+ friend class MpvRenderer;
diff --git a/media-video/orion/files/orion-1.6.6-mpv_compilation.patch b/media-video/orion/files/orion-1.6.6-mpv_compilation.patch
new file mode 100644
index 000000000000..c9163d3376c5
--- /dev/null
+++ b/media-video/orion/files/orion-1.6.6-mpv_compilation.patch
@@ -0,0 +1,39 @@
+index def79f5..7fd9d93 100644
+--- a/orion.pro
++++ b/orion.pro
+@@ -8,7 +8,7 @@ QT += gui qml network widgets quickcontrols2
+
+ QMAKE_CXXFLAGS += -Wall -O2
+
+-CONFIG += c++11
++CONFIG += c++14
+ #CONFIG += console
+
+ TARGET = orion
+@@ -86,8 +86,8 @@ android: {
+ android/src/com/orion/MainActivity.java
+
+ ANDROID_EXTRA_LIBS = \
+- $$PWD/../openssl-1.0.2l/libcrypto.so \
+- $$PWD/../openssl-1.0.2l/libssl.so
++ $$PWD/libs/libcrypto.so \
++ $$PWD/libs/libssl.so
+ }
+
+ #Backend for player, uses mpv as default
+diff --git a/src/player/mpvobject.cpp b/src/player/mpvobject.cpp
+index 2c30462..2955063 100644
+--- a/src/player/mpvobject.cpp
++++ b/src/player/mpvobject.cpp
+@@ -103,8 +103,10 @@ class MpvRenderer : public QQuickFramebufferObject::Renderer
+ };
+
+ MpvObject::MpvObject(QQuickItem * parent)
+- : QQuickFramebufferObject(parent), mpv{mpv_create()}, mpv_gl(nullptr)
++ : QQuickFramebufferObject(parent), mpv_gl(nullptr)
+ {
++ std::setlocale(LC_NUMERIC, "C");
++ mpv = mpv_create();
+ if (!mpv)
+ throw std::runtime_error("could not create mpv context");
+
diff --git a/media-video/orion/orion-1.6.6.ebuild b/media-video/orion/orion-1.6.6.ebuild
new file mode 100644
index 000000000000..7fe4e32bd5c9
--- /dev/null
+++ b/media-video/orion/orion-1.6.6.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit desktop qmake-utils xdg-utils
+
+DESCRIPTION="Cross-platform Twitch client"
+HOMEPAGE="https://alamminsalo.github.io/orion/"
+SRC_URI="https://github.com/alamminsalo/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+mpv qtav qtmedia"
+
+DEPEND=">=dev-qt/qtquickcontrols-5.8:5
+ >=dev-qt/qtquickcontrols2-5.8:5
+ >=dev-qt/qtsvg-5.8:5
+ >=dev-qt/qtwebengine-5.8:5
+ mpv? ( media-video/mpv[libmpv] )
+ qtav? ( media-libs/qtav )
+ qtmedia? ( >=dev-qt/qtmultimedia-5.8:5 )"
+RDEPEND="${DEPEND}
+ !mpv? ( media-plugins/gst-plugins-hls )"
+
+REQUIRED_USE="^^ ( mpv qtav qtmedia )"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-fix_login.patch
+ "${FILESDIR}"/${P}-mpv_compilation.patch
+ "${FILESDIR}"/${P}-mpv_backwards.patch
+)
+
+src_configure() {
+ local PLAYER
+ if use mpv; then
+ PLAYER=mpv
+ elif use qtav; then
+ PLAYER=qtav
+ else
+ PLAYER=multimedia
+ fi
+ eqmake5 ${PN}.pro CONFIG+=${PLAYER}
+}
+
+src_install() {
+ dobin ${PN}
+ domenu distfiles/*.desktop
+
+ insinto /usr/share/icons/hicolor/scalable/apps
+ doins distfiles/${PN}.svg
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+}