mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-05 13:30:02 -05:00
pipewiresrc: add provide clock property
This commit is contained in:
parent
baf0b0b9e1
commit
72e0fe0479
1 changed files with 29 additions and 0 deletions
|
|
@ -48,6 +48,7 @@ GST_DEBUG_CATEGORY_STATIC (pipewire_src_debug);
|
||||||
#define DEFAULT_AUTOCONNECT true
|
#define DEFAULT_AUTOCONNECT true
|
||||||
#define DEFAULT_USE_BUFFERPOOL USE_BUFFERPOOL_AUTO
|
#define DEFAULT_USE_BUFFERPOOL USE_BUFFERPOOL_AUTO
|
||||||
#define DEFAULT_ON_DISCONNECT GST_PIPEWIRE_SRC_ON_DISCONNECT_NONE
|
#define DEFAULT_ON_DISCONNECT GST_PIPEWIRE_SRC_ON_DISCONNECT_NONE
|
||||||
|
#define DEFAULT_PROVIDE_CLOCK TRUE
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
|
|
@ -66,6 +67,7 @@ enum
|
||||||
PROP_AUTOCONNECT,
|
PROP_AUTOCONNECT,
|
||||||
PROP_USE_BUFFERPOOL,
|
PROP_USE_BUFFERPOOL,
|
||||||
PROP_ON_DISCONNECT,
|
PROP_ON_DISCONNECT,
|
||||||
|
PROP_PROVIDE_CLOCK,
|
||||||
};
|
};
|
||||||
|
|
||||||
GType
|
GType
|
||||||
|
|
@ -195,6 +197,16 @@ gst_pipewire_src_set_property (GObject * object, guint prop_id,
|
||||||
pwsrc->on_disconnect = g_value_get_enum (value);
|
pwsrc->on_disconnect = g_value_get_enum (value);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PROP_PROVIDE_CLOCK:
|
||||||
|
gboolean provide = g_value_get_boolean (value);
|
||||||
|
GST_OBJECT_LOCK (pwsrc);
|
||||||
|
if (provide)
|
||||||
|
GST_OBJECT_FLAG_SET (pwsrc, GST_ELEMENT_FLAG_PROVIDE_CLOCK);
|
||||||
|
else
|
||||||
|
GST_OBJECT_FLAG_UNSET (pwsrc, GST_ELEMENT_FLAG_PROVIDE_CLOCK);
|
||||||
|
GST_OBJECT_UNLOCK (pwsrc);
|
||||||
|
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;
|
||||||
|
|
@ -264,6 +276,14 @@ gst_pipewire_src_get_property (GObject * object, guint prop_id,
|
||||||
g_value_set_enum (value, pwsrc->on_disconnect);
|
g_value_set_enum (value, pwsrc->on_disconnect);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PROP_PROVIDE_CLOCK:
|
||||||
|
gboolean result;
|
||||||
|
GST_OBJECT_LOCK (pwsrc);
|
||||||
|
result = GST_OBJECT_FLAG_IS_SET (pwsrc, GST_ELEMENT_FLAG_PROVIDE_CLOCK);
|
||||||
|
GST_OBJECT_UNLOCK (pwsrc);
|
||||||
|
g_value_set_boolean (value, result);
|
||||||
|
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;
|
||||||
|
|
@ -453,6 +473,15 @@ gst_pipewire_src_class_init (GstPipeWireSrcClass * klass)
|
||||||
G_PARAM_READWRITE |
|
G_PARAM_READWRITE |
|
||||||
G_PARAM_STATIC_STRINGS));
|
G_PARAM_STATIC_STRINGS));
|
||||||
|
|
||||||
|
g_object_class_install_property (gobject_class,
|
||||||
|
PROP_PROVIDE_CLOCK,
|
||||||
|
g_param_spec_boolean ("provide-clock",
|
||||||
|
"Provide Clock",
|
||||||
|
"Provide a clock to be used as the global pipeline clock",
|
||||||
|
DEFAULT_PROVIDE_CLOCK,
|
||||||
|
G_PARAM_READWRITE |
|
||||||
|
G_PARAM_STATIC_STRINGS));
|
||||||
|
|
||||||
gstelement_class->provide_clock = gst_pipewire_src_provide_clock;
|
gstelement_class->provide_clock = gst_pipewire_src_provide_clock;
|
||||||
gstelement_class->change_state = gst_pipewire_src_change_state;
|
gstelement_class->change_state = gst_pipewire_src_change_state;
|
||||||
gstelement_class->send_event = gst_pipewire_src_send_event;
|
gstelement_class->send_event = gst_pipewire_src_send_event;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue