diff --git a/sys/osxaudio/gstosxaudioringbuffer.c b/sys/osxaudio/gstosxaudioringbuffer.c index 4677836bcb..d904b092b0 100644 --- a/sys/osxaudio/gstosxaudioringbuffer.c +++ b/sys/osxaudio/gstosxaudioringbuffer.c @@ -229,7 +229,10 @@ gst_osx_audio_ring_buffer_acquire (GstAudioRingBuffer * buf, CORE_AUDIO_FORMAT_ARGS (format)); osxsink = GST_OSX_AUDIO_SINK (GST_OBJECT_PARENT (buf)); - gst_audio_ring_buffer_set_channel_positions (buf, osxsink->channel_positions); + if (GST_IS_OSX_AUDIO_SINK (osxsink)) { + gst_audio_ring_buffer_set_channel_positions (buf, + osxsink->channel_positions); + } buf->size = spec->segtotal * spec->segsize; buf->memory = g_malloc0 (buf->size); diff --git a/sys/osxaudio/gstosxaudiosink.h b/sys/osxaudio/gstosxaudiosink.h index ad4838446e..84949b7fc4 100644 --- a/sys/osxaudio/gstosxaudiosink.h +++ b/sys/osxaudio/gstosxaudiosink.h @@ -63,6 +63,8 @@ G_BEGIN_DECLS (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_OSX_AUDIO_SINK,GstOsxAudioSink)) #define GST_OSX_AUDIO_SINK_CLASS(klass) \ (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_OSX_AUDIO_SINK,GstOsxAudioSinkClass)) +#define GST_IS_OSX_AUDIO_SINK(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_OSX_AUDIO_SINK)) #define GST_OSX_AUDIO_MAX_CHANNEL (9)