summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@gmail.com>2002-05-26 23:01:16 +0000
committerWim Taymans <wim.taymans@gmail.com>2002-05-26 23:01:16 +0000
commitd05f8f80dc14b0826ec2c832b207623431edc561 (patch)
tree2636a3b72daa17ccec85a76323cd4f8c8a70ca48 /sys
parent91a716f915e94b43ea4cb88a81b1308906940d45 (diff)
Added sync option to disable syncing to the clock.
Original commit message from CVS: Added sync option to disable syncing to the clock.
Diffstat (limited to 'sys')
-rw-r--r--sys/oss/gstosssink.c15
-rw-r--r--sys/oss/gstosssink.h1
2 files changed, 14 insertions, 2 deletions
diff --git a/sys/oss/gstosssink.c b/sys/oss/gstosssink.c
index 2b2109c0..f8efa01c 100644
--- a/sys/oss/gstosssink.c
+++ b/sys/oss/gstosssink.c
@@ -75,7 +75,8 @@ enum {
ARG_CHANNELS,
ARG_FREQUENCY,
ARG_FRAGMENT,
- ARG_BUFFER_SIZE
+ ARG_BUFFER_SIZE,
+ ARG_SYNC
/* FILL ME */
};
@@ -186,6 +187,9 @@ gst_osssink_class_init (GstOssSinkClass *klass)
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_MUTE,
g_param_spec_boolean("mute","mute","mute",
TRUE,G_PARAM_READWRITE));
+ g_object_class_install_property (G_OBJECT_CLASS(klass), ARG_SYNC,
+ g_param_spec_boolean("sync","Sync","If syncing on timestamps should be anabled",
+ TRUE, G_PARAM_READWRITE));
/* it would be nice to show format in symbolic form, oh well */
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_FORMAT,
@@ -242,6 +246,7 @@ gst_osssink_init (GstOssSink *osssink)
osssink->bufsize = 4096;
osssink->bps = 0;
osssink->resync = FALSE;
+ osssink->sync = TRUE;
/* 6 buffers per chunk by default */
osssink->sinkpool = gst_buffer_pool_get_default (osssink->bufsize, 6);
@@ -462,7 +467,7 @@ gst_osssink_chain (GstPad *pad, GstBuffer *buf)
ioctl (osssink->fd, SNDCTL_DSP_GETODELAY, &delay);
queued = delay * GST_SECOND / osssink->bps;
- if (osssink->resync) {
+ if (osssink->resync && osssink->sync) {
gst_element_clock_wait (GST_ELEMENT (osssink), osssink->clock,
buftime - queued, &jitter);
@@ -537,6 +542,9 @@ gst_osssink_set_property (GObject *object, guint prop_id, const GValue *value, G
osssink->sinkpool = gst_buffer_pool_get_default (osssink->bufsize, 6);
g_object_notify (object, "buffer_size");
break;
+ case ARG_SYNC:
+ osssink->sync = g_value_get_boolean (value);
+ g_object_notify (G_OBJECT (osssink), "sync");
default:
break;
}
@@ -574,6 +582,9 @@ gst_osssink_get_property (GObject *object, guint prop_id, GValue *value, GParamS
case ARG_BUFFER_SIZE:
g_value_set_int (value, osssink->bufsize);
break;
+ case ARG_SYNC:
+ g_value_set_boolean (value, osssink->sync);
+ break;
default:
break;
}
diff --git a/sys/oss/gstosssink.h b/sys/oss/gstosssink.h
index 84f3bd17..66bbfd78 100644
--- a/sys/oss/gstosssink.h
+++ b/sys/oss/gstosssink.h
@@ -64,6 +64,7 @@ struct _GstOssSink {
GstClock *provided_clock;
GstClock *clock;
gboolean resync;
+ gboolean sync;
/* device */
gchar *device;