<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/3c61e251b3d36af431ffc95fda36a94e2ae06e09">https://github.com/macports/macports-ports/commit/3c61e251b3d36af431ffc95fda36a94e2ae06e09</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 3c61e251b3d36af431ffc95fda36a94e2ae06e09
</span>Author: barracuda156 <vital.had@gmail.com>
AuthorDate: Sun Mar 31 06:55:33 2024 +0800

<span style='display:block; white-space:pre;color:#404040;'>    gstreamer1-gst-plugins-good: update to 1.24.1
</span>---
 gnome/gstreamer1-gst-plugins-good/Portfile         |  15 +-
 ...udio-Interpolate-clock-by-counting-elapse.patch | 217 +++++++++++++++++++++
 2 files changed, 228 insertions(+), 4 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 13c27b96e52..dae87aacf9b 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;'>@@ -11,7 +11,7 @@ PortGroup           muniversal 1.0
</span> name                gstreamer1-gst-plugins-good
 set my_name         gst-plugins-good
 # please only commit stable updates (even numbered releases)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version             1.22.9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version             1.24.1
</span> revision            0
 description         A set of good-quality plug-ins for GStreamer under GStreamer's preferred \
                     license, LGPL.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -27,9 +27,9 @@ master_sites        https://gstreamer.freedesktop.org/src/${my_name}/
