<pre style='margin:0'>
Perry E. Metzger (pmetzger) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/537ebef2b70cd662e7cdad0cdd2cc2c71b5155c7">https://github.com/macports/macports-ports/commit/537ebef2b70cd662e7cdad0cdd2cc2c71b5155c7</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 537ebef2b70cd662e7cdad0cdd2cc2c71b5155c7
</span>Author: Sergey Fedorov <barracuda@macos-powerpc.org>
AuthorDate: Sat Jun 22 07:15:00 2024 +0800
<span style='display:block; white-space:pre;color:#404040;'> gstreamer1-gst-plugins-good: update and minimize legacy patch
</span>---
gnome/gstreamer1-gst-plugins-good/Portfile | 7 +-
...udio-Interpolate-clock-by-counting-elapse.patch | 217 ---------------------
.../files/patch-coreaudio.diff | 18 ++
3 files changed, 19 insertions(+), 223 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/gnome/gstreamer1-gst-plugins-good/Portfile b/gnome/gstreamer1-gst-plugins-good/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 73a7781e95b..2594a415342 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/gnome/gstreamer1-gst-plugins-good/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/gnome/gstreamer1-gst-plugins-good/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -68,12 +68,7 @@ if {${os.platform} eq "darwin" && ${os.major} < 11} {
</span> snowleopard-memmem.patch
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# Temporary fix until the upstream addresses the breakage.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3439
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${os.platform} eq "darwin" && ${os.major} < 15} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patchfiles-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 0001-Revert-osxaudio-Interpolate-clock-by-counting-elapse.patch
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append patch-coreaudio.diff
</span>
post-patch {
reinplace "s|/usr/bin/env python3|${python.bin}|" \
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/gnome/gstreamer1-gst-plugins-good/files/0001-Revert-osxaudio-Interpolate-clock-by-counting-elapse.patch b/gnome/gstreamer1-gst-plugins-good/files/0001-Revert-osxaudio-Interpolate-clock-by-counting-elapse.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 45391e34a8a..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/gnome/gstreamer1-gst-plugins-good/files/0001-Revert-osxaudio-Interpolate-clock-by-counting-elapse.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,217 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 378e3f09dd4ab80f6e46732fff1ca52463cdd017 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: barracuda156 <vital.had@gmail.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Sun, 31 Mar 2024 06:42:42 +0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH] Revert "osxaudio: Interpolate clock by counting elapsed
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- time since render calls"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-This reverts commit 461f943b52346073fbcd227f22c50afcebe51b00.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- .../sys/osxaudio/gstosxaudiosink.c | 6 --
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- .../sys/osxaudio/gstosxaudiosrc.c | 6 --
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- .../sys/osxaudio/gstosxcoreaudio.c | 100 +-----------------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- .../sys/osxaudio/gstosxcoreaudio.h | 12 ---
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 4 files changed, 1 insertion(+), 123 deletions(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git subprojects/gst-plugins-good/sys/osxaudio/gstosxaudiosink.c subprojects/gst-plugins-good/sys/osxaudio/gstosxaudiosink.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 4b48e0dd59..578ccf4949 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- sys/osxaudio/gstosxaudiosink.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ sys/osxaudio/gstosxaudiosink.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -546,13 +546,7 @@ gst_osx_audio_sink_io_proc (GstOsxAudioRingBuffer * buf,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- gst_audio_ring_buffer_clear (GST_AUDIO_RING_BUFFER (buf), readseg);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* we wrote one segment */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- CORE_AUDIO_TIMING_LOCK (buf->core_audio);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- gst_audio_ring_buffer_advance (GST_AUDIO_RING_BUFFER (buf), 1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- /* FIXME: Update the timestamp and reported frames in smaller increments
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * when the segment size is larger than the total inNumberFrames */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- gst_core_audio_update_timing (buf->core_audio, inTimeStamp,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- inNumberFrames);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- CORE_AUDIO_TIMING_UNLOCK (buf->core_audio);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- buf->segoffset = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git subprojects/gst-plugins-good/sys/osxaudio/gstosxaudiosrc.c subprojects/gst-plugins-good/sys/osxaudio/gstosxaudiosrc.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 75793bb692..e4ef409ae2 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- sys/osxaudio/gstosxaudiosrc.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ sys/osxaudio/gstosxaudiosrc.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -397,13 +397,7 @@ gst_osx_audio_src_io_proc (GstOsxAudioRingBuffer * buf,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- writeseg, ts);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* we wrote one segment */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- CORE_AUDIO_TIMING_LOCK (buf->core_audio);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- gst_audio_ring_buffer_advance (GST_AUDIO_RING_BUFFER (buf), 1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- /* FIXME: Update the timestamp and reported frames in smaller increments
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * when the segment size is larger than the total inNumberFrames */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- gst_core_audio_update_timing (buf->core_audio, inTimeStamp,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- inNumberFrames);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- CORE_AUDIO_TIMING_UNLOCK (buf->core_audio);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- buf->segoffset = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git subprojects/gst-plugins-good/sys/osxaudio/gstosxcoreaudio.c subprojects/gst-plugins-good/sys/osxaudio/gstosxcoreaudio.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 758a4622e5..6c5115d693 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- sys/osxaudio/gstosxcoreaudio.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ sys/osxaudio/gstosxcoreaudio.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -35,20 +35,10 @@ G_DEFINE_TYPE (GstCoreAudio, gst_core_audio, G_TYPE_OBJECT);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "gstosxcoreaudiohal.c"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--static void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--gst_core_audio_finalize (GObject * object)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- GstCoreAudio *core_audio = GST_CORE_AUDIO (object);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- g_mutex_clear (&core_audio->timing_lock);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- G_OBJECT_CLASS (gst_core_audio_parent_class)->finalize (object);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- gst_core_audio_class_init (GstCoreAudioClass * klass)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- GObjectClass *object_klass = G_OBJECT_CLASS (klass);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- object_klass->finalize = gst_core_audio_finalize;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -64,8 +54,6 @@ gst_core_audio_init (GstCoreAudio * core_audio)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- core_audio->hog_pid = -1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- core_audio->disabled_mixing = FALSE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- g_mutex_init (&core_audio->timing_lock);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static gboolean
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -214,94 +202,8 @@ gboolean
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- gst_core_audio_get_samples_and_latency (GstCoreAudio * core_audio,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- gdouble rate, guint * samples, gdouble * latency)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- uint64_t now_ns = AudioConvertHostTimeToNanos (AudioGetCurrentHostTime ());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- gboolean ret = gst_core_audio_get_samples_and_latency_impl (core_audio, rate,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return gst_core_audio_get_samples_and_latency_impl (core_audio, rate,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- samples, latency);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (!ret)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- return FALSE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- CORE_AUDIO_TIMING_LOCK (core_audio);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- uint32_t samples_remain = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- uint64_t anchor_ns =
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- AudioConvertHostTimeToNanos (core_audio->anchor_hosttime);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (core_audio->is_src) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- int64_t captured_ns =
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- core_audio->rate_scalar * (int64_t) (now_ns - anchor_ns);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- /* src, the anchor time is the timestamp of the first sample in the last
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * packet received, and we increment up from there, unless the device gets stopped. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (captured_ns > 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (core_audio->io_proc_active) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- samples_remain = (uint32_t) (captured_ns * rate / GST_SECOND);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- samples_remain = core_audio->anchor_pend_samples;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- /* Time went backward. This shouldn't happen for sources, but report something anyway */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- samples_remain =
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- (uint32_t) (-captured_ns * rate / GST_SECOND) +
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- core_audio->anchor_pend_samples;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- GST_DEBUG_OBJECT (core_audio,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "now_ns %" G_GUINT64_FORMAT " anchor %" G_GUINT64_FORMAT " elapsed ns %"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- G_GINT64_FORMAT " rate %f captured_ns %" G_GINT64_FORMAT
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- " anchor_pend_samples %u samples_remain %u", now_ns, anchor_ns,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- now_ns - anchor_ns, rate, captured_ns, core_audio->anchor_pend_samples,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- samples_remain);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- /* Sink, the anchor time is the time the most recent buffer will commence play out,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * and we count down to 0 for unplayed samples beyond that */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- int64_t unplayed_ns =
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- core_audio->rate_scalar * (int64_t) (anchor_ns - now_ns);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (unplayed_ns > 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- samples_remain =
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- (uint32_t) (unplayed_ns * rate / GST_SECOND) +
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- core_audio->anchor_pend_samples;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- uint32_t samples_played = (uint32_t) (-unplayed_ns * rate / GST_SECOND);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (samples_played < core_audio->anchor_pend_samples) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- samples_remain = core_audio->anchor_pend_samples - samples_played;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- GST_DEBUG_OBJECT (core_audio,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "now_ns %" G_GUINT64_FORMAT " anchor %" G_GUINT64_FORMAT " elapsed ns %"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- G_GINT64_FORMAT " rate %f unplayed_ns %" G_GINT64_FORMAT
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- " anchor_pend_samples %u", now_ns, anchor_ns, now_ns - anchor_ns, rate,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- unplayed_ns, core_audio->anchor_pend_samples);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- CORE_AUDIO_TIMING_UNLOCK (core_audio);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- GST_DEBUG_OBJECT (core_audio, "samples = %u latency %f", samples_remain,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- *latency);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- *samples = samples_remain;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- return TRUE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--gst_core_audio_update_timing (GstCoreAudio * core_audio,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- const AudioTimeStamp * inTimeStamp, unsigned int inNumberFrames)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- AudioTimeStampFlags target_flags =
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- kAudioTimeStampSampleHostTimeValid | kAudioTimeStampRateScalarValid;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if ((inTimeStamp->mFlags & target_flags) == target_flags) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- core_audio->anchor_hosttime = inTimeStamp->mHostTime;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- core_audio->anchor_pend_samples = inNumberFrames;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- core_audio->rate_scalar = inTimeStamp->mRateScalar;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- GST_DEBUG_OBJECT (core_audio,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "anchor hosttime_ns %" G_GUINT64_FORMAT
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- " scalar_rate %f anchor_pend_samples %u",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- AudioConvertHostTimeToNanos (core_audio->anchor_hosttime),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- core_audio->rate_scalar, core_audio->anchor_pend_samples);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- gboolean
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git subprojects/gst-plugins-good/sys/osxaudio/gstosxcoreaudio.h subprojects/gst-plugins-good/sys/osxaudio/gstosxcoreaudio.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 1a1eed6eea..3416db6539 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- sys/osxaudio/gstosxcoreaudio.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ sys/osxaudio/gstosxcoreaudio.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -77,9 +77,6 @@ G_BEGIN_DECLS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- typedef struct _GstCoreAudio GstCoreAudio;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- typedef struct _GstCoreAudioClass GstCoreAudioClass;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#define CORE_AUDIO_TIMING_LOCK(core_audio) (g_mutex_lock(&(core_audio->timing_lock)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#define CORE_AUDIO_TIMING_UNLOCK(core_audio) (g_mutex_unlock(&(core_audio->timing_lock)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- struct _GstCoreAudio
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- GObject object;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -110,11 +107,6 @@ struct _GstCoreAudio
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- AudioStreamBasicDescription original_format, stream_format;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- AudioDeviceIOProcID procID;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- GMutex timing_lock;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- uint64_t anchor_hosttime;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- uint32_t anchor_pend_samples;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- float rate_scalar;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- struct _GstCoreAudioClass
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -151,10 +143,6 @@ gboolean gst_core_audio_get_samples_and_latency (GstCoreAudio * cor
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- guint *samples,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- gdouble *latency);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--void gst_core_audio_update_timing (GstCoreAudio * core_audio,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- const AudioTimeStamp * inTimeStamp,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- unsigned int inNumberFrames);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void gst_core_audio_set_volume (GstCoreAudio *core_audio,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- gfloat volume);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/gnome/gstreamer1-gst-plugins-good/files/patch-coreaudio.diff b/gnome/gstreamer1-gst-plugins-good/files/patch-coreaudio.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..50bbbc8bcce
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/gnome/gstreamer1-gst-plugins-good/files/patch-coreaudio.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,18 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- sys/osxaudio/gstosxcoreaudio.c 2024-06-20 19:54:15.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ sys/osxaudio/gstosxcoreaudio.c 2024-06-22 07:10:09.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -303,6 +303,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gst_core_audio_update_timing (GstCoreAudio * core_audio,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const AudioTimeStamp * inTimeStamp, unsigned int inNumberFrames)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__APPLE__) && (MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AudioTimeStampFlags target_flags =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ kAudioTimeStampSampleHostTimeValid | kAudioTimeStampRateScalarValid;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -318,6 +319,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ core_audio->anchor_hosttime_ns,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ core_audio->rate_scalar, core_audio->anchor_pend_samples);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</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;'>+ gboolean
</span></pre><pre style='margin:0'>
</pre>