Object
Superclasses: InitiallyUnowned
, Object
Subclasses: Allocator
, BufferPool
, Bus
, Clock
, ControlBinding
, ControlSource
, Device
, DeviceMonitor
, DeviceProvider
, Element
, Pad
, PadTemplate
, Plugin
, PluginFeature
, Registry
, Stream
, StreamCollection
, Task
, TaskPool
, Tracer
, TracerRecord
- Constructors:
Object(**properties)
Methods
- class Object
- add_control_binding(binding: ControlBinding) bool
Attach the
ControlBinding
to the object. If there already was aControlBinding
for this property it will be replaced.The object’s reference count will be incremented, and any floating reference will be removed (see
ref_sink()
)- Parameters:
binding – the
ControlBinding
that should be used
- check_uniqueness(list: list[Object], name: str) bool
Checks to see if there is any object named
name
inlist
. 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 eachObject
in the list to compare the name, so be careful when passing a list with a locked object.- Parameters:
list – a list of
Object
to check throughname – the name to search for
- default_deep_notify(object: Object, orig: Object, pspec: ParamSpec, excluded_props: Sequence[str] | None = None) None
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.
- MT safe. This function grabs and releases
- default_error(error: GError, debug: str | None = None) None
A default error function that uses
printerr()
to display the error message and the optional debug string..The default handler will simply print the error string using g_print.
- Parameters:
error – the GError.
debug – an additional debug information string, or
None
- get_control_binding(property_name: str) ControlBinding | None
Gets the corresponding
ControlBinding
for the property. This should be unreferenced again after use.- Parameters:
property_name – name of the property
- get_control_rate() int
Obtain the control-rate for this
object
. Audio processingElement
objects will use this rate to sub-divide their processing loop and callsync_values()
in between. The length of the processing segment should be up tocontrol
-rate nanoseconds.If the
object
is not under property control, this will returnCLOCK_TIME_NONE
. This allows the element to avoid the sub-dividing.The control-rate is not expected to change if the element is in
PAUSED
orPLAYING
.
- get_g_value_array(property_name: str, timestamp: int, interval: int, values: Sequence[Any]) bool
Gets a number of
Value
for the given controlled property starting at the requested time. The arrayvalues
need to hold enough space forn_values
ofValue
.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.
- Parameters:
property_name – the name of the property to get
timestamp – the time that should be processed
interval – the time spacing between subsequent values
values – array to put control-values in
- get_name() str | None
Returns a copy of the name of
object
. Caller shouldfree()
the return value after usage. For a nameless object, this returnsNone
, which you can safelyfree()
as well.Free-function: g_free
- get_parent() Object | None
Returns the parent of
object
. This function increases the refcount of the parent object so you shouldunref()
it after usage.
- get_path_string() str
Generates a string describing the path of
object
in the object hierarchy. Only useful (or used) for debugging.Free-function: g_free
- get_value(property_name: str, timestamp: int) Any | None
Gets the value for the given controlled property at the requested time.
- Parameters:
property_name – the name of the property to get
timestamp – the time the control-change should be read from
- has_ancestor(ancestor: Object) bool
Check if
object
has an ancestorancestor
somewhere up in the hierarchy. One can e.g. check if aElement
is inside aPipeline
.Deprecated since version Unknown: Use
has_as_ancestor()
instead.MT safe. Grabs and releases
object
’s locks.- Parameters:
ancestor – a
Object
to check as ancestor
- has_as_ancestor(ancestor: Object) bool
Check if
object
has an ancestorancestor
somewhere up in the hierarchy. One can e.g. check if aElement
is inside aPipeline
.- Parameters:
ancestor – a
Object
to check as ancestor
- has_as_parent(parent: Object) bool
Check if
parent
is the parent ofobject
. E.g. aElement
can check if it owns a givenPad
.Added in version 1.6.
- Parameters:
parent – a
Object
to check as parent
- remove_control_binding(binding: ControlBinding) bool
Removes the corresponding
ControlBinding
. If it was the last ref of the binding, it will be disposed.- Parameters:
binding – the binding
- replace(newobj: Object | None = None) tuple[bool, Object]
Atomically modifies a pointer to point to a new object. The reference count of
oldobj
is decreased and the reference count ofnewobj
is increased.Either
newobj
and the value pointed to byoldobj
may beNone
.- Parameters:
newobj – a new
Object
- set_control_binding_disabled(property_name: str, disabled: bool) None
This function is used to disable the control bindings on a property for some time, i.e.
sync_values()
will do nothing for the property.- Parameters:
property_name – property to disable
disabled – boolean that specifies whether to disable the controller or not.
- set_control_bindings_disabled(disabled: bool) None
This function is used to disable all controlled properties of the
object
for some time, i.e.sync_values()
will do nothing.- Parameters:
disabled – boolean that specifies whether to disable the controller or not.
- set_control_rate(control_rate: int) None
Change the control-rate for this
object
. Audio processingElement
objects will use this rate to sub-divide their processing loop and callsync_values()
in between. The length of the processing segment should be up tocontrol
-rate nanoseconds.The control-rate should not change if the element is in
PAUSED
orPLAYING
.- Parameters:
control_rate – the new control-rate in nanoseconds.
- set_name(name: str | None = None) bool
Sets the name of
object
, or givesobject
a guaranteed unique name (ifname
isNone
). This function makes a copy of the provided name, so the caller retains ownership of the name it sent.- Parameters:
name – new name of object
- set_parent(parent: Object) bool
Sets the parent of
object
toparent
. The object’s reference count will be incremented, and any floating reference will be removed (seeref_sink()
).- Parameters:
parent – new parent of object
- suggest_next_sync() int
Returns a suggestion for timestamps where buffers should be split to get best controller results.
- sync_values(timestamp: int) bool
Sets the properties of the object, according to the
ControlSource
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.
- Parameters:
timestamp – the time that should be processed
Properties
- class Object
-
- props.parent: Object
The parent of the object. Please note, that when changing the ‘parent’ property, we don’t emit
Object
::notify andObject
::deep-notify signals due to locking issues. In some cases one can useBin
::element-added orBin
::element-removed signals on the parent to achieve a similar effect.
Signals
- class Object.signals
- deep_notify(prop_object: Object, prop: ParamSpec) None
The deep notify signal is used to be notified of property changes. It is typically attached to the toplevel bin to receive notifications from all the elements contained in that bin.
- Parameters:
prop_object – the object that originated the signal
prop – the property that changed