public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Ionen Wolkens" <ionen@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: media-video/gpac/, media-video/gpac/files/
Date: Thu, 13 Mar 2025 04:24:22 +0000 (UTC)	[thread overview]
Message-ID: <1741839714.d6c049ccb36319fdca8883f34f3227d2cfc40589.ionen@gentoo> (raw)

commit:     d6c049ccb36319fdca8883f34f3227d2cfc40589
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Thu Mar 13 01:03:25 2025 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Thu Mar 13 04:21:54 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d6c049cc

media-video/gpac: add 2.4.0

Closes: https://bugs.gentoo.org/913229
Closes: https://bugs.gentoo.org/919717
Closes: https://bugs.gentoo.org/926819
Closes: https://bugs.gentoo.org/934641
Closes: https://bugs.gentoo.org/940227
Closes: https://bugs.gentoo.org/951221
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 media-video/gpac/Manifest                          |   1 +
 .../gpac/files/gpac-2.4.0-configure-stddef.patch   |  19 +++
 media-video/gpac/files/gpac-2.4.0-ffmpeg7.patch    |  71 ++++++++++
 media-video/gpac/gpac-2.4.0.ebuild                 | 143 +++++++++++++++++++++
 4 files changed, 234 insertions(+)

diff --git a/media-video/gpac/Manifest b/media-video/gpac/Manifest
index c3e8ca33dce5..8b033192b1ef 100644
--- a/media-video/gpac/Manifest
+++ b/media-video/gpac/Manifest
@@ -1,2 +1,3 @@
 DIST gpac-2.0.0.tar.gz 11362932 BLAKE2B a8489831efb77c374d13e2edb3951e60a94907c4cd8601919e1390aee0e9002249e97a9200fd006c2aa783c516f701f7695aa84b5f3596a3bc90290916ff4086 SHA512 e95e6d78167fc306917b3ac89e56ba511bbcb0c825da118f5ba374504499352104b5c1f3ee71e7ec018015b8e302f9b07162d22287ddb21c8564b097d900913f
 DIST gpac-2.2.1.tar.gz 11377184 BLAKE2B 44b47459da0f203d0e4c0eed5836a59f44fb508db4e601b46e9ffdb53d89bb49e22ccdfe7951b17581130f186c47ae8efc0d9002685d5cf9a3547159356d2d9e SHA512 873df4c2fdc3594a0f3bce66d511cee14669643042ab1ca8d7f370ad3f50636c32c31f79818051d00bf844de30a5533ae30c81ed168baf2626a152771b6a6845
+DIST gpac-2.4.0.tar.gz 9914579 BLAKE2B 09d7eeb390b4d10a6d144bf4046a7b53283fa05be01c663e0cd82e8b7b8d9dece30ef42747c12a7477f5b13ca7c7e18905f36d3f20396bb50937a249729fd3a8 SHA512 164d8a1ff235413852cc2077b5153c36b094862b61fdda12065bf6810926caabd1a1f6f30b7aac9a5b640f51fe92a6ca911518a424cab7220b635920d95da99f

diff --git a/media-video/gpac/files/gpac-2.4.0-configure-stddef.patch b/media-video/gpac/files/gpac-2.4.0-configure-stddef.patch
new file mode 100644
index 000000000000..05a9ac08b54d
--- /dev/null
+++ b/media-video/gpac/files/gpac-2.4.0-configure-stddef.patch
@@ -0,0 +1,19 @@
+https://github.com/gpac/gpac/commit/a005fd6eb7a9ede4d3356630cae3d6516c91b73e
+--- a/configure
++++ b/configure
+@@ -1593,2 +1593,3 @@
+ #include <openssl/rand.h>
++#include <stddef.h>
+ int main( void ) {  SSL_CTX_set_options(NULL, SSL_OP_ALL); return 0; }'
+@@ -1619,2 +1620,3 @@
+ config_package png "libpng" "" "-lpng -lz" "png" '#include <png.h>
++#include <stddef.h>
+ int main( void ) {  png_struct *png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); return 0; }'
+@@ -1635,2 +1637,3 @@
+ config_package xvid "xvid" "" "-lxvidcore $PTHREAD_LDFLAGS" "" '#include <xvid.h>
++#include <stddef.h>
+ int main( void ) { void *codec; xvid_decore(codec, XVID_DEC_DESTROY, NULL, NULL); return 0; }'
+@@ -1688,2 +1691,3 @@
+ config_package freenect "libfreenect" "" "-lfreenect" "freenect" '#include <libfreenect/libfreenect.h>
++#include <stddef.h>
+ int main( void ) { freenect_context *f_ctx; freenect_init(&f_ctx, NULL); return 0; }'

