[gst-cvs] gst-plugins-base: add can-activate-pull property to baseaudiosink
Andy Wingo
wingo at kemper.freedesktop.org
Tue May 26 04:30:47 PDT 2009
Module: gst-plugins-base
Branch: master
Commit: c7ca6abe539ce1f8a5896c2888a255ac5dbde75e
URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=c7ca6abe539ce1f8a5896c2888a255ac5dbde75e
Author: Andy Wingo <wingo at oblong.net>
Date: Wed Jan 21 12:33:59 2009 +0100
add can-activate-pull property to baseaudiosink
* gst-libs/gst/audio/gstbaseaudiosink.c: Add can-activate-pull property
to baseaudiosink.
---
gst-libs/gst/audio/gstbaseaudiosink.c | 21 +++++++++++++++++----
1 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/gst-libs/gst/audio/gstbaseaudiosink.c b/gst-libs/gst/audio/gstbaseaudiosink.c
index 29a2dc2..38c40e4 100644
--- a/gst-libs/gst/audio/gstbaseaudiosink.c
+++ b/gst-libs/gst/audio/gstbaseaudiosink.c
@@ -80,13 +80,17 @@ enum
#define DEFAULT_PROVIDE_CLOCK TRUE
#define DEFAULT_SLAVE_METHOD GST_BASE_AUDIO_SINK_SLAVE_SKEW
+/* FIXME, enable pull mode when clock slaving and trick modes are figured out */
+#define DEFAULT_CAN_ACTIVATE_PULL FALSE
+
enum
{
PROP_0,
PROP_BUFFER_TIME,
PROP_LATENCY_TIME,
PROP_PROVIDE_CLOCK,
- PROP_SLAVE_METHOD
+ PROP_SLAVE_METHOD,
+ PROP_CAN_ACTIVATE_PULL
};
GType
@@ -200,6 +204,11 @@ gst_base_audio_sink_class_init (GstBaseAudioSinkClass * klass)
GST_TYPE_BASE_AUDIO_SINK_SLAVE_METHOD, DEFAULT_SLAVE_METHOD,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property (gobject_class, PROP_CAN_ACTIVATE_PULL,
+ g_param_spec_boolean ("can-activate-pull", "Allow Pull Scheduling",
+ "Allow pull-based scheduling", DEFAULT_CAN_ACTIVATE_PULL,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
gstelement_class->change_state =
GST_DEBUG_FUNCPTR (gst_base_audio_sink_change_state);
gstelement_class->provide_clock =
@@ -239,9 +248,7 @@ gst_base_audio_sink_init (GstBaseAudioSink * baseaudiosink,
(GstAudioClockGetTimeFunc) gst_base_audio_sink_get_time, baseaudiosink);
GST_BASE_SINK (baseaudiosink)->can_activate_push = TRUE;
- /* FIXME, enable pull mode when segments, latency, state changes, negotiation
- * and clock slaving are figured out */
- GST_BASE_SINK (baseaudiosink)->can_activate_pull = FALSE;
+ GST_BASE_SINK (baseaudiosink)->can_activate_pull = DEFAULT_CAN_ACTIVATE_PULL;
/* install some custom pad_query functions */
gst_pad_set_query_function (GST_BASE_SINK_PAD (baseaudiosink),
@@ -574,6 +581,9 @@ gst_base_audio_sink_set_property (GObject * object, guint prop_id,
case PROP_SLAVE_METHOD:
gst_base_audio_sink_set_slave_method (sink, g_value_get_enum (value));
break;
+ case PROP_CAN_ACTIVATE_PULL:
+ GST_BASE_SINK (sink)->can_activate_pull = g_value_get_boolean (value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -601,6 +611,9 @@ gst_base_audio_sink_get_property (GObject * object, guint prop_id,
case PROP_SLAVE_METHOD:
g_value_set_enum (value, gst_base_audio_sink_get_slave_method (sink));
break;
+ case PROP_CAN_ACTIVATE_PULL:
+ g_value_set_boolean (value, GST_BASE_SINK (sink)->can_activate_pull);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
More information about the Gstreamer-commits
mailing list