From 57eaf388e08a93e28e28ad5e641d29abba53e1b6 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Thu, 10 Nov 2011 16:24:12 +0100 Subject: [PATCH] audio: fix base class vmethods --- gst-libs/gst/audio/gstbaseaudiosink.c | 16 +++++++--------- gst-libs/gst/audio/gstbaseaudiosrc.c | 12 ++++++++---- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/gst-libs/gst/audio/gstbaseaudiosink.c b/gst-libs/gst/audio/gstbaseaudiosink.c index 01fd93ae84..04b9cf70e6 100644 --- a/gst-libs/gst/audio/gstbaseaudiosink.c +++ b/gst-libs/gst/audio/gstbaseaudiosink.c @@ -278,18 +278,14 @@ gst_base_audio_sink_class_init (GstBaseAudioSinkClass * klass) GST_DEBUG_FUNCPTR (gst_base_audio_sink_provide_clock); gstelement_class->query = GST_DEBUG_FUNCPTR (gst_base_audio_sink_query); + gstbasesink_class->fixate = GST_DEBUG_FUNCPTR (gst_base_audio_sink_fixate); + gstbasesink_class->set_caps = GST_DEBUG_FUNCPTR (gst_base_audio_sink_setcaps); gstbasesink_class->event = GST_DEBUG_FUNCPTR (gst_base_audio_sink_event); - gstbasesink_class->preroll = GST_DEBUG_FUNCPTR (gst_base_audio_sink_preroll); - gstbasesink_class->query = GST_DEBUG_FUNCPTR (gst_base_audio_sink_query_pad); - gstbasesink_class->render = GST_DEBUG_FUNCPTR (gst_base_audio_sink_render); gstbasesink_class->get_times = GST_DEBUG_FUNCPTR (gst_base_audio_sink_get_times); - gstbasesink_class->set_caps = GST_DEBUG_FUNCPTR (gst_base_audio_sink_setcaps); - gstbasesink_class->fixate = GST_DEBUG_FUNCPTR (gst_base_audio_sink_fixate); -#if 0 - gstbasesink_class->async_play = - GST_DEBUG_FUNCPTR (gst_base_audio_sink_async_play); -#endif + gstbasesink_class->preroll = GST_DEBUG_FUNCPTR (gst_base_audio_sink_preroll); + gstbasesink_class->render = GST_DEBUG_FUNCPTR (gst_base_audio_sink_render); + gstbasesink_class->query = GST_DEBUG_FUNCPTR (gst_base_audio_sink_query_pad); gstbasesink_class->activate_pull = GST_DEBUG_FUNCPTR (gst_base_audio_sink_activate_pull); @@ -956,6 +952,8 @@ gst_base_audio_sink_fixate (GstBaseSink * bsink, GstCaps * caps) gst_structure_fixate_field_boolean (s, "signed", TRUE); if (gst_structure_has_field (s, "endianness")) gst_structure_fixate_field_nearest_int (s, "endianness", G_BYTE_ORDER); + + GST_BASE_SINK_CLASS (parent_class)->fixate (bsink, caps); } static void diff --git a/gst-libs/gst/audio/gstbaseaudiosrc.c b/gst-libs/gst/audio/gstbaseaudiosrc.c index b3ceec69eb..fd1e5495a1 100644 --- a/gst-libs/gst/audio/gstbaseaudiosrc.c +++ b/gst-libs/gst/audio/gstbaseaudiosrc.c @@ -663,9 +663,10 @@ static gboolean gst_base_audio_src_event (GstBaseSrc * bsrc, GstEvent * event) { GstBaseAudioSrc *src = GST_BASE_AUDIO_SRC (bsrc); - gboolean res; + gboolean res, forward; - res = TRUE; + res = FALSE; + forward = TRUE; switch (GST_EVENT_TYPE (event)) { case GST_EVENT_FLUSH_START: @@ -681,12 +682,15 @@ gst_base_audio_src_event (GstBaseSrc * bsrc, GstEvent * event) break; case GST_EVENT_SEEK: GST_DEBUG_OBJECT (bsrc, "refuse to seek"); - res = FALSE; + forward = FALSE; break; default: - GST_DEBUG_OBJECT (bsrc, "dropping event %p", event); + GST_DEBUG_OBJECT (bsrc, "forward event %p", event); break; } + if (forward) + res = GST_BASE_SRC_CLASS (parent_class)->event (bsrc, event); + return res; }