mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-06-05 06:58:56 +00:00
gst/base/gstbasesink.*: Added sync property to basesink to disable clock sync.
Original commit message from CVS: * gst/base/gstbasesink.c: (gst_base_sink_class_init), (gst_base_sink_set_property), (gst_base_sink_get_property), (gst_base_sink_do_sync): * gst/base/gstbasesink.h: Added sync property to basesink to disable clock sync.
This commit is contained in:
parent
b12471008b
commit
3a3b15c8a3
5 changed files with 38 additions and 4 deletions
|
@ -1,3 +1,11 @@
|
||||||
|
2005-09-20 Wim Taymans <wim@fluendo.com>
|
||||||
|
|
||||||
|
* gst/base/gstbasesink.c: (gst_base_sink_class_init),
|
||||||
|
(gst_base_sink_set_property), (gst_base_sink_get_property),
|
||||||
|
(gst_base_sink_do_sync):
|
||||||
|
* gst/base/gstbasesink.h:
|
||||||
|
Added sync property to basesink to disable clock sync.
|
||||||
|
|
||||||
2005-09-20 Andy Wingo <wingo@pobox.com>
|
2005-09-20 Andy Wingo <wingo@pobox.com>
|
||||||
|
|
||||||
* gst/gstelementfactory.c (gst_element_factory_create): Avoid
|
* gst/gstelementfactory.c (gst_element_factory_create): Avoid
|
||||||
|
|
|
@ -58,10 +58,13 @@ enum
|
||||||
#define DEFAULT_CAN_ACTIVATE_PULL FALSE /* fixme: enable me */
|
#define DEFAULT_CAN_ACTIVATE_PULL FALSE /* fixme: enable me */
|
||||||
#define DEFAULT_CAN_ACTIVATE_PUSH TRUE
|
#define DEFAULT_CAN_ACTIVATE_PUSH TRUE
|
||||||
|
|
||||||
|
#define DEFAULT_SYNC TRUE
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
PROP_0,
|
PROP_0,
|
||||||
PROP_PREROLL_QUEUE_LEN
|
PROP_PREROLL_QUEUE_LEN,
|
||||||
|
PROP_SYNC
|
||||||
};
|
};
|
||||||
|
|
||||||
static GstElementClass *parent_class = NULL;
|
static GstElementClass *parent_class = NULL;
|
||||||
|
@ -152,6 +155,9 @@ gst_base_sink_class_init (GstBaseSinkClass * klass)
|
||||||
g_param_spec_uint ("preroll-queue-len", "preroll-queue-len",
|
g_param_spec_uint ("preroll-queue-len", "preroll-queue-len",
|
||||||
"Number of buffers to queue during preroll", 0, G_MAXUINT, 0,
|
"Number of buffers to queue during preroll", 0, G_MAXUINT, 0,
|
||||||
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
|
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
|
||||||
|
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_SYNC,
|
||||||
|
g_param_spec_boolean ("sync", "Sync", "Sync on the clock", DEFAULT_SYNC,
|
||||||
|
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
|
||||||
|
|
||||||
gstelement_class->set_clock = GST_DEBUG_FUNCPTR (gst_base_sink_set_clock);
|
gstelement_class->set_clock = GST_DEBUG_FUNCPTR (gst_base_sink_set_clock);
|
||||||
gstelement_class->change_state =
|
gstelement_class->change_state =
|
||||||
|
@ -302,6 +308,9 @@ gst_base_sink_set_property (GObject * object, guint prop_id,
|
||||||
sink->preroll_queue_max_len = g_value_get_uint (value);
|
sink->preroll_queue_max_len = g_value_get_uint (value);
|
||||||
GST_PREROLL_UNLOCK (sink->sinkpad);
|
GST_PREROLL_UNLOCK (sink->sinkpad);
|
||||||
break;
|
break;
|
||||||
|
case PROP_SYNC:
|
||||||
|
sink->sync = g_value_get_boolean (value);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
break;
|
break;
|
||||||
|
@ -319,6 +328,9 @@ gst_base_sink_get_property (GObject * object, guint prop_id, GValue * value,
|
||||||
case PROP_PREROLL_QUEUE_LEN:
|
case PROP_PREROLL_QUEUE_LEN:
|
||||||
g_value_set_uint (value, sink->preroll_queue_max_len);
|
g_value_set_uint (value, sink->preroll_queue_max_len);
|
||||||
break;
|
break;
|
||||||
|
case PROP_SYNC:
|
||||||
|
g_value_set_boolean (value, sink->sync);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
break;
|
break;
|
||||||
|
@ -925,7 +937,7 @@ gst_base_sink_do_sync (GstBaseSink * basesink, GstBuffer * buffer)
|
||||||
stream_end += basesink->segment_accum;
|
stream_end += basesink->segment_accum;
|
||||||
|
|
||||||
/* now do clocking */
|
/* now do clocking */
|
||||||
if (basesink->clock) {
|
if (basesink->clock && basesink->sync) {
|
||||||
GstClockReturn ret;
|
GstClockReturn ret;
|
||||||
GstClockTime base_time;
|
GstClockTime base_time;
|
||||||
|
|
||||||
|
|
|
@ -92,6 +92,7 @@ struct _GstBaseSink {
|
||||||
GstClock *clock;
|
GstClock *clock;
|
||||||
GstClockID clock_id;
|
GstClockID clock_id;
|
||||||
GstClockTime end_time;
|
GstClockTime end_time;
|
||||||
|
gboolean sync;
|
||||||
|
|
||||||
/*< private >*/
|
/*< private >*/
|
||||||
gpointer _gst_reserved[GST_PADDING];
|
gpointer _gst_reserved[GST_PADDING];
|
||||||
|
|
|
@ -58,10 +58,13 @@ enum
|
||||||
#define DEFAULT_CAN_ACTIVATE_PULL FALSE /* fixme: enable me */
|
#define DEFAULT_CAN_ACTIVATE_PULL FALSE /* fixme: enable me */
|
||||||
#define DEFAULT_CAN_ACTIVATE_PUSH TRUE
|
#define DEFAULT_CAN_ACTIVATE_PUSH TRUE
|
||||||
|
|
||||||
|
#define DEFAULT_SYNC TRUE
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
PROP_0,
|
PROP_0,
|
||||||
PROP_PREROLL_QUEUE_LEN
|
PROP_PREROLL_QUEUE_LEN,
|
||||||
|
PROP_SYNC
|
||||||
};
|
};
|
||||||
|
|
||||||
static GstElementClass *parent_class = NULL;
|
static GstElementClass *parent_class = NULL;
|
||||||
|
@ -152,6 +155,9 @@ gst_base_sink_class_init (GstBaseSinkClass * klass)
|
||||||
g_param_spec_uint ("preroll-queue-len", "preroll-queue-len",
|
g_param_spec_uint ("preroll-queue-len", "preroll-queue-len",
|
||||||
"Number of buffers to queue during preroll", 0, G_MAXUINT, 0,
|
"Number of buffers to queue during preroll", 0, G_MAXUINT, 0,
|
||||||
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
|
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
|
||||||
|
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_SYNC,
|
||||||
|
g_param_spec_boolean ("sync", "Sync", "Sync on the clock", DEFAULT_SYNC,
|
||||||
|
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
|
||||||
|
|
||||||
gstelement_class->set_clock = GST_DEBUG_FUNCPTR (gst_base_sink_set_clock);
|
gstelement_class->set_clock = GST_DEBUG_FUNCPTR (gst_base_sink_set_clock);
|
||||||
gstelement_class->change_state =
|
gstelement_class->change_state =
|
||||||
|
@ -302,6 +308,9 @@ gst_base_sink_set_property (GObject * object, guint prop_id,
|
||||||
sink->preroll_queue_max_len = g_value_get_uint (value);
|
sink->preroll_queue_max_len = g_value_get_uint (value);
|
||||||
GST_PREROLL_UNLOCK (sink->sinkpad);
|
GST_PREROLL_UNLOCK (sink->sinkpad);
|
||||||
break;
|
break;
|
||||||
|
case PROP_SYNC:
|
||||||
|
sink->sync = g_value_get_boolean (value);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
break;
|
break;
|
||||||
|
@ -319,6 +328,9 @@ gst_base_sink_get_property (GObject * object, guint prop_id, GValue * value,
|
||||||
case PROP_PREROLL_QUEUE_LEN:
|
case PROP_PREROLL_QUEUE_LEN:
|
||||||
g_value_set_uint (value, sink->preroll_queue_max_len);
|
g_value_set_uint (value, sink->preroll_queue_max_len);
|
||||||
break;
|
break;
|
||||||
|
case PROP_SYNC:
|
||||||
|
g_value_set_boolean (value, sink->sync);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
break;
|
break;
|
||||||
|
@ -925,7 +937,7 @@ gst_base_sink_do_sync (GstBaseSink * basesink, GstBuffer * buffer)
|
||||||
stream_end += basesink->segment_accum;
|
stream_end += basesink->segment_accum;
|
||||||
|
|
||||||
/* now do clocking */
|
/* now do clocking */
|
||||||
if (basesink->clock) {
|
if (basesink->clock && basesink->sync) {
|
||||||
GstClockReturn ret;
|
GstClockReturn ret;
|
||||||
GstClockTime base_time;
|
GstClockTime base_time;
|
||||||
|
|
||||||
|
|
|
@ -92,6 +92,7 @@ struct _GstBaseSink {
|
||||||
GstClock *clock;
|
GstClock *clock;
|
||||||
GstClockID clock_id;
|
GstClockID clock_id;
|
||||||
GstClockTime end_time;
|
GstClockTime end_time;
|
||||||
|
gboolean sync;
|
||||||
|
|
||||||
/*< private >*/
|
/*< private >*/
|
||||||
gpointer _gst_reserved[GST_PADDING];
|
gpointer _gst_reserved[GST_PADDING];
|
||||||
|
|
Loading…
Reference in a new issue