From d09dd828d6886e5bcc3ce8e8d60a3ba10db97f26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Sun, 26 Nov 2017 18:37:09 +0200 Subject: [PATCH] Update docs --- docs/gstreamer-app/docs.md | 173 ++++- docs/gstreamer-base/docs.md | 60 ++ docs/gstreamer/docs.md | 1360 +++++++++++++++++------------------ 3 files changed, 900 insertions(+), 693 deletions(-) diff --git a/docs/gstreamer-app/docs.md b/docs/gstreamer-app/docs.md index c89f56259..86b384bd6 100644 --- a/docs/gstreamer-app/docs.md +++ b/docs/gstreamer-app/docs.md @@ -39,7 +39,7 @@ to avoid polling. # Implements -[`ElementExt`](trait.ElementExt.html), [`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html) +[`BaseSinkExt`](trait.BaseSinkExt.html), [`ElementExt`](trait.ElementExt.html), [`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html), [`URIHandlerExt`](trait.URIHandlerExt.html) Check if `self` supports buffer lists. @@ -235,6 +235,125 @@ the maximum amount of time to wait for a sample a `gst::Sample` or NULL when the appsink is stopped or EOS or the timeout expires. Call `gst_sample_unref` after usage. + +Signal that the end-of-stream has been reached. This signal is emitted from +the streaming thread. + +Signal that a new preroll sample is available. + +This signal is emitted from the streaming thread and only when the +"emit-signals" property is `true`. + +The new preroll sample can be retrieved with the "pull-preroll" action +signal or `AppSink::pull_preroll` either from this signal callback +or from any other thread. + +Note that this signal is only emitted when the "emit-signals" property is +set to `true`, which it is not by default for performance reasons. + +Signal that a new sample is available. + +This signal is emitted from the streaming thread and only when the +"emit-signals" property is `true`. + +The new sample can be retrieved with the "pull-sample" action +signal or `AppSink::pull_sample` either from this signal callback +or from any other thread. + +Note that this signal is only emitted when the "emit-signals" property is +set to `true`, which it is not by default for performance reasons. + +Get the last preroll sample in `appsink`. This was the sample that caused the +appsink to preroll in the PAUSED state. This sample can be pulled many times +and remains available to the application even after EOS. + +This function is typically used when dealing with a pipeline in the PAUSED +state. Calling this function after doing a seek will give the sample right +after the seek position. + +Note that the preroll sample will also be returned as the first sample +when calling `AppSink::pull_sample` or the "pull-sample" action signal. + +If an EOS event was received before any buffers, this function returns +`None`. Use gst_app_sink_is_eos () to check for the EOS condition. + +This function blocks until a preroll sample or EOS is received or the appsink +element is set to the READY/NULL state. + +# Returns + +a `gst::Sample` or NULL when the appsink is stopped or EOS. + +This function blocks until a sample or EOS becomes available or the appsink +element is set to the READY/NULL state. + +This function will only return samples when the appsink is in the PLAYING +state. All rendered samples will be put in a queue so that the application +can pull samples at its own rate. + +Note that when the application does not pull samples fast enough, the +queued samples could consume a lot of memory, especially when dealing with +raw video frames. It's possible to control the behaviour of the queue with +the "drop" and "max-buffers" properties. + +If an EOS event was received before any buffers, this function returns +`None`. Use gst_app_sink_is_eos () to check for the EOS condition. + +# Returns + +a `gst::Sample` or NULL when the appsink is stopped or EOS. + +Get the last preroll sample in `appsink`. This was the sample that caused the +appsink to preroll in the PAUSED state. This sample can be pulled many times +and remains available to the application even after EOS. + +This function is typically used when dealing with a pipeline in the PAUSED +state. Calling this function after doing a seek will give the sample right +after the seek position. + +Note that the preroll sample will also be returned as the first sample +when calling `AppSink::pull_sample` or the "pull-sample" action signal. + +If an EOS event was received before any buffers or the timeout expires, +this function returns `None`. Use gst_app_sink_is_eos () to check for the EOS +condition. + +This function blocks until a preroll sample or EOS is received, the appsink +element is set to the READY/NULL state, or the timeout expires. + +Feature: `v1_10` + +## `timeout` +the maximum amount of time to wait for the preroll sample + +# Returns + +a `gst::Sample` or NULL when the appsink is stopped or EOS or the timeout expires. + +This function blocks until a sample or EOS becomes available or the appsink +element is set to the READY/NULL state or the timeout expires. + +This function will only return samples when the appsink is in the PLAYING +state. All rendered samples will be put in a queue so that the application +can pull samples at its own rate. + +Note that when the application does not pull samples fast enough, the +queued samples could consume a lot of memory, especially when dealing with +raw video frames. It's possible to control the behaviour of the queue with +the "drop" and "max-buffers" properties. + +If an EOS event was received before any buffers or the timeout expires, +this function returns `None`. Use gst_app_sink_is_eos () to check +for the EOS condition. + +Feature: `v1_10` + +## `timeout` +the maximum amount of time to wait for a sample + +# Returns + +a `gst::Sample` or NULL when the appsink is stopped or EOS or the timeout expires. The appsrc element can be used by applications to insert data into a GStreamer pipeline. Unlike most GStreamer elements, appsrc provides @@ -303,7 +422,7 @@ occurs or the state of the appsrc has gone through READY. # Implements -[`ElementExt`](trait.ElementExt.html), [`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html) +[`BaseSrcExt`](trait.BaseSrcExt.html), [`ElementExt`](trait.ElementExt.html), [`ObjectExt`](trait.ObjectExt.html), [`ObjectExt`](trait.ObjectExt.html), [`URIHandlerExt`](trait.URIHandlerExt.html) Indicates to the appsrc element that the last buffer queued in the element is the last buffer of the stream. @@ -458,6 +577,56 @@ be connected to. A stream_type stream ## `type_` the new state + +Notify `appsrc` that no more buffer are available. + +Signal that the source has enough data. It is recommended that the +application stops calling push-buffer until the need-data signal is +emitted again to avoid excessive buffer queueing. + +Signal that the source needs more data. In the callback or from another +thread you should call push-buffer or end-of-stream. + +`length` is just a hint and when it is set to -1, any number of bytes can be +pushed into `appsrc`. + +You can call push-buffer multiple times until the enough-data signal is +fired. +## `length` +the amount of bytes needed. + +Adds a buffer to the queue of buffers that the appsrc element will +push to its source pad. This function does not take ownership of the +buffer so the buffer needs to be unreffed after calling this function. + +When the block property is TRUE, this function can block until free space +becomes available in the queue. +## `buffer` +a buffer to push + +Extract a buffer from the provided sample and adds the extracted buffer +to the queue of buffers that the appsrc element will +push to its source pad. This function set the appsrc caps based on the caps +in the sample and reset the caps if they change. +Only the caps and the buffer of the provided sample are used and not +for example the segment in the sample. +This function does not take ownership of the +sample so the sample needs to be unreffed after calling this function. + +When the block property is TRUE, this function can block until free space +becomes available in the queue. +## `sample` +a sample from which extract buffer to push + +Seek to the given offset. The next push-buffer should produce buffers from +the new `offset`. +This callback is only called for seekable stream types. +## `offset` +the offset to seek to + +# Returns + +`true` if the seek succeeded. The stream type. diff --git a/docs/gstreamer-base/docs.md b/docs/gstreamer-base/docs.md index bba40d366..50923b77e 100644 --- a/docs/gstreamer-base/docs.md +++ b/docs/gstreamer-base/docs.md @@ -949,6 +949,66 @@ render function. `gst::FlowReturn::Ok` if the preroll completed and processing can continue. Any other return value should be returned from the render vmethod. + +If set to `true`, the basesink will perform asynchronous state changes. +When set to `false`, the sink will not signal the parent when it prerolls. +Use this option when dealing with sparse streams or when synchronisation is +not required. + +If set to `true`, the basesink will perform asynchronous state changes. +When set to `false`, the sink will not signal the parent when it prerolls. +Use this option when dealing with sparse streams or when synchronisation is +not required. + +The amount of bytes to pull when operating in pull mode. + +The amount of bytes to pull when operating in pull mode. + +Enable the last-sample property. If `false`, basesink doesn't keep a +reference to the last buffer arrived and the last-sample property is always +set to `None`. This can be useful if you need buffers to be released as soon +as possible, eg. if you're using a buffer pool. + +Enable the last-sample property. If `false`, basesink doesn't keep a +reference to the last buffer arrived and the last-sample property is always +set to `None`. This can be useful if you need buffers to be released as soon +as possible, eg. if you're using a buffer pool. + +The last buffer that arrived in the sink and was used for preroll or for +rendering. This property can be used to generate thumbnails. This property +can be `None` when the sink has not yet received a buffer. + +Control the maximum amount of bits that will be rendered per second. +Setting this property to a value bigger than 0 will make the sink delay +rendering of the buffers when it would exceed to max-bitrate. + +Control the maximum amount of bits that will be rendered per second. +Setting this property to a value bigger than 0 will make the sink delay +rendering of the buffers when it would exceed to max-bitrate. + +The additional delay between synchronisation and actual rendering of the +media. This property will add additional latency to the device in order to +make other sinks compensate for the delay. + +The additional delay between synchronisation and actual rendering of the +media. This property will add additional latency to the device in order to +make other sinks compensate for the delay. + +The time to insert between buffers. This property can be used to control +the maximum amount of buffers per second to render. Setting this property +to a value bigger than 0 will make the sink create THROTTLE QoS events. + +The time to insert between buffers. This property can be used to control +the maximum amount of buffers per second to render. Setting this property +to a value bigger than 0 will make the sink create THROTTLE QoS events. + +Controls the final synchronisation, a negative value will render the buffer +earlier while a positive value delays playback. This property can be +used to fix synchronisation in bad files. + +Controls the final synchronisation, a negative value will render the buffer +earlier while a positive value delays playback. This property can be +used to fix synchronisation in bad files. This is a generic base class for source elements. The following types of sources are supported: diff --git a/docs/gstreamer/docs.md b/docs/gstreamer/docs.md index 57b369e00..2c6b3259c 100644 --- a/docs/gstreamer/docs.md +++ b/docs/gstreamer/docs.md @@ -333,6 +333,70 @@ of `self`. See also `ElementExt::sync_state_with_parent`. `true` if syncing the state was successful for all children, otherwise `false`. + +Will be emitted after the element was added to sub_bin. + +Feature: `v1_10` + +## `sub_bin` +the `Bin` the element was added to +## `element` +the `Element` that was added to `sub_bin` + +Will be emitted after the element was removed from sub_bin. + +Feature: `v1_10` + +## `sub_bin` +the `Bin` the element was removed from +## `element` +the `Element` that was removed from `sub_bin` + +Will be emitted when the bin needs to perform latency calculations. This +signal is only emitted for toplevel bins or when async-handling is +enabled. + +Only one signal handler is invoked. If no signals are connected, the +default handler is invoked, which will query and distribute the lowest +possible latency to all sinks. + +Connect to this signal if the default latency calculations are not +sufficient, like when you need different latencies for different sinks in +the same pipeline. + +Will be emitted after the element was added to the bin. +## `element` +the `Element` that was added to the bin + +Will be emitted after the element was removed from the bin. +## `element` +the `Element` that was removed from the bin + +If set to `true`, the bin will handle asynchronous state changes. +This should be used only if the bin subclass is modifying the state +of its children on its own. + +If set to `true`, the bin will handle asynchronous state changes. +This should be used only if the bin subclass is modifying the state +of its children on its own. + +Forward all children messages, even those that would normally be filtered by +the bin. This can be interesting when one wants to be notified of the EOS +state of individual elements, for example. + +The messages are converted to an ELEMENT message with the bin as the +source. The structure of the message is named 'GstBinForwarded' and contains +a field named 'message' of type GST_TYPE_MESSAGE that contains the original +forwarded message. + +Forward all children messages, even those that would normally be filtered by +the bin. This can be interesting when one wants to be notified of the EOS +state of individual elements, for example. + +The messages are converted to an ELEMENT message with the bin as the +source. The structure of the message is named 'GstBinForwarded' and contains +a field named 'message' of type GST_TYPE_MESSAGE that contains the original +forwarded message. Buffers are the basic unit of data transfer in GStreamer. They contain the timing and offset along with other arbitrary metadata that is associated @@ -423,7 +487,7 @@ Typically, `ParentBufferMeta` is used when the child buffer is directly using the `Memory` of the parent buffer, and wants to prevent the parent buffer from being returned to a buffer pool until the `Memory` is available for re-use. (Since 1.6) - + Creates a newly allocated buffer without any data. MT safe. @@ -431,7 +495,7 @@ MT safe. # Returns the new `Buffer`. - + Tries to create a newly allocated buffer with data of the given size and extra parameters from `allocator`. If the requested amount of memory can't be allocated, `None` will be returned. The allocated buffer memory is not cleared. @@ -453,7 +517,7 @@ optional parameters a new `Buffer`, or `None` if the memory couldn't be allocated. - + Creates a new buffer that wraps the given `data`. The memory will be freed with g_free and will be marked writable. @@ -466,7 +530,7 @@ allocated size of `data` # Returns a new `Buffer` - + Allocate a new buffer that wraps the given memory. `data` must point to `maxsize` of memory, the wrapped buffer will have the region from `offset` and `size` visible. @@ -493,7 +557,7 @@ called with `user_data` when the memory is freed # Returns a new `Buffer` - + Add metadata for `info` to `self` using the parameters in `params`. ## `info` a `MetaInfo` @@ -503,7 +567,7 @@ params for `info` # Returns the metadata for the api in `info` on `self`. - + Add a `ParentBufferMeta` to `self` that holds a reference on `ref_` until the buffer is freed. ## `ref_` @@ -512,7 +576,7 @@ a `Buffer` to ref # Returns The `ParentBufferMeta` that was added to the buffer - + Attaches protection metadata to a `Buffer`. ## `info` a `Structure` holding cryptographic @@ -523,7 +587,7 @@ a `Structure` holding cryptographic a pointer to the added `ProtectionMeta` if successful; `None` if unsuccessful. - + Append all the memory from `buf2` to `self`. The result buffer will contain a concatenation of the memory of `self` and `buf2`. ## `buf2` @@ -533,7 +597,7 @@ the second source `Buffer` to append. the new `Buffer` that contains the memory of the two source buffers. - + Append the memory block `mem` to `self`. This function takes ownership of `mem` and thus doesn't increase its refcount. @@ -541,7 +605,7 @@ This function is identical to `Buffer::insert_memory` with an index of -1. See `Buffer::insert_memory` for more details. ## `mem` a `Memory`. - + Append `size` bytes at `offset` from `buf2` to `self`. The result buffer will contain a concatenation of the memory of `self` and the requested region of `buf2`. @@ -556,14 +620,14 @@ the size or -1 of `buf2` the new `Buffer` that contains the memory of the two source buffers. - + Create a copy of the given buffer. This will make a newly allocated copy of the data the source buffer contains. # Returns a new copy of `self`. - + Copies the information from `src` into `self`. If `self` already contains memory and `flags` contains GST_BUFFER_COPY_MEMORY, @@ -582,7 +646,7 @@ total size to copy. If -1, all data is copied. # Returns `true` if the copying succeeded, `false` otherwise. - + Creates a sub-buffer from `self` at `offset` and `size`. This sub-buffer uses the actual memory space of the parent buffer. This function will copy the offset and timestamp fields when the @@ -606,7 +670,7 @@ the size of the new `Buffer` sub-buffer, in bytes. If -1, all the new `Buffer` or `None` if the arguments were invalid. - + Copy `size` bytes starting from `offset` in `self` to `dest`. ## `offset` the offset to extract @@ -619,7 +683,7 @@ the size to extract The amount of bytes extracted. This value can be lower than `size` when `self` did not contain enough data. - + Extracts a copy of at most `size` bytes the data at `offset` into newly-allocated memory. `dest` must be freed using `g_free` when done. ## `offset` @@ -631,7 +695,7 @@ A pointer where the destination array will be written. ## `dest_size` A location where the size of `dest` can be written - + Copy `size` bytes from `src` to `self` at `offset`. ## `offset` the offset to fill @@ -644,7 +708,7 @@ the size to fill The amount of bytes copied. This value can be lower than `size` when `self` did not contain enough data. - + Find the memory blocks that span `size` bytes starting from `offset` in `self`. @@ -670,7 +734,7 @@ pointer to skip `true` when `size` bytes starting from `offset` could be found in `self` and `idx`, `length` and `skip` will be filled. - + Call `func` with `user_data` for each meta in `self`. `func` can modify the passed meta pointer or its contents. The return value @@ -684,7 +748,7 @@ user data passed to `func` # Returns `false` when `func` returned `false` for one of the metadata. - + Get all the memory block in `self`. The memory blocks will be merged into one large `Memory`. @@ -692,7 +756,7 @@ into one large `Memory`. a `Memory` that contains the merged memory. Use gst_memory_unref () after usage. - + Get the `BufferFlags` flags set on this buffer. Feature: `v1_10` @@ -701,7 +765,7 @@ Feature: `v1_10` # Returns the flags set on this buffer. - + Get the memory block at index `idx` in `self`. ## `idx` an index @@ -710,7 +774,7 @@ an index a `Memory` that contains the data of the memory block at `idx`. Use gst_memory_unref () after usage. - + Get `length` memory blocks in `self` starting at `idx`. The memory blocks will be merged into one large `Memory`. @@ -724,7 +788,7 @@ a length a `Memory` that contains the merged data of `length` blocks starting at `idx`. Use gst_memory_unref () after usage. - + Get the metadata for `api` on buffer. When there is no such metadata, `None` is returned. If multiple metadata with the given `api` are attached to this buffer only the first one is returned. To handle multiple metadata with a @@ -737,13 +801,13 @@ the `glib::Type` of an API the metadata for `api` on `self`. - + Get the total size of the memory blocks in `self`. # Returns total size of the memory blocks in `self`. - + Get the total size of the memory blocks in `b`. When not `None`, `offset` will contain the offset of the data in the @@ -759,7 +823,7 @@ a pointer to the maxsize # Returns total size of the memory blocks in `self`. - + Get the total size of `length` memory blocks stating from `idx` in `self`. When not `None`, `offset` will contain the offset of the data in the @@ -780,7 +844,7 @@ a pointer to the maxsize # Returns total size of `length` memory blocks starting at `idx` in `self`. - + Insert the memory block `mem` to `self` at `idx`. This function takes ownership of `mem` and thus doesn't increase its refcount. @@ -791,7 +855,7 @@ the new memory. the index to add the memory at, or -1 to append it to the end ## `mem` a `Memory`. - + Check if all memory blocks in `self` are writable. Note that this function does not check if `self` is writable, use @@ -800,7 +864,7 @@ Note that this function does not check if `self` is writable, use # Returns `true` if all memory blocks in `self` are writable - + Check if `length` memory blocks in `self` starting from `idx` are writable. `length` can be -1 to check all the memory blocks after `idx`. @@ -815,7 +879,7 @@ a length should not be 0 # Returns `true` if the memory range is writable - + Retrieve the next `Meta` after `current`. If `state` points to `None`, the first metadata is returned. @@ -827,7 +891,7 @@ an opaque state pointer The next `Meta` or `None` when there are no more items. - + Retrieve the next `Meta` of type `meta_api_type` after the current one according to `state`. If `state` points to `None`, the first metadata of type `meta_api_type` is returned. @@ -845,7 +909,7 @@ only return `Meta` of this type The next `Meta` of type `meta_api_type` or `None` when there are no more items. - + This function fills `info` with the `MapInfo` of all merged memory blocks in `self`. @@ -867,7 +931,7 @@ flags for the mapping # Returns `true` if the map succeeded and `info` contains valid data. - + This function fills `info` with the `MapInfo` of `length` merged memory blocks starting at `idx` in `self`. When `length` is -1, all memory blocks starting from `idx` are merged and mapped. @@ -894,7 +958,7 @@ flags for the mapping `true` if the map succeeded and `info` contains valid data. - + Compare `size` bytes starting from `offset` in `self` with the memory in `mem`. ## `offset` the offset in `self` @@ -906,7 +970,7 @@ the size to compare # Returns 0 if the memory is equal. - + Fill `buf` with `size` bytes with `val` starting from `offset`. ## `offset` the offset in `self` @@ -919,14 +983,14 @@ the size to set The amount of bytes filled. This value can be lower than `size` when `self` did not contain enough data. - + Get the amount of memory blocks that this buffer has. This amount is never larger than what `Buffer::get_max_memory` returns. # Returns the number of memory blocks this buffer is made of. - + Get the memory block at `idx` in `self`. The memory block stays valid until the memory block in `self` is removed, replaced or merged, typically with any call that modifies the memory in `self`. @@ -936,7 +1000,7 @@ an index # Returns the `Memory` at `idx`. - + Prepend the memory block `mem` to `self`. This function takes ownership of `mem` and thus doesn't increase its refcount. @@ -944,13 +1008,13 @@ This function is identical to `Buffer::insert_memory` with an index of 0. See `Buffer::insert_memory` for more details. ## `mem` a `Memory`. - + Remove all the memory blocks in `self`. - + Remove the memory block in `b` at index `i`. ## `idx` an index - + Remove `length` memory blocks in `self` starting from `idx`. `length` can be -1, in which case all memory starting from `idx` is removed. @@ -958,7 +1022,7 @@ Remove `length` memory blocks in `self` starting from `idx`. an index ## `length` a length - + Remove the metadata for `meta` on `self`. ## `meta` a `Meta` @@ -967,17 +1031,17 @@ a `Meta` `true` if the metadata existed and was removed, `false` if no such metadata was on `self`. - + Replaces all memory in `self` with `mem`. ## `mem` a `Memory` - + Replaces the memory block at index `idx` in `self` with `mem`. ## `idx` an index ## `mem` a `Memory` - + Replaces `length` memory blocks in `self` starting at `idx` with `mem`. If `length` is -1, all memory starting from `idx` will be removed and @@ -990,13 +1054,13 @@ an index a length should not be 0 ## `mem` a `Memory` - + Set the offset and total size of the memory blocks in `self`. ## `offset` the offset adjustment ## `size` the new size or -1 to just adjust the offset - + Set the total size of the `length` memory blocks starting at `idx` in `self` ## `idx` @@ -1011,7 +1075,7 @@ the new size or -1 to just adjust the offset # Returns `true` if resizing succeeded, `false` otherwise. - + Sets one or more buffer flags on a buffer. Feature: `v1_10` @@ -1022,15 +1086,15 @@ the `BufferFlags` to set. # Returns `true` if `flags` were successfully set on buffer. - + Set the total size of the memory blocks in `self`. ## `size` the new size - + Release the memory previously mapped with `Buffer::map`. ## `info` a `MapInfo` - + Clears one or more buffer flags. Feature: `v1_10` @@ -1041,7 +1105,7 @@ the `BufferFlags` to clear # Returns true if `flags` is successfully cleared from buffer. - + Get the maximum amount of memory blocks that a buffer can hold. This is a compile time constant that can be queried with the function. @@ -1057,10 +1121,10 @@ Buffer lists are an object containing a list of buffers. Buffer lists are created with `BufferList::new` and filled with data using a `BufferList::insert`. -Buffer lists can be pushed on a srcpad with `PadExt::push_list`. This is +Buffer lists can be pushed on a srcpad with `Pad::push_list`. This is interesting when multiple buffers need to be pushed in one go because it can reduce the amount of overhead for pushing each buffer individually. - + Creates a new, empty `BufferList`. The caller is responsible for unreffing the returned `BufferList`. @@ -1070,7 +1134,7 @@ Free-function: gst_buffer_list_unref the new `BufferList`. `gst_buffer_list_unref` after usage. - + Creates a new, empty `BufferList`. The caller is responsible for unreffing the returned `BufferList`. The list will have `size` space preallocated so that memory reallocations can be avoided. @@ -1083,14 +1147,14 @@ an initial reserved size the new `BufferList`. `gst_buffer_list_unref` after usage. - + Create a copy of the given buffer list. This will make a newly allocated copy of the buffer that the source buffer list contains. # Returns a new copy of `self`. - + Call `func` with `data` for each buffer in `self`. `func` can modify the passed buffer pointer or its contents. The return value @@ -1105,7 +1169,7 @@ user data passed to `func` `true` when `func` returned `true` for each buffer in `self` or when `self` is empty. - + Get the buffer at `idx`. ## `idx` the index @@ -1115,7 +1179,7 @@ the index the buffer at `idx` in `group` or `None` when there is no buffer. The buffer remains valid as long as `self` is valid and buffer is not removed from the list. - + Insert `buffer` at `idx` in `self`. Other buffers are moved to make room for this new buffer. @@ -1124,13 +1188,13 @@ A -1 value for `idx` will append the buffer at the end. the index ## `buffer` a `Buffer` - + Returns the number of buffers in `self`. # Returns the number of buffers in the buffer list - + Remove `length` buffers starting from `idx` in `self`. The following buffers are moved to close the gap. ## `idx` @@ -1531,6 +1595,20 @@ a `Message` matching the usage. MT safe. + +A message has been posted on the bus. This signal is emitted from a +GSource added to the mainloop. this signal will only be emitted when +there is a mainloop running. +## `message` +the message that has been posted asynchronously + +A message has been posted on the bus. This signal is emitted from the +thread that posted the message so one has to be careful with locking. + +This signal will not be emitted by default, you have to call +`Bus::enable_sync_message_emission` before. +## `message` +the message that has been posted synchronously The result values for a GstBusSyncHandler. @@ -1575,14 +1653,14 @@ has limited support for nested `Caps` / `Structure` fields. It can only support one level of nesting. Using more levels will lead to unexpected behavior when using serialization features, such as `Caps::to_string` or `gst_value_serialize` and their counterparts. - + Creates a new `Caps` that indicates that it is compatible with any media format. # Returns the new `Caps` - + Creates a new `Caps` that is empty. That is, the returned `Caps` contains no media formats. The `Caps` is guaranteed to be writable. @@ -1591,7 +1669,7 @@ Caller is responsible for unreffing the returned caps. # Returns the new `Caps` - + Creates a new `Caps` that contains one `Structure` with name `media_type`. Caller is responsible for unreffing the returned caps. @@ -1601,7 +1679,7 @@ the media type of the structure # Returns the new `Caps` - + Creates a new `Caps` and adds all the structures listed as arguments. The list must be `None`-terminated. The structures are not copied; the returned `Caps` owns the structures. @@ -1611,7 +1689,7 @@ the first structure to add # Returns the new `Caps` - + Creates a new `Caps` and adds all the structures listed as arguments. The list must be `None`-terminated. The structures are not copied; the returned `Caps` owns the structures. @@ -1623,7 +1701,7 @@ additional structures to add # Returns the new `Caps` - + Creates a new `Caps` that contains one `Structure`. The structure is defined by the arguments, which have the same format as `Structure::new`. @@ -1636,25 +1714,25 @@ first field to set # Returns the new `Caps` - + Appends the structures contained in `caps2` to `self`. The structures in `caps2` are not copied -- they are transferred to `self`, and then `caps2` is freed. If either caps is ANY, the resulting caps will be ANY. ## `caps2` the `Caps` to append - + Appends `structure` to `self`. The structure is not copied; `self` becomes the owner of `structure`. ## `structure` the `Structure` to append - + Appends `structure` with `features` to `self`. The structure is not copied; `self` becomes the owner of `structure`. ## `structure` the `Structure` to append ## `features` the `CapsFeatures` to append - + Tries intersecting `self` and `caps2` and reports whether the result would not be empty ## `caps2` @@ -1663,7 +1741,7 @@ a `Caps` to intersect # Returns `true` if intersection would be not empty - + Creates a new `Caps` and appends a copy of the nth structure contained in `self`. ## `nth` @@ -1672,7 +1750,7 @@ the nth structure to copy # Returns the new `Caps` - + Calls the provided function once for each structure and caps feature in the `Caps`. In contrast to `Caps::foreach`, the function may modify the structure and features. In contrast to `Caps::filter_and_map_in_place`, @@ -1683,7 +1761,7 @@ The caps must be mutable. a function to call for each field ## `user_data` private data - + Modifies the given `self` into a representation with only fixed values. First the caps will be truncated and then the first structure will be fixated with `Structure::fixate`. @@ -1695,7 +1773,7 @@ reference to it with `gst_caps_ref`. # Returns the fixated caps - + Calls the provided function once for each structure and caps feature in the `Caps`. The function must not modify the fields. Also see `Caps::map_in_place` and `Caps::filter_and_map_in_place`. @@ -1708,7 +1786,7 @@ private data `true` if the supplied function returns `true` for each call, `false` otherwise. - + Finds the features in `self` that has the index `index`, and returns it. @@ -1730,13 +1808,13 @@ the index of the structure a pointer to the `CapsFeatures` corresponding to `index` - + Gets the number of structures contained in `self`. # Returns the number of structures that `self` contains - + Finds the structure in `self` that has the index `index`, and returns it. @@ -1758,7 +1836,7 @@ the index of the structure a pointer to the `Structure` corresponding to `index` - + Creates a new `Caps` that contains all the formats that are common to both `self` and `caps2`. Defaults to `CapsIntersectMode::ZigZag` mode. ## `caps2` @@ -1767,7 +1845,7 @@ a `Caps` to intersect # Returns the new `Caps` - + Creates a new `Caps` that contains all the formats that are common to both `self` and `caps2`, the order is defined by the `CapsIntersectMode` used. @@ -1779,7 +1857,7 @@ The intersection algorithm/mode to use # Returns the new `Caps` - + A given `Caps` structure is always compatible with another if every media format that is in the first is also contained in the second. That is, `self` is a subset of `caps2`. @@ -1789,19 +1867,19 @@ the `Caps` to test # Returns `true` if `self` is a subset of `caps2`. - + Determines if `self` represents any media format. # Returns `true` if `self` represents any format. - + Determines if `self` represents no media formats. # Returns `true` if `self` represents no formats. - + Checks if the given caps represent the same set of caps. ## `caps2` another `Caps` @@ -1809,7 +1887,7 @@ another `Caps` # Returns `true` if both caps are equal. - + Tests if two `Caps` are equal. This function only works on fixed `Caps`. ## `caps2` @@ -1818,7 +1896,7 @@ the `Caps` to test # Returns `true` if the arguments represent the same format - + Fixed `Caps` describe exactly one format, that is, they have exactly one structure, and each field in the structure describes a fixed type. Examples of non-fixed types are GST_TYPE_INT_RANGE and GST_TYPE_LIST. @@ -1826,7 +1904,7 @@ Examples of non-fixed types are GST_TYPE_INT_RANGE and GST_TYPE_LIST. # Returns `true` if `self` is fixed - + Checks if the given caps are exactly the same set of caps. ## `caps2` another `Caps` @@ -1834,7 +1912,7 @@ another `Caps` # Returns `true` if both caps are strictly equal. - + Checks if all caps represented by `self` are also represented by `superset`. ## `superset` a potentially greater `Caps` @@ -1842,7 +1920,7 @@ a potentially greater `Caps` # Returns `true` if `self` is a subset of `superset` - + Checks if `structure` is a subset of `self`. See `Caps::is_subset` for more information. ## `structure` @@ -1851,7 +1929,7 @@ a potential `Structure` subset of `self` # Returns `true` if `structure` is a subset of `self` - + Checks if `structure` is a subset of `self`. See `Caps::is_subset` for more information. ## `structure` @@ -1862,7 +1940,7 @@ a `CapsFeatures` for `structure` # Returns `true` if `structure` is a subset of `self` - + Calls the provided function once for each structure and caps feature in the `Caps`. In contrast to `Caps::foreach`, the function may modify but not delete the structures and features. The caps must be mutable. @@ -1875,7 +1953,7 @@ private data `true` if the supplied function returns `true` for each call, `false` otherwise. - + Appends the structures contained in `caps2` to `self` if they are not yet expressed by `self`. The structures in `caps2` are not copied -- they are transferred to a writable copy of `self`, and then `caps2` is freed. @@ -1886,7 +1964,7 @@ the `Caps` to merge in # Returns the merged caps. - + Appends `structure` to `self` if its not already expressed by `self`. ## `structure` the `Structure` to merge @@ -1894,7 +1972,7 @@ the `Structure` to merge # Returns the merged caps. - + Appends `structure` with `features` to `self` if its not already expressed by `self`. ## `structure` the `Structure` to merge @@ -1904,7 +1982,7 @@ the `CapsFeatures` to merge # Returns the merged caps. - + Returns a `Caps` that represents the same set of formats as `self`, but contains no lists. Each list is expanded into separate `GstStructures`. @@ -1916,30 +1994,30 @@ reference to it with `gst_caps_ref`. # Returns the normalized `Caps` - + removes the structure with the given index from the list of structures contained in `self`. ## `idx` Index of the structure to remove - + Sets the `CapsFeatures` `features` for the structure at `index`. ## `index` the index of the structure ## `features` the `CapsFeatures` to set - + Sets fields in a `Caps`. The arguments must be passed in the same manner as `Structure::set`, and be `None`-terminated. ## `field` first field to set - + Sets fields in a `Caps`. The arguments must be passed in the same manner as `Structure::set`, and be `None`-terminated. ## `field` first field to set ## `varargs` additional parameters - + Sets the given `field` on all structures of `self` to the given `value`. This is a convenience function for calling `Structure::set_value` on all structures of `self`. @@ -1947,7 +2025,7 @@ all structures of `self`. name of the field to set ## `value` value to set the field to - + Converts the given `self` into a representation that represents the same set of formats, but in a simpler form. Component structures that are identical are merged. Component structures that have values that can be @@ -1962,7 +2040,7 @@ This method does not preserve the original order of `self`. # Returns The simplified caps. - + Retrieves the structure with the given index from the list of structures contained in `self`. The caller becomes the owner of the returned structure. ## `index` @@ -1972,7 +2050,7 @@ Index of the structure to retrieve a pointer to the `Structure` corresponding to `index`. - + Subtracts the `subtrahend` from the `self`. > This function does not work reliably if optional properties for caps > are included on one caps and omitted on the other. @@ -1982,7 +2060,7 @@ Subtracts the `subtrahend` from the `self`. # Returns the resulting caps - + Converts `self` to a string representation. This string representation can be converted back to a `Caps` by `Caps::from_string`. @@ -1999,7 +2077,7 @@ when there are nested `Caps` / `Structure` deeper than one level. # Returns a newly allocated string representing `self`. - + Discard all but the first structure from `self`. Useful when fixating. @@ -2010,7 +2088,7 @@ additional reference to it with `gst_caps_ref`. # Returns truncated caps - + Converts `caps` from a string representation. The current implementation of serialization will lead to unexpected results @@ -2167,6 +2245,18 @@ Sets properties of the parent object and its children. name of the first property to set ## `var_args` value for the first property, followed optionally by more name/value pairs, followed by `None` + +Will be emitted after the `object` was added to the `child_proxy`. +## `object` +the `gobject::Object` that was added +## `name` +the name of the new child + +Will be emitted after the `object` was removed from the `child_proxy`. +## `object` +the `gobject::Object` that was removed +## `name` +the name of the old child GStreamer uses a global clock to synchronize the plugins in a pipeline. Different clock implementations are possible by implementing this abstract @@ -2691,6 +2781,15 @@ timeout for waiting or `GST_CLOCK_TIME_NONE` # Returns `true` if waiting was successful, or `false` on timeout + +Signaled on clocks with GST_CLOCK_FLAG_NEEDS_STARTUP_SYNC set once +the clock is synchronized, or when it completely lost synchronization. +This signal will not be emitted on clocks without the flag. + +This signal will be emitted from an arbitrary thread, most likely not +the application's main thread. +## `synced` +if the clock is synced now The return value of a clock operation. @@ -2747,7 +2846,7 @@ A persistent `Context` is kept in elements when they reach `State::Null`, non-persistent ones will be removed. Also, a non-persistent context won't override a previous persistent context set to an element. - + Create a new context. ## `context_type` Context type @@ -2757,13 +2856,13 @@ Persistent context # Returns The new context. - + Get the type of `self`. # Returns The type of the context. - + Access the structure of the context. # Returns @@ -2771,7 +2870,7 @@ Access the structure of the context. The structure of the context. The structure is still owned by the context, which means that you should not modify it, free it and that the pointer becomes invalid when you free the context. - + Checks if `self` has `context_type`. ## `context_type` Context type to check. @@ -2779,13 +2878,13 @@ Context type to check. # Returns `true` if `self` has `context_type`. - + Check if `self` is persistent. # Returns `true` if the context is persistent. - + Get a writable version of the structure. # Returns @@ -3795,7 +3894,7 @@ whether to include the new property value in the message # Returns a watch id, which can be used in connection with - `ElementExt::remove_property_notify_watch` to remove the watch again. + `Element::remove_property_notify_watch` to remove the watch again. Feature: `v1_10` @@ -3809,7 +3908,7 @@ whether to include the new property value in the message # Returns a watch id, which can be used in connection with - `ElementExt::remove_property_notify_watch` to remove the watch again. + `Element::remove_property_notify_watch` to remove the watch again. Calls `func` from another thread and passes `user_data` to it. This is to be used for cases when a state change has to be performed from a streaming @@ -4455,7 +4554,7 @@ Simple API to perform a seek on the given element, meaning it just seeks to the given position relative to the start of the stream. For more complex operations like segment seeks (e.g. for looping) or changing the playback rate or seeking relative to the last configured playback segment you should -use `ElementExt::seek`. +use `Element::seek`. In a completely prerolled PAUSED or PLAYING pipeline, seeking is always guaranteed to return `true` on a seekable media type or `false` when the media @@ -4609,6 +4708,22 @@ the name of the `Pad` in source element. a `Element` containing the destination pad. ## `destpadname` the name of the `Pad` in destination element. + +This signals that the element will not generate more dynamic pads. +Note that this signal will usually be emitted from the context of +the streaming thread. + +a new `Pad` has been added to the element. Note that this signal will +usually be emitted from the context of the streaming thread. Also keep in +mind that if you add new elements to the pipeline in the signal handler +you will need to set them to the desired target state with +`ElementExt::set_state` or `ElementExt::sync_state_with_parent`. +## `new_pad` +the pad that has been added + +a `Pad` has been removed from the element +## `old_pad` +the pad that has been removed `ElementFactory` is used to create instances of elements. A GstElementFactory can be added to a `Plugin` as it is also a @@ -4859,7 +4974,7 @@ the needed parameters to specify seeking time and mode. g_warning ("seek failed"); ... ``` - + Create a new buffersize event. The event is sent downstream and notifies elements that they should provide a buffer of the specified dimensions. @@ -4876,7 +4991,7 @@ thread behavior # Returns a new `Event` - + Create a new CAPS event for `caps`. The caps event can only travel downstream synchronized with the buffer flow and contains the format of the buffers that will follow after the event. @@ -4886,7 +5001,7 @@ a `Caps` # Returns the new CAPS event. - + Create a new custom-typed event. This can be used for anything not handled by other event-specific functions to pass an event to another element. @@ -4906,7 +5021,7 @@ the structure for the event. The event will # Returns the new custom event. - + Create a new EOS event. The eos event can only travel downstream synchronized with the buffer flow. Elements that receive the EOS event on a pad can return `FlowReturn::Eos` as a `FlowReturn` @@ -4924,7 +5039,7 @@ The EOS event itself will not cause any state transitions of the pipeline. # Returns the new EOS event. - + Allocate a new flush start event. The flush start event can be sent upstream and downstream and travels out-of-bounds with the dataflow. @@ -4943,7 +5058,7 @@ in the pipeline so that the new media is played as soon as possible. # Returns a new flush start event. - + Allocate a new flush stop event. The flush stop event can be sent upstream and downstream and travels serialized with the dataflow. It is typically sent after sending a FLUSH_START event to make the @@ -4960,7 +5075,7 @@ if time should be reset # Returns a new flush stop event. - + Create a new GAP event. A gap event can be thought of as conceptually equivalent to a buffer to signal that there is no data for a certain amount of time. This is useful to signal a gap to downstream elements @@ -4974,7 +5089,7 @@ the duration of the gap # Returns the new GAP event. - + Create a new latency event. The event is sent upstream from the sinks and notifies elements that they should add an additional `latency` to the running time before synchronising against the clock. @@ -4987,7 +5102,7 @@ the new latency value # Returns a new `Event` - + Create a new navigation event from the given description. ## `structure` description of the event. The event will take @@ -4996,7 +5111,7 @@ description of the event. The event will take # Returns a new `Event` - + Creates a new event containing information specific to a particular protection system (uniquely identified by `system_id`), by which that protection system can acquire key(s) to decrypt a protected stream. @@ -5041,7 +5156,7 @@ of this string will depend upon the protection scheme. a `EventType::Protection` event, if successful; `None` if unsuccessful. - + Allocate a new qos event with the given values. The QOS event is generated in an element that wants an upstream element to either reduce or increase its rate because of @@ -5096,7 +5211,7 @@ The timestamp of the buffer # Returns a new QOS event. - + Create a new reconfigure event. The purpose of the reconfigure event is to travel upstream and make elements renegotiate their caps or reconfigure their buffer pools. This is useful when changing properties on elements @@ -5105,7 +5220,7 @@ or changing the topology of the pipeline. # Returns a new `Event` - + Allocate a new seek event with the given parameters. The seek event configures playback of the pipeline between `start` to `stop` @@ -5155,7 +5270,7 @@ The value of the new stop position # Returns a new seek event. - + Create a new SEGMENT event for `segment`. The segment event can only travel downstream synchronized with the buffer flow and contains timing information and playback properties for the buffers that will follow. @@ -5193,7 +5308,7 @@ a `Segment` # Returns the new SEGMENT event. - + Create a new segment-done event. This event is sent by elements that finish playback of a segment as a result of a segment seek. ## `format` @@ -5204,7 +5319,7 @@ The position of the segment being done # Returns a new `Event` - + Allocate a new select-streams event. The select-streams event requests the specified `streams` to be activated. @@ -5223,7 +5338,7 @@ activate # Returns a new select-streams event. - + Create a new sink-message event. The purpose of the sink-message event is to instruct a sink to post the message contained in the event synchronized with the stream. @@ -5237,7 +5352,7 @@ the `Message` to be posted # Returns a new `Event` - + Create a new step event. The purpose of the step event is to instruct a sink to skip `amount` (expressed in `format`) of media. It can be used to implement stepping through the video frame by frame or for doing fast trick modes. @@ -5265,7 +5380,7 @@ intermediate steps # Returns a new `Event` - + Create a new STREAM_COLLECTION event. The stream collection event can only travel downstream synchronized with the buffer flow. @@ -5283,7 +5398,7 @@ Active collection for this data flow # Returns the new STREAM_COLLECTION event. - + Create a new Stream Group Done event. The stream-group-done event can only travel downstream synchronized with the buffer flow. Elements that receive the event on a pad should handle it mostly like EOS, @@ -5302,7 +5417,7 @@ the group id of the stream group which is ending # Returns the new stream-group-done event. - + Create a new STREAM_START event. The stream start event can only travel downstream synchronized with the buffer flow. It is expected to be the first event that is sent for a new stream. @@ -5330,7 +5445,7 @@ Identifier for this stream # Returns the new STREAM_START event. - + Generates a metadata tag event from the given `taglist`. The scope of the taglist specifies if the taglist applies to the @@ -5345,7 +5460,7 @@ metadata list. The event will take ownership # Returns a new `Event` - + Generate a TOC event from the given `toc`. The purpose of the TOC event is to inform elements that some kind of the TOC was found. ## `toc` @@ -5356,7 +5471,7 @@ whether `toc` was updated or not. # Returns a new `Event`. - + Generate a TOC select event with the given `uid`. The purpose of the TOC select event is to start playback based on the TOC's entry with the given `uid`. @@ -5366,12 +5481,12 @@ UID in the TOC to start playback from. # Returns a new `Event`. - + Parses a segment `self` and copies the `Segment` into the location given by `segment`. ## `segment` a pointer to a `Segment` - + Retrieve the accumulated running time offset of the event. Events passing through `GstPads` that have a running time @@ -5387,7 +5502,7 @@ before usage with this offset. The event's running time offset MT safe. - + Retrieve the sequence number of a event. Events have ever-incrementing sequence numbers, which may also be set @@ -5406,7 +5521,7 @@ that correspondence was made explicitly. The event's sequence number. MT safe. - + Access the structure of the event. # Returns @@ -5416,7 +5531,7 @@ owned by the event, which means that you should not free it and that the pointer becomes invalid when you free the event. MT safe. - + Checks if `self` has the given `name`. This function is usually used to check the name of a custom event. ## `name` @@ -5425,7 +5540,7 @@ name to check # Returns `true` if `name` matches the name of the event structure. - + Get the format, minsize, maxsize and async-flag in the buffersize event. ## `format` A pointer to store the format in @@ -5435,16 +5550,16 @@ A pointer to store the minsize in A pointer to store the maxsize in ## `async` A pointer to store the async-flag in - + Get the caps from `self`. The caps remains valid as long as `self` remains valid. ## `caps` A pointer to the caps - + Parse the FLUSH_STOP event and retrieve the `reset_time` member. ## `reset_time` if time should be reset - + Extract timestamp and duration from a new GAP event. ## `timestamp` location where to store the @@ -5452,7 +5567,7 @@ location where to store the ## `duration` location where to store the duration of the gap, or `None` - + ## `group_id` address of variable where to store the group id @@ -5460,11 +5575,11 @@ address of variable where to store the group id `true` if a group id was set on the event and could be parsed, `false` otherwise. - + Get the latency in the latency event. ## `latency` A pointer to store the latency in. - + Parses an event containing protection system specific information and stores the results in `system_id`, `data` and `origin`. The data stored in `system_id`, `origin` and `data` are valid until `self` is released. @@ -5478,7 +5593,7 @@ holding protection system specific information. pointer to store a value that indicates where the protection information carried by `self` was extracted from. - + Get the type, proportion, diff and timestamp in the qos event. See `Event::new_qos` for more information about the different QoS values. @@ -5491,7 +5606,7 @@ A pointer to store the proportion in A pointer to store the diff in ## `timestamp` A pointer to store the timestamp in - + Parses a seek `self` and stores the results in the given result locations. ## `rate` result location for the rate @@ -5507,30 +5622,30 @@ result location for the start position expressed in `format` result location for the `SeekType` of the stop position ## `stop` result location for the stop position expressed in `format` - + Parses a segment `self` and stores the result in the given `segment` location. `segment` remains valid only until the `self` is freed. Don't modify the segment and make a copy if you want to modify it or store it for later use. ## `segment` a pointer to a `Segment` - + Extracts the position and format from the segment done message. ## `format` Result location for the format, or `None` ## `position` Result location for the position, or `None` - + Parse the SELECT_STREAMS event and retrieve the contained streams. Feature: `v1_10` ## `streams` the streams - + Parse the sink-message event. Unref `msg` after usage. ## `msg` a pointer to store the `Message` in. - + Parse the step event. ## `format` a pointer to store the format in @@ -5543,24 +5658,24 @@ a pointer to store the flush boolean in ## `intermediate` a pointer to store the intermediate boolean in - + Parse a stream-start `self` and extract the `Stream` from it. Feature: `v1_10` ## `stream` adress of variable to store the stream - + Retrieve new `StreamCollection` from STREAM_COLLECTION event `self`. Feature: `v1_10` ## `collection` pointer to store the collection - + ## `flags` address of variable where to store the stream flags - + Parse a stream-group-done `self` and store the result in the given `group_id` location. @@ -5568,31 +5683,31 @@ Feature: `v1_10` ## `group_id` address of variable to store the group id into - + Parse a stream-id `self` and store the result in the given `stream_id` location. The string stored in `stream_id` must not be modified and will remain valid only until `self` gets freed. Make a copy if you want to modify it or store it for later use. ## `stream_id` pointer to store the stream-id - + Parses a tag `self` and stores the results in the given `taglist` location. No reference to the taglist will be returned, it remains valid only until the `self` is freed. Don't modify or free the taglist, make a copy if you want to modify it or store it for later use. ## `taglist` pointer to metadata list - + Parse a TOC `self` and store the results in the given `toc` and `updated` locations. ## `toc` pointer to `Toc` structure. ## `updated` pointer to store TOC updated flag. - + Parse a TOC select `self` and store the results in the given `uid` location. ## `uid` storage for the selection UID. - + All streams that have the same group id are supposed to be played together, i.e. all streams inside a container file should have the same group id but different stream ids. The group id should change @@ -5602,14 +5717,14 @@ each time a file is played for example. Use `gst_util_group_id_next` to get a new group id. ## `group_id` the group id to set - + Set the running time offset of a event. See `Event::get_running_time_offset` for more information. MT safe. ## `offset` A the new running time offset - + Set the sequence number of a event. This function might be called by the creator of a event to indicate that the @@ -5619,17 +5734,17 @@ more information. MT safe. ## `seqnum` A sequence number. - + Set the `stream` on the stream-start `self` Feature: `v1_10` ## `stream` the stream object to set - + ## `flags` the stream flags to set - + Get a writable version of the structure. # Returns @@ -5933,272 +6048,6 @@ the new pad target `true` if the new target could be set. This function can return `false` when the internal pads could not be linked. - -A GstIterator is used to retrieve multiple objects from another object in -a threadsafe way. - -Various GStreamer objects provide access to their internal structures using -an iterator. - -Note that if calling a GstIterator function results in your code receiving -a refcounted object (with, say, `gobject::Value::get_object`), the refcount for that -object will not be increased. Your code is responsible for taking a reference -if it wants to continue using it later. - -The basic use pattern of an iterator is as follows: - -```C - GstIterator *it = _get_iterator(object); - GValue item = G_VALUE_INIT; - done = FALSE; - while (!done) { - switch (gst_iterator_next (it, &item)) { - case GST_ITERATOR_OK: - ...get/use/change item here... - g_value_reset (&item); - break; - case GST_ITERATOR_RESYNC: - ...rollback changes to items... - gst_iterator_resync (it); - break; - case GST_ITERATOR_ERROR: - ...wrong parameters were given... - done = TRUE; - break; - case GST_ITERATOR_DONE: - done = TRUE; - break; - } - } - g_value_unset (&item); - gst_iterator_free (it); -``` - -Create a new iterator. This function is mainly used for objects -implementing the next/resync/free function to iterate a data structure. - -For each item retrieved, the `item` function is called with the lock -held. The `free` function is called when the iterator is freed. -## `size` -the size of the iterator structure -## `type_` -`glib::Type` of children -## `lock` -pointer to a `GMutex`. -## `master_cookie` -pointer to a guint32 that is changed when the items in the - iterator changed. -## `copy` -copy function -## `next` -function to get next item -## `item` -function to call on each item retrieved -## `resync` -function to resync the iterator -## `free` -function to free the iterator - -# Returns - -the new `Iterator`. - -MT safe. - -Create a new iterator designed for iterating `list`. - -The list you iterate is usually part of a data structure `owner` and is -protected with `lock`. - -The iterator will use `lock` to retrieve the next item of the list and it -will then call the `item` function before releasing `lock` again. - -When a concurrent update to the list is performed, usually by `owner` while -holding `lock`, `master_cookie` will be updated. The iterator implementation -will notice the update of the cookie and will return `IteratorResult::Resync` to -the user of the iterator in the next call to `Iterator::next`. -## `type_` -`glib::Type` of elements -## `lock` -pointer to a `GMutex` protecting the list. -## `master_cookie` -pointer to a guint32 that is incremented when the list - is changed. -## `list` -pointer to the list -## `owner` -object owning the list -## `item` -function to call on each item retrieved - -# Returns - -the new `Iterator` for `list`. - -MT safe. - -This `Iterator` is a convenient iterator for the common -case where a `Iterator` needs to be returned but only -a single object has to be considered. This happens often -for the `GstPadIterIntLinkFunction`. -## `type_` -`glib::Type` of the passed object -## `object` -object that this iterator should return - -# Returns - -the new `Iterator` for `object`. - -Copy the iterator and its state. - -# Returns - -a new copy of `self`. - -Create a new iterator from an existing iterator. The new iterator -will only return those elements that match the given compare function `func`. -The first parameter that is passed to `func` is the `gobject::Value` of the current -iterator element and the second parameter is `user_data`. `func` should -return 0 for elements that should be included in the filtered iterator. - -When this iterator is freed, `self` will also be freed. -## `func` -the compare function to select elements -## `user_data` -user data passed to the compare function - -# Returns - -a new `Iterator`. - -MT safe. - -Find the first element in `self` that matches the compare function `func`. -`func` should return 0 when the element is found. The first parameter -to `func` will be the current element of the iterator and the -second parameter will be `user_data`. -The result will be stored in `elem` if a result is found. - -The iterator will not be freed. - -This function will return `false` if an error happened to the iterator -or if the element wasn't found. -## `func` -the compare function to use -## `elem` -pointer to a `gobject::Value` where to store the result -## `user_data` -user data passed to the compare function - -# Returns - -Returns `true` if the element was found, else `false`. - -MT safe. - -Folds `func` over the elements of `iter`. That is to say, `func` will be called -as `func` (object, `ret`, `user_data`) for each object in `self`. The normal use -of this procedure is to accumulate the results of operating on the objects in -`ret`. - -This procedure can be used (and is used internally) to implement the -`Iterator::foreach` and `Iterator::find_custom` operations. - -The fold will proceed as long as `func` returns `true`. When the iterator has no -more arguments, `IteratorResult::Done` will be returned. If `func` returns `false`, -the fold will stop, and `IteratorResult::Ok` will be returned. Errors or resyncs -will cause fold to return `IteratorResult::Error` or `IteratorResult::Resync` as -appropriate. - -The iterator will not be freed. -## `func` -the fold function -## `ret` -the seed value passed to the fold function -## `user_data` -user data passed to the fold function - -# Returns - -A `IteratorResult`, as described above. - -MT safe. - -Iterate over all element of `self` and call the given function `func` for -each element. -## `func` -the function to call for each element. -## `user_data` -user data passed to the function - -# Returns - -the result call to `Iterator::fold`. The iterator will not be -freed. - -MT safe. - -Free the iterator. - -MT safe. - -Get the next item from the iterator in `elem`. - -Only when this function returns `IteratorResult::Ok`, `elem` will contain a valid -value. `elem` must have been initialized to the type of the iterator or -initialized to zeroes with `gobject::Value::unset`. The caller is responsible for -unsetting or resetting `elem` with `gobject::Value::unset` or `gobject::Value::reset` -after usage. - -When this function returns `IteratorResult::Done`, no more elements can be -retrieved from `self`. - -A return value of `IteratorResult::Resync` indicates that the element list was -concurrently updated. The user of `self` should call `Iterator::resync` to -get the newly updated list. - -A return value of `IteratorResult::Error` indicates an unrecoverable fatal error. -## `elem` -pointer to hold next element - -# Returns - -The result of the iteration. Unset `elem` after usage. - -MT safe. - -Pushes `other` iterator onto `self`. All calls performed on `self` are -forwarded to `other`. If `other` returns `IteratorResult::Done`, it is -popped again and calls are handled by `self` again. - -This function is mainly used by objects implementing the iterator -next function to recurse into substructures. - -When `Iterator::resync` is called on `self`, `other` will automatically be -popped. - -MT safe. -## `other` -The `Iterator` to push - -Resync the iterator. this function is mostly called -after `Iterator::next` returned `IteratorResult::Resync`. - -When an iterator was pushed on `self`, it will automatically be popped again -with this function. - -MT safe. - -The result of `Iterator::next`. - -No more items in the iterator - -An item was retrieved - -Datastructure changed while iterating - -An error happened Library errors are for errors from the library being used by elements (initializing, finalizing, settings, ...) @@ -6235,7 +6084,7 @@ The basic use pattern of posting a message on a `Bus` is as follows: A `Element` usually posts messages on the bus provided by the parent container using `ElementExt::post_message`. - + Create a new application-typed message. GStreamer will never create these messages; they are a gift from us to you. Enjoy. ## `src` @@ -6249,7 +6098,7 @@ the structure for the message. The message The new application message. MT safe. - + The message is posted when elements completed an ASYNC state change. `running_time` contains the time of the desired running_time when this elements goes to PLAYING. A value of `GST_CLOCK_TIME_NONE` for `running_time` @@ -6265,7 +6114,7 @@ the desired running_time The new async_done message. MT safe. - + This message is posted by elements when they start an ASYNC state change. ## `src` The object originating the message. @@ -6275,7 +6124,7 @@ The object originating the message. The new async_start message. MT safe. - + Create a new buffering message. This message can be posted by an element that needs to buffer data before it can continue processing. `percent` should be a value between 0 and 100. A value of 100 means that the buffering completed. @@ -6296,7 +6145,7 @@ The buffering percent # Returns The new buffering message. - + Create a clock lost message. This message is posted whenever the clock is not valid anymore. @@ -6313,7 +6162,7 @@ the clock that was lost The new clock lost message. MT safe. - + Create a clock provide message. This message is posted whenever an element is ready to provide a clock or lost its ability to provide a clock (maybe because it paused or became EOS). @@ -6332,7 +6181,7 @@ the clock it provides the new provide clock message. MT safe. - + Create a new custom-typed message. This can be used for anything not handled by other message-specific functions to pass a message to the app. The structure field can be `None`. @@ -6349,7 +6198,7 @@ the structure for the The new message. MT safe. - + Creates a new device-added message. The device-added message is produced by `DeviceProvider` or a `DeviceMonitor`. They announce the appearance of monitored devices. @@ -6361,7 +6210,7 @@ The new `Device` # Returns a newly allocated `Message` - + Creates a new device-removed message. The device-removed message is produced by `DeviceProvider` or a `DeviceMonitor`. They announce the disappearance of monitored devices. @@ -6373,7 +6222,7 @@ The removed `Device` # Returns a newly allocated `Message` - + Create a new duration changed message. This message is posted by elements that know the duration of a stream when the duration changes. This message is received by bins and is used to calculate the total duration of a @@ -6386,7 +6235,7 @@ The object originating the message. The new duration-changed message. MT safe. - + Create a new element-specific message. This is meant as a generic way of allowing one-way communication from an element to an application, for example "the firewire cable was unplugged". The format of the message should be @@ -6402,7 +6251,7 @@ The structure for the The new element message. MT safe. - + Create a new eos message. This message is generated and posted in the sink elements of a GstBin. The bin will only forward the EOS message to the application if all sinks have posted an EOS message. @@ -6414,7 +6263,7 @@ The object originating the message. The new eos message. MT safe. - + Create a new error message. The message will copy `error` and `debug`. This message is posted by element when a fatal event occurred. The pipeline will probably (partially) stop. The application @@ -6431,7 +6280,7 @@ A debugging string. the new error message. MT safe. - + Create a new error message. The message will copy `error` and `debug`. This message is posted by element when a fatal event occurred. The pipeline will probably (partially) stop. The application @@ -6451,7 +6300,7 @@ A debugging string. # Returns the new error message. - + This message is posted when an element has a new local `Context`. ## `src` The object originating the message. @@ -6463,7 +6312,7 @@ the context The new have-context message. MT safe. - + Create a new info message. The message will make copies of `error` and `debug`. ## `src` @@ -6478,7 +6327,7 @@ A debugging string. the new info message. MT safe. - + Create a new info message. The message will make copies of `error` and `debug`. @@ -6496,7 +6345,7 @@ A debugging string. # Returns the new warning message. - + This message can be posted by elements when their latency requirements have changed. ## `src` @@ -6507,7 +6356,7 @@ The object originating the message. The new latency message. MT safe. - + This message is posted when an element needs a specific `Context`. ## `src` The object originating the message. @@ -6519,7 +6368,7 @@ The context type that is needed The new need-context message. MT safe. - + Create a new clock message. This message is posted whenever the pipeline selects a new clock for the pipeline. ## `src` @@ -6532,7 +6381,7 @@ the new selected clock The new new clock message. MT safe. - + Progress messages are posted by elements when they use an asynchronous task to perform actions triggered by a state change. @@ -6550,7 +6399,7 @@ free, user visible text describing the progress # Returns The new qos message. - + Feature: `v1_10` @@ -6564,7 +6413,7 @@ new property value, or `None` # Returns a newly allocated `Message` - + A QOS message is posted on the bus whenever an element decides to drop a buffer because of QoS reasons or whenever it changes its processing strategy because of QoS reasons (quality adjustments such as processing at lower @@ -6596,7 +6445,7 @@ the duration of the buffer that generated the message The new qos message. MT safe. - + Creates a new redirect message and adds a new entry to it. Redirect messages are posted when an element detects that the actual data has to be retrieved from a different location. This is useful if such a redirection cannot be @@ -6637,7 +6486,7 @@ structure for the new entry # Returns a newly allocated `Message` - + This message can be posted by elements when they want to have their state changed. A typical use case would be an audio server that wants to pause the pipeline because a higher priority stream is being played. @@ -6651,7 +6500,7 @@ The new requested state the new request state message. MT safe. - + This message is posted when the pipeline running-time should be reset to `running_time`, like after a flushing seek. ## `src` @@ -6664,7 +6513,7 @@ the requested running-time The new reset_time message. MT safe. - + Create a new segment done message. This message is posted by elements that finish playback of a segment as a result of a segment seek. This message is received by the application after all elements that posted a segment_start @@ -6681,7 +6530,7 @@ The position of the segment being done the new segment done message. MT safe. - + Create a new segment message. This message is posted by elements that start playback of a segment as a result of a segment seek. This message is not received by the application but is used for maintenance reasons in @@ -6698,7 +6547,7 @@ The position of the segment being played the new segment start message. MT safe. - + Create a state change message. This message is posted whenever an element changed its state. ## `src` @@ -6715,7 +6564,7 @@ the pending (target) state the new state change message. MT safe. - + Create a state dirty message. This message is posted whenever an element changed its state asynchronously and is used internally to update the states of container objects. @@ -6727,7 +6576,7 @@ The object originating the message the new state dirty message. MT safe. - + This message is posted by elements when they complete a part, when `intermediate` set to `true`, or a complete step operation. @@ -6755,7 +6604,7 @@ the step caused EOS the new step_done message. MT safe. - + This message is posted by elements when they accept or activate a new step event for `amount` in `format`. @@ -6786,7 +6635,7 @@ is this an intermediate step The new step_start message. MT safe. - + Creates a new stream-collection message. The message is used to announce new `StreamCollection` @@ -6800,7 +6649,7 @@ The `StreamCollection` # Returns a newly allocated `Message` - + Create a new stream_start message. This message is generated and posted in the sink elements of a GstBin. The bin will only forward the STREAM_START message to the application if all sinks have posted an STREAM_START message. @@ -6812,7 +6661,7 @@ The object originating the message. The new stream_start message. MT safe. - + Create a new stream status message. This message is posted when a streaming thread is created/destroyed or when the state changed. ## `src` @@ -6827,7 +6676,7 @@ the owner element of `src`. the new stream status message. MT safe. - + Creates a new steams-selected message. The message is used to announce that an array of streams has been selected. This is generally in response to a `EventType::SelectStreams` event, or when an element (such as decodebin3) @@ -6849,7 +6698,7 @@ The `StreamCollection` # Returns a newly allocated `Message` - + Create a new structure change message. This message is posted when the structure of a pipeline is in the process of being changed, for example when pads are linked or unlinked. @@ -6869,7 +6718,7 @@ Whether the structure change is busy. the new structure change message. MT safe. - + Create a new tag message. The message will take ownership of the tag list. The message is posted by elements that discovered a new taglist. ## `src` @@ -6882,7 +6731,7 @@ the tag list for the message. the new tag message. MT safe. - + Create a new TOC message. The message is posted by elements that discovered or updated a TOC. ## `src` @@ -6897,7 +6746,7 @@ whether TOC was updated or not. a new TOC message. MT safe. - + Create a new warning message. The message will make copies of `error` and `debug`. ## `src` @@ -6912,7 +6761,7 @@ A debugging string. the new warning message. MT safe. - + Create a new warning message. The message will make copies of `error` and `debug`. @@ -6930,7 +6779,7 @@ A debugging string. # Returns the new warning message. - + Creates and appends a new entry. The specified location string is copied. However, ownership over the tag @@ -6944,7 +6793,7 @@ location string for the new entry tag list for the new entry ## `entry_struct` structure for the new entry - + Feature: `v1_10` @@ -6952,7 +6801,7 @@ Feature: `v1_10` # Returns the number of entries stored in the message - + Retrieve the sequence number of a message. Messages have ever-incrementing sequence numbers, which may also be set @@ -6971,7 +6820,7 @@ that correspondence was made explicitly. The message's sequence number. MT safe. - + Extracts the object managing the streaming thread from `self`. # Returns @@ -6979,7 +6828,7 @@ Extracts the object managing the streaming thread from `self`. a GValue containing the object that manages the streaming thread. This object is usually of type GstTask but other types can be added in the future. The object remains valid as long as `self` is valid. - + Access the structure of the message. # Returns @@ -6989,7 +6838,7 @@ still owned by the message, which means that you should not free it and that the pointer becomes invalid when you free the message. MT safe. - + Checks if `self` has the given `name`. This function is usually used to check the name of a custom message. ## `name` @@ -6998,20 +6847,20 @@ name to check # Returns `true` if `name` matches the name of the message structure. - + Extract the running_time from the async_done message. MT safe. ## `running_time` Result location for the running_time or `None` - + Extracts the buffering percent from the GstMessage. see also `Message::new_buffering`. MT safe. ## `percent` Return location for the percent. - + Extracts the buffering stats values from `self`. ## `mode` a buffering mode, or `None` @@ -7022,14 +6871,14 @@ the average output rate, or `None` ## `buffering_left` amount of buffering time left in milliseconds, or `None` - + Extracts the lost clock from the GstMessage. The clock object returned remains valid until the message is freed. MT safe. ## `clock` a pointer to hold the lost clock - + Extracts the clock and ready flag from the GstMessage. The clock object returned remains valid until the message is freed. @@ -7039,7 +6888,7 @@ a pointer to hold a clock object, or `None` ## `ready` a pointer to hold the ready flag, or `None` - + Parse a context type from an existing GST_MESSAGE_NEED_CONTEXT message. ## `context_type` the context type, or `None` @@ -7047,21 +6896,21 @@ the context type, or `None` # Returns a `gboolean` indicating if the parsing succeeded. - + Parses a device-added message. The device-added message is produced by `DeviceProvider` or a `DeviceMonitor`. It announces the appearance of monitored devices. ## `device` A location where to store a pointer to the new `Device`, or `None` - + Parses a device-removed message. The device-removed message is produced by `DeviceProvider` or a `DeviceMonitor`. It announces the disappearance of monitored devices. ## `device` A location where to store a pointer to the removed `Device`, or `None` - + Extracts the GError and debug string from the GstMessage. The values returned in the output arguments are copies; the caller must free them when done. @@ -7093,7 +6942,7 @@ location for the GError ## `debug` location for the debug message, or `None` - + Returns the optional details structure, may be NULL if none. The returned structure must not be freed. @@ -7101,7 +6950,7 @@ Feature: `v1_10` ## `structure` A pointer to the returned details - + Extract the group from the STREAM_START message. ## `group_id` Result location for the group id or @@ -7112,14 +6961,14 @@ Result location for the group id or `true` if the message had a group id set, `false` otherwise MT safe. - + Extract the context from the HAVE_CONTEXT message. MT safe. ## `context` Result location for the context or `None` - + Extracts the GError and debug string from the GstMessage. The values returned in the output arguments are copies; the caller must free them when done. @@ -7129,7 +6978,7 @@ location for the GError ## `debug` location for the debug message, or `None` - + Returns the optional details structure, may be NULL if none The returned structure must not be freed. @@ -7137,7 +6986,7 @@ Feature: `v1_10` ## `structure` A pointer to the returned details structure - + Extracts the new clock from the GstMessage. The clock object returned remains valid until the message is freed. @@ -7145,7 +6994,7 @@ MT safe. ## `clock` a pointer to hold the selected new clock - + Parses the progress `type_`, `code` and `text`. ## `type_` location for the type @@ -7153,10 +7002,10 @@ location for the type location for the code ## `text` location for the text - + Parses a property-notify message. These will be posted on the bus only -when set up with `ElementExt::add_property_notify_watch` or -`ElementExt::add_property_deep_notify_watch`. +when set up with `Element::add_property_notify_watch` or +`Element::add_property_deep_notify_watch`. Feature: `v1_10` @@ -7170,7 +7019,7 @@ return location for the name of the return location for the new value of the property that got changed, or `None`. This will only be set if the property notify watch was told to include the value when it was set up - + Extract the timestamps and live status from the QoS message. The returned values give the running_time, stream_time, timestamp and @@ -7192,7 +7041,7 @@ the timestamps of the buffer that ## `duration` the duration of the buffer that generated the message - + Extract the QoS stats representing the history of the current continuous pipeline playback period. @@ -7211,7 +7060,7 @@ Total number of units correctly processed ## `dropped` Total number of units dropped since the last state change to READY or a flushing operation. - + Extract the QoS values that have been calculated/analysed from the QoS data MT safe. @@ -7225,7 +7074,7 @@ Long term prediction of the ideal rate An element dependent integer value that specifies the current quality level of the element. The default maximum quality is 1000000. - + Parses the location and/or structure from the entry with the given index. The index must be between 0 and `Message::get_num_redirect_entries` - 1. Returned pointers are valid for as long as this message exists. @@ -7243,20 +7092,20 @@ return location for ## `entry_struct` return location for the pointer to the entry's structure, or `None` - + Extract the requested state from the request_state message. MT safe. ## `state` Result location for the requested state or `None` - + Extract the running-time from the RESET_TIME message. MT safe. ## `running_time` Result location for the running_time or `None` - + Extracts the position and format from the segment done message. MT safe. @@ -7264,7 +7113,7 @@ MT safe. Result location for the format, or `None` ## `position` Result location for the position, or `None` - + Extracts the position and format from the segment start message. MT safe. @@ -7272,7 +7121,7 @@ MT safe. Result location for the format, or `None` ## `position` Result location for the position, or `None` - + Extracts the old and new states from the GstMessage. Typical usage of this function might be: @@ -7302,7 +7151,7 @@ the previous state, or `None` the new (current) state, or `None` ## `pending` the pending (target) state, or `None` - + Extract the values the step_done message. MT safe. @@ -7320,7 +7169,7 @@ result location for the intermediate flag result location for the duration ## `eos` result location for the EOS flag - + Extract the values from step_start message. MT safe. @@ -7336,7 +7185,7 @@ result location for the rate result location for the flush flag ## `intermediate` result location for the intermediate flag - + Parses a stream-collection message. Feature: `v1_10` @@ -7344,7 +7193,7 @@ Feature: `v1_10` ## `collection` A location where to store a pointer to the `StreamCollection`, or `None` - + Extracts the stream status type and owner the GstMessage. The returned owner remains valid for as long as the reference to `self` is valid and should thus not be unreffed. @@ -7354,7 +7203,7 @@ MT safe. A pointer to hold the status type ## `owner` The owner element of the message source - + Parses a streams-selected message. Feature: `v1_10` @@ -7362,7 +7211,7 @@ Feature: `v1_10` ## `collection` A location where to store a pointer to the `StreamCollection`, or `None` - + Extracts the change type and completion status from the GstMessage. MT safe. @@ -7374,7 +7223,7 @@ The owner element of the ## `busy` a pointer to hold whether the change is in progress or has been completed - + Extracts the tag list from the GstMessage. The tag list returned in the output argument is a copy; the caller must free it when done. @@ -7400,7 +7249,7 @@ Typical usage of this function might be: MT safe. ## `tag_list` return location for the tag-list. - + Extract the TOC from the `Message`. The TOC returned in the output argument is a copy; the caller must free it with `gst_toc_unref` when done. @@ -7410,7 +7259,7 @@ MT safe. return location for the TOC. ## `updated` return location for the updated flag. - + Extracts the GError and debug string from the GstMessage. The values returned in the output arguments are copies; the caller must free them when done. @@ -7420,7 +7269,7 @@ location for the GError ## `debug` location for the debug message, or `None` - + Returns the optional details structure, may be NULL if none The returned structure must not be freed. @@ -7428,7 +7277,7 @@ Feature: `v1_10` ## `structure` A pointer to the returned details structure - + Configures the buffering stats values in `self`. ## `mode` a buffering mode @@ -7438,7 +7287,7 @@ the average input rate the average output rate ## `buffering_left` amount of buffering time left in milliseconds - + Sets the group id on the stream-start message. All streams that have the same group id are supposed to be played @@ -7450,7 +7299,7 @@ each time a file is played for example. MT safe. ## `group_id` the group id - + Set the QoS stats representing the history of the current continuous pipeline playback period. @@ -7468,7 +7317,7 @@ change to READY or a flushing operation. ## `dropped` Total number of units dropped since the last state change to READY or a flushing operation. - + Set the QoS values that have been calculated/analysed from the QoS data MT safe. @@ -7480,7 +7329,7 @@ to get optimal quality. ## `quality` An element dependent integer value that specifies the current quality level of the element. The default maximum quality is 1000000. - + Set the sequence number of a message. This function might be called by the creator of a message to indicate that @@ -7490,19 +7339,19 @@ for more information. MT safe. ## `seqnum` A sequence number. - + Configures the object handling the streaming thread. This is usually a GstTask object but other objects might be added in the future. ## `object` the object controlling the streaming - + Adds the `stream` to the `self`. Feature: `v1_10` ## `stream` a `Stream` to add to `self` - + Returns the number of streams contained in the `self`. Feature: `v1_10` @@ -7511,7 +7360,7 @@ Feature: `v1_10` # Returns The number of streams contained within. - + Retrieves the `Stream` with index `index` from the `self`. Feature: `v1_10` @@ -7934,6 +7783,26 @@ on `self` as it relies on atomic refcounting. The unref method should never be called with the LOCK held since this might deadlock the dispose function. + +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. +## `prop_object` +the object that originated the signal +## `prop` +the property that changed + +The parent of the object. Please note, that when changing the 'parent' +property, we don't emit `gobject::Object::notify` and `Object::deep-notify` +signals due to locking issues. In some cases one can use +`Bin::element-added` or `Bin::element-removed` signals on the parent to +achieve a similar effect. + +The parent of the object. Please note, that when changing the 'parent' +property, we don't emit `gobject::Object::notify` and `Object::deep-notify` +signals due to locking issues. In some cases one can use +`Bin::element-added` or `Bin::element-removed` signals on the parent to +achieve a similar effect. A `Element` is linked to other elements via "pads", which are extremely light-weight generic link points. @@ -9131,6 +9000,18 @@ or in case the pad is not negotiated, the padtemplate caps. The negotiated caps are the caps of the last CAPS event that passed on the pad. Use this function on a pad that, once it negotiated to a CAPS, cannot be renegotiated to something else. + +Signals that a pad has been linked to the peer pad. +## `peer` +the peer pad that has been connected + +Signals that a pad has been unlinked from the peer pad. +## `peer` +the peer pad that has been disconnected + +The offset that will be applied to the running time of the pad. + +The offset that will be applied to the running time of the pad. The direction of a pad. @@ -9295,6 +9176,26 @@ Unref after usage. Emit the pad-created signal for this template when created by this pad. ## `pad` the `Pad` that created it + +This signal is fired when an element creates a pad from this template. +## `pad` +the pad that was created. + +The capabilities of the pad described by the pad template. + +The capabilities of the pad described by the pad template. + +The direction of the pad described by the pad template. + +The direction of the pad described by the pad template. + +The name template of the pad template. + +The name template of the pad template. + +When the pad described by the pad template will become available. + +When the pad described by the pad template will become available. Opaque structure. @@ -9536,6 +9437,26 @@ the pipeline run as fast as possible. MT safe. ## `clock` the clock to use + +Whether or not to automatically flush all messages on the +pipeline's bus when going from READY to NULL state. Please see +`PipelineExt::set_auto_flush_bus` for more information on this option. + +Whether or not to automatically flush all messages on the +pipeline's bus when going from READY to NULL state. Please see +`PipelineExt::set_auto_flush_bus` for more information on this option. + +The expected delay needed for elements to spin up to the +PLAYING state expressed in nanoseconds. +see `PipelineExt::set_delay` for more information on this option. + +The expected delay needed for elements to spin up to the +PLAYING state expressed in nanoseconds. +see `PipelineExt::set_delay` for more information on this option. + +Latency to configure on the pipeline. See `PipelineExt::set_latency`. + +Latency to configure on the pipeline. See `PipelineExt::set_latency`. GStreamer is extensible, so `Element` instances can be loaded at runtime. A plugin system can provide one or more of the basic @@ -10085,7 +10006,7 @@ The following example shows how to query the duration of a pipeline: } gst_query_unref (query); ``` - + Constructs a new query object for querying if `caps` are accepted. Free-function: `gst_query_unref` @@ -10095,7 +10016,7 @@ a fixed `Caps` # Returns a new `Query` - + Constructs a new query object for querying the allocation properties. Free-function: `gst_query_unref` @@ -10107,7 +10028,7 @@ return a pool # Returns a new `Query` - + Constructs a new query object for querying the buffering status of a stream. @@ -10118,7 +10039,7 @@ the default `Format` for the new query # Returns a new `Query` - + Constructs a new query object for querying the caps. The CAPS query should return the allowable caps for a pad in the context @@ -10145,7 +10066,7 @@ a filter # Returns a new `Query` - + Constructs a new query object for querying the pipeline-local context. Free-function: `gst_query_unref` @@ -10155,7 +10076,7 @@ Context type to query # Returns a new `Query` - + Constructs a new convert query object. Use `gst_query_unref` when done with it. A convert query is used to ask for a conversion between one format and another. @@ -10171,7 +10092,7 @@ the target `Format` # Returns a `Query` - + Constructs a new custom query object. Use `gst_query_unref` when done with it. @@ -10184,7 +10105,7 @@ a structure for the query # Returns a new `Query` - + Constructs a new query object for querying the drain state. Free-function: `gst_query_unref` @@ -10192,7 +10113,7 @@ Free-function: `gst_query_unref` # Returns a new `Query` - + Constructs a new stream duration query object to query in the given format. Use `gst_query_unref` when done with it. A duration query will give the total length of the stream. @@ -10204,7 +10125,7 @@ the `Format` for this duration query # Returns a new `Query` - + Constructs a new query object for querying formats of the stream. @@ -10213,7 +10134,7 @@ Free-function: `gst_query_unref` # Returns a new `Query` - + Constructs a new latency query object. Use `gst_query_unref` when done with it. A latency query is usually performed by sinks to compensate for additional latency introduced by elements in the @@ -10224,7 +10145,7 @@ Free-function: `gst_query_unref` # Returns a `Query` - + Constructs a new query stream position query object. Use `gst_query_unref` when done with it. A position query is used to query the current position of playback in the streams, in some format. @@ -10236,7 +10157,7 @@ the default `Format` for the new query # Returns a new `Query` - + Constructs a new query object for querying the scheduling properties. Free-function: `gst_query_unref` @@ -10244,7 +10165,7 @@ Free-function: `gst_query_unref` # Returns a new `Query` - + Constructs a new query object for querying seeking properties of the stream. @@ -10255,7 +10176,7 @@ the default `Format` for the new query # Returns a new `Query` - + Constructs a new segment query object. Use `gst_query_unref` when done with it. A segment query is used to discover information about the currently configured segment for playback. @@ -10267,7 +10188,7 @@ the `Format` for the new query # Returns a new `Query` - + Constructs a new query URI query object. Use `gst_query_unref` when done with it. An URI query is used to query the current URI that is used by the source or sink. @@ -10277,19 +10198,19 @@ Free-function: `gst_query_unref` # Returns a new `Query` - + Add `api` with `params` as one of the supported metadata API to `self`. ## `api` the metadata API ## `params` API specific parameters - + Add `allocator` and its `params` as a supported memory allocator. ## `allocator` the memory allocator ## `params` a `AllocationParams` - + Set the pool parameters in `self`. ## `pool` the `BufferPool` @@ -10299,7 +10220,7 @@ the buffer size the min buffers ## `max_buffers` the max buffers - + Set the buffering-ranges array field in `self`. The current last start position of the array should be inferior to `start`. ## `start` @@ -10310,11 +10231,11 @@ stop position of the range # Returns a `gboolean` indicating if the range was added or not. - + Add `mode` as one of the supported scheduling modes to `self`. ## `mode` a `PadMode` - + Check if `self` has metadata `api` set. When this function returns `true`, `index` will contain the index where the requested API and the parameters can be found. @@ -10326,14 +10247,14 @@ the index # Returns `true` when `api` is in the list of metadata. - + Retrieve the number of values currently stored in the meta API array of the query's structure. # Returns the metadata API array size as a `guint`. - + Retrieve the number of values currently stored in the allocator params array of the query's structure. @@ -10345,28 +10266,28 @@ allocators should be ordered by preference with the preferred one first. # Returns the allocator array size as a `guint`. - + Retrieve the number of values currently stored in the pool array of the query's structure. # Returns the pool array size as a `guint`. - + Retrieve the number of values currently stored in the buffered-ranges array of the query's structure. # Returns the range array size as a `guint`. - + Retrieve the number of values currently stored in the scheduling mode array of the query's structure. # Returns the scheduling mode array size as a `guint`. - + Get the structure of a query. # Returns @@ -10374,7 +10295,7 @@ Get the structure of a query. the `Structure` of the query. The structure is still owned by the query and will therefore be freed when the query is unreffed. - + Check if `self` has scheduling mode set. > When checking if upstream supports pull mode, it is usually not @@ -10388,7 +10309,7 @@ the scheduling mode # Returns `true` when `mode` is in the list of scheduling modes. - + Check if `self` has scheduling mode set and `flags` is set in query scheduling flags. ## `mode` @@ -10400,16 +10321,16 @@ the scheduling mode `true` when `mode` is in the list of scheduling modes and `flags` are compatible with query flags. - + Get the caps from `self`. The caps remains valid as long as `self` remains valid. ## `caps` A pointer to the caps - + Parse the result from `self` and store in `result`. ## `result` location for the result - + Parse an allocation query, writing the requested caps in `caps` and whether a pool is needed in `need_pool`, if the respective parameters are non-`None`. @@ -10420,14 +10341,14 @@ Pool details can be retrieved using `Query::get_n_allocation_pools` and The `Caps` ## `need_pool` Whether a `BufferPool` is needed - + Get the percentage of buffered data. This is a value between 0 and 100. The `busy` indicator is `true` when the buffering is in progress. ## `busy` if buffering is busy, or `None` ## `percent` a buffering percent, or `None` - + Parse an available query, writing the format into `format`, and other results into the passed parameters, if the respective parameters are non-`None` @@ -10441,7 +10362,7 @@ the stop to set, or `None` ## `estimated_total` estimated total amount of download time remaining in milliseconds, or `None` - + Extracts the buffering stats values from `self`. ## `mode` a buffering mode, or `None` @@ -10452,22 +10373,22 @@ the average output rat, or `None` ## `buffering_left` amount of buffering time left in milliseconds, or `None` - + Get the filter from the caps `self`. The caps remains valid as long as `self` remains valid. ## `filter` A pointer to the caps filter - + Get the caps result from `self`. The caps remains valid as long as `self` remains valid. ## `caps` A pointer to the caps - + Get the context from the context `self`. The context remains valid as long as `self` remains valid. ## `context` A pointer to store the `Context` - + Parse a context type from an existing GST_QUERY_CONTEXT query. ## `context_type` the context type, or `None` @@ -10475,7 +10396,7 @@ the context type, or `None` # Returns a `gboolean` indicating if the parsing succeeded. - + Parse a convert query answer. Any of `src_format`, `src_value`, `dest_format`, and `dest_value` may be `None`, in which case that value is omitted. ## `src_format` @@ -10489,7 +10410,7 @@ the storage for the `Format` of the ## `dest_value` the storage for the destination value, or `None` - + Parse a duration query answer. Write the format of the duration into `format`, and the value into `duration`, if the respective variables are non-`None`. ## `format` @@ -10497,7 +10418,7 @@ the storage for the `Format` of the duration value, or `None`. ## `duration` the storage for the total duration, or `None`. - + Parse a latency query answer. ## `live` storage for live or `None` @@ -10505,11 +10426,11 @@ storage for live or `None` the storage for the min latency or `None` ## `max_latency` the storage for the max latency or `None` - + Parse the number of formats in the formats `self`. ## `n_formats` the number of formats in this query. - + Parse an available query and get the metadata API at `index` of the metadata API array. ## `index` @@ -10520,7 +10441,7 @@ API specific parameters # Returns a `glib::Type` of the metadata API at `index`. - + Parse an available query and get the allocator and its params at `index` of the allocator array. ## `index` @@ -10529,7 +10450,7 @@ position in the allocator array to read variable to hold the result ## `params` parameters for the allocator - + Get the pool parameters in `self`. Unref `pool` with `GstObjectExt::unref` when it's not needed any more. @@ -10543,7 +10464,7 @@ the buffer size the min buffers ## `max_buffers` the max buffers - + Parse an available query and get the start and stop values stored at the `index` of the buffered ranges array. ## `index` @@ -10556,7 +10477,7 @@ the stop position to set, or `None` # Returns a `gboolean` indicating if the parsing succeeded. - + Parse the format query and retrieve the `nth` format from it into `format`. If the list contains less elements than `nth`, `format` will be set to GST_FORMAT_UNDEFINED. @@ -10564,7 +10485,7 @@ set to GST_FORMAT_UNDEFINED. the nth format to retrieve. ## `format` a pointer to store the nth format - + Parse an available query and get the scheduling mode at `index` of the scheduling modes array. ## `index` @@ -10573,7 +10494,7 @@ position in the scheduling modes array to read # Returns a `PadMode` of the scheduling mode at `index`. - + Parse a position query, writing the format into `format`, and the position into `cur`, if the respective parameters are non-`None`. ## `format` @@ -10581,7 +10502,7 @@ the storage for the `Format` of the position values (may be `None`) ## `cur` the storage for the current position (may be `None`) - + Set the scheduling properties. ## `flags` `SchedulingFlags` @@ -10591,7 +10512,7 @@ the suggested minimum size of pull requests the suggested maximum size of pull requests: ## `align` the suggested alignment of pull requests - + Parse a seeking query, writing the format into `format`, and other results into the passed parameters, if the respective parameters are non-`None` @@ -10604,7 +10525,7 @@ the seekable flag to set, or `None` the segment_start to set, or `None` ## `segment_end` the segment_end to set, or `None` - + Parse a segment query answer. Any of `rate`, `format`, `start_value`, and `stop_value` may be `None`, which will cause this value to be omitted. @@ -10618,21 +10539,21 @@ the storage for the `Format` of the values, the storage for the start value, or `None` ## `stop_value` the storage for the stop value, or `None` - + Parse an URI query, writing the URI into `uri` as a newly allocated string, if the respective parameters are non-`None`. Free the string with `g_free` after usage. ## `uri` the storage for the current URI (may be `None`) - + Parse an URI query, writing the URI into `uri` as a newly allocated string, if the respective parameters are non-`None`. Free the string with `g_free` after usage. ## `uri` the storage for the redirect URI (may be `None`) - + Parse an URI query, and set `permanent` to `true` if there is a redirection and it should be considered permanent. If a redirection is permanent, applications should update their internal storage of the URI, otherwise @@ -10640,30 +10561,30 @@ they should make all future requests to the original URI. ## `permanent` if the URI redirection is permanent (may be `None`) - + Remove the metadata API at `index` of the metadata API array. ## `index` position in the metadata API array to remove - + Remove the allocation param at `index` of the allocation param array. ## `index` position in the allocation param array to remove - + Remove the allocation pool at `index` of the allocation pool array. ## `index` position in the allocation pool array to remove - + Set `result` as the result for the `self`. ## `result` the result to set - + Set the percentage of buffered data. This is a value between 0 and 100. The `busy` indicator is `true` when the buffering is in progress. ## `busy` if buffering is busy ## `percent` a buffering percent - + Set the available query result fields in `self`. ## `format` the format to set for the `start` and `stop` values @@ -10674,7 +10595,7 @@ the stop to set ## `estimated_total` estimated total amount of download time remaining in milliseconds - + Configures the buffering stats values in `self`. ## `mode` a buffering mode @@ -10684,15 +10605,15 @@ the average input rate the average output rate ## `buffering_left` amount of buffering time left in milliseconds - + Set the `caps` result in `self`. ## `caps` A pointer to the caps - + Answer a context query by setting the requested context. ## `context` the requested `Context` - + Answer a convert query by setting the requested values. ## `src_format` the source `Format` @@ -10702,18 +10623,18 @@ the source value the destination `Format` ## `dest_value` the destination value - + Answer a duration query by setting the requested value in the given format. ## `format` the `Format` for the duration ## `duration` the duration of the stream - + Set the formats query result fields in `self`. The number of formats passed must be equal to `n_formats`. ## `n_formats` the number of formats to set. - + Set the formats query result fields in `self`. The number of formats passed in the `formats` array must be equal to `n_formats`. ## `n_formats` @@ -10721,7 +10642,7 @@ the number of formats to set. ## `formats` an array containing `n_formats` `Format` values. - + Answer a latency query by setting the requested values in the given format. ## `live` if there is a live element upstream @@ -10729,7 +10650,7 @@ if there is a live element upstream the minimal latency of the upstream elements ## `max_latency` the maximal latency of the upstream elements - + Parse an available query and get the allocator and its params at `index` of the allocator array. ## `index` @@ -10738,7 +10659,7 @@ position in the allocator array to set new allocator to set ## `params` parameters for the allocator - + Set the pool parameters in `self`. ## `index` index to modify @@ -10750,13 +10671,13 @@ the size the min buffers ## `max_buffers` the max buffers - + Answer a position query by setting the requested value in the given format. ## `format` the requested `Format` ## `cur` the position to set - + Set the scheduling properties. ## `flags` `SchedulingFlags` @@ -10766,7 +10687,7 @@ the suggested minimum size of pull requests the suggested maximum size of pull requests ## `align` the suggested alignment of pull requests - + Set the seeking query result fields in `self`. ## `format` the format to set for the `segment_start` and `segment_end` values @@ -10776,7 +10697,7 @@ the seekable flag to set the segment_start to set ## `segment_end` the segment_end to set - + Answer a segment query by setting the requested values. The normal playback segment of a pipeline is 0 to duration at the default rate of 1.0. If a seek was performed on the pipeline to play a different @@ -10796,20 +10717,20 @@ the `Format` of the segment values (`start_value` and `stop_value`) the start value ## `stop_value` the stop value - + Answer a URI query by setting the requested URI. ## `uri` the URI to set - + Answer a URI query by setting the requested URI redirection. ## `uri` the URI to set - + Answer a URI query by setting the requested URI redirection to permanent or not. ## `permanent` whether the redirect is permanent or not - + Get the structure of a query. This method should be called with a writable `self` so that the returned structure is guaranteed to be writable. @@ -10878,7 +10799,7 @@ the number of resource error types. A `Sample` is a small object containing data, a type, timing and extra arbitrary information. - + Create a new `Sample` with the provided details. Free-function: gst_sample_unref @@ -10895,7 +10816,7 @@ a `Structure`, or `None` the new `Sample`. `gst_sample_unref` after usage. - + Get the buffer associated with `self` # Returns @@ -10904,7 +10825,7 @@ the buffer of `self` or `None` when there is no buffer. The buffer remains valid as long as `self` is valid. If you need to hold on to it for longer than that, take a ref to the buffer with `gst_buffer_ref`. - + Get the buffer list associated with `self` # Returns @@ -10913,7 +10834,7 @@ the buffer list of `self` or `None` when there is no buffer list. The buffer list remains valid as long as `self` is valid. If you need to hold on to it for longer than that, take a ref to the buffer list with gst_mini_object_ref (). - + Get the caps associated with `self` # Returns @@ -10922,21 +10843,21 @@ the caps of `self` or `None` when there is no caps. The caps remain valid as long as `self` is valid. If you need to hold on to the caps for longer than that, take a ref to the caps with `gst_caps_ref`. - + Get extra information associated with `self`. # Returns the extra info of `self`. The info remains valid as long as `self` is valid. - + Get the segment associated with `self` # Returns the segment of `self`. The segment remains valid as long as `self` is valid. - + Set the buffer list associated with `self` ## `buffer_list` a `BufferList` @@ -11412,6 +11333,37 @@ the state change will happen asynchronously the state change succeeded but the element cannot produce data in `State::Paused`. This typically happens with live sources. + +Datastructure to initialize `Caps` from a string description usually +used in conjunction with GST_STATIC_CAPS() and `StaticCaps::get` to +instantiate a `Caps`. + +Clean up the cached caps contained in `self`. + +Converts a `StaticCaps` to a `Caps`. + +# Returns + +a pointer to the `Caps`. Unref after usage. + Since the core holds an additional ref to the returned caps, + use `gst_caps_make_writable` on the returned caps to modify it. + +Structure describing the `StaticPadTemplate`. + +Converts a `StaticPadTemplate` into a `PadTemplate`. + +# Returns + +a new `PadTemplate`. + +Gets the capabilities of the static pad template. + +# Returns + +the `Caps` of the static pad template. +Unref after usage. Since the core holds an additional +ref to the returned caps, use `gst_caps_make_writable` +on the returned caps to modify it. A high-level object representing a single stream. It might be backed, or not, by an actual flow of data in a pipeline (`Pad`). @@ -11524,6 +11476,24 @@ Feature: `v1_10` ## `tags` a `TagList` + +The `Caps` of the `Stream`. + +The `Caps` of the `Stream`. + +The unique identifier of the `Stream`. Can only be set at construction +time. + +The unique identifier of the `Stream`. Can only be set at construction +time. + +The `StreamType` of the `Stream`. Can only be set at construction time. + +The `StreamType` of the `Stream`. Can only be set at construction time. + +The `TagList` of the `Stream`. + +The `TagList` of the `Stream`. A collection of `Stream` that are available. @@ -12528,7 +12498,7 @@ List of tags and values used to describe media metadata. Strings in structures must be ASCII or UTF-8 encoded. Other encodings are not allowed. Strings must not be empty or `None`. - + Creates a new taglist and appends the values for the given tags. It expects tag-value pairs like `TagList::add`, and a `None` terminator after the last pair. The type of the values is implicit and is documented in the API @@ -12549,7 +12519,7 @@ tag a new `TagList`. Free with `gst_tag_list_unref` when no longer needed. - + Creates a new empty GstTagList. Free-function: gst_tag_list_unref @@ -12557,7 +12527,7 @@ Free-function: gst_tag_list_unref # Returns An empty tag list - + Deserializes a tag list. ## `str` a string created with `TagList::to_string` @@ -12566,7 +12536,7 @@ a string created with `TagList::to_string` a new `TagList`, or `None` in case of an error. - + Just like `TagList::new`, only that it takes a va_list argument. Useful mostly for language bindings. @@ -12578,13 +12548,13 @@ tag / value pairs to set a new `TagList`. Free with `gst_tag_list_unref` when no longer needed. - + Sets the values for the given tags using the specified mode. ## `mode` the mode to use ## `tag` tag - + Sets the values for the given tags using the specified mode. ## `mode` the mode to use @@ -12592,7 +12562,7 @@ the mode to use tag ## `var_args` tag / value pairs to set - + Sets the GValues for the given tags using the specified mode. ## `mode` the mode to use @@ -12600,7 +12570,7 @@ the mode to use tag ## `var_args` tag / GValue pairs to set - + Sets the GValue for a given tag using the specified mode. ## `mode` the mode to use @@ -12608,20 +12578,20 @@ the mode to use tag ## `value` GValue for this tag - + Sets the GValues for the given tags using the specified mode. ## `mode` the mode to use ## `tag` tag - + Calls the given function for each tag inside the tag list. Note that if there is no tag, the function won't be called at all. ## `func` function to be called for each tag ## `user_data` user specified data - + Copies the contents for the given tag into the value, merging multiple values into one if multiple values are associated with the tag. ## `tag` @@ -12633,7 +12603,7 @@ location for the result `true`, if a value was copied, `false` if the tag didn't exist in the given list. - + Gets the value that is at the given index for the given tag in the given list. ## `tag` @@ -12647,7 +12617,7 @@ location for the result `true`, if a value was copied, `false` if the tag didn't exist in the given list. - + Copies the first date for the given tag in the taglist into the variable pointed to by `value`. Free the date with `glib::Date::free` when it is no longer needed. @@ -12663,7 +12633,7 @@ address of a GDate pointer `true`, if a date was copied, `false` if the tag didn't exist in the given list or if it was `None`. - + Gets the date that is at the given index for the given tag in the given list and copies it into the variable pointed to by `value`. Free the date with `glib::Date::free` when it is no longer needed. @@ -12680,7 +12650,7 @@ location for the result `true`, if a value was copied, `false` if the tag didn't exist in the given list or if it was `None`. - + Copies the first datetime for the given tag in the taglist into the variable pointed to by `value`. Unref the date with `DateTime::unref` when it is no longer needed. @@ -12696,7 +12666,7 @@ address of a `DateTime` `true`, if a datetime was copied, `false` if the tag didn't exist in the given list or if it was `None`. - + Gets the datetime that is at the given index for the given tag in the given list and copies it into the variable pointed to by `value`. Unref the datetime with `DateTime::unref` when it is no longer needed. @@ -12713,7 +12683,7 @@ location for the result `true`, if a value was copied, `false` if the tag didn't exist in the given list or if it was `None`. - + Copies the contents for the given tag into the value, merging multiple values into one if multiple values are associated with the tag. ## `tag` @@ -12725,7 +12695,7 @@ location for the result `true`, if a value was copied, `false` if the tag didn't exist in the given list. - + Gets the value that is at the given index for the given tag in the given list. ## `tag` @@ -12739,7 +12709,7 @@ location for the result `true`, if a value was copied, `false` if the tag didn't exist in the given list. - + Copies the contents for the given tag into the value, merging multiple values into one if multiple values are associated with the tag. ## `tag` @@ -12751,7 +12721,7 @@ location for the result `true`, if a value was copied, `false` if the tag didn't exist in the given list. - + Gets the value that is at the given index for the given tag in the given list. ## `tag` @@ -12765,7 +12735,7 @@ location for the result `true`, if a value was copied, `false` if the tag didn't exist in the given list. - + Copies the contents for the given tag into the value, merging multiple values into one if multiple values are associated with the tag. ## `tag` @@ -12777,7 +12747,7 @@ location for the result `true`, if a value was copied, `false` if the tag didn't exist in the given list. - + Gets the value that is at the given index for the given tag in the given list. ## `tag` @@ -12791,7 +12761,7 @@ location for the result `true`, if a value was copied, `false` if the tag didn't exist in the given list. - + Gets the value that is at the given index for the given tag in the given list. ## `tag` @@ -12805,7 +12775,7 @@ location for the result `true`, if a value was copied, `false` if the tag didn't exist in the given list. - + Copies the contents for the given tag into the value, merging multiple values into one if multiple values are associated with the tag. ## `tag` @@ -12817,7 +12787,7 @@ location for the result `true`, if a value was copied, `false` if the tag didn't exist in the given list. - + Gets the value that is at the given index for the given tag in the given list. ## `tag` @@ -12831,7 +12801,7 @@ location for the result `true`, if a value was copied, `false` if the tag didn't exist in the given list. - + Copies the first sample for the given tag in the taglist into the variable pointed to by `sample`. Free the sample with `gst_sample_unref` when it is no longer needed. You can retrieve the buffer from the sample using @@ -12849,7 +12819,7 @@ address of a GstSample `true`, if a sample was returned, `false` if the tag didn't exist in the given list or if it was `None`. - + Gets the sample that is at the given index for the given tag in the given list and copies it into the variable pointed to by `sample`. Free the sample with `gst_sample_unref` when it is no longer needed. You can retrieve the @@ -12869,13 +12839,13 @@ address of a GstSample `true`, if a sample was copied, `false` if the tag didn't exist in the given list or if it was `None`. - + Gets the scope of `self`. # Returns The scope of `self` - + Copies the contents for the given tag into the value, possibly merging multiple values into one if multiple values are associated with the tag. @@ -12896,7 +12866,7 @@ location for the result `true`, if a value was copied, `false` if the tag didn't exist in the given list. - + Gets the value that is at the given index for the given tag in the given list. @@ -12916,7 +12886,7 @@ location for the result `true`, if a value was copied, `false` if the tag didn't exist in the given list. - + Checks how many value are stored in this tag list for the given tag. ## `tag` the tag to query @@ -12924,7 +12894,7 @@ the tag to query # Returns The number of tags stored - + Copies the contents for the given tag into the value, merging multiple values into one if multiple values are associated with the tag. ## `tag` @@ -12936,7 +12906,7 @@ location for the result `true`, if a value was copied, `false` if the tag didn't exist in the given list. - + Copies the contents for the given tag into the value, merging multiple values into one if multiple values are associated with the tag. ## `tag` @@ -12948,7 +12918,7 @@ location for the result `true`, if a value was copied, `false` if the tag didn't exist in the given list. - + Gets the value that is at the given index for the given tag in the given list. ## `tag` @@ -12962,7 +12932,7 @@ location for the result `true`, if a value was copied, `false` if the tag didn't exist in the given list. - + Gets the value that is at the given index for the given tag in the given list. ## `tag` @@ -12976,7 +12946,7 @@ location for the result `true`, if a value was copied, `false` if the tag didn't exist in the given list. - + Gets the value that is at the given index for the given tag in the given list. ## `tag` @@ -12989,19 +12959,19 @@ number of entry to read out The GValue for the specified entry or `None` if the tag wasn't available or the tag doesn't have as many entries - + Inserts the tags of the `from` list into the first list using the given mode. ## `from` list to merge from ## `mode` the mode to use - + Checks if the given taglist is empty. # Returns `true` if the taglist is empty, otherwise `false`. - + Checks if the two given taglists are equal. ## `list2` a `TagList`. @@ -13009,7 +12979,7 @@ a `TagList`. # Returns `true` if the taglists are equal, otherwise `false` - + Merges the two given lists into a new list. If one of the lists is `None`, a copy of the other is returned. If both lists are `None`, `None` is returned. @@ -13022,13 +12992,13 @@ the mode to use # Returns the new list - + Get the number of tags in `self`. # Returns The number of tags in `self`. - + Get the name of the tag in `self` at `index`. ## `index` the index @@ -13036,7 +13006,7 @@ the index # Returns The name of the tag at `index`. - + Peeks at the value that is at the given index for the given tag in the given list. @@ -13054,16 +13024,16 @@ location for the result `true`, if a value was set, `false` if the tag didn't exist in the given list. - + Removes the given tag from the taglist. ## `tag` tag to remove - + Sets the scope of `self` to `scope`. By default the scope of a taglist is stream scope. ## `scope` new scope for `self` - + Serializes a tag list to a string. # Returns @@ -13071,7 +13041,7 @@ Serializes a tag list to a string. a newly-allocated string, or `None` in case of an error. The string must be freed with `g_free` when no longer needed. - + Copies the contents for the given tag into the value, merging multiple values into one if multiple values are associated with the tag. @@ -13294,6 +13264,14 @@ specified by this interface. The default is `TagMergeMode::Keep`, which keeps the tags set with this interface and discards tags from events. ## `mode` The mode with which tags are added + +The different states a task can be in + +the task is started and running + +the task is stopped + +the task is paused `Toc` functions are used to create/free `Toc` and `TocEntry` structures. Also they are used to convert `Toc` into `Structure` and vice versa. @@ -13340,7 +13318,7 @@ alternative type entry) with track entries underneath that node; or even multiple top-level edition nodes (or some other alternative type entries) each with track entries underneath, in case the source file has extracted a track listing from different sources). - + Create a new `Toc` structure. ## `scope` scope of this TOC @@ -13349,11 +13327,11 @@ scope of this TOC newly allocated `Toc` structure, free it with `gst_toc_unref`. - + Appends the `TocEntry` `entry` to `self`. ## `entry` A `TocEntry` - + Find `TocEntry` with given `uid` in the `self`. ## `uid` UID to find `TocEntry` with. @@ -13362,35 +13340,35 @@ UID to find `TocEntry` with. `TocEntry` with specified `uid` from the `self`, or `None` if not found. - + Gets the list of `TocEntry` of `self`. # Returns A `glib::List` of `TocEntry` for `entry` - + # Returns scope of `self` - + Gets the tags for `self`. # Returns A `TagList` for `entry` - + Merge `tags` into the existing tags of `self` using `mode`. ## `tags` A `TagList` or `None` ## `mode` A `TagMergeMode` - + Set a `TagList` with tags for the complete `self`. ## `tags` A `TagList` or `None` - + Create new `TocEntry` structure. ## `type_` entry type. @@ -13400,16 +13378,16 @@ unique ID (UID) in the whole TOC. # Returns newly allocated `TocEntry` structure, free it with `gst_toc_entry_unref`. - + Appends the `TocEntry` `subentry` to `self`. ## `subentry` A `TocEntry` - + # Returns `self`'s entry type - + Get `loop_type` and `repeat_count` values from the `self` and write them into appropriate storages. Loops are e.g. used by sampled instruments. GStreamer is not automatically applying the loop. The application can process this @@ -13425,13 +13403,13 @@ the storage for the repeat_count `true` if all non-`None` storage pointers were filled with appropriate values, `false` otherwise. - + Gets the parent `TocEntry` of `self`. # Returns The parent `TocEntry` of `self` - + Get `start` and `stop` values from the `self` and write them into appropriate storages. ## `start` @@ -13445,59 +13423,59 @@ the storage for the stop value, leave `true` if all non-`None` storage pointers were filled with appropriate values, `false` otherwise. - + Gets the sub-entries of `self`. # Returns A `glib::List` of `TocEntry` of `self` - + Gets the tags for `self`. # Returns A `TagList` for `self` - + Gets the parent `Toc` of `self`. # Returns The parent `Toc` of `self` - + Gets the UID of `self`. # Returns The UID of `self` - + # Returns `true` if `self`'s type is an alternative type, otherwise `false` - + # Returns `true` if `self`'s type is a sequence type, otherwise `false` - + Merge `tags` into the existing tags of `self` using `mode`. ## `tags` A `TagList` or `None` ## `mode` A `TagMergeMode` - + Set `loop_type` and `repeat_count` values for the `self`. ## `loop_type` loop_type value to set. ## `repeat_count` repeat_count value to set. - + Set `start` and `stop` values for the `self`. ## `start` start value to set. ## `stop` stop value to set. - + Set a `TagList` with tags for the complete `self`. ## `tags` A `TagList` or `None`