public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Bernard Cafarelli" <voyageur@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: media-video/orion/files/, media-video/orion/
Date: Thu, 17 Oct 2019 17:48:41 +0000 (UTC)	[thread overview]
Message-ID: <1571334511.2942cf2265fdc3ff187eaad18afb7d19d0a469fa.voyageur@gentoo> (raw)

commit:     2942cf2265fdc3ff187eaad18afb7d19d0a469fa
Author:     Bernard Cafarelli <voyageur <AT> gentoo <DOT> org>
AuthorDate: Thu Oct 17 17:48:16 2019 +0000
Commit:     Bernard Cafarelli <voyageur <AT> gentoo <DOT> org>
CommitDate: Thu Oct 17 17:48:31 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2942cf22

media-video/orion: 1.6.6 bump

This actually requires both qtquickcontrols 1 and 2
Backport some master changes to work with mpv and chromium

Package-Manager: Portage-2.3.77, Repoman-2.3.17
Signed-off-by: Bernard Cafarelli <voyageur <AT> gentoo.org>

 media-video/orion/Manifest                         |   1 +
 .../orion/files/orion-1.6.6-fix_login.patch        |  32 +++++
 .../orion/files/orion-1.6.6-mpv_backwards.patch    | 147 +++++++++++++++++++++
 .../orion/files/orion-1.6.6-mpv_compilation.patch  |  39 ++++++
 media-video/orion/orion-1.6.6.ebuild               |  60 +++++++++
 5 files changed, 279 insertions(+)

diff --git a/media-video/orion/Manifest b/media-video/orion/Manifest
index bd0019233ae..1552d86e0cb 100644
--- a/media-video/orion/Manifest
+++ b/media-video/orion/Manifest
@@ -1,2 +1,3 @@
 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

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 00000000000..c6aced452ca
--- /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 00000000000..4cd302cb3d1
--- /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 00000000000..c9163d3376c
--- /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 00000000000..7fe4e32bd5c
--- /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
+}


             reply	other threads:[~2019-10-17 17:48 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-17 17:48 Bernard Cafarelli [this message]
  -- strict thread matches above, loose matches on Subject: below --
2020-09-18 15:52 [gentoo-commits] repo/gentoo:master commit in: media-video/orion/files/, media-video/orion/ Bernard Cafarelli
2019-11-19 18:03 Bernard Cafarelli
2017-09-19 11:42 Bernard Cafarelli

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1571334511.2942cf2265fdc3ff187eaad18afb7d19d0a469fa.voyageur@gentoo \
    --to=voyageur@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox