Optionalproperties: Partial<Gst.Clock.ConstructorProps>Internal$signalsCompile-time signal type information.
This instance property is generated only for TypeScript type checking. It is not defined at runtime and should not be accessed in JS code.
Static$gtypeThe parent of the object. Please note, that when changing the 'parent' property, we don't emit GObject.Object::notify and Gst.Object.SignalSignatures.deep_notify | Gst.Object::deep-notify signals due to locking issues. In some cases one can use Gst.Bin.SignalSignatures.element_added | Gst.Bin::element-added or Gst.Bin.SignalSignatures.element_removed | Gst.Bin::element-removed signals on the parent to achieve a similar effect.
The time observation_external of the external or master clock and the time
observation_internal of the internal or slave clock are added to the list of
observations. If enough observations are available, a linear regression
algorithm is run on the observations and clock is recalibrated.
If this functions returns true, r_squared will contain the
correlation coefficient of the interpolation. A value of 1.0
means a perfect regression was performed. This value can
be used to control the sampling frequency of the master and slave
clocks.
a time on the internal clock
a time on the external clock
true if enough observations were added to run the regression algorithm.
Add a clock observation to the internal slaving algorithm the same as
gst_clock_add_observation(), and return the result of the external or master
clock estimation, without updating the internal calibration.
The caller can then take the results and call gst_clock_set_calibration()
with the values, or some modified version of them.
a time on the internal clock
a time on the external clock
true if enough observations were added to run the regression algorithm.
Converts the given internal clock time to the external time, adjusting for the
rate and reference time set with gst_clock_set_calibration() and making sure
that the returned time is increasing. This function should be called with the
clock's OBJECT_LOCK held and is mainly used by clock subclasses.
This function is the reverse of gst_clock_unadjust_unlocked().
a clock time
the converted time of the clock.
Converts the given internal_target clock time to the external time,
using the passed calibration parameters. This function performs the
same calculation as gst_clock_adjust_unlocked() when called using the
current calibration parameters, but doesn't ensure a monotonically
increasing result as gst_clock_adjust_unlocked() does.
Note: The clock parameter is unused and can be NULL
a clock time
a reference internal time
a reference external time
the numerator of the rate of the clock relative to its internal time
the denominator of the rate of the clock
the converted time of the clock.
SignalconnectSignalconnect_SignalemitGets the internal rate and reference time of clock. See
gst_clock_set_calibration() for more information.
internal, external, rate_num, and rate_denom can be left null if the
caller is not interested in the values.
Gets the current internal time of the given clock. The time is returned unadjusted for the offset and the rate.
the internal time of the clock. Or GST_CLOCK_TIME_NONE when given invalid input.
Gets the accuracy of the clock. The accuracy of the clock is the granularity
of the values returned by gst_clock_get_time().
the resolution of the clock in units of Gst.ClockTime.
Gets the current time of the given clock. The time is always monotonically increasing and adjusted according to the current offset and rate.
the time of the clock. Or GST_CLOCK_TIME_NONE when given invalid input.
Gets the amount of time that master and slave clocks are sampled.
the interval between samples.
Checks if the clock is currently synced, by looking at whether Gst.ClockFlags.NEEDS_STARTUP_SYNC is set.
true if the clock is currently synced
Gets an ID from clock to trigger a periodic notification.
The periodic notifications will start at time start_time and
will then be fired with the given interval.
the requested start time
the requested interval
a Gst.ClockID that can be used to request the time notification.
Gets a Gst.ClockID from clock to trigger a single shot
notification at the requested time.
the requested time
a Gst.ClockID that can be used to request the time notification.
Reinitializes the provided periodic id to the provided start time and
interval. Does not modify the reference count.
the requested start time
the requested interval
true if the GstClockID could be reinitialized to the provided time, else false.
Adjusts the rate and time of clock. A rate of 1/1 is the normal speed of
the clock. Values bigger than 1/1 make the clock go faster.
internal and external are calibration parameters that arrange that
gst_clock_get_time() should have been external at internal time internal.
This internal time should not be in the future; that is, it should be less
than the value of gst_clock_get_internal_time() when this function is called.
Subsequent calls to gst_clock_get_time() will return clock times computed as
follows:
time = (internal_time - internal) * rate_num / rate_denom + external
This formula is implemented in gst_clock_adjust_unlocked(). Of course, it
tries to do the integer arithmetic as precisely as possible.
Note that gst_clock_get_time() always returns increasing values so when you
move the clock backwards, gst_clock_get_time() will report the previous value
until the clock catches up.
a reference internal time
a reference external time
the numerator of the rate of the clock relative to its internal time
the denominator of the rate of the clock
Sets master as the master clock for clock. clock will be automatically
calibrated so that gst_clock_get_time() reports the same time as the
master clock.
A clock provider that slaves its clock to a master can get the current
calibration values with gst_clock_get_calibration().
master can be null in which case clock will not be slaved anymore. It will
however keep reporting its time adjusted with the last configured rate
and time offsets.
true if the clock is capable of being slaved to a master clock. Trying to set a master on a clock without the #GST_CLOCK_FLAG_CAN_SET_MASTER flag will make this function return false.
Sets the accuracy of the clock. Some clocks have the possibility to operate with different accuracy at the expense of more resource usage. There is normally no need to change the default resolution of a clock. The resolution of a clock can only be changed if the clock has the #GST_CLOCK_FLAG_CAN_SET_RESOLUTION flag set.
The resolution to set
the new resolution of the clock.
Sets clock to synced and emits the Gst.Clock::synced signal, and wakes up any
thread waiting in gst_clock_wait_for_sync().
This function must only be called if Gst.ClockFlags.NEEDS_STARTUP_SYNC is set on the clock, and is intended to be called by subclasses only.
if the clock is synced
Sets the amount of time, in nanoseconds, to sample master and slave clocks
a timeout
Reinitializes the provided single shot id to the provided time. Does not
modify the reference count.
The requested time.
true if the GstClockID could be reinitialized to the provided time, else false.
Converts the given external clock time to the internal time of clock,
using the rate and reference time set with gst_clock_set_calibration().
This function should be called with the clock's OBJECT_LOCK held and
is mainly used by clock subclasses.
This function is the reverse of gst_clock_adjust_unlocked().
an external clock time
the internal time of the clock corresponding to external.
Converts the given external_target clock time to the internal time,
using the passed calibration parameters. This function performs the
same calculation as gst_clock_unadjust_unlocked() when called using the
current calibration parameters.
Note: The clock parameter is unused and can be NULL
a clock time
a reference internal time
a reference external time
the numerator of the rate of the clock relative to its internal time
the denominator of the rate of the clock
the converted time of the clock.
Virtualvfunc_Change the resolution of the clock. Not all values might be acceptable.
the previous resolution
the new resolution
Virtualvfunc_Gets the current internal time of the given clock. The time is returned unadjusted for the offset and the rate.
Virtualvfunc_Gets the accuracy of the clock. The accuracy of the clock is the granularity
of the values returned by gst_clock_get_time().
Virtualvfunc_Unblock a blocking or async wait operation.
the entry to unschedule
Virtualvfunc_Perform a blocking wait on the given Gst.ClockEntry and return the jitter.
the entry to wait on
Virtualvfunc_Perform an asynchronous wait on the given Gst.ClockEntry.
the entry to wait on
Waits until clock is synced for reporting the current time. If timeout
is GST_CLOCK_TIME_NONE it will wait forever, otherwise it will time out
after timeout nanoseconds.
For asynchronous waiting, the Gst.Clock::synced signal can be used.
This returns immediately with true if Gst.ClockFlags.NEEDS_STARTUP_SYNC
is not set on the clock, or if the clock is already synced.
timeout for waiting or GST_CLOCK_TIME_NONE
true if waiting was successful, or false on timeout
Staticid_Compares the two Gst.ClockID instances. This function can be used as a GCompareFunc when sorting ids.
Optionalid1: anyOptionalid2: anyA Gst.ClockID to compare with
Staticid_Staticid_Staticid_Staticid_Unrefs given id. When the refcount reaches 0 the
Gst.ClockID will be freed.
The Gst.ClockID to unref
Staticid_Cancels an outstanding request with id. This can either
be an outstanding async notification or a pending sync notification.
After this call, id cannot be used anymore to receive sync or
async notifications, you need to create a new Gst.ClockID.
The id to unschedule
Staticid_This function returns whether id uses clock as the underlying clock.
clock can be NULL, in which case the return value indicates whether
the underlying clock has been freed. If this is the case, the id is
no longer usable and should be freed.
a Gst.ClockID to check
a Gst.Clock to compare against
Staticid_Performs a blocking wait on id.
id should have been created with gst_clock_new_single_shot_id()
or gst_clock_new_periodic_id() and should not have been unscheduled
with a call to gst_clock_id_unschedule().
If the jitter argument is not null and this function returns #GST_CLOCK_OK
or #GST_CLOCK_EARLY, it will contain the difference
against the clock and the time of id when this method was
called.
Positive values indicate how late id was relative to the clock
(in which case this function will return #GST_CLOCK_EARLY).
Negative values indicate how much time was spent waiting on the clock
before this function returned.
The Gst.ClockID to wait on
Staticid_Registers a callback on the given Gst.ClockID id with the given
function and user_data. When passing a Gst.ClockID with an invalid
time to this function, the callback will be called immediately
with a time set to GST_CLOCK_TIME_NONE. The callback will
be called when the time of id has been reached.
The callback func can be invoked from any thread, either provided by the
core or from a streaming thread. The application should be prepared for this.
a Gst.ClockID to wait on
The callback function
Attach the Gst.ControlBinding to the object. If there already was a Gst.ControlBinding for this property it will be replaced.
The object's reference count will be incremented, and any floating
reference will be removed (see gst_object_ref_sink())
the Gst.ControlBinding that should be used
false if the given binding has not been setup for this object or has been setup for a non suitable property, true otherwise.
Creates a binding between source_property on source and target_property
on target.
Whenever the source_property is changed the target_property is
updated using the same value. For instance:
g_object_bind_property (action, "active", widget, "sensitive", 0);
Will result in the "sensitive" property of the widget GObject.Object instance to be updated with the same value of the "active" property of the action GObject.Object instance.
If flags contains GObject.BindingFlags.BIDIRECTIONAL then the binding will be mutual:
if target_property on target changes then the source_property on source
will be updated as well.
The binding will automatically be removed when either the source or the
target instances are finalized. To remove the binding without affecting the
source and the target you can just call g_object_unref() on the returned
GObject.Binding instance.
Removing the binding by calling g_object_unref() on it must only be done if
the binding, source and target are only used from a single thread and it
is clear that both source and target outlive the binding. Especially it
is not safe to rely on this if the binding, source or target can be
finalized from different threads. Keep another reference to the binding and
use g_binding_unbind() instead to be on the safe side.
A GObject.Object can have multiple bindings.
the property on source to bind
the target GObject.Object
the property on target to bind
flags to pass to GObject.Binding
the GObject.Binding instance representing the binding between the two GObject.Object instances. The binding is released whenever the GObject.Binding reference count reaches zero.
Complete version of g_object_bind_property().
Creates a binding between source_property on source and target_property
on target, allowing you to set the transformation functions to be used by
the binding.
If flags contains GObject.BindingFlags.BIDIRECTIONAL then the binding will be mutual:
if target_property on target changes then the source_property on source
will be updated as well. The transform_from function is only used in case
of bidirectional bindings, otherwise it will be ignored
The binding will automatically be removed when either the source or the
target instances are finalized. This will release the reference that is
being held on the GObject.Binding instance; if you want to hold on to the
GObject.Binding instance, you will need to hold a reference to it.
To remove the binding, call g_binding_unbind().
A GObject.Object can have multiple bindings.
The same user_data parameter will be used for both transform_to
and transform_from transformation functions; the notify function will
be called once, when the binding is removed. If you need different data
for each transformation function, please use
g_object_bind_property_with_closures() instead.
the property on source to bind
the target GObject.Object
the property on target to bind
flags to pass to GObject.Binding
Optionaltransform_to: BindingTransformFuncthe transformation function from the source to the target, or null to use the default
Optionaltransform_from: BindingTransformFuncthe transformation function from the target to the source, or null to use the default
Optionalnotify: DestroyNotifya function to call when disposing the binding, to free resources used by the transformation functions, or null if not required
the GObject.Binding instance representing the binding between the two GObject.Object instances. The binding is released whenever the GObject.Binding reference count reaches zero.
Creates a binding between source_property on source and target_property
on target, allowing you to set the transformation functions to be used by
the binding.
This function is the language bindings friendly version of
g_object_bind_property_full(), using GClosures instead of
function pointers.
the property on source to bind
the target GObject.Object
the property on target to bind
flags to pass to GObject.Binding
a GObject.Closure wrapping the transformation function from the source to the target, or null to use the default
a GObject.Closure wrapping the transformation function from the target to the source, or null to use the default
the GObject.Binding instance representing the binding between the two GObject.Object instances. The binding is released whenever the GObject.Binding reference count reaches zero.
Blocks a handler of an instance so it will not be called during any signal emissions
Handler ID of the handler to be blocked
Disconnects a handler from an instance so it will not be called during any future or currently ongoing emissions of the signal it has been connected to.
Handler ID of the handler to be disconnected
This function is intended for GObject.Object implementations to re-enforce
a [floating][floating-ref] object reference. Doing this is seldom
required: all GInitiallyUnowneds are created with a floating reference
which usually just needs to be sunken by calling g_object_ref_sink().
Increases the freeze count on object. If the freeze count is
non-zero, the emission of "notify" signals on object is
stopped. The signals are queued until the freeze count is decreased
to zero. Duplicate notifications are squashed so that at most one
GObject.Object::notify signal is emitted for each property modified while the
object is frozen.
This is necessary for accessors that modify multiple properties to prevent premature notification while the object is still being modified.
Gets the corresponding Gst.ControlBinding for the property. This should be unreferenced again after use.
name of the property
the Gst.ControlBinding for property_name or null if the property is not controlled.
Obtain the control-rate for this object. Audio processing Gst.Element
objects will use this rate to sub-divide their processing loop and call
gst_object_sync_values() in between. The length of the processing segment
should be up to control-rate nanoseconds.
If the object is not under property control, this will return
GST_CLOCK_TIME_NONE. This allows the element to avoid the sub-dividing.
The control-rate is not expected to change if the element is in Gst.State.PAUSED or Gst.State.PLAYING.
the control rate in nanoseconds
Gets a named field from the objects table of associations (see g_object_set_data()).
name of the key for that association
the data if found, or null if no such data exists.
Gets a number of GValues for the given controlled property starting at the
requested time. The array values need to hold enough space for n_values of
GObject.Value.
This function is useful if one wants to e.g. draw a graph of the control curve or apply a control curve sample by sample.
the name of the property to get
the time that should be processed
the time spacing between subsequent values
array to put control-values in
true if the given array could be filled, false otherwise
Returns a copy of the name of object.
Caller should g_free() the return value after usage.
For a nameless object, this returns null, which you can safely g_free()
as well.
Free-function: g_free
the name of object. g_free() after usage. MT safe. This function grabs and releases object's LOCK.
Generates a string describing the path of object in
the object hierarchy. Only useful (or used) for debugging.
Free-function: g_free
a string describing the path of object. You must g_free() the string after usage. MT safe. Grabs and releases the Gst.Object's LOCK for all objects in the hierarchy.
Gets a property of an object.
The value can be:
In general, a copy is made of the property contents and the caller is responsible for freeing the memory by calling GObject.Value.unset.
Note that GObject.Object.get_property is really intended for language bindings, GObject.Object.get is much more convenient for C programming.
The name of the property to get
Return location for the property value. Can be an empty GObject.Value initialized by G_VALUE_INIT (auto-initialized with expected type since GLib 2.60), a GObject.Value initialized with the expected property type, or a GObject.Value initialized with a transformable type
This function gets back user data pointers stored via
g_object_set_qdata().
A GLib.Quark, naming the user data pointer
The user data pointer set, or null
Gets the value for the given controlled property at the requested time.
the name of the property to get
the time the control-change should be read from
the GValue of the property at the given time, or null if the property isn't controlled.
Gets n_properties properties for an object.
Obtained properties will be set to values. All properties must be valid.
Warnings will be emitted and undefined behaviour may result if invalid
properties are passed in.
the names of each property to get
the values of each property to get
Check if the object has active controlled properties.
true if the object has active controlled properties
Check if object has an ancestor ancestor somewhere up in
the hierarchy. One can e.g. check if a Gst.Element is inside a Gst.Pipeline.
a Gst.Object to check as ancestor
true if ancestor is an ancestor of object.
Check if object has an ancestor ancestor somewhere up in
the hierarchy. One can e.g. check if a Gst.Element is inside a Gst.Pipeline.
a Gst.Object to check as ancestor
true if ancestor is an ancestor of object. MT safe. Grabs and releases object's locks.
Check if parent is the parent of object.
E.g. a Gst.Element can check if it owns a given Gst.Pad.
a Gst.Object to check as parent
false if either object or parent is null. true if parent is the parent of object. Otherwise false. MT safe. Grabs and releases object's locks.
Checks whether object has a [floating][floating-ref] reference.
true if object has a floating reference
Emits a "notify" signal for the property property_name on object.
When possible, eg. when signaling a property change from within the class
that registered the property, you should use g_object_notify_by_pspec()
instead.
Note that emission of the notify signal may be blocked with
g_object_freeze_notify(). In this case, the signal emissions are queued
and will be emitted (in reverse order) when g_object_thaw_notify() is
called.
the name of a property installed on the class of object.
Emits a "notify" signal for the property specified by pspec on object.
This function omits the property name lookup, hence it is faster than
g_object_notify().
One way to avoid using g_object_notify() from within the
class that registered the properties, and using g_object_notify_by_pspec()
instead, is to store the GParamSpec used with
g_object_class_install_property() inside a static array, e.g.:
typedef enum
{
PROP_FOO = 1,
PROP_LAST
} MyObjectProperty;
static GParamSpec *properties[PROP_LAST];
static void
my_object_class_init (MyObjectClass *klass)
{
properties[PROP_FOO] = g_param_spec_int ("foo", NULL, NULL,
0, 100,
50,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
g_object_class_install_property (gobject_class,
PROP_FOO,
properties[PROP_FOO]);
}
and then notify a change on the "foo" property with:
g_object_notify_by_pspec (self, properties[PROP_FOO]);
the GObject.ParamSpec of a property installed on the class of object.
Increase the reference count of object, and possibly remove the
[floating][floating-ref] reference, if object has a floating reference.
In other words, if the object is floating, then this call "assumes ownership" of the floating reference, converting it to a normal reference by clearing the floating flag while leaving the reference count unchanged. If the object is not floating, then this call adds a new normal reference increasing the reference count by one.
Since GLib 2.56, the type of object will be propagated to the return type
under the same conditions as for g_object_ref().
object
Removes the corresponding Gst.ControlBinding. If it was the last ref of the binding, it will be disposed.
the binding
true if the binding could be removed.
Releases all references to other objects. This can be used to break reference cycles.
This function should only be called from object system implementations.
Sets multiple properties of an object at once. The properties argument should be a dictionary mapping property names to values.
Object containing the properties to set
This function is used to disable the control bindings on a property for
some time, i.e. gst_object_sync_values() will do nothing for the
property.
property to disable
boolean that specifies whether to disable the controller or not.
This function is used to disable all controlled properties of the object for
some time, i.e. gst_object_sync_values() will do nothing.
boolean that specifies whether to disable the controller or not.
Change the control-rate for this object. Audio processing Gst.Element
objects will use this rate to sub-divide their processing loop and call
gst_object_sync_values() in between. The length of the processing segment
should be up to control-rate nanoseconds.
The control-rate should not change if the element is in Gst.State.PAUSED or Gst.State.PLAYING.
the new control-rate in nanoseconds.
Each object carries around a table of associations from strings to pointers. This function lets you set an association.
If the object already had an association with that name, the old association will be destroyed.
Internally, the key is converted to a GLib.Quark using g_quark_from_string().
This means a copy of key is kept permanently (even after object has been
finalized) — so it is recommended to only use a small, bounded set of values
for key in your program, to avoid the GLib.Quark storage growing unbounded.
name of the key
Optionaldata: anydata to associate with that key
Sets the name of object, or gives object a guaranteed unique
name (if name is null).
This function makes a copy of the provided name, so the caller
retains ownership of the name it sent.
Optionalname: stringnew name of object
true if the name could be set. Since Objects that have a parent cannot be renamed, this function returns false in those cases. MT safe. This function grabs and releases object's LOCK.
Sets the parent of object to parent. The object's reference count will
be incremented, and any floating reference will be removed (see gst_object_ref_sink()).
true if parent could be set or false when object already had a parent or object and parent are the same. MT safe. Grabs and releases object's LOCK.
Sets a property on an object.
The name of the property to set
The value to set the property to
Remove a specified datum from the object's data associations, without invoking the association's destroy handler.
name of the key
the data if found, or null if no such data exists.
This function gets back user data pointers stored via
g_object_set_qdata() and removes the data from object
without invoking its destroy() function (if any was
set).
Usually, calling this function is only required to update
user data pointers with a destroy notifier, for example:
void
object_add_to_user_list (GObject *object,
const gchar *new_string)
{
// the quark, naming the object data
GQuark quark_string_list = g_quark_from_static_string ("my-string-list");
// retrieve the old string list
GList *list = g_object_steal_qdata (object, quark_string_list);
// prepend new string
list = g_list_prepend (list, g_strdup (new_string));
// this changed 'list', so we need to set it again
g_object_set_qdata_full (object, quark_string_list, list, free_string_list);
}
static void
free_string_list (gpointer data)
{
GList *node, *list = data;
for (node = list; node; node = node->next)
g_free (node->data);
g_list_free (list);
}
Using g_object_get_qdata() in the above example, instead of
g_object_steal_qdata() would have left the destroy function set,
and thus the partial string list would have been freed upon
g_object_set_qdata_full().
A GLib.Quark, naming the user data pointer
The user data pointer set, or null
Stops a signal's emission by the given signal name. This will prevent the default handler and any subsequent signal handlers from being invoked.
Name of the signal to stop emission of
Returns a suggestion for timestamps where buffers should be split to get best controller results.
Returns the suggested timestamp or GST_CLOCK_TIME_NONE if no control-rate was set.
Sets the properties of the object, according to the GstControlSources that
(maybe) handle them and for the given timestamp.
If this function fails, it is most likely the application developers fault. Most probably the control sources are not setup correctly.
the time that should be processed
true if the controller values could be applied to the object properties, false otherwise
Reverts the effect of a previous call to
g_object_freeze_notify(). The freeze count is decreased on object
and when it reaches zero, queued "notify" signals are emitted.
Duplicate notifications for each property are squashed so that at most one GObject.Object::notify signal is emitted for each property, in the reverse order in which they have been queued.
It is an error to call this function when the freeze count is zero.
Unblocks a handler so it will be called again during any signal emissions
Handler ID of the handler to be unblocked
Clear the parent of object, removing the associated reference.
This function decreases the refcount of object.
MT safe. Grabs and releases object's lock.
Decrements the reference count on object. If reference count hits
zero, destroy object. This function does not take the lock
on object as it relies on atomic refcounting.
The unref method should never be called with the LOCK held since this might deadlock the dispose function.
Virtualvfunc_the constructed function is called by g_object_new() as the
final step of the object creation process. At the point of the call, all
construction properties have been set on the object. The purpose of this
call is to allow for object initialisation steps that can only be performed
after construction properties have been set. constructed implementors
should chain up to the constructed call of their parent class to allow it
to complete its initialisation.
Virtualvfunc_Virtualvfunc_Virtualvfunc_the dispose function is supposed to drop all references to other
objects, but keep the instance otherwise intact, so that client method
invocations still work. It may be run multiple times (due to reference
loops). Before returning, dispose should chain up to the dispose method
of the parent class.
Virtualvfunc_instance finalization function, should finish the finalization of
the instance begun in dispose and chain up to the finalize method of the
parent class.
Virtualvfunc_Virtualvfunc_Emits a "notify" signal for the property property_name on object.
When possible, eg. when signaling a property change from within the class
that registered the property, you should use g_object_notify_by_pspec()
instead.
Note that emission of the notify signal may be blocked with
g_object_freeze_notify(). In this case, the signal emissions are queued
and will be emitted (in reverse order) when g_object_thaw_notify() is
called.
Virtualvfunc_the generic setter for all properties of this type. Should be
overridden for every type with properties. If implementations of
set_property don't emit property change notification explicitly, this will
be done implicitly by the type system. However, if the notify signal is
emitted explicitly, the type system will not emit it a second time.
This function essentially limits the life time of the closure to
the life time of the object. That is, when the object is finalized,
the closure is invalidated by calling g_closure_invalidate() on
it, in order to prevent invocations of the closure with a finalized
(nonexisting) object. Also, g_object_ref() and g_object_unref() are
added as marshal guards to the closure, to ensure that an extra
reference count is held on object during invocation of the
closure. Usually, this function will be called on closures that
use this object as closure data.
GObject.Closure to watch
Static_Staticcheck_Checks to see if there is any object named name in list. This function
does not do any locking of any kind. You might want to protect the
provided list with the lock of the owner of the list. This function
will lock each Gst.Object in the list to compare the name, so be
careful when passing a list with a locked object.
a list of Gst.Object to check through
the name to search for
Staticcompat_Optionaldata: anyStaticdefault_A default deep_notify signal callback for an object. The user data should contain a pointer to an array of strings that should be excluded from the notify. The default handler will print the new value of the property using g_print.
MT safe. This function grabs and releases object's LOCK for getting its
path string.
the GObject.Object that signalled the notify.
a Gst.Object that initiated the notify.
a GObject.ParamSpec of the property.
Optionalexcluded_props: string[]a set of user-specified properties to exclude or null to show all changes.
Staticfind_Staticinstall_Staticinstall_the id for the new property
the GObject.ParamSpec for the new property
Staticinterface_Find the GObject.ParamSpec with the given name for an
interface. Generally, the interface vtable passed in as g_iface
will be the default vtable from g_type_default_interface_ref(), or,
if you know the interface has already been loaded,
g_type_default_interface_peek().
any interface vtable for the interface, or the default vtable for the interface
name of a property to look up.
Staticinterface_Add a property to an interface; this is only useful for interfaces
that are added to GObject-derived types. Adding a property to an
interface forces all objects classes with that interface to have a
compatible property. The compatible property could be a newly
created GObject.ParamSpec, but normally
g_object_class_override_property() will be used so that the object
class only needs to provide an implementation and inherits the
property description, default value, bounds, and so forth from the
interface property.
This function is meant to be called from the interface's default
vtable initialization function (the class_init member of
GObject.TypeInfo.) It must not be called after after class_init has
been called for any object types implementing this interface.
If pspec is a floating reference, it will be consumed.
any interface vtable for the interface, or the default vtable for the interface.
the GObject.ParamSpec for the new property
Staticinterface_Lists the properties of an interface.Generally, the interface
vtable passed in as g_iface will be the default vtable from
g_type_default_interface_ref(), or, if you know the interface has
already been loaded, g_type_default_interface_peek().
any interface vtable for the interface, or the default vtable for the interface
Staticlist_StaticnewvStaticoverride_the new property ID
the name of a property registered in a parent class or in an interface of this class.
StaticreplaceAtomically modifies a pointer to point to a new object.
The reference count of oldobj is decreased and the reference count of
newobj is increased.
Either newobj and the value pointed to by oldobj may be null.
Optionaloldobj: Gst.Objectpointer to a place of a Gst.Object to replace
Optionalnewobj: Gst.Objecta new Gst.Object
GStreamer uses a global clock to synchronize the plugins in a pipeline. Different clock implementations are possible by implementing this abstract base class or, more conveniently, by subclassing Gst.SystemClock.
The Gst.Clock returns a monotonically increasing time with the method
gst_clock_get_time(). Its accuracy and base time depend on the specific clock implementation but time is always expressed in nanoseconds. Since the baseline of the clock is undefined, the clock time returned is not meaningful in itself, what matters are the deltas between two clock times. The time returned by a clock is called the absolute time.The pipeline uses the clock to calculate the running time. Usually all renderers synchronize to the global clock using the buffer timestamps, the #GST_EVENT_SEGMENT events and the element's base time, see Gst.Pipeline.
A clock implementation can support periodic and single shot clock notifications both synchronous and asynchronous.
One first needs to create a Gst.ClockID for the periodic or single shot notification using
gst_clock_new_single_shot_id()orgst_clock_new_periodic_id().To perform a blocking wait for the specific time of the Gst.ClockID use
gst_clock_id_wait(). To receive a callback when the specific time is reached in the clock usegst_clock_id_wait_async(). Both these calls can be interrupted with thegst_clock_id_unschedule()call. If the blocking wait is unscheduled a return value of #GST_CLOCK_UNSCHEDULED is returned.Periodic callbacks scheduled async will be repeatedly called automatically until they are unscheduled. To schedule a sync periodic callback,
gst_clock_id_wait()should be called repeatedly.The async callbacks can happen from any thread, either provided by the core or from a streaming thread. The application should be prepared for this.
A Gst.ClockID that has been unscheduled cannot be used again for any wait operation, a new Gst.ClockID should be created and the old unscheduled one should be destroyed with
gst_clock_id_unref().It is possible to perform a blocking wait on the same Gst.ClockID from multiple threads. However, registering the same Gst.ClockID for multiple async notifications is not possible, the callback will only be called for the thread registering the entry last.
None of the wait operations unref the Gst.ClockID, the owner is responsible for unreffing the ids itself. This holds for both periodic and single shot notifications. The reason being that the owner of the Gst.ClockID has to keep a handle to the Gst.ClockID to unblock the wait on FLUSHING events or state changes and if the entry would be unreffed automatically, the handle might become invalid without any notification.
These clock operations do not operate on the running time, so the callbacks will also occur when not in PLAYING state as if the clock just keeps on running. Some clocks however do not progress when the element that provided the clock is not PLAYING.
When a clock has the #GST_CLOCK_FLAG_CAN_SET_MASTER flag set, it can be slaved to another Gst.Clock with
gst_clock_set_master(). The clock will then automatically be synchronized to this master clock by repeatedly sampling the master clock and the slave clock and recalibrating the slave clock withgst_clock_set_calibration(). This feature is mostly useful for plugins that have an internal clock but must operate with another clock selected by the Gst.Pipeline. They can track the offset and rate difference of their internal clock relative to the master clock by using thegst_clock_get_calibration()function.The master/slave synchronisation can be tuned with the Gst.Clock.timeout, Gst.Clock.window_size and Gst.Clock.window_threshold properties. The Gst.Clock.timeout property defines the interval to sample the master clock and run the calibration functions. Gst.Clock.window_size defines the number of samples to use when calibrating and Gst.Clock.window_threshold defines the minimum number of samples before the calibration is performed.