diff --git a/media-video/gpac/files/gpac-2.4.0-ffmpeg7.patch b/media-video/gpac/files/gpac-2.4.0-ffmpeg7.patch
new file mode 100644
index 000000000000..e9485dfa5f65
--- /dev/null
+++ b/media-video/gpac/files/gpac-2.4.0-ffmpeg7.patch
@@ -0,0 +1,71 @@
+https://bugs.gentoo.org/951221
+https://github.com/gpac/gpac/commit/18863aa2176e423dae2a6d7e39ff6ed6a37b2b78
+--- a/src/filters/ff_dmx.c
++++ b/src/filters/ff_dmx.c
+@@ -2202,5 +2202,4 @@
+ {
+ 	const AVInputFormat *fmt;
+-	AVFormatContext *ctx;
+ 
+     if (!dev_name) return;
+@@ -2211,33 +2210,13 @@
+ 		return;
+ 	}
+-    ctx = avformat_alloc_context();
+-    if (!ctx) return;
+-    ctx->iformat = (AVInputFormat *)fmt;
+-    if (ctx->iformat->priv_data_size > 0) {
+-        ctx->priv_data = av_mallocz(ctx->iformat->priv_data_size);
+-        if (!ctx->priv_data) {
+-			avformat_free_context(ctx);
+-            return;
+-        }
+-        if (ctx->iformat->priv_class) {
+-            *(const AVClass**)ctx->priv_data = ctx->iformat->priv_class;
+-            av_opt_set_defaults(ctx->priv_data);
+-        }
+-    } else {
+-        ctx->priv_data = NULL;
+-	}
+ 
+ 	AVDeviceInfoList *dev_list = NULL;
+-
+-    AVDictionary *tmp = NULL;
+-	av_dict_set(&tmp, "list_devices", "1", 0);
+-    av_opt_set_dict2(ctx, &tmp, AV_OPT_SEARCH_CHILDREN);
+-	if (tmp)
+-		av_dict_free(&tmp);
+-
+-	int res = avdevice_list_devices(ctx, &dev_list);
++	int res = avdevice_list_input_sources(fmt, dev_name, NULL, &dev_list);
+ 	if (res<0) {
+ 		//device doesn't implement avdevice_list_devices, try loading the context using "list_devices=1" option
+ 		if (-res == ENOSYS) {
++			AVFormatContext *ctx = avformat_alloc_context();
++			if (!ctx) return;
++
+ 			AVDictionary *opts = NULL;
+ 			av_dict_set(&opts, "list_devices", "1", 0);
+@@ -2245,6 +2224,15 @@
+ 			if (opts)
+ 				av_dict_free(&opts);
++
++#if !defined(__DARWIN__) && !defined(__APPLE__)
++			// FIXME: no-op, permission issues on macOS Sonoma+
++			if (res>=0) avdevice_list_devices(ctx, &dev_list);
++#endif
++
++			if (res>=0) avformat_close_input(&ctx);
++			avformat_free_context(ctx);
+ 		}
+-	} else if (!res && dev_list->nb_devices) {
++	}
++	if (!res && dev_list && dev_list->nb_devices) {
+ 		if (!dev_desc) {
+ 			gf_dynstrcat(&dev_desc, "# Detected devices\n", NULL);
+@@ -2263,5 +2251,4 @@
+ 
+ 	if (dev_list) avdevice_free_list_devices(&dev_list);
+-	avformat_free_context(ctx);
+ }
+ 

diff --git a/media-video/gpac/gpac-2.4.0.ebuild b/media-video/gpac/gpac-2.4.0.ebuild
new file mode 100644
index 000000000000..68d3e1977978
--- /dev/null
+++ b/media-video/gpac/gpac-2.4.0.ebuild
@@ -0,0 +1,143 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs xdg
+
+DESCRIPTION="Implementation of the MPEG-4 Systems standard developed from scratch in ANSI C"
+HOMEPAGE="https://gpac.wp.imt.fr/"
+SRC_URI="https://github.com/gpac/gpac/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="LGPL-2.1+"
+SLOT="0/12"
+KEYWORDS="~alpha ~amd64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="
+	X a52 aac alsa dvb ffmpeg http2 jack jpeg jpeg2k libcaca lzma mad
+	opengl png pulseaudio sdl ssl theora truetype vorbis xvid
+"
+
+RDEPEND="
+	sys-libs/zlib:=
+	X? (
+		x11-libs/libX11
+		x11-libs/libXv
+		x11-libs/libXext
+	)
+	a52? ( media-libs/a52dec )
+	aac? ( media-libs/faad2 )
+	alsa? ( media-libs/alsa-lib )
+	ffmpeg? ( media-video/ffmpeg:= )
+	http2? ( net-libs/nghttp2:= )
+	jack? ( virtual/jack )
+	jpeg2k? ( media-libs/openjpeg:2= )
+	jpeg? ( media-libs/libjpeg-turbo:= )
+	libcaca? ( media-libs/libcaca )
+	lzma? ( app-arch/xz-utils )
+	mad? ( media-libs/libmad )
+	opengl? (
+		media-libs/libglvnd[X]
+		x11-libs/libX11
+		virtual/glu
+	)
+	png? ( media-libs/libpng:= )
+	pulseaudio? ( media-libs/libpulse )
+	sdl? ( media-libs/libsdl2 )
+	ssl? ( dev-libs/openssl:= )
+	theora? (
+		media-libs/libogg
+		media-libs/libtheora
+	)
+	truetype? ( media-libs/freetype )
+	vorbis? ( media-libs/libvorbis )
+	xvid? ( media-libs/xvid )
+"
+DEPEND="
+	${RDEPEND}
+	X? ( x11-base/xorg-proto )
+	dvb? ( sys-kernel/linux-headers )
+"
+BDEPEND="
+	virtual/pkgconfig
+"
+
+PATCHES=(
+	"${FILESDIR}"/${P}-configure-stddef.patch
+	"${FILESDIR}"/${P}-ffmpeg7.patch
+)
+
+src_prepare() {
+	default
+
+	# respect *FLAGS
+	sed -e '/^sseflags=/d' -e 's/-O[0-3] //' -i configure || die
+
+	# some configure options are ignored? (check if still needed on bump)
+	use alsa || sed -i 's/^check_has_lib alsa/:/' configure || die
+	use jack || sed -i 's/^check_has_lib jack/:/' configure || die
+	use lzma || sed -i 's/^check_has_lib lzma/:/' configure || die
+	use pulseaudio || sed -i 's/^check_has_lib pulseaudio/:/' configure || die
+	use sdl || sed -i 's/has_sdl=.*/has_sdl=no/' configure || die
+}
+
+src_configure() {
+	tc-export AR CC CXX RANLIB
+
+	gpac_use() {
+		usex ${1} --use-${2:-${1}}={system,no}
+	}
+
+	local conf=(
+		./configure # not autotools-based
+
+		--prefix="${EPREFIX}"/usr
+		--libdir="$(get_libdir)"
+		--extra-cflags="${CFLAGS}"
+		--enable-pic
+		--verbose
+
+		$(use_enable X x11)
+		$(use_enable dvb dvbx)
+		$(use_enable opengl 3d)
+
+		$(gpac_use a52)
+		$(gpac_use alsa)
+		$(gpac_use dvb dvb4linux)
+		$(gpac_use aac faad)
+		$(gpac_use ffmpeg)
+		$(gpac_use truetype freetype)
+		--use-hid=no # only for a deprecated module
+		$(gpac_use jack)
+		$(gpac_use jpeg)
+		$(gpac_use libcaca)
+		$(gpac_use lzma)
+		$(gpac_use mad)
+		$(gpac_use http2 nghttp2)
+		$(gpac_use jpeg2k openjpeg)
+		$(gpac_use png)
+		$(gpac_use pulseaudio)
+		$(gpac_use sdl)
+		$(gpac_use ssl)
+		$(gpac_use vorbis)
+		$(gpac_use theora)
+		$(gpac_use xvid)
+
+		# not packaged
+		--use-caption=no
+		--use-directfb=no
+		--use-freenect=no
+		--use-mpeghdec=no
+		--use-openhevc=no
+		--use-opensvc=no
+	)
+
+	einfo "${conf[*]}"
+	"${conf[@]}" || die
+}
+
+src_install() {
+	emake STRIP=: DESTDIR="${D}" install
+	dodoc Changelog README.md share/doc/{*.{bt,doc,txt},SceneGenerators}
+
+	find "${ED}" -type f -name '*.a' -delete || die
+}


             reply	other threads:[~2025-03-13  4:24 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-13  4:24 Ionen Wolkens [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-11-10 10:08 [gentoo-commits] repo/gentoo:master commit in: media-video/gpac/, media-video/gpac/files/ Andreas Sturmlechner
2023-04-10  9:25 Sam James
2023-03-29 16:16 Alexis Ballier
2020-09-12 21:42 Sam James
2020-09-08 22:42 Sam James
2018-05-08 18:33 Lars Wendler
2017-07-25 16:50 Steve Dibb
2017-02-24  9:00 Alexis Ballier
2015-09-16 11:47 Alexis Ballier
2015-08-22  9:20 Alexis Ballier

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=1741839714.d6c049ccb36319fdca8883f34f3227d2cfc40589.ionen@gentoo \
    --to=ionen@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