<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/c17508722aaa7f5811509178843b606e14541c0b">https://github.com/macports/macports-ports/commit/c17508722aaa7f5811509178843b606e14541c0b</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 c17508722aa ffmpeg7: fix x265 segfault
</span>c17508722aa is described below
<span style='display:block; white-space:pre;color:#808000;'>commit c17508722aaa7f5811509178843b606e14541c0b
</span>Author: Christopher Nielsen <mascguy@github.com>
AuthorDate: Fri Feb 28 17:04:23 2025 -0500
<span style='display:block; white-space:pre;color:#404040;'> ffmpeg7: fix x265 segfault
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Fixes: https://trac.macports.org/ticket/71980
</span>---
multimedia/ffmpeg7/Portfile | 5 ++-
.../ffmpeg7/files/patch-x265-4.1-segfault.diff | 44 ++++++++++++++++++++++
2 files changed, 48 insertions(+), 1 deletion(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/ffmpeg7/Portfile b/multimedia/ffmpeg7/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index fea92129b64..04569f17411 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/multimedia/ffmpeg7/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/multimedia/ffmpeg7/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12,7 +12,7 @@ name ffmpeg7
</span> set my_name ffmpeg
version 7.1
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 6
</span>
license LGPL-2.1+
categories multimedia
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -137,6 +137,9 @@ platform darwin {
</span> # See https://gitlab.com/AOMediaCodec/SVT-AV1/-/commit/988e930c1083ce518ead1d364e3a486e9209bf73
patchfiles-append patch-svt-av1-v3.diff
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Fix segfault with x265 v4.1; details in patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append patch-x265-4.1-segfault.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # enable auto configure of asm optimizations
# requires Xcode 3.1 or better on Leopard
minimum_xcodeversions {9 3.1}
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/ffmpeg7/files/patch-x265-4.1-segfault.diff b/multimedia/ffmpeg7/files/patch-x265-4.1-segfault.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..5ea8ee97f15
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/multimedia/ffmpeg7/files/patch-x265-4.1-segfault.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,44 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#==================================================================================================
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://github.com/FFmpeg/FFmpeg/commit/099f88b8641dfc299f3896d17d9addc5b9ae7799
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Date: 2024-10-05
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# avcodec/libx265: unbreak build for X265_BUILD >= 213
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Earlier, x265 made an API change to support alpha and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# other multiple layer pictures. We added guards to accommodate
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# that in 1f801df
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# They have now reverted that API change in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://bitbucket.org/multicoreware/x265_git/commits/78e5b703b1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Updated our wrapper guards to unbreak build again.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#==================================================================================================
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libavcodec/libx265.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libavcodec/libx265.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -661,7 +661,7 @@ static int libx265_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libx265Context *ctx = avctx->priv_data;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ x265_picture x265pic;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if X265_BUILD >= 210
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if (X265_BUILD >= 210) && (X265_BUILD < 213)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ x265_picture x265pic_layers_out[MAX_SCALABLE_LAYERS];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ x265_picture* x265pic_lyrptr_out[MAX_SCALABLE_LAYERS];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -805,7 +805,7 @@ static int libx265_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
</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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if X265_BUILD >= 210
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if (X265_BUILD >= 210) && (X265_BUILD < 213)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for (i = 0; i < MAX_SCALABLE_LAYERS; i++)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ x265pic_lyrptr_out[i] = &x265pic_layers_out[i];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -844,7 +844,7 @@ static int libx265_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pkt->flags |= AV_PKT_FLAG_KEY;
</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 X265_BUILD >= 210
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if (X265_BUILD >= 210) && (X265_BUILD < 213)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ x265pic_out = x265pic_lyrptr_out[0];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ x265pic_out = &x265pic_solo_out;
</span></pre><pre style='margin:0'>
</pre>