From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id D3789138334 for ; Thu, 17 Oct 2019 17:48:47 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 572A2E081E; Thu, 17 Oct 2019 17:48:45 +0000 (UTC) Received: from smtp.gentoo.org (mail.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 32059E081E for ; Thu, 17 Oct 2019 17:48:45 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 6AA2F34BF88 for ; Thu, 17 Oct 2019 17:48:43 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 605C92A5 for ; Thu, 17 Oct 2019 17:48:41 +0000 (UTC) From: "Bernard Cafarelli" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Bernard Cafarelli" Message-ID: <1571334511.2942cf2265fdc3ff187eaad18afb7d19d0a469fa.voyageur@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: media-video/orion/files/, media-video/orion/ X-VCS-Repository: repo/gentoo X-VCS-Files: media-video/orion/Manifest media-video/orion/files/orion-1.6.6-fix_login.patch media-video/orion/files/orion-1.6.6-mpv_backwards.patch media-video/orion/files/orion-1.6.6-mpv_compilation.patch media-video/orion/orion-1.6.6.ebuild X-VCS-Directories: media-video/orion/files/ media-video/orion/ X-VCS-Committer: voyageur X-VCS-Committer-Name: Bernard Cafarelli X-VCS-Revision: 2942cf2265fdc3ff187eaad18afb7d19d0a469fa X-VCS-Branch: master Date: Thu, 17 Oct 2019 17:48:41 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 8b34f2af-fa19-4ef6-bee4-93b1138e9171 X-Archives-Hash: 993d385a43c274a2dd8938368fb11264 commit: 2942cf2265fdc3ff187eaad18afb7d19d0a469fa Author: Bernard Cafarelli gentoo org> AuthorDate: Thu Oct 17 17:48:16 2019 +0000 Commit: Bernard Cafarelli gentoo 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 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 +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 +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(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 + ++ + #include ++ ++#if MPV_CLIENT_API_VERSION < MPV_MAKE_VERSION(1, 28) ++#define USE_OPENGL_CB ++#endif ++ ++#ifdef USE_OPENGL_CB ++#include ++typedef mpv_opengl_cb_context mpv_context; ++#else + #include ++typedef mpv_render_context mpv_context; ++#endif ++ + #include + + 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> 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 +}