</span> use_xz              yes
 distname            ${my_name}-${version}
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums           rmd160  a7ae8b8ba5cf65de19270a7420ddb01fcc3eb0e5 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256  26959fcfebfff637d4ea08ef40316baf31b61bb7729820b0684e800c3a1478b6 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    size    2839056
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160  4ee4a68c307489bbd3645b6833c471691fcb158a \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  c02ba5583863e0bd9e265e5e4a27a03a3c473eb9ec1c10b07238f7176d9368a2 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    2904196
</span> 
 set py_ver          3.12
 set py_ver_nodot    [string map {. {}} ${py_ver}]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -68,6 +68,13 @@ if {${os.platform} eq "darwin" && ${os.major} < 11} {
</span>                     snowleopard-memmem.patch
 }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Temorary fix until the upstream addresses the breakage.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3439
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${os.platform} eq "darwin" && ${os.major} < 15} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    0001-Revert-osxaudio-Interpolate-clock-by-counting-elapse.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> post-patch {
     reinplace "s|/usr/bin/env python3|${python.bin}|" \
         ${worksrcpath}/scripts/extract-release-date-from-doap-file.py \
<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>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..45391e34a8a
</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/0001-Revert-osxaudio-Interpolate-clock-by-counting-elapse.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,217 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 378e3f09dd4ab80f6e46732fff1ca52463cdd017 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: barracuda156 <vital.had@gmail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sun, 31 Mar 2024 06:42:42 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Revert "osxaudio: Interpolate clock by counting elapsed
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ time since render calls"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This reverts commit 461f943b52346073fbcd227f22c50afcebe51b00.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../sys/osxaudio/gstosxaudiosink.c            |   6 --
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../sys/osxaudio/gstosxaudiosrc.c             |   6 --
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../sys/osxaudio/gstosxcoreaudio.c            | 100 +-----------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../sys/osxaudio/gstosxcoreaudio.h            |  12 ---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 4 files changed, 1 insertion(+), 123 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+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:#e0ffe0;'>+index 4b48e0dd59..578ccf4949 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- sys/osxaudio/gstosxaudiosink.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ sys/osxaudio/gstosxaudiosink.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -546,13 +546,7 @@ gst_osx_audio_sink_io_proc (GstOsxAudioRingBuffer * buf,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       gst_audio_ring_buffer_clear (GST_AUDIO_RING_BUFFER (buf), readseg);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       /* we wrote one segment */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      CORE_AUDIO_TIMING_LOCK (buf->core_audio);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       gst_audio_ring_buffer_advance (GST_AUDIO_RING_BUFFER (buf), 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      /* FIXME: Update the timestamp and reported frames in smaller increments
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-       * when the segment size is larger than the total inNumberFrames */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      gst_core_audio_update_timing (buf->core_audio, inTimeStamp,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          inNumberFrames);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      CORE_AUDIO_TIMING_UNLOCK (buf->core_audio);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       buf->segoffset = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+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:#e0ffe0;'>+index 75793bb692..e4ef409ae2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- sys/osxaudio/gstosxaudiosrc.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ sys/osxaudio/gstosxaudiosrc.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -397,13 +397,7 @@ gst_osx_audio_src_io_proc (GstOsxAudioRingBuffer * buf,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           writeseg, ts);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       /* we wrote one segment */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      CORE_AUDIO_TIMING_LOCK (buf->core_audio);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       gst_audio_ring_buffer_advance (GST_AUDIO_RING_BUFFER (buf), 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      /* FIXME: Update the timestamp and reported frames in smaller increments
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-       * when the segment size is larger than the total inNumberFrames */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      gst_core_audio_update_timing (buf->core_audio, inTimeStamp,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          inNumberFrames);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      CORE_AUDIO_TIMING_UNLOCK (buf->core_audio);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       buf->segoffset = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+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:#e0ffe0;'>+index 758a4622e5..6c5115d693 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- sys/osxaudio/gstosxcoreaudio.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ sys/osxaudio/gstosxcoreaudio.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -35,20 +35,10 @@ G_DEFINE_TYPE (GstCoreAudio, gst_core_audio, G_TYPE_OBJECT);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "gstosxcoreaudiohal.c"
</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;'>+-static void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-gst_core_audio_finalize (GObject * object)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  GstCoreAudio *core_audio = GST_CORE_AUDIO (object);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  g_mutex_clear (&core_audio->timing_lock);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  G_OBJECT_CLASS (gst_core_audio_parent_class)->finalize (object);
</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
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gst_core_audio_class_init (GstCoreAudioClass * klass)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  GObjectClass *object_klass = G_OBJECT_CLASS (klass);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  object_klass->finalize = gst_core_audio_finalize;
</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
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -64,8 +54,6 @@ gst_core_audio_init (GstCoreAudio * core_audio)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   core_audio->hog_pid = -1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   core_audio->disabled_mixing = FALSE;
</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;'>+-  g_mutex_init (&core_audio->timing_lock);
</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 gboolean
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -214,94 +202,8 @@ gboolean
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gst_core_audio_get_samples_and_latency (GstCoreAudio * core_audio,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     gdouble rate, guint * samples, gdouble * latency)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  uint64_t now_ns = AudioConvertHostTimeToNanos (AudioGetCurrentHostTime ());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  gboolean ret = gst_core_audio_get_samples_and_latency_impl (core_audio, rate,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return gst_core_audio_get_samples_and_latency_impl (core_audio, rate,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       samples, latency);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (!ret)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  CORE_AUDIO_TIMING_LOCK (core_audio);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  uint32_t samples_remain = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  uint64_t anchor_ns =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      AudioConvertHostTimeToNanos (core_audio->anchor_hosttime);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (core_audio->is_src) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    int64_t captured_ns =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        core_audio->rate_scalar * (int64_t) (now_ns - anchor_ns);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    /* src, the anchor time is the timestamp of the first sample in the last
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     * packet received, and we increment up from there, unless the device gets stopped. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (captured_ns > 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      if (core_audio->io_proc_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        samples_remain = (uint32_t) (captured_ns * rate / GST_SECOND);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        samples_remain = 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;'>+-    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      /* Time went backward. This shouldn't happen for sources, but report something anyway */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      samples_remain =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          (uint32_t) (-captured_ns * rate / GST_SECOND) +
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          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;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    GST_DEBUG_OBJECT (core_audio,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        "now_ns %" G_GUINT64_FORMAT " anchor %" G_GUINT64_FORMAT " elapsed ns %"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        G_GINT64_FORMAT " rate %f captured_ns %" G_GINT64_FORMAT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        " anchor_pend_samples %u samples_remain %u", now_ns, anchor_ns,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        now_ns - anchor_ns, rate, captured_ns, core_audio->anchor_pend_samples,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        samples_remain);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    /* Sink, the anchor time is the time the most recent buffer will commence play out,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     * and we count down to 0 for unplayed samples beyond that */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    int64_t unplayed_ns =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        core_audio->rate_scalar * (int64_t) (anchor_ns - now_ns);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (unplayed_ns > 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      samples_remain =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          (uint32_t) (unplayed_ns * rate / GST_SECOND) +
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          core_audio->anchor_pend_samples;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      uint32_t samples_played = (uint32_t) (-unplayed_ns * rate / GST_SECOND);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      if (samples_played < core_audio->anchor_pend_samples) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        samples_remain = core_audio->anchor_pend_samples - samples_played;
</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;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    GST_DEBUG_OBJECT (core_audio,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        "now_ns %" G_GUINT64_FORMAT " anchor %" G_GUINT64_FORMAT " elapsed ns %"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        G_GINT64_FORMAT " rate %f unplayed_ns %" G_GINT64_FORMAT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        " anchor_pend_samples %u", now_ns, anchor_ns, now_ns - anchor_ns, rate,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        unplayed_ns, 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;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  CORE_AUDIO_TIMING_UNLOCK (core_audio);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  GST_DEBUG_OBJECT (core_audio, "samples = %u latency %f", samples_remain,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      *latency);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  *samples = samples_remain;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  return TRUE;
</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;'>+-void
</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;'>+-  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;'>+-  if ((inTimeStamp->mFlags & target_flags) == target_flags) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    core_audio->anchor_hosttime = inTimeStamp->mHostTime;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    core_audio->anchor_pend_samples = inNumberFrames;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    core_audio->rate_scalar = inTimeStamp->mRateScalar;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    GST_DEBUG_OBJECT (core_audio,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        "anchor hosttime_ns %" G_GUINT64_FORMAT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        " scalar_rate %f anchor_pend_samples %u",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        AudioConvertHostTimeToNanos (core_audio->anchor_hosttime),
</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;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gboolean
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+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:#e0ffe0;'>+index 1a1eed6eea..3416db6539 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- sys/osxaudio/gstosxcoreaudio.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ sys/osxaudio/gstosxcoreaudio.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -77,9 +77,6 @@ G_BEGIN_DECLS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ typedef struct _GstCoreAudio GstCoreAudio;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ typedef struct _GstCoreAudioClass GstCoreAudioClass;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define CORE_AUDIO_TIMING_LOCK(core_audio) (g_mutex_lock(&(core_audio->timing_lock)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define CORE_AUDIO_TIMING_UNLOCK(core_audio) (g_mutex_unlock(&(core_audio->timing_lock)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct _GstCoreAudio
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   GObject object;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -110,11 +107,6 @@ struct _GstCoreAudio
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   AudioStreamBasicDescription original_format, stream_format;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   AudioDeviceIOProcID procID;
</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;'>+-  GMutex timing_lock;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  uint64_t anchor_hosttime;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  uint32_t anchor_pend_samples;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  float rate_scalar;
</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;'>+ struct _GstCoreAudioClass
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -151,10 +143,6 @@ gboolean gst_core_audio_get_samples_and_latency              (GstCoreAudio * cor
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                                               guint *samples,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                                               gdouble *latency);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-void gst_core_audio_update_timing                            (GstCoreAudio * core_audio,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                                                              const AudioTimeStamp * inTimeStamp,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                                                              unsigned int inNumberFrames);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void  gst_core_audio_set_volume                              (GstCoreAudio *core_audio,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                                               gfloat volume);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span></pre><pre style='margin:0'>

</pre>