<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>