<pre style='margin:0'>
Mohamed Akram (mohd-akram) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/99ee108967fe00f223f60250d90b065e83dac568">https://github.com/macports/macports-ports/commit/99ee108967fe00f223f60250d90b065e83dac568</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new 99ee108967f gpac: fix build
</span>99ee108967f is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 99ee108967fe00f223f60250d90b065e83dac568
</span>Author: Mohamed Akram <makr@macports.org>
AuthorDate: Tue Mar 4 15:38:33 2025 +0400
<span style='display:block; white-space:pre;color:#404040;'> gpac: fix build
</span>---
multimedia/gpac/Portfile | 5 +-
multimedia/gpac/files/patch-ffmpeg7.diff | 86 ++++++++++++++++++++++++++++++++
2 files changed, 89 insertions(+), 2 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/gpac/Portfile b/multimedia/gpac/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 9172cef0834..39f7a2cb093 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/multimedia/gpac/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/multimedia/gpac/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -58,9 +58,10 @@ depends_lib port:freetype \
</span> # kCMVideoCodecType_HEVC is available in 10.11+ [1][2]
# [1] https://build.macports.org/builders/ports-10.10_x86_64-builder/builds/94933/steps/install-port/logs/stdio
# [2] https://build.macports.org/builders/ports-10.11_x86_64-builder/builds/94369/steps/install-port/logs/stdio
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# Fix for FFmpeg 6 - https://github.com/gpac/gpac/issues/2810
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Fix for FFmpeg 7 - https://github.com/gpac/gpac/issues/2991
</span> patchfiles patch-configure.diff \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- patch-no-hevc-yosemite.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-no-hevc-yosemite.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-ffmpeg7.diff
</span>
post-patch {
reinplace "s|@APPLICATIONS_DIR@|${applications_dir}|g" ${worksrcpath}/configure
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/gpac/files/patch-ffmpeg7.diff b/multimedia/gpac/files/patch-ffmpeg7.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..c14195c3b28
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/multimedia/gpac/files/patch-ffmpeg7.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,86 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 18863aa2176e423dae2a6d7e39ff6ed6a37b2b78 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Deniz Ugur <7467169+DenizUgur@users.noreply.github.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 8 Oct 2024 21:41:05 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] fix: private fields were removed in libavformat >= 61
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/filters/ff_dmx.c | 41 ++++++++++++++---------------------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 14 insertions(+), 27 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/filters/ff_dmx.c b/src/filters/ff_dmx.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 540eb80fc1..a612bee571 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/filters/ff_dmx.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/filters/ff_dmx.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2204,7 +2204,6 @@ char *dev_desc = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void ffavin_enum_devices(const char *dev_name, Bool is_audio)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const AVInputFormat *fmt;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- AVFormatContext *ctx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (!dev_name) return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fmt = av_find_input_format(dev_name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2213,42 +2212,31 @@ static void ffavin_enum_devices(const char *dev_name, Bool is_audio)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (!fmt || !fmt->priv_class || !AV_IS_INPUT_DEVICE(fmt->priv_class->category)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ctx = avformat_alloc_context();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (!ctx) return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ctx->iformat = (AVInputFormat *)fmt;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (ctx->iformat->priv_data_size > 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ctx->priv_data = av_mallocz(ctx->iformat->priv_data_size);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (!ctx->priv_data) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- avformat_free_context(ctx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (ctx->iformat->priv_class) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *(const AVClass**)ctx->priv_data = ctx->iformat->priv_class;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- av_opt_set_defaults(ctx->priv_data);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ctx->priv_data = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AVDeviceInfoList *dev_list = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- AVDictionary *tmp = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- av_dict_set(&tmp, "list_devices", "1", 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- av_opt_set_dict2(ctx, &tmp, AV_OPT_SEARCH_CHILDREN);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (tmp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- av_dict_free(&tmp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- int res = avdevice_list_devices(ctx, &dev_list);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int res = avdevice_list_input_sources(fmt, dev_name, NULL, &dev_list);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (res<0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //device doesn't implement avdevice_list_devices, try loading the context using "list_devices=1" option
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (-res == ENOSYS) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ AVFormatContext *ctx = avformat_alloc_context();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (!ctx) return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AVDictionary *opts = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ av_dict_set(&opts, "list_devices", "1", 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ res = avformat_open_input(&ctx, "dummy", FF_IFMT_CAST fmt, &opts);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (opts)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ av_dict_free(&opts);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !defined(__DARWIN__) && !defined(__APPLE__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ // FIXME: no-op, permission issues on macOS Sonoma+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (res>=0) avdevice_list_devices(ctx, &dev_list);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (res>=0) avformat_close_input(&ctx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ avformat_free_context(ctx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- } else if (!res && dev_list->nb_devices) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (!res && dev_list && dev_list->nb_devices) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (!dev_desc) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gf_dynstrcat(&dev_desc, "# Detected devices\n", NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2265,7 +2253,6 @@ static void ffavin_enum_devices(const char *dev_name, Bool is_audio)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (dev_list) avdevice_free_list_devices(&dev_list);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- avformat_free_context(ctx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void ffavin_log_none(void *avcl, int level, const char *fmt, va_list vl)
</span></pre><pre style='margin:0'>
</pre>