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.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 3DD58158094 for ; Tue, 26 Jul 2022 07:44:21 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 64601E0E54; Tue, 26 Jul 2022 07:44:20 +0000 (UTC) Received: from smtp.gentoo.org (mail.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 2D61CE0E56 for ; Tue, 26 Jul 2022 07:44:20 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 1666E34100D for ; Tue, 26 Jul 2022 07:44:19 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 52815510 for ; Tue, 26 Jul 2022 07:44:17 +0000 (UTC) From: "Sam James" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Sam James" Message-ID: <1658821449.7529e764dfaa9de2cd27764a6ba028315e290ae0.sam@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: media-video/simplescreenrecorder/, media-video/simplescreenrecorder/files/ X-VCS-Repository: repo/gentoo X-VCS-Files: media-video/simplescreenrecorder/files/simplescreenrecorder-0.4.4-ffmpeg5.patch media-video/simplescreenrecorder/simplescreenrecorder-0.4.4-r1.ebuild X-VCS-Directories: media-video/simplescreenrecorder/ media-video/simplescreenrecorder/files/ X-VCS-Committer: sam X-VCS-Committer-Name: Sam James X-VCS-Revision: 7529e764dfaa9de2cd27764a6ba028315e290ae0 X-VCS-Branch: master Date: Tue, 26 Jul 2022 07:44:17 +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: 8ad8af05-d129-41e6-be6d-84b3e36f79ba X-Archives-Hash: 0aadc08fac79027ffc47fd0ecff85278 commit: 7529e764dfaa9de2cd27764a6ba028315e290ae0 Author: Sam James gentoo org> AuthorDate: Tue Jul 26 07:43:42 2022 +0000 Commit: Sam James gentoo 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 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 +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 +}