public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: media-video/simplescreenrecorder/, media-video/simplescreenrecorder/files/
Date: Tue, 26 Jul 2022 07:44:17 +0000 (UTC)	[thread overview]
Message-ID: <1658821449.7529e764dfaa9de2cd27764a6ba028315e290ae0.sam@gentoo> (raw)

commit:     7529e764dfaa9de2cd27764a6ba028315e290ae0
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 26 07:43:42 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Jul 26 07:44:09 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7529e764

media-video/simplescreenrecorder: backport ffmpeg 5 patch

Closes: https://bugs.gentoo.org/834415
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/simplescreenrecorder-0.4.4-ffmpeg5.patch |  54 ++++++++++
 .../simplescreenrecorder-0.4.4-r1.ebuild           | 109 +++++++++++++++++++++
 2 files changed, 163 insertions(+)

diff --git a/media-video/simplescreenrecorder/files/simplescreenrecorder-0.4.4-ffmpeg5.patch b/media-video/simplescreenrecorder/files/simplescreenrecorder-0.4.4-ffmpeg5.patch
new file mode 100644
index 000000000000..b86966410edb
--- /dev/null
+++ b/media-video/simplescreenrecorder/files/simplescreenrecorder-0.4.4-ffmpeg5.patch
@@ -0,0 +1,54 @@
+https://github.com/MaartenBaert/ssr/commit/768957a8de1534f0aa91bfc5d7af3c32f222beb8
+https://bugs.gentoo.org/834415
+
+From: Maarten Baert <maarten-baert@hotmail.com>
+Date: Sun, 20 Mar 2022 22:52:43 +0100
+Subject: [PATCH] Fix for compatibility with newer FFmpeg versions
+
+--- a/src/AV/Output/AudioEncoder.cpp
++++ b/src/AV/Output/AudioEncoder.cpp
+@@ -77,7 +77,8 @@ unsigned int AudioEncoder::GetSampleRate() {
+ }
+ 
+ bool AudioEncoder::AVCodecIsSupported(const QString& codec_name) {
+-	AVCodec *codec = avcodec_find_encoder_by_name(codec_name.toUtf8().constData());
++	// we have to break const correctness for compatibility with older ffmpeg versions
++	AVCodec *codec = (AVCodec*) avcodec_find_encoder_by_name(codec_name.toUtf8().constData());
+ 	if(codec == NULL)
+ 		return false;
+ 	if(!av_codec_is_encoder(codec))
+--- a/src/AV/Output/Muxer.cpp
++++ b/src/AV/Output/Muxer.cpp
+@@ -194,7 +194,8 @@ unsigned int Muxer::GetQueuedPacketCount(unsigned int stream_index) {
+ void Muxer::Init() {
+ 
+ 	// get the format we want (this is just a pointer, we don't have to free this)
+-	AVOutputFormat *format = av_guess_format(m_container_name.toUtf8().constData(), NULL, NULL);
++	// we have to break const correctness for compatibility with older ffmpeg versions
++	AVOutputFormat *format = (AVOutputFormat*) av_guess_format(m_container_name.toUtf8().constData(), NULL, NULL);
+ 	if(format == NULL) {
+ 		Logger::LogError("[Muxer::Init] " + Logger::tr("Error: Can't find chosen output format!"));
+ 		throw LibavException();
+@@ -262,7 +263,8 @@ void Muxer::Free() {
+ }
+ 
+ AVCodec* Muxer::FindCodec(const QString& codec_name) {
+-	AVCodec *codec = avcodec_find_encoder_by_name(codec_name.toUtf8().constData());
++	// we have to break const correctness for compatibility with older ffmpeg versions
++	AVCodec *codec = (AVCodec*) avcodec_find_encoder_by_name(codec_name.toUtf8().constData());
+ 	if(codec == NULL) {
+ 		Logger::LogError("[Muxer::FindCodec] " + Logger::tr("Error: Can't find codec!"));
+ 		throw LibavException();
+--- a/src/AV/Output/VideoEncoder.cpp
++++ b/src/AV/Output/VideoEncoder.cpp
+@@ -95,7 +95,8 @@ unsigned int VideoEncoder::GetFrameRate() {
+ }
+ 
+ bool VideoEncoder::AVCodecIsSupported(const QString& codec_name) {
+-	AVCodec *codec = avcodec_find_encoder_by_name(codec_name.toUtf8().constData());
++	// we have to break const correctness for compatibility with older ffmpeg versions
++	AVCodec *codec = (AVCodec*) avcodec_find_encoder_by_name(codec_name.toUtf8().constData());
+ 	if(codec == NULL)
+ 		return false;
+ 	if(!av_codec_is_encoder(codec))
+

diff --git a/media-video/simplescreenrecorder/simplescreenrecorder-0.4.4-r1.ebuild b/media-video/simplescreenrecorder/simplescreenrecorder-0.4.4-r1.ebuild
new file mode 100644
index 000000000000..667f701f5639
--- /dev/null
+++ b/media-video/simplescreenrecorder/simplescreenrecorder-0.4.4-r1.ebuild
@@ -0,0 +1,109 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CMAKE_ECLASS=cmake
+inherit cmake-multilib flag-o-matic xdg
+
+DESCRIPTION="A Simple Screen Recorder"
+HOMEPAGE="https://www.maartenbaert.be/simplescreenrecorder"
+LICENSE="GPL-3"
+PKGNAME="ssr"
+if [[ ${PV} = 9999 ]] ; then
+	inherit git-r3
+	EGIT_REPO_URI="https://github.com/MaartenBaert/${PKGNAME}.git"
+	EGIT_BOOTSTRAP=""
+else
+	SRC_URI="https://github.com/MaartenBaert/${PKGNAME}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+	KEYWORDS="~amd64 ~x86"
+	S="${WORKDIR}/${PKGNAME}-${PV}"
+fi
+
+SLOT="0"
+IUSE="+asm jack mp3 opengl pulseaudio theora v4l vorbis vpx x264"
+
+RDEPEND="
+	dev-qt/qtcore:5
+	dev-qt/qtgui:5
+	dev-qt/qtwidgets:5
+	dev-qt/qtx11extras:5
+	media-libs/alsa-lib:0=
+	media-video/ffmpeg[vorbis?,vpx?,x264?,mp3?,theora?]
+	x11-libs/libX11[${MULTILIB_USEDEP}]
+	x11-libs/libXext
+	x11-libs/libXfixes[${MULTILIB_USEDEP}]
+	x11-libs/libXi
+	x11-libs/libXinerama
+	virtual/glu[${MULTILIB_USEDEP}]
+	v4l? ( media-libs/libv4l )
+	jack? ( virtual/jack )
+	opengl? ( media-libs/libglvnd[${MULTILIB_USEDEP},X] )
+	pulseaudio? ( media-sound/pulseaudio )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="dev-qt/linguist-tools:5"
+
+REQUIRED_USE="abi_x86_32? ( opengl )"
+
+PATCHES=(
+	"${FILESDIR}"/${P}-ffmpeg5.patch
+)
+
+pkg_pretend() {
+	if [[ "${ABI}" == amd64 ]] ; then
+		einfo "You may want to add USE flag 'abi_x86_32' when running a 64bit system"
+		einfo "When added 32bit GLInject libraries are also included. This is"
+		einfo "required if you want to use OpenGL recording on 32bit applications."
+		einfo
+	fi
+
+	if has_version media-video/ffmpeg[x264] && has_version media-libs/x264[10bit] ; then
+		ewarn
+		ewarn "media-libs/x264 is currently built with 10bit useflag."
+		ewarn "This is known to prevent simplescreenrecorder from recording x264 videos"
+		ewarn "correctly. Please build media-libs/x264 without 10bit if you want to "
+		ewarn "record videos with x264."
+		ewarn
+	fi
+}
+
+pkg_setup() {
+	# QT requires -fPIC. Compile fails otherwise.
+	# Recently removed from the default compile options upstream
+	# https://github.com/MaartenBaert/ssr/commit/25fe1743058f0d1f95f6fbb39014b6ac146b5180
+	append-flags -fPIC
+}
+
+src_prepare() {
+	# required because xdg.eclass overrides default cmake_src_prepare
+	cmake_src_prepare
+}
+
+multilib_src_configure() {
+	local mycmakeargs=(
+		-DENABLE_JACK_METADATA="$(multilib_native_usex jack)"
+		-DENABLE_X86_ASM="$(usex asm)"
+		-DWITH_OPENGL_RECORDING="$(usex opengl)"
+		-DWITH_PULSEAUDIO="$(multilib_native_usex pulseaudio)"
+		-DWITH_JACK="$(multilib_native_usex jack)"
+		-DWITH_GLINJECT="$(usex opengl)"
+		-DWITH_V4L2="$(multilib_native_usex v4l)"
+	)
+
+	if multilib_is_native_abi ; then
+		mycmakeargs+=(
+			-DENABLE_32BIT_GLINJECT="false"
+			-DWITH_QT5="true"
+		)
+	else
+		mycmakeargs+=(
+			# https://bugs.gentoo.org/660438
+			-DCMAKE_INSTALL_LIB32DIR="$(get_libdir)"
+			-DENABLE_32BIT_GLINJECT="true"
+			-DWITH_SIMPLESCREENRECORDER="false"
+		)
+	fi
+
+	cmake_src_configure
+}


             reply	other threads:[~2022-07-26  7:44 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-26  7:44 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2020-11-23 22:10 [gentoo-commits] repo/gentoo:master commit in: media-video/simplescreenrecorder/, media-video/simplescreenrecorder/files/ Andreas Sturmlechner
2020-05-20 19:14 Lars Wendler
2020-04-09 11:22 Lars Wendler
2018-03-17 21:16 Lars Wendler
2018-01-11 21:54 Andreas Sturmlechner
2017-12-20 19:44 Lars Wendler

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=1658821449.7529e764dfaa9de2cd27764a6ba028315e290ae0.sam@gentoo \
    --to=sam@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