mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -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