diff options
author | Andy Wingo <wingo@oblong.net> | 2009-01-21 12:33:59 +0100 |
---|---|---|
committer | Andy Wingo <wingo@oblong.net> | 2009-04-28 18:28:50 +0200 |
commit | c4074a2ee4f1e6cac734a145bf675bbb16fac985 (patch) | |
tree | 3d050e40742a9a1236ca69bfeab8653a276e2c32 | |
parent | 915b3d139dee6d5ffcc36a635557ca24269b2eb8 (diff) |
add can-activate-pull property to baseaudiosink
* gst-libs/gst/audio/gstbaseaudiosink.c: Add can-activate-pull property
to baseaudiosink.
-rw-r--r-- | 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 c46bc7f04..eb56fb470 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; |