From 4c53bda67fdf4df8d0aec4c45c4654df2dd8674a Mon Sep 17 00:00:00 2001 From: Marijn Suijten Date: Sun, 11 Apr 2021 15:55:54 +0200 Subject: [PATCH] docs: Regenerate and add missing gl egl/wayland/x11 files --- docs/gstreamer-app/docs.md | 120 ++++- docs/gstreamer-audio/docs.md | 43 ++ docs/gstreamer-base/docs.md | 171 ++++++- docs/gstreamer-gl/docs.md | 96 +--- docs/gstreamer-gl/egl/docs.md | 37 ++ docs/gstreamer-gl/wayland/docs.md | 25 + docs/gstreamer-gl/x11/docs.md | 25 + docs/gstreamer-pbutils/docs.md | 17 +- docs/gstreamer-player/docs.md | 2 + docs/gstreamer-rtsp-server/docs.md | 2 +- docs/gstreamer-video/docs.md | 170 ++++++- docs/gstreamer-webrtc/docs.md | 6 + docs/gstreamer/docs.md | 758 +++++++++++++++++------------ 13 files changed, 1028 insertions(+), 444 deletions(-) create mode 100644 docs/gstreamer-gl/egl/docs.md create mode 100644 docs/gstreamer-gl/wayland/docs.md create mode 100644 docs/gstreamer-gl/x11/docs.md diff --git a/docs/gstreamer-app/docs.md b/docs/gstreamer-app/docs.md index b423b2055..0255c301d 100644 --- a/docs/gstreamer-app/docs.md +++ b/docs/gstreamer-app/docs.md @@ -39,7 +39,7 @@ to avoid polling. # Implements -[`gst_base::BaseSinkExt`](../gst_base/trait.BaseSinkExt.html), [`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`gst::URIHandlerExt`](../gst/trait.URIHandlerExt.html) +[`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`gst::URIHandlerExt`](../gst/trait.URIHandlerExt.html) Check if `self` supports buffer lists. @@ -54,7 +54,7 @@ Get the configured caps on `self`. # Returns -the `gst::Caps` accepted by the sink. `gst::Caps::unref` after usage. +the `gst::Caps` accepted by the sink. `gst_caps_unref` after usage. Check if `self` will drop old buffers when the maximum amount of queued buffers is reached. @@ -117,7 +117,7 @@ element is set to the READY/NULL state. # Returns a `gst::Sample` or NULL when the appsink is stopped or EOS. - Call `gst::Sample::unref` after usage. + Call `gst_sample_unref` after usage. This function blocks until a sample or EOS becomes available or the appsink element is set to the READY/NULL state. @@ -134,7 +134,7 @@ If an EOS event was received before any buffers, this function returns # Returns a `gst::Sample` or NULL when the appsink is stopped or EOS. - Call `gst::Sample::unref` after usage. + Call `gst_sample_unref` after usage. Instruct `self` to enable or disable buffer list support. @@ -218,7 +218,7 @@ 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. - Call `gst::Sample::unref` after usage. + Call `gst_sample_unref` after usage. 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. @@ -241,7 +241,7 @@ 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. -Call `gst::Sample::unref` after usage. +Call `gst_sample_unref` after usage. Signal that the end-of-stream has been reached. This signal is emitted from the streaming thread. @@ -433,7 +433,7 @@ occurs or the state of the appsrc has gone through READY. # Implements -[`gst_base::BaseSrcExt`](../gst_base/trait.BaseSrcExt.html), [`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`gst::URIHandlerExt`](../gst/trait.URIHandlerExt.html) +[`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`gst::URIHandlerExt`](../gst/trait.URIHandlerExt.html) Indicates to the appsrc element that the last buffer queued in the element is the last buffer of the stream. @@ -447,7 +447,7 @@ Get the configured caps on `self`. # Returns -the `gst::Caps` produced by the source. `gst::Caps::unref` after usage. +the `gst::Caps` produced by the source. `gst_caps_unref` after usage. Get the number of currently queued bytes inside `self`. @@ -675,6 +675,110 @@ the offset to seek to # Returns `true` if the seek succeeded. + +When max-bytes are queued and after the enough-data signal has been emitted, +block any further push-buffer calls until the amount of queued bytes drops +below the max-bytes limit. + +When max-bytes are queued and after the enough-data signal has been emitted, +block any further push-buffer calls until the amount of queued bytes drops +below the max-bytes limit. + +The GstCaps that will negotiated downstream and will be put +on outgoing buffers. + +The GstCaps that will negotiated downstream and will be put +on outgoing buffers. + +The number of currently queued bytes inside appsrc. + +The total duration in nanoseconds of the data stream. If the total duration is known, it +is recommended to configure it with this property. + +Feature: `v1_10` + + +The total duration in nanoseconds of the data stream. If the total duration is known, it +is recommended to configure it with this property. + +Feature: `v1_10` + + +Make appsrc emit the "need-data", "enough-data" and "seek-data" signals. +This option is by default enabled for backwards compatibility reasons but +can disabled when needed because signal emission is expensive. + +Make appsrc emit the "need-data", "enough-data" and "seek-data" signals. +This option is by default enabled for backwards compatibility reasons but +can disabled when needed because signal emission is expensive. + +The format to use for segment events. When the source is producing +timestamped buffers this property should be set to GST_FORMAT_TIME. + +The format to use for segment events. When the source is producing +timestamped buffers this property should be set to GST_FORMAT_TIME. + +When enabled, appsrc will check GstSegment in GstSample which was +pushed via `AppSrc::push_sample` or "push-sample" signal action. +If a GstSegment is changed, corresponding segment event will be followed +by next data flow. + +FIXME: currently only GST_FORMAT_TIME format is supported and therefore +GstAppSrc::format should be time. However, possibly `AppSrc` can support +other formats. + +Feature: `v1_18` + + +When enabled, appsrc will check GstSegment in GstSample which was +pushed via `AppSrc::push_sample` or "push-sample" signal action. +If a GstSegment is changed, corresponding segment event will be followed +by next data flow. + +FIXME: currently only GST_FORMAT_TIME format is supported and therefore +GstAppSrc::format should be time. However, possibly `AppSrc` can support +other formats. + +Feature: `v1_18` + + +Instruct the source to behave like a live source. This includes that it +will only push out buffers in the PLAYING state. + +Instruct the source to behave like a live source. This includes that it +will only push out buffers in the PLAYING state. + +The maximum amount of bytes that can be queued internally. +After the maximum amount of bytes are queued, appsrc will emit the +"enough-data" signal. + +The maximum amount of bytes that can be queued internally. +After the maximum amount of bytes are queued, appsrc will emit the +"enough-data" signal. + +The minimum latency of the source. A value of -1 will use the default +latency calculations of `gst_base::BaseSrc`. + +The minimum latency of the source. A value of -1 will use the default +latency calculations of `gst_base::BaseSrc`. + +Make appsrc emit the "need-data" signal when the amount of bytes in the +queue drops below this percentage of max-bytes. + +Make appsrc emit the "need-data" signal when the amount of bytes in the +queue drops below this percentage of max-bytes. + +The total size in bytes of the data stream. If the total size is known, it +is recommended to configure it with this property. + +The total size in bytes of the data stream. If the total size is known, it +is recommended to configure it with this property. + +The type of stream that this source is producing. For seekable streams the +application should connect to the seek-data signal. + +The type of stream that this source is producing. For seekable streams the +application should connect to the seek-data signal. The stream type. diff --git a/docs/gstreamer-audio/docs.md b/docs/gstreamer-audio/docs.md index 73854c169..31e480149 100644 --- a/docs/gstreamer-audio/docs.md +++ b/docs/gstreamer-audio/docs.md @@ -338,6 +338,8 @@ Things that subclass need to take care of: PLC, it should also accept NULL data in `handle_frame` and provide for data for indicated duration. +This is an Abstract Base Class, you cannot instantiate it. + # Implements [`AudioDecoderExt`](trait.AudioDecoderExt.html), [`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`AudioDecoderExtManual`](prelude/trait.AudioDecoderExtManual.html) @@ -631,6 +633,16 @@ Maximum number of tolerated consecutive decode errors. See Feature: `v1_18` + +Set of available dithering methods. + +No dithering + +Rectangular dithering + +Triangular dithering (default) + +High frequency triangular dithering This base class is for audio encoders turning raw audio samples into encoded audio data. @@ -725,6 +737,8 @@ Things that subclass need to take care of: * Accept data in `handle_frame` and provide encoded results to `AudioEncoder::finish_frame`. +This is an Abstract Base Class, you cannot instantiate it. + # Implements [`AudioEncoderExt`](trait.AudioEncoderExt.html), [`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`AudioEncoderExtManual`](prelude/trait.AudioEncoderExtManual.html) @@ -1176,6 +1190,18 @@ Layout of the audio samples for the different channels. interleaved audio non-interleaved audio + +Set of available noise shaping methods + +No noise shaping (default) + +Error feedback + +Simple 2-pole noise shaping + +Medium 5-pole noise shaping + +High 8-pole noise shaping The different flags that can be used when packing and unpacking. @@ -1186,6 +1212,23 @@ When the source has a smaller depth to 0. This is likely slightly faster but less accurate. When this flag is not specified, the most significant bits of the source are duplicated in the least significant bits of the destination. + +Different subsampling and upsampling methods + +Duplicates the samples when + upsampling and drops when downsampling + +Uses linear interpolation to reconstruct + missing samples and averaging to downsample + +Uses cubic interpolation + +Uses Blackman-Nuttall windowed sinc interpolation + +Uses Kaiser windowed sinc interpolation + +Feature: `v1_10` + The format of the samples in the ringbuffer. diff --git a/docs/gstreamer-base/docs.md b/docs/gstreamer-base/docs.md index b21468859..7d1d58f19 100644 --- a/docs/gstreamer-base/docs.md +++ b/docs/gstreamer-base/docs.md @@ -97,7 +97,7 @@ of `Adapter` is inside one pad's chain function, in which case access is serialized via the pad's STREAM_LOCK. Note that `Adapter::push` takes ownership of the buffer passed. Use -`gst::Buffer::ref` before pushing it into the adapter if you still want to +`gst_buffer_ref` before pushing it into the adapter if you still want to access the buffer later. The adapter will never modify the data in the buffer pushed in it. @@ -192,7 +192,7 @@ Returns a `gst::Buffer` containing the first `nbytes` of the `self`, but does not flush them from the adapter. See `Adapter::take_buffer` for details. -Caller owns a reference to the returned buffer. `gst::Buffer::unref` after +Caller owns a reference to the returned buffer. `gst_buffer_unref` after usage. Free-function: gst_buffer_unref @@ -203,13 +203,13 @@ the number of bytes to get a `gst::Buffer` containing the first `nbytes` of the adapter, or `None` if `nbytes` bytes are not available. - `gst::Buffer::unref` when no longer needed. + `gst_buffer_unref` when no longer needed. Returns a `gst::Buffer` containing the first `nbytes` of the `self`, but does not flush them from the adapter. See `Adapter::take_buffer_fast` for details. -Caller owns a reference to the returned buffer. `gst::Buffer::unref` after +Caller owns a reference to the returned buffer. `gst_buffer_unref` after usage. Free-function: gst_buffer_unref @@ -220,13 +220,13 @@ the number of bytes to get a `gst::Buffer` containing the first `nbytes` of the adapter, or `None` if `nbytes` bytes are not available. - `gst::Buffer::unref` when no longer needed. + `gst_buffer_unref` when no longer needed. Returns a `gst::BufferList` of buffers containing the first `nbytes` bytes of the `self` but does not flush them from the adapter. See `Adapter::take_buffer_list` for details. -Caller owns the returned list. Call `gst::BufferList::unref` to free +Caller owns the returned list. Call `gst_buffer_list_unref` to free the list after usage. ## `nbytes` the number of bytes to get @@ -241,7 +241,7 @@ Returns a `glib::List` of buffers containing the first `nbytes` bytes of the `self`, but does not flush them from the adapter. See `Adapter::take_list` for details. -Caller owns returned list and contained buffers. `gst::Buffer::unref` each +Caller owns returned list and contained buffers. `gst_buffer_unref` each buffer in the list before freeing the list after usage. ## `nbytes` the number of bytes to get @@ -482,7 +482,7 @@ unset. Since 1.6 this will also copy over all GstMeta of the input buffers except for meta with the `gst::MetaFlags::Pooled` flag or with the "memory" tag. -Caller owns a reference to the returned buffer. `gst::Buffer::unref` after +Caller owns a reference to the returned buffer. `gst_buffer_unref` after usage. Free-function: gst_buffer_unref @@ -493,7 +493,7 @@ the number of bytes to take a `gst::Buffer` containing the first `nbytes` of the adapter, or `None` if `nbytes` bytes are not available. - `gst::Buffer::unref` when no longer needed. + `gst_buffer_unref` when no longer needed. Returns a `gst::Buffer` containing the first `nbytes` of the `self`. The returned bytes will be flushed from the adapter. This function @@ -514,7 +514,7 @@ for meta with the `gst::MetaFlags::Pooled` flag or with the "memory" tag. This function can return buffer up to the return value of `Adapter::available` without making copies if possible. -Caller owns a reference to the returned buffer. `gst::Buffer::unref` after +Caller owns a reference to the returned buffer. `gst_buffer_unref` after usage. Free-function: gst_buffer_unref @@ -525,14 +525,14 @@ the number of bytes to take a `gst::Buffer` containing the first `nbytes` of the adapter, or `None` if `nbytes` bytes are not available. - `gst::Buffer::unref` when no longer needed. + `gst_buffer_unref` when no longer needed. Returns a `gst::BufferList` of buffers containing the first `nbytes` bytes of the `self`. The returned bytes will be flushed from the adapter. When the caller can deal with individual buffers, this function is more performant because no memory should be copied. -Caller owns the returned list. Call `gst::BufferList::unref` to free +Caller owns the returned list. Call `gst_buffer_list_unref` to free the list after usage. ## `nbytes` the number of bytes to take @@ -548,7 +548,7 @@ Returns a `glib::List` of buffers containing the first `nbytes` bytes of the When the caller can deal with individual buffers, this function is more performant because no memory should be copied. -Caller owns returned list and contained buffers. `gst::Buffer::unref` each +Caller owns returned list and contained buffers. `gst_buffer_unref` each buffer in the list before freeing the list after usage. ## `nbytes` the number of bytes to take @@ -576,16 +576,35 @@ Control is given to the subclass when all pads have data. * When data is queued on all pads, the aggregate vmethod is called. * One can peek at the data on any given GstAggregatorPad with the - gst_aggregator_pad_peek_buffer () method, and remove it from the pad + `AggregatorPadExt::peek_buffer` method, and remove it from the pad with the gst_aggregator_pad_pop_buffer () method. When a buffer has been taken with pop_buffer (), a new buffer can be queued on that pad. + * When `AggregatorPadExt::peek_buffer` or `AggregatorPadExt::has_buffer` + are called, a reference is taken to the returned buffer, which stays + valid until either: + + - `AggregatorPadExt::pop_buffer` is called, in which case the caller + is guaranteed that the buffer they receive is the same as the peeked + buffer. + - `AggregatorPadExt::drop_buffer` is called, in which case the caller + is guaranteed that the dropped buffer is the one that was peeked. + - the subclass implementation of `AggregatorClass.aggregate` returns. + + Subsequent calls to `AggregatorPadExt::peek_buffer` or + `AggregatorPadExt::has_buffer` return / check the same buffer that was + returned / checked, until one of the conditions listed above is met. + + Subclasses are only allowed to call these methods from the aggregate + thread. + * If the subclass wishes to push a buffer downstream in its aggregate implementation, it should do so through the - gst_aggregator_finish_buffer () method. This method will take care + `Aggregator::finish_buffer` method. This method will take care of sending and ordering mandatory events such as stream start, caps - and segment. + and segment. Buffer lists can also be pushed out with + `Aggregator::finish_buffer_list`. * Same goes for EOS events, which should not be pushed directly by the subclass, it should instead return GST_FLOW_EOS in its aggregate @@ -602,6 +621,8 @@ Control is given to the subclass when all pads have data. This class used to live in gst-plugins-bad and was moved to core. +This is an Abstract Base Class, you cannot instantiate it. + Feature: `v1_14` # Implements @@ -624,6 +645,15 @@ Feature: `v1_14` ## `buffer` the `gst::Buffer` to push. + +This method will push the provided output buffer list downstream. If needed, +mandatory events such as stream-start, caps, and segment events will be +sent before pushing the buffer. + +Feature: `v1_18` + +## `bufferlist` +the `gst::BufferList` to push. Lets `Aggregator` sub-classes get the memory `allocator` acquired by the base class and its `params`. @@ -671,6 +701,44 @@ Feature: `v1_18` # Returns `true` if the negotiation succeeded, else `false`. + +Use this function to determine what input buffers will be aggregated +to produce the next output buffer. This should only be called from +a `Aggregator::samples-selected` handler, and can be used to precisely +control aggregating parameters for a given set of input samples. + +Feature: `v1_18` + + +# Returns + +The sample that is about to be aggregated. It may hold a `gst::Buffer` + or a `gst::BufferList`. The contents of its info structure is subclass-dependent, + and documented on a subclass basis. The buffers held by the sample are + not writable. + +Subclasses should call this when they have prepared the +buffers they will aggregate for each of their sink pads, but +before using any of the properties of the pads that govern +*how* aggregation should be performed, for example z-index +for video aggregators. + +If `AggregatorExt::update_segment` is used by the subclass, +it MUST be called before `Aggregator::selected_samples`. + +This function MUST only be called from the `AggregatorClass::aggregate`() +function. + +Feature: `v1_18` + +## `pts` +The presentation timestamp of the next output buffer +## `dts` +The decoding timestamp of the next output buffer +## `duration` +The duration of the next output buffer +## `info` +a `gst::Structure` containing additional information Lets `Aggregator` sub-classes tell the baseclass what their internal latency is. Will also post a LATENCY message on the bus so the pipeline @@ -708,6 +776,36 @@ Subclasses should use this to update the segment on their source pad, instead of directly pushing new segment events downstream. +Subclasses MUST call this before `Aggregator::selected_samples`, +if it is used at all. + +Feature: `v1_18` + + +Signals that the `Aggregator` subclass has selected the next set +of input samples it will aggregate. Handlers may call +`AggregatorExt::peek_next_sample` at that point. + +Feature: `v1_18` + +## `segment` +The `gst::Segment` the next output buffer is part of +## `pts` +The presentation timestamp of the next output buffer +## `dts` +The decoding timestamp of the next output buffer +## `duration` +The duration of the next output buffer +## `info` +a `gst::Structure` containing additional information + +Enables the emission of signals such as `Aggregator::samples-selected` + +Feature: `v1_18` + + +Enables the emission of signals such as `Aggregator::samples-selected` + Feature: `v1_18` @@ -953,6 +1051,8 @@ Things that subclass need to take care of: These rates are also used to update (estimated) duration at regular frame intervals. +This is an Abstract Base Class, you cannot instantiate it. + # Implements [`BaseParseExt`](trait.BaseParseExt.html), [`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`BaseParseExtManual`](prelude/trait.BaseParseExtManual.html) @@ -1337,6 +1437,8 @@ The `BaseSink:async` property can be used to instruct the sink to never perform an ASYNC state change. This feature is mostly usable when dealing with non-synchronized streams or sparse streams. +This is an Abstract Base Class, you cannot instantiate it. + # Implements [`BaseSinkExt`](trait.BaseSinkExt.html), [`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`BaseSinkExtManual`](prelude/trait.BaseSinkExtManual.html) @@ -1388,7 +1490,7 @@ Free-function: gst_sample_unref # Returns -a `gst::Sample`. `gst::Sample::unref` after +a `gst::Sample`. `gst_sample_unref` after usage. This function returns `None` when no buffer has arrived in the sink yet or when the sink is not in PAUSED or PLAYING. @@ -1859,6 +1961,8 @@ After the EOS has been sent to the element, the application should wait for an EOS message to be posted on the pipeline's bus. Once this EOS message is received, it may safely shut down the entire pipeline. +This is an Abstract Base Class, you cannot instantiate it. + # Implements [`BaseSrcExt`](trait.BaseSrcExt.html), [`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`BaseSrcExtManual`](prelude/trait.BaseSrcExtManual.html) @@ -1877,8 +1981,7 @@ Unref the `allocator` after usage. the `gst::Allocator` used ## `params` -the -`gst::AllocationParams` of `allocator` +the `gst::AllocationParams` of `allocator` Get the number of bytes that `self` will push out with each buffer. @@ -1931,6 +2034,10 @@ as the stream-lock needs to be held. The format for the new segment will be the current format of the source, as configured with `BaseSrcExt::set_format` + +# Deprecated since 1.18 + +Use `BaseSrc::new_segment` ## `start` The new start value for the segment ## `stop` @@ -1941,6 +2048,25 @@ The new time value for the start of the new segment # Returns `true` if preparation of the seamless segment succeeded. + +Prepare a new segment for emission downstream. This function must +only be called by derived sub-classes, and only from the `BaseSrcClass::create` function, +as the stream-lock needs to be held. + +The format for the `segment` must be identical with the current format +of the source, as configured with `BaseSrcExt::set_format`. + +The format of `self` must not be `gst::Format::Undefined` and the format +should be configured via `BaseSrcExt::set_format` before calling this method. + +Feature: `v1_18` + +## `segment` +a pointer to a `gst::Segment` + +# Returns + +`true` if preparation of new segment succeeded. Query the source for the latency parameters. `live` will be `true` when `self` is configured as a live source. `min_latency` and `max_latency` will be set @@ -1963,7 +2089,7 @@ Configure async behaviour in `self`, no state change will block. The open, close, start, stop, play and pause virtual methods will be executed in a different thread and are thus allowed to perform blocking operations. Any blocking operation should be unblocked with the unlock vmethod. -## `async` +## `async_` new async mode If `automatic_eos` is `true`, `self` will automatically go EOS if a buffer @@ -2179,6 +2305,8 @@ It provides for: * Implied `true` if no transform function is implemented. * Implied `false` if ONLY transform function is implemented. +This is an Abstract Base Class, you cannot instantiate it. + # Implements [`BaseTransformExt`](trait.BaseTransformExt.html), [`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`BaseTransformExtManual`](prelude/trait.BaseTransformExtManual.html) @@ -2197,8 +2325,7 @@ Unref the `allocator` after use. the `gst::Allocator` used ## `params` -the -`gst::AllocationParams` of `allocator` +the `gst::AllocationParams` of `allocator` # Returns diff --git a/docs/gstreamer-gl/docs.md b/docs/gstreamer-gl/docs.md index 1c57ed035..67271b94a 100644 --- a/docs/gstreamer-gl/docs.md +++ b/docs/gstreamer-gl/docs.md @@ -125,6 +125,8 @@ output `gst::Caps` of the limitation on OpenGL context, this object is not thread safe unless specified and must only be activated in a single thread. +This is an Abstract Base Class, you cannot instantiate it. + # Implements [`GLContextExt`](trait.GLContextExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`GLContextExtManual`](prelude/trait.GLContextExtManual.html) @@ -486,7 +488,7 @@ Trait containing all `GLDisplay` methods. # Implementors -[`GLDisplayEGL`](struct.GLDisplayEGL.html), [`GLDisplayWayland`](struct.GLDisplayWayland.html), [`GLDisplayX11`](struct.GLDisplayX11.html), [`GLDisplay`](struct.GLDisplay.html) +[`GLDisplay`](struct.GLDisplay.html) # Returns @@ -539,14 +541,6 @@ a comparison function to run The first `GLWindow` that causes a match from `compare_func` - - -Feature: `v1_18` - - -# Returns - -whether the context belongs to a foreign display see `GLDisplayExt::filter_gl_api` for what the returned value represents @@ -612,31 +606,6 @@ other context to share resources with. # Returns the new context. - -the contents of a `GLDisplayEGL` are private and should only be accessed -through the provided API - -# Implements - -[`GLDisplayExt`](trait.GLDisplayExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html) - -Create a new `GLDisplayEGL` using the default EGL_DEFAULT_DISPLAY. - -# Returns - -a new `GLDisplayEGL` or `None` - -Attempts to create a new `EGLDisplay` from `display`. If `type_` is -`GLDisplayType::Any`, then `display` must be 0. `type_` must not be -`GLDisplayType::None`. -## `type_` -a `GLDisplayType` -## `display` -pointer to a display (or 0) - -# Returns - -A `EGLDisplay` or `EGL_NO_DISPLAY` no display type @@ -660,54 +629,6 @@ Mesa3D GBM display EGLDevice display (Since: 1.18) any display type - -the contents of a `GLDisplayWayland` are private and should only be accessed -through the provided API - -# Implements - -[`GLDisplayExt`](trait.GLDisplayExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html) - -Create a new `GLDisplayWayland` from the wayland display name. See `wl_display_connect`() -for details on what is a valid name. -## `name` -a display name - -# Returns - -a new `GLDisplayWayland` or `None` - -Creates a new display connection from a wl_display Display. -## `display` -an existing, wayland display - -# Returns - -a new `GLDisplayWayland` - -the contents of a `GLDisplayX11` are private and should only be accessed -through the provided API - -# Implements - -[`GLDisplayExt`](trait.GLDisplayExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html) - -Create a new `GLDisplayX11` from the x11 display name. See `XOpenDisplay`() -for details on what is a valid name. -## `name` -a display name - -# Returns - -a new `GLDisplayX11` or `None` - -Creates a new display connection from a X11 Display. -## `display` -an existing, x11 display - -# Returns - -a new `GLDisplayX11` Single component replicated across R, G, and B textures @@ -1427,14 +1348,21 @@ Dubois optimised Red-Cyan anaglyph Dubois optimised Amber-Blue anaglyph +The OpenGL texture target that an OpenGL texture can be bound to. The +`gst_gl_value_set_texture_target_from_mask`, +`gst_gl_value_get_texture_target_mask`, and +`gst_gl_value_set_texture_target` functions can be used for handling texture +targets with `gobject::Value`'s when e.g. dealing with `gst::Caps`. no texture target -2D texture target +2D texture target (`GL_TEXTURE_2D`) rectangle texture target + (`GL_TEXTURE_RECTANGLE`) external oes texture target + (`GL_TEXTURE_EXTERNAL_OES`) `GLUpload` is an object that uploads data from system memory into GL textures. @@ -1572,6 +1500,8 @@ the converted `gst::Caps` GstGLWindow represents a window that elements can render into. A window can either be a user visible window (onscreen) or hidden (offscreen). +This is an Abstract Base Class, you cannot instantiate it. + # Implements [`GLWindowExt`](trait.GLWindowExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html) diff --git a/docs/gstreamer-gl/egl/docs.md b/docs/gstreamer-gl/egl/docs.md new file mode 100644 index 000000000..c7a572c9b --- /dev/null +++ b/docs/gstreamer-gl/egl/docs.md @@ -0,0 +1,37 @@ + + +the contents of a `GLDisplayEGL` are private and should only be accessed +through the provided API + +# Implements + +[`gst_gl::GLDisplayExt`](../gst_gl/trait.GLDisplayExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html) + +Create a new `GLDisplayEGL` using the default EGL_DEFAULT_DISPLAY. + +# Returns + +a new `GLDisplayEGL` or `None` + +Creates a EGL display connection from a native Display. + +This function will return the same value for multiple calls with the same +`display`. +## `display` +an existing `gst_gl::GLDisplay` + +# Returns + +a new `GLDisplayEGL` + +Attempts to create a new `EGLDisplay` from `display`. If `type_` is +`gst_gl::GLDisplayType::Any`, then `display` must be 0. `type_` must not be +`gst_gl::GLDisplayType::None`. +## `type_` +a `gst_gl::GLDisplayType` +## `display` +pointer to a display (or 0) + +# Returns + +A `EGLDisplay` or `EGL_NO_DISPLAY` diff --git a/docs/gstreamer-gl/wayland/docs.md b/docs/gstreamer-gl/wayland/docs.md new file mode 100644 index 000000000..49e039e7a --- /dev/null +++ b/docs/gstreamer-gl/wayland/docs.md @@ -0,0 +1,25 @@ + + +the contents of a `GLDisplayWayland` are private and should only be accessed +through the provided API + +# Implements + +[`gst_gl::GLDisplayExt`](../gst_gl/trait.GLDisplayExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html) + +Create a new `GLDisplayWayland` from the wayland display name. See `wl_display_connect`() +for details on what is a valid name. +## `name` +a display name + +# Returns + +a new `GLDisplayWayland` or `None` + +Creates a new display connection from a wl_display Display. +## `display` +an existing, wayland display + +# Returns + +a new `GLDisplayWayland` diff --git a/docs/gstreamer-gl/x11/docs.md b/docs/gstreamer-gl/x11/docs.md new file mode 100644 index 000000000..7b686810d --- /dev/null +++ b/docs/gstreamer-gl/x11/docs.md @@ -0,0 +1,25 @@ + + +the contents of a `GLDisplayX11` are private and should only be accessed +through the provided API + +# Implements + +[`gst_gl::GLDisplayExt`](../gst_gl/trait.GLDisplayExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html) + +Create a new `GLDisplayX11` from the x11 display name. See `XOpenDisplay`() +for details on what is a valid name. +## `name` +a display name + +# Returns + +a new `GLDisplayX11` or `None` + +Creates a new display connection from a X11 Display. +## `display` +an existing, x11 display + +# Returns + +a new `GLDisplayX11` diff --git a/docs/gstreamer-pbutils/docs.md b/docs/gstreamer-pbutils/docs.md index 9edbd8304..e4be06a57 100644 --- a/docs/gstreamer-pbutils/docs.md +++ b/docs/gstreamer-pbutils/docs.md @@ -382,7 +382,7 @@ a `glib::List` of `DiscovererStreamInfo` # Returns the `gst::Caps` of the stream. Unref with -`gst::Caps::unref` after usage. +`gst_caps_unref` after usage. # Deprecated @@ -650,7 +650,7 @@ Computes the full output caps that this `self` will be able to consume. # Returns The full caps the given `self` can consume. Call -`gst::Caps::unref` when you are done with the caps. +`gst_caps_unref` when you are done with the caps. # Returns @@ -752,14 +752,17 @@ for more about restrictions. Does not apply to `EncodingContainerProfile`. ## `restriction` the restriction to apply -If using a single segment, buffers will be retimestamped -and segments will be eat so as to appear as one segment. +If using a single segment, buffers will be retimestamped and segments will be +eat so as to appear as one segment. + +> *NOTE*: Single segment is not property supported when using +> `encodebin:avoid-reencoding` Feature: `v1_18` ## `single_segment` -`true` if the stream represented by `self` should use a single -segment before the encoder `false` otherwise. +`true` if the stream represented by `self` should use a +single segment before the encoder, `false` otherwise. Collection of `EncodingProfile` for a specific target or use-case. @@ -925,6 +928,8 @@ Get the pass number if this is part of a multi-pass profile. The pass number. Starts at 1 for multi-pass. 0 if this is not a multi-pass profile +> *NOTE*: Fixed framerate won't be enforced when `encodebin:avoid-reencoding` +> is set. # Returns diff --git a/docs/gstreamer-player/docs.md b/docs/gstreamer-player/docs.md index f77cfe36f..738129151 100644 --- a/docs/gstreamer-player/docs.md +++ b/docs/gstreamer-player/docs.md @@ -571,6 +571,8 @@ Base structure for information concerning a media stream. Depending on the stream type, one can find more media-specific information in `PlayerVideoInfo`, `PlayerAudioInfo`, `PlayerSubtitleInfo`. +This is an Abstract Base Class, you cannot instantiate it. + # Implements [`PlayerStreamInfoExt`](trait.PlayerStreamInfoExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html) diff --git a/docs/gstreamer-rtsp-server/docs.md b/docs/gstreamer-rtsp-server/docs.md index 9874cf2dc..c0cd19fa6 100644 --- a/docs/gstreamer-rtsp-server/docs.md +++ b/docs/gstreamer-rtsp-server/docs.md @@ -2372,7 +2372,7 @@ Retrieve the current caps of `self`. # Returns the `gst::Caps` of `self`. -use `gst::Caps::unref` after usage. +use `gst_caps_unref` after usage. Get the control string to identify this stream. diff --git a/docs/gstreamer-video/docs.md b/docs/gstreamer-video/docs.md index 38be0105f..5232726d8 100644 --- a/docs/gstreamer-video/docs.md +++ b/docs/gstreamer-video/docs.md @@ -292,13 +292,15 @@ non-linear RGB (R'G'B') unknown matrix -identity matrix +identity matrix. Order of coefficients is +actually GBR, also IEC 61966-2-1 (sRGB) -FCC color matrix +FCC Title 47 Code of Federal Regulations 73.682 (a)(20) -ITU-R BT.709 color matrix +ITU-R BT.709 color matrix, also ITU-R BT1361 +/ IEC 61966-2-4 xvYCC709 / SMPTE RP177 Annex B -ITU-R BT.601 color matrix +ITU-R BT.601 color matrix, also SMPTE170M / ITU-R BT1358 525 / ITU-R BT1700 NTSC SMPTE 240M color matrix @@ -309,29 +311,38 @@ the CIE XYZ colorspace. unknown color primaries -BT709 primaries +BT709 primaries, also ITU-R BT1361 / IEC +61966-2-4 / SMPTE RP177 Annex B -BT470M primaries +BT470M primaries, also FCC Title 47 Code +of Federal Regulations 73.682 (a)(20) -BT470BG primaries +BT470BG primaries, also ITU-R BT601-6 +625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM -SMPTE170M primaries +SMPTE170M primaries, also ITU-R +BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC SMPTE240M primaries -Generic film +Generic film (colour filters using +Illuminant C) -BT2020 primaries. Since: 1.6 +ITU-R BT2020 primaries. Since: 1.6 Adobe RGB primaries. Since: 1.8 -SMPTE ST 428 primaries. Since: 1.16 +SMPTE ST 428 primaries (CIE 1931 +XYZ). Since: 1.16 -SMPTE RP 431 primaries. Since: 1.16 +SMPTE RP 431 primaries (ST 431-2 +(2011) / DCI P3). Since: 1.16 -SMPTE EG 432 primaries. Since: 1.16 +SMPTE EG 432 primaries (ST 432-1 +(2010) / P3 D65). Since: 1.16 -EBU 3213 primaries. Since: 1.16 +EBU 3213 primaries (JEDEC P22 +phosphors). Since: 1.16 Possible color range values. These constants are defined for 8 bit color values and can be scaled for other bit depths. @@ -447,6 +458,8 @@ The bare minimum that a functional subclass needs to implement is: * Accept data in `handle_frame` and provide decoded results to `VideoDecoder::finish_frame`, or call `VideoDecoder::drop_frame`. +This is an Abstract Base Class, you cannot instantiate it. + # Implements [`VideoDecoderExt`](trait.VideoDecoderExt.html), [`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`VideoDecoderExtManual`](prelude/trait.VideoDecoderExtManual.html) @@ -680,7 +693,7 @@ Feature: `v1_16` ## `fmt` a `VideoFormat` -## `mode` +## `interlace_mode` A `VideoInterlaceMode` ## `width` The width in pixels @@ -859,6 +872,8 @@ use `VideoEncoderExt::get_max_encode_time` to check if input frames are already late and drop them right away to give a chance to the pipeline to catch up. +This is an Abstract Base Class, you cannot instantiate it. + # Implements [`VideoEncoderExt`](trait.VideoEncoderExt.html), [`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`VideoEncoderExtManual`](prelude/trait.VideoEncoderExtManual.html) @@ -1137,6 +1152,8 @@ Provides useful functions and a base class for video filters. The videofilter will by default enable QoS on the parent GstBaseTransform to implement frame dropping. +This is an Abstract Base Class, you cannot instantiate it. + # Implements [`gst_base::BaseTransformExt`](../gst_base/trait.BaseTransformExt.html), [`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html) @@ -1352,6 +1369,10 @@ packed 4:2:2 YUV, 12 bits per channel (Y-U-Y-V) (Since: 1.18) packed 4:4:4:4 YUV, 12 bits per channel(U-Y-V-A...) (Since: 1.18) packed 4:4:4:4 YUV, 12 bits per channel(U-Y-V-A...) (Since: 1.18) + +NV12 with 4x4 tiles in linear order. + +NV12 with 32x32 tiles in linear order. The different video flags that a format info can have. @@ -1570,7 +1591,7 @@ frames contains both interlaced and 1 field is stored in one buffer, `GST_VIDEO_BUFFER_FLAG_TF` or `GST_VIDEO_BUFFER_FLAG_BF` indicates if the buffer is carrying the top or bottom field, respectively. The top and - bottom buffers are expected to alternate in the pipeline, with this mode + bottom buffers must alternate in the pipeline, with this mode (Since: 1.16). Different color matrix conversion modes @@ -1710,6 +1731,108 @@ Multiple views are provided as separate `gst::Memory` framebuffers attached to each `gst::Buffer`, described by the `GstVideoMultiviewMeta` and `VideoMeta`(s) + +The interface allows unified access to control flipping and autocenter +operation of video-sources or operators. + +# Implements + +[`VideoOrientationExt`](trait.VideoOrientationExt.html) + +Trait containing all `VideoOrientation` methods. + +# Implementors + +[`VideoOrientation`](struct.VideoOrientation.html) + +Get the horizontal centering offset from the given object. +## `center` +return location for the result + +# Returns + +`true` in case the element supports centering + +Get the horizontal flipping state (`true` for flipped) from the given object. +## `flip` +return location for the result + +# Returns + +`true` in case the element supports flipping + +Get the vertical centering offset from the given object. +## `center` +return location for the result + +# Returns + +`true` in case the element supports centering + +Get the vertical flipping state (`true` for flipped) from the given object. +## `flip` +return location for the result + +# Returns + +`true` in case the element supports flipping + +Set the horizontal centering offset for the given object. +## `center` +centering offset + +# Returns + +`true` in case the element supports centering + +Set the horizontal flipping state (`true` for flipped) for the given object. +## `flip` +use flipping + +# Returns + +`true` in case the element supports flipping + +Set the vertical centering offset for the given object. +## `center` +centering offset + +# Returns + +`true` in case the element supports centering + +Set the vertical flipping state (`true` for flipped) for the given object. +## `flip` +use flipping + +# Returns + +`true` in case the element supports flipping + +The different video orientation methods. + +Identity (no rotation) + +Rotate clockwise 90 degrees + +Rotate 180 degrees + +Rotate counter-clockwise 90 degrees + +Flip horizontally + +Flip vertically + +Flip across upper left/lower right diagonal + +Flip across upper right/lower left diagonal + +Select flip method based on image-orientation tag + +Current status depends on plugin internal setup + +Feature: `v1_10` + The `VideoOverlay` interface is used for 2 main purposes : @@ -2156,6 +2279,8 @@ Every four adjacent blocks - two horizontally and two vertically are grouped together and are located in memory in Z or flipped Z order. In case of odd rows, the last row of blocks is arranged in linear order. + +Tiles are in row order. `field_count` must be 0 for progressive video and 1 or 2 for interlaced. @@ -2537,21 +2662,22 @@ Gamma 2.0 curve Gamma 2.2 curve Gamma 2.2 curve with a linear segment in the lower - range + range, also ITU-R BT470M / ITU-R BT1700 625 PAL & + SECAM / ITU-R BT1361 Gamma 2.2 curve with a linear segment in the lower range Gamma 2.4 curve with a linear segment in the lower - range + range. IEC 61966-2-1 (sRGB or sYCC) -Gamma 2.8 curve +Gamma 2.8 curve, also ITU-R BT470BG Logarithmic transfer characteristic 100:1 range Logarithmic transfer characteristic - 316.22777:1 range + 316.22777:1 range (100 * sqrt(10) : 1) Gamma 2.2 curve with a linear segment in the lower range. Used for BT.2020 with 12 bits per @@ -2561,7 +2687,7 @@ Gamma 2.19921875. Since: 1.8 Rec. ITU-R BT.2020-2 with 10 bits per component. (functionally the same as the values - GST_VIDEO_TRANSFER_BT709 and GST_VIDEO_TRANSFER_BT2020_12). + GST_VIDEO_TRANSFER_BT709 and GST_VIDEO_TRANSFER_BT601). Since: 1.18 SMPTE ST 2084 for 10, 12, 14, and 16-bit systems. @@ -2571,3 +2697,5 @@ SMPTE ST 2084 for 10, 12, 14, and 16-bit systems. Association of Radio Industries and Businesses (ARIB) STD-B67 and Rec. ITU-R BT.2100-1 hybrid loggamma (HLG) system Since: 1.18 + +also known as SMPTE170M / ITU-R BT1358 525 or 625 / ITU-R BT1700 NTSC diff --git a/docs/gstreamer-webrtc/docs.md b/docs/gstreamer-webrtc/docs.md index 940d161a0..be0d30ddb 100644 --- a/docs/gstreamer-webrtc/docs.md +++ b/docs/gstreamer-webrtc/docs.md @@ -38,6 +38,8 @@ connected +This is an Abstract Base Class, you cannot instantiate it. + Feature: `v1_18` # Implements @@ -170,6 +172,8 @@ controlling +This is an Abstract Base Class, you cannot instantiate it. + # Implements [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html) @@ -219,6 +223,8 @@ Feature: `v1_16` +This is an Abstract Base Class, you cannot instantiate it. + # Implements [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html) diff --git a/docs/gstreamer/docs.md b/docs/gstreamer/docs.md index b48f666e2..1153fd08f 100644 --- a/docs/gstreamer/docs.md +++ b/docs/gstreamer/docs.md @@ -1,4 +1,19 @@ + +Parameters to control the allocation of memory + +Create a copy of `self`. + +Free-function: gst_allocation_params_free + +# Returns + +a new #`AllocationParams`, free with +`AllocationParams::free`. + +Free `self` + +Initialize `self` to its default values Memory is usually created by allocators with a `AllocatorExt::alloc` method call. When `None` is used as the allocator, the default allocator will @@ -12,9 +27,11 @@ default allocator. New memory can be created with `Memory::new_wrapped` that wraps the memory allocated elsewhere. +This is an Abstract Base Class, you cannot instantiate it. + # Implements -[`AllocatorExt`](trait.AllocatorExt.html), [`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`AllocatorExtManual`](prelude/trait.AllocatorExtManual.html) +[`AllocatorExt`](trait.AllocatorExt.html), [`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html) Trait containing all `Allocator` methods. @@ -547,7 +564,7 @@ the end of the buffer. These can only be meaningfully interpreted if you know the media type of the buffer (the preceding CAPS event). Either or both can be set to `GST_BUFFER_OFFSET_NONE`. -`Buffer::ref` is used to increase the refcount of a buffer. This must be +`gst_buffer_ref` is used to increase the refcount of a buffer. This must be done when you want to keep a handle to the buffer after pushing it to the next element. The buffer refcount determines the writability of the buffer, a buffer is only writable when the refcount is exactly 1, i.e. when the caller @@ -576,7 +593,7 @@ Metadata can be retrieved with `Buffer::get_meta`. See also `Meta` An element should either unref the buffer or push it out on a src pad using `Pad::push` (see `Pad`). -Buffers are usually freed by unreffing them with `Buffer::unref`. When +Buffers are usually freed by unreffing them with `gst_buffer_unref`. When the refcount drops to 0, any memory and metadata pointed to by the buffer is unreffed as well. Buffers allocated from a `BufferPool` will be returned to the pool when the refcount drops to 0. @@ -753,16 +770,6 @@ 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 only copy the buffer's -data to a newly allocated memory if needed (if the type of memory -requires it), otherwise the underlying data is just referenced. -Check `Buffer::copy_deep` if you want to force the data -to be copied to newly allocated memory. - -# Returns - -a new copy of `self`. Create a copy of the given buffer. This will make a newly allocated copy of the data the source buffer contains. @@ -1189,18 +1196,6 @@ This function is identical to `Buffer::insert_memory` with an index of 0. See `Buffer::insert_memory` for more details. ## `mem` a `Memory`. - -Increases the refcount of the given buffer by one. - -Note that the refcount affects the writability -of `self` and its metadata, see `gst_buffer_is_writable`. -It is important to note that keeping additional references to -GstBuffer instances can potentially increase the number -of memcpy operations in a pipeline. - -# Returns - -`self` Remove all the memory blocks in `self`. @@ -1287,9 +1282,6 @@ the new size Release the memory previously mapped with `Buffer::map`. ## `info` a `MapInfo` - -Decreases the refcount of the buffer. If the refcount reaches 0, the buffer -with the associated metadata and memory will be freed. Clears one or more buffer flags. @@ -1311,23 +1303,6 @@ together to make room for the new block. # Returns the maximum amount of memory blocks that a buffer can hold. - -Modifies a pointer to a `Buffer` to point to a different `Buffer`. The -modification is done atomically (so this is useful for ensuring thread safety -in some cases), and the reference counts are updated appropriately (the old -buffer is unreffed, the new is reffed). - -Either `nbuf` or the `Buffer` pointed to by `obuf` may be `None`. -## `obuf` -pointer to a pointer to - a `Buffer` to be replaced. -## `nbuf` -pointer to a `Buffer` that will - replace the buffer pointed to by `obuf`. - -# Returns - -`true` when `obuf` was different from `nbuf`. A set of flags that can be provided to the `Buffer::copy_into` function to specify which items should be copied. @@ -1421,7 +1396,7 @@ Free-function: gst_buffer_list_unref # Returns -the new `BufferList`. `BufferList::unref` +the new `BufferList`. `gst_buffer_list_unref` after usage. Creates a new, empty `BufferList`. The caller is responsible for unreffing @@ -1434,7 +1409,7 @@ an initial reserved size # Returns -the new `BufferList`. `BufferList::unref` +the new `BufferList`. `gst_buffer_list_unref` after usage. Calculates the size of the data contained in buffer list by adding the @@ -1446,14 +1421,6 @@ Feature: `v1_14` # Returns the size of the data contained in buffer list in bytes. - -Create a shallow copy of the given buffer list. This will make a newly -allocated copy of the source list with copies of buffer pointers. The -refcount of buffers pointed to will be increased by one. - -# Returns - -a new copy of `self`. Create a copy of the given buffer list. This will make a newly allocated copy of the buffer that the source buffer list contains. @@ -1520,17 +1487,6 @@ Returns the number of buffers in `self`. # Returns the number of buffers in the buffer list - -Increases the refcount of the given buffer list by one. - -Note that the refcount affects the writability of `self` and its data, see -`gst_buffer_list_make_writable`. It is important to note that keeping -additional references to GstBufferList instances can potentially increase -the number of memcpy operations in a pipeline. - -# Returns - -`self` Remove `length` buffers starting from `idx` in `self`. The following buffers are moved to close the gap. @@ -1538,9 +1494,6 @@ are moved to close the gap. the index ## `length` the amount to remove - -Decreases the refcount of the buffer list. If the refcount reaches 0, the -buffer list will be freed. A `BufferPool` is an object that can be used to pre-allocate and recycle buffers of the same size and with the same properties. @@ -1970,7 +1923,7 @@ can set a new one. The bus watch will only work if a GLib main loop is being run. When `func` is called, the message belongs to the caller; if you want to -keep a copy of it, call `Message::ref` before leaving `func`. +keep a copy of it, call `gst_message_ref` before leaving `func`. The watch can be removed using `Bus::remove_watch` or by returning `false` from `func`. If the watch was added to the default main context it is also @@ -2121,7 +2074,7 @@ indefinitely. the message that was received, or `None` if the poll timed out. The message is taken from the - bus and needs to be unreffed with `Message::unref` after + bus and needs to be unreffed with `gst_message_unref` after usage. Get a message from the bus. @@ -2130,7 +2083,7 @@ Get a message from the bus. the `Message` that is on the bus, or `None` if the bus is empty. The message is taken from - the bus and needs to be unreffed with `Message::unref` after + the bus and needs to be unreffed with `gst_message_unref` after usage. MT safe. @@ -2148,7 +2101,7 @@ message types to take into account the next `Message` matching `type_` that is on the bus, or `None` if the bus is empty or there is no message matching `type_`. The message is taken from the bus - and needs to be unreffed with `Message::unref` after usage. + and needs to be unreffed with `gst_message_unref` after usage. MT safe. @@ -2221,7 +2174,7 @@ a timeout the `Message` that is on the bus after the specified timeout or `None` if the bus is empty after the timeout expired. The message is taken from the bus - and needs to be unreffed with `Message::unref` after usage. + and needs to be unreffed with `gst_message_unref` after usage. MT safe. @@ -2242,7 +2195,7 @@ message types to take into account, GST_MESSAGE_ANY for any type a `Message` matching the filter in `types`, or `None` if no matching message was found on the bus until the timeout expired. The message is taken from - the bus and needs to be unreffed with `Message::unref` after + the bus and needs to be unreffed with `gst_message_unref` after usage. MT safe. @@ -2396,11 +2349,11 @@ a `Caps` to intersect Creates a new `Caps` as a copy of the old `self`. The new caps will have a refcount of 1, owned by the caller. The structures are copied as well. -Note that this function is the semantic equivalent of a `Caps::ref` +Note that this function is the semantic equivalent of a `gst_caps_ref` followed by a `gst_caps_make_writable`. If you only want to hold on to a -reference to the data, you should use `Caps::ref`. +reference to the data, you should use `gst_caps_ref`. -When you are finished with the caps, call `Caps::unref` on it. +When you are finished with the caps, call `gst_caps_unref` on it. # Returns @@ -2435,7 +2388,7 @@ fixated with `Structure::fixate`. This function takes ownership of `self` and will call `gst_caps_make_writable` on it so you must not use `self` afterwards unless you keep an additional -reference to it with `Caps::ref`. +reference to it with `gst_caps_ref`. Note that it is not guaranteed that the returned caps have exactly one structure. If `self` are empty caps then then returned caps will be @@ -2662,24 +2615,11 @@ Returns a `Caps` that represents the same set of formats as This function takes ownership of `self` and will call `gst_caps_make_writable` on it so you must not use `self` afterwards unless you keep an additional -reference to it with `Caps::ref`. +reference to it with `gst_caps_ref`. # Returns the normalized `Caps` - -Add a reference to a `Caps` object. - -From this point on, until the caller calls `Caps::unref` or -`gst_caps_make_writable`, it is guaranteed that the caps object will not -change. This means its structures won't change, etc. To use a `Caps` -object, you must always have a refcount on it -- either the one made -implicitly by e.g. `Caps::new_simple`, or via taking one explicitly with -this function. - -# Returns - -the same `Caps` object. removes the structure with the given index from the list of structures contained in `self`. @@ -2726,7 +2666,7 @@ merged are also merged. This function takes ownership of `self` and will call `gst_caps_make_writable` on it if necessary, so you must not use `self` afterwards unless you keep an -additional reference to it with `Caps::ref`. +additional reference to it with `gst_caps_ref`. This method does not preserve the original order of `self`. @@ -2776,7 +2716,7 @@ fixating. This function takes ownership of `self` and will call `gst_caps_make_writable` on it if necessary, so you must not use `self` afterwards unless you keep an -additional reference to it with `Caps::ref`. +additional reference to it with `gst_caps_ref`. Note that it is not guaranteed that the returned caps have exactly one structure. If `self` is any or empty caps then then returned caps will be @@ -2785,9 +2725,6 @@ the same and contain no structure at all. # Returns truncated caps - -Unref a `Caps` and and free all its structures and the -structures' values when the refcount reaches 0. Converts `caps` from a string representation. @@ -2799,37 +2736,6 @@ a string to convert to `Caps` # Returns a newly allocated `Caps` - -Modifies a pointer to a `Caps` to point to a different `Caps`. The -modification is done atomically (so this is useful for ensuring thread safety -in some cases), and the reference counts are updated appropriately (the old -caps is unreffed, the new is reffed). - -Either `new_caps` or the `Caps` pointed to by `old_caps` may be `None`. -## `old_caps` -pointer to a pointer - to a `Caps` to be replaced. -## `new_caps` -pointer to a `Caps` that will - replace the caps pointed to by `old_caps`. - -# Returns - -`true` if `new_caps` was different from `old_caps` - -Modifies a pointer to a `Caps` to point to a different `Caps`. This -function is similar to `Caps::replace` except that it takes ownership -of `new_caps`. -## `old_caps` -pointer to a pointer to a `Caps` to be - replaced. -## `new_caps` -pointer to a `Caps` that will - replace the caps pointed to by `old_caps`. - -# Returns - -`true` if `new_caps` was different from `old_caps` Modes of caps intersection @@ -3062,6 +2968,8 @@ clock and run the calibration functions. `Clock:window-size` defines the number of samples to use when calibrating and `Clock:window-threshold` defines the minimum number of samples before the calibration is performed. +This is an Abstract Base Class, you cannot instantiate it. + # Implements [`ClockExt`](trait.ClockExt.html), [`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`ClockExtManual`](prelude/trait.ClockExtManual.html) @@ -3684,6 +3592,154 @@ The structure of the context. The structure is still owned by the context, which means that you should not free it and that the pointer becomes invalid when you free the context. This function checks if `self` is writable. + +A base class for value mapping objects that attaches control sources to gobject +properties. Such an object is taking one or more `ControlSource` instances, +combines them and maps the resulting value to the type and value range of the +bound property. + +This is an Abstract Base Class, you cannot instantiate it. + +# Implements + +[`ControlBindingExt`](trait.ControlBindingExt.html), [`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`ControlBindingExtManual`](prelude/trait.ControlBindingExtManual.html) + +Trait containing all `ControlBinding` methods. + +# Implementors + +[`ControlBinding`](struct.ControlBinding.html) + +Gets a number of `GValues` for the given controlled property starting at the +requested time. The array `values` need to hold enough space for `n_values` of +`gobject::Value`. + +This function is useful if one wants to e.g. draw a graph of the control +curve or apply a control curve sample by sample. +## `timestamp` +the time that should be processed +## `interval` +the time spacing between subsequent values +## `n_values` +the number of values +## `values` +array to put control-values in + +# Returns + +`true` if the given array could be filled, `false` otherwise + +Gets the value for the given controlled property at the requested time. +## `timestamp` +the time the control-change should be read from + +# Returns + +the GValue of the property at the given time, +or `None` if the property isn't controlled. + +Gets a number of values for the given controlled property starting at the +requested time. The array `values` need to hold enough space for `n_values` of +the same type as the objects property's type. + +This function is useful if one wants to e.g. draw a graph of the control +curve or apply a control curve sample by sample. + +The values are unboxed and ready to be used. The similar function +`ControlBinding::get_g_value_array` returns the array as `GValues` and is +more suitable for bindings. +## `timestamp` +the time that should be processed +## `interval` +the time spacing between subsequent values +## `n_values` +the number of values +## `values` +array to put control-values in + +# Returns + +`true` if the given array could be filled, `false` otherwise + +Check if the control binding is disabled. + +# Returns + +`true` if the binding is inactive + +This function is used to disable a control binding for some time, i.e. +`GstObjectExt::sync_values` will do nothing. +## `disabled` +boolean that specifies whether to disable the controller +or not. + +Sets the property of the `object`, according to the `GstControlSources` that +handle them and for the given timestamp. + +If this function fails, it is most likely the application developers fault. +Most probably the control sources are not setup correctly. +## `object` +the object that has controlled properties +## `timestamp` +the time that should be processed +## `last_sync` +the last time this was called + +# Returns + +`true` if the controller value could be applied to the object +property, `false` otherwise + +The `ControlSource` is a base class for control value sources that could +be used to get timestamp-value pairs. A control source essentially is a +function over time. + +A `ControlSource` is used by first getting an instance of a specific +control-source, creating a binding for the control-source to the target property +of the element and then adding the binding to the element. The binding will +convert the data types and value range to fit to the bound property. + +For implementing a new `ControlSource` one has to implement +`GstControlSourceGetValue` and `GstControlSourceGetValueArray` functions. +These are then used by `ControlSourceExt::control_source_get_value` and +`ControlSource::control_source_get_value_array` to get values for specific timestamps. + +This is an Abstract Base Class, you cannot instantiate it. + +# Implements + +[`ControlSourceExt`](trait.ControlSourceExt.html), [`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`ControlSourceExtManual`](prelude/trait.ControlSourceExtManual.html) + +Trait containing all `ControlSource` methods. + +# Implementors + +[`ControlSource`](struct.ControlSource.html) + +Gets the value for this `ControlSource` at a given timestamp. +## `timestamp` +the time for which the value should be returned +## `value` +the value + +# Returns + +`false` if the value couldn't be returned, `true` otherwise. + +Gets an array of values for for this `ControlSource`. Values that are +undefined contain NANs. +## `timestamp` +the first timestamp +## `interval` +the time steps +## `n_values` +the number of values to fetch +## `values` +array to put control-values in + +# Returns + +`true` if the given array could be filled, `false` otherwise Core errors are errors inside the core GStreamer library. @@ -4178,6 +4234,8 @@ representing the media types it can produce or handle. `Device` are created by `DeviceProvider` objects which can be aggregated by `DeviceMonitor` objects. +This is an Abstract Base Class, you cannot instantiate it. + # Implements [`DeviceExt`](trait.DeviceExt.html), [`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html) @@ -4204,7 +4262,7 @@ Getter for the `Caps` that this device supports. # Returns The `Caps` supported by this device. Unref with -`Caps::unref` when done. +`gst_caps_unref` when done. Gets the "class" of a device. This is a "/" separated list of classes that represent this device. They are a subset of the @@ -4424,6 +4482,8 @@ normally provide a single subclass for all devices. Applications would normally use a `DeviceMonitor` to monitor devices from all relevant providers. +This is an Abstract Base Class, you cannot instantiate it. + # Implements [`DeviceProviderExt`](trait.DeviceProviderExt.html), [`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`DeviceProviderExtManual`](prelude/trait.DeviceProviderExtManual.html) @@ -4489,6 +4549,9 @@ a `Bus` Gets a list of devices that this provider understands. This may actually probe the hardware if the provider is not currently started. +If the provider has been started, this will returned the same `Device` +objedcts that have been returned by the `MessageType::DeviceAdded` messages. + # Returns a `glib::List` of @@ -4538,6 +4601,10 @@ Since the `DeviceProvider` is a singleton, user of the object, `DeviceProviderExt::stop` needs to be called the same number of times. +After this function has been called, `DeviceProviderExt::get_devices` will +return the same objects that have been received from the +`MessageType::DeviceAdded` messages and will no longer probe. + # Returns `true` if the device providering could be started @@ -4609,7 +4676,7 @@ if the device provider couldn't be created Get the `glib::Type` for device providers managed by this factory. The type can only be retrieved if the device provider factory is loaded, which can be -assured with `PluginFeatureExt::load`. +assured with `PluginFeature::load`. # Returns @@ -4700,6 +4767,8 @@ Note that clock selection and distribution is normally handled by the toplevel `Pipeline` so the clock functions are only to be used in very specific situations. +This is an Abstract Base Class, you cannot instantiate it. + # Implements [`ElementExt`](trait.ElementExt.html), [`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`ElementExtManual`](prelude/trait.ElementExtManual.html) @@ -5605,7 +5674,7 @@ event handler, the event will be pushed on a random linked sink pad for downstream events or a random linked source pad for upstream events. This function takes ownership of the provided event so you should -`Event::ref` it if you want to reuse the event after this call. +`gst_event_ref` it if you want to reuse the event after this call. MT safe. ## `event` @@ -5887,7 +5956,7 @@ new `Element` or `None` Get the `glib::Type` for elements managed by this factory. The type can only be retrieved if the element factory is loaded, which can be -assured with `PluginFeatureExt::load`. +assured with `PluginFeature::load`. # Returns @@ -5979,7 +6048,7 @@ Events are usually created with gst_event_new_*() which takes event-type specific parameters as arguments. To send an event application will usually use `Element::send_event` and elements will use `Pad::send_event` or `Pad::push_event`. -The event should be unreffed with `Event::unref` if it has not been sent. +The event should be unreffed with `gst_event_unref` if it has not been sent. Events that have been received can be parsed with their respective gst_event_parse_*() functions. It is valid to pass `None` for unwanted details. @@ -6018,14 +6087,14 @@ the needed parameters to specify seeking time and mode. Create a new buffersize event. The event is sent downstream and notifies elements that they should provide a buffer of the specified dimensions. -When the `async` flag is set, a thread boundary is preferred. +When the `async_` flag is set, a thread boundary is preferred. ## `format` buffer format ## `minsize` minimum buffer size ## `maxsize` maximum buffer size -## `async` +## `async_` thread behavior # Returns @@ -6572,12 +6641,6 @@ UID in the TOC to start playback from. # Returns a new `Event`. - -Copy the event using the event specific copy function. - -# Returns - -the new event Parses a segment `self` and copies the `Segment` into the location given by `segment`. @@ -6657,7 +6720,7 @@ A pointer to store the format in A pointer to store the minsize in ## `maxsize` A pointer to store the maxsize in -## `async` +## `async_` A pointer to store the async-flag in Get the caps from `self`. The caps remains valid as long as `self` remains @@ -6847,12 +6910,6 @@ 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. - -Increase the refcount of this event. - -# Returns - -`self` (for convenience when doing assignments) 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 @@ -6897,8 +6954,6 @@ the stream object to set ## `flags` the stream flags to set - -Decrease the refcount of an event, freeing it if the refcount reaches 0. Get a writable version of the structure. @@ -6911,49 +6966,6 @@ This function checks if `self` is writable and will never return `None`. MT safe. - -Modifies a pointer to a `Event` to point to a different `Event`. The -modification is done atomically (so this is useful for ensuring thread safety -in some cases), and the reference counts are updated appropriately (the old -event is unreffed, the new one is reffed). - -Either `new_event` or the `Event` pointed to by `old_event` may be `None`. -## `old_event` -pointer to a - pointer to a `Event` to be replaced. -## `new_event` -pointer to a `Event` that will - replace the event pointed to by `old_event`. - -# Returns - -`true` if `new_event` was different from `old_event` - -Atomically replace the `Event` pointed to by `old_event` with `None` and -return the original event. -## `old_event` -pointer to a - pointer to a `Event` to be stolen. - -# Returns - -the `Event` that was in `old_event` - -Modifies a pointer to a `Event` to point to a different `Event`. This -function is similar to `Event::replace` except that it takes ownership of -`new_event`. - -Either `new_event` or the `Event` pointed to by `old_event` may be `None`. -## `old_event` -pointer to a - pointer to a `Event` to be stolen. -## `new_event` -pointer to a `Event` that will - replace the event pointed to by `old_event`. - -# Returns - -`true` if `new_event` was different from `old_event` `EventType` lists the standard event types that can be sent in a pipeline. @@ -7054,6 +7066,22 @@ Custom upstream or downstream event. In-band when travelling downstream. Custom upstream or downstream out-of-band event. + +`EventTypeFlags` indicate the aspects of the different `EventType` +values. You can get the type flags of a `EventType` with the +`EventType::get_flags` function. + +Set if the event can travel upstream. + +Set if the event can travel downstream. + +Set if the event should be serialized with data + flow. + +Set if the event is sticky on the pads. + +Multiple sticky events can be on a pad, each + identified by the event name. The result of passing data to a pad. @@ -7081,8 +7109,8 @@ Pad is EOS. Pad is not negotiated. Some (fatal) error occurred. Element generating - this error should post an error message with more - details. + this error should post an error message using + GST_ELEMENT_ERROR() with more details. This operation is not supported. @@ -7277,6 +7305,193 @@ used when the library doesn't accept settings. used when the library generated an encoding error. the number of library error types. + +GstMemory is a lightweight refcounted object that wraps a region of memory. +They are typically used to manage the data of a `Buffer`. + +A GstMemory object has an allocated region of memory of maxsize. The maximum +size does not change during the lifetime of the memory object. The memory +also has an offset and size property that specifies the valid range of memory +in the allocated region. + +Memory is usually created by allocators with a `AllocatorExt::alloc` +method call. When `None` is used as the allocator, the default allocator will +be used. + +New allocators can be registered with `Allocator::register`. +Allocators are identified by name and can be retrieved with +`Allocator::find`. `AllocatorExt::set_default` can be used to change the +default allocator. + +New memory can be created with `Memory::new_wrapped` that wraps the memory +allocated elsewhere. + +Refcounting of the memory block is performed with `gst_memory_ref` and +`gst_memory_unref`. + +The size of the memory can be retrieved and changed with +`Memory::get_sizes` and `Memory::resize` respectively. + +Getting access to the data of the memory is performed with `Memory::map`. +The call will return a pointer to offset bytes into the region of memory. +After the memory access is completed, `Memory::unmap` should be called. + +Memory can be copied with `Memory::copy`, which will return a writable +copy. `Memory::share` will create a new memory block that shares the +memory with an existing memory block at a custom offset and with a custom +size. + +Memory can be efficiently merged when `Memory::is_span` returns `true`. + +Allocate a new memory block that wraps the given `data`. + +The prefix/padding must be filled with 0 if `flags` contains +`MemoryFlags::ZeroPrefixed` and `MemoryFlags::ZeroPadded` respectively. +## `flags` +`MemoryFlags` +## `data` +data to + wrap +## `maxsize` +allocated size of `data` +## `offset` +offset in `data` +## `size` +size of valid data +## `user_data` +user_data +## `notify` +called with `user_data` when the memory is freed + +# Returns + +a new `Memory`. + +Return a copy of `size` bytes from `self` starting from `offset`. This copy is +guaranteed to be writable. `size` can be set to -1 to return a copy +from `offset` to the end of the memory region. +## `offset` +offset to copy from +## `size` +size to copy, or -1 to copy to the end of the memory region + +# Returns + +a new `Memory`. + +Get the current `size`, `offset` and `maxsize` of `self`. +## `offset` +pointer to offset +## `maxsize` +pointer to maxsize + +# Returns + +the current size of `self` + +Initializes a newly allocated `self` with the given parameters. This function +will call `MiniObject::init` with the default memory parameters. +## `flags` +`MemoryFlags` +## `allocator` +the `Allocator` +## `parent` +the parent of `self` +## `maxsize` +the total size of the memory +## `align` +the alignment of the memory +## `offset` +The offset in the memory +## `size` +the size of valid data in the memory + +Check if `self` and mem2 share the memory with a common parent memory object +and that the memory is contiguous. + +If this is the case, the memory of `self` and `mem2` can be merged +efficiently by performing `Memory::share` on the parent object from +the returned `offset`. +## `mem2` +a `Memory` +## `offset` +a pointer to a result offset + +# Returns + +`true` if the memory is contiguous and of a common parent. + +Check if `self` if allocated with an allocator for `mem_type`. +## `mem_type` +a memory type + +# Returns + +`true` if `self` was allocated from an allocator for `mem_type`. + +Create a `Memory` object that is mapped with `flags`. If `self` is mappable +with `flags`, this function returns the mapped `self` directly. Otherwise a +mapped copy of `self` is returned. + +This function takes ownership of old `self` and returns a reference to a new +`Memory`. +## `info` +pointer for info +## `flags` +mapping flags + +# Returns + +a `Memory` object mapped +with `flags` or `None` when a mapping is not possible. + +Fill `info` with the pointer and sizes of the memory in `self` that can be +accessed according to `flags`. + +This function can return `false` for various reasons: +- the memory backed by `self` is not accessible with the given `flags`. +- the memory was already mapped with a different mapping. + +`info` and its contents remain valid for as long as `self` is valid and +until `Memory::unmap` is called. + +For each `Memory::map` call, a corresponding `Memory::unmap` call +should be done. +## `info` +pointer for info +## `flags` +mapping flags + +# Returns + +`true` if the map operation was successful. + +Resize the memory region. `self` should be writable and offset + size should be +less than the maxsize of `self`. + +`MemoryFlags::ZeroPrefixed` and `MemoryFlags::ZeroPadded` will be +cleared when offset or padding is increased respectively. +## `offset` +a new offset +## `size` +a new size + +Return a shared copy of `size` bytes from `self` starting from `offset`. No +memory copy is performed and the memory region is simply shared. The result +is guaranteed to be non-writable. `size` can be set to -1 to return a shared +copy from `offset` to the end of the memory region. +## `offset` +offset to share from +## `size` +size to share, or -1 to share to the end of the memory region + +# Returns + +a new `Memory`. + +Release the memory obtained with `Memory::map` +## `info` +a `MapInfo` Flags for wrapped memory. @@ -8570,12 +8785,6 @@ Feature: `v1_10` ## `structure` A pointer to the returned details structure - -Convenience macro to increase the reference count of the message. - -# Returns - -`self` (for convenience when doing assignments) Configures the buffering stats values in `self`. ## `mode` @@ -8670,9 +8879,6 @@ Index of the stream to retrieve # Returns A `Stream` - -Convenience macro to decrease the reference count of the message, possibly -freeing it. Get a writable version of the structure. @@ -8756,6 +8962,8 @@ What needs to be done in applications? Again it's not a lot to change. * start your pipeline +This is an Abstract Base Class, you cannot instantiate it. + # Implements [`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html) @@ -8764,7 +8972,7 @@ Trait containing all `Object` methods. # Implementors -[`Allocator`](struct.Allocator.html), [`BufferPool`](struct.BufferPool.html), [`Bus`](struct.Bus.html), [`Clock`](struct.Clock.html), [`DeviceMonitor`](struct.DeviceMonitor.html), [`DeviceProvider`](struct.DeviceProvider.html), [`Device`](struct.Device.html), [`Element`](struct.Element.html), [`Object`](struct.Object.html), [`PadTemplate`](struct.PadTemplate.html), [`Pad`](struct.Pad.html), [`PluginFeature`](struct.PluginFeature.html), [`Plugin`](struct.Plugin.html), [`Registry`](struct.Registry.html), [`StreamCollection`](struct.StreamCollection.html), [`Stream`](struct.Stream.html) +[`Allocator`](struct.Allocator.html), [`BufferPool`](struct.BufferPool.html), [`Bus`](struct.Bus.html), [`Clock`](struct.Clock.html), [`ControlBinding`](struct.ControlBinding.html), [`ControlSource`](struct.ControlSource.html), [`DeviceMonitor`](struct.DeviceMonitor.html), [`DeviceProvider`](struct.DeviceProvider.html), [`Device`](struct.Device.html), [`Element`](struct.Element.html), [`Object`](struct.Object.html), [`PadTemplate`](struct.PadTemplate.html), [`Pad`](struct.Pad.html), [`PluginFeature`](struct.PluginFeature.html), [`Plugin`](struct.Plugin.html), [`Registry`](struct.Registry.html), [`StreamCollection`](struct.StreamCollection.html), [`Stream`](struct.Stream.html) Checks to see if there is any object named `name` in `list`. This function does not do any locking of any kind. You might want to protect the @@ -8955,7 +9163,7 @@ This function is useful if one wants to e.g. draw a graph of the control curve or apply a control curve sample by sample. The values are unboxed and ready to be used. The similar function -`GstObjectExt::get_g_value_array` returns the array as `GValues` and is +`Object::get_g_value_array` returns the array as `GValues` and is better suites for bindings. ## `property_name` the name of the property to get @@ -9573,7 +9781,7 @@ installed (see `gst_pad_set_getrange_function`) this function returns If `buffer` points to a variable holding `None`, a valid new `Buffer` will be placed in `buffer` when this function returns `FlowReturn::Ok`. The new buffer -must be freed with `Buffer::unref` after usage. +must be freed with `gst_buffer_unref` after usage. When `buffer` points to a variable that points to a valid `Buffer`, the buffer will be filled with the result data when this function returns @@ -9938,7 +10146,7 @@ semantics of the arguments of this function. If `buffer` points to a variable holding `None`, a valid new `Buffer` will be placed in `buffer` when this function returns `FlowReturn::Ok`. The new buffer -must be freed with `Buffer::unref` after usage. When this function +must be freed with `gst_buffer_unref` after usage. When this function returns any other result value, `buffer` will still point to `None`. When `buffer` points to a variable that points to a valid `Buffer`, the @@ -9991,7 +10199,7 @@ mainly used by elements to send events to their peer elements. This function takes ownership of the provided event so you should -`Event::ref` it if you want to reuse the event after this call. +`gst_event_ref` it if you want to reuse the event after this call. ## `event` the `Event` to send to the pad. @@ -10145,7 +10353,7 @@ plugin doesn't need to bother itself with this information; the core handles all necessary locks and checks. This function takes ownership of the provided event so you should -`Event::ref` it if you want to reuse the event after this call. +`gst_event_ref` it if you want to reuse the event after this call. ## `event` the `Event` to send to the pad. @@ -11346,6 +11554,8 @@ The plugin has already be loaded from a different file This is a base class for anything that can be added to a `Plugin`. +This is an Abstract Base Class, you cannot instantiate it. + # Implements [`PluginFeatureExt`](trait.PluginFeatureExt.html), [`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html), [`PluginFeatureExtManual`](prelude/trait.PluginFeatureExtManual.html) @@ -11870,7 +12080,7 @@ The following example shows how to query the duration of a pipeline: Constructs a new query object for querying if `caps` are accepted. -Free-function: `Query::unref` +Free-function: `gst_query_unref` ## `caps` a fixed `Caps` @@ -11880,7 +12090,7 @@ a new `Query` Constructs a new query object for querying the allocation properties. -Free-function: `Query::unref` +Free-function: `gst_query_unref` ## `caps` the negotiated caps ## `need_pool` @@ -11892,7 +12102,7 @@ a new `Query` Constructs a new query object for querying the bitrate. -Free-function: `Query::unref` +Free-function: `gst_query_unref` Feature: `v1_16` @@ -11904,7 +12114,7 @@ a new `Query` Constructs a new query object for querying the buffering status of a stream. -Free-function: `Query::unref` +Free-function: `gst_query_unref` ## `format` the default `Format` for the new query @@ -11931,7 +12141,7 @@ The `filter` is used to restrict the result caps, only the caps matching `filter` should be returned from the CAPS query. Specifying a filter might greatly reduce the amount of processing an element needs to do. -Free-function: `Query::unref` +Free-function: `gst_query_unref` ## `filter` a filter @@ -11941,7 +12151,7 @@ a new `Query` Constructs a new query object for querying the pipeline-local context. -Free-function: `Query::unref` +Free-function: `gst_query_unref` ## `context_type` Context type to query @@ -11949,11 +12159,11 @@ Context type to query a new `Query` -Constructs a new convert query object. Use `Query::unref` +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. -Free-function: `Query::unref` +Free-function: `gst_query_unref` ## `src_format` the source `Format` for the new query ## `value` @@ -11965,10 +12175,10 @@ the target `Format` a `Query` -Constructs a new custom query object. Use `Query::unref` +Constructs a new custom query object. Use `gst_query_unref` when done with it. -Free-function: `Query::unref` +Free-function: `gst_query_unref` ## `type_` the query type ## `structure` @@ -11980,17 +12190,17 @@ a new `Query` Constructs a new query object for querying the drain state. -Free-function: `Query::unref` +Free-function: `gst_query_unref` # Returns a new `Query` Constructs a new stream duration query object to query in the given format. -Use `Query::unref` when done with it. A duration query will give the +Use `gst_query_unref` when done with it. A duration query will give the total length of the stream. -Free-function: `Query::unref` +Free-function: `gst_query_unref` ## `format` the `Format` for this duration query @@ -12001,28 +12211,28 @@ a new `Query` Constructs a new query object for querying formats of the stream. -Free-function: `Query::unref` +Free-function: `gst_query_unref` # Returns a new `Query` Constructs a new latency query object. -Use `Query::unref` when done with it. A latency query is usually performed +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 pipeline. -Free-function: `Query::unref` +Free-function: `gst_query_unref` # Returns a `Query` -Constructs a new query stream position query object. Use `Query::unref` +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. -Free-function: `Query::unref` +Free-function: `gst_query_unref` ## `format` the default `Format` for the new query @@ -12032,7 +12242,7 @@ a new `Query` Constructs a new query object for querying the scheduling properties. -Free-function: `Query::unref` +Free-function: `gst_query_unref` # Returns @@ -12041,7 +12251,7 @@ a new `Query` Constructs a new query object for querying seeking properties of the stream. -Free-function: `Query::unref` +Free-function: `gst_query_unref` ## `format` the default `Format` for the new query @@ -12049,11 +12259,11 @@ the default `Format` for the new query a new `Query` -Constructs a new segment query object. Use `Query::unref` +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. -Free-function: `Query::unref` +Free-function: `gst_query_unref` ## `format` the `Format` for the new query @@ -12061,11 +12271,11 @@ the `Format` for the new query a new `Query` -Constructs a new query URI query object. Use `Query::unref` +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. -Free-function: `Query::unref` +Free-function: `gst_query_unref` # Returns @@ -12107,14 +12317,6 @@ a `gboolean` indicating if the range was added or not. Add `mode` as one of the supported scheduling modes to `self`. ## `mode` a `PadMode` - -Copies the given query using the copy function of the parent `Structure`. - -Free-function: gst_query_unref - -# Returns - -a new copy of `self`. Check if `self` has metadata `api` set. When this function returns `true`, `index` will contain the index where the requested API and the parameters @@ -12626,9 +12828,6 @@ Answer a URI query by setting the requested URI redirection to permanent or not. ## `permanent` whether the redirect is permanent or not - -Decreases the refcount of the query. If the refcount reaches 0, the query -will be freed. 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. @@ -12638,23 +12837,6 @@ Get the structure of a query. This method should be called with a writable the `Structure` of the query. The structure is still owned by the query and will therefore be freed when the query is unreffed. - -Modifies a pointer to a `Query` to point to a different `Query`. The -modification is done atomically (so this is useful for ensuring thread safety -in some cases), and the reference counts are updated appropriately (the old -query is unreffed, the new one is reffed). - -Either `new_query` or the `Query` pointed to by `old_query` may be `None`. -## `old_query` -pointer to a pointer to a - `Query` to be replaced. -## `new_query` -pointer to a `Query` that will - replace the query pointed to by `old_query`. - -# Returns - -`true` if `new_query` was different from `old_query` Element priority ranks. Defines the order in which the autoplugger (or similar rank-picking mechanisms, such as e.g. `Element::make_from_uri`) @@ -13015,15 +13197,8 @@ a `Structure`, or `None` # Returns -the new `Sample`. `Sample::unref` +the new `Sample`. `gst_sample_unref` after usage. - -Create a copy of the given sample. This will also make a newly allocated -copy of the data the source sample contains. - -# Returns - -a new copy of `self`. Get the buffer associated with `self` @@ -13032,7 +13207,7 @@ Get the buffer associated with `self` 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 `Buffer::ref`. + that, take a ref to the buffer with `gst_buffer_ref`. Get the buffer list associated with `self` @@ -13050,7 +13225,7 @@ Get the caps associated with `self` 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 `Caps::ref`. + take a ref to the caps with `gst_caps_ref`. Get extra information associated with `self`. @@ -13065,12 +13240,6 @@ Get the segment associated with `self` the segment of `self`. The segment remains valid as long as `self` is valid. - -Increases the refcount of the given sample by one. - -# Returns - -`self` Set the buffer associated with `self`. `self` must be writable. @@ -13104,9 +13273,6 @@ Feature: `v1_16` ## `segment` A `Segment` - -Decreases the refcount of the sample. If the refcount reaches 0, the -sample will be freed. The different scheduling flags. @@ -15037,7 +15203,7 @@ tag # Returns -a new `TagList`. Free with `TagList::unref` +a new `TagList`. Free with `gst_tag_list_unref` when no longer needed. Creates a new empty GstTagList. @@ -15066,7 +15232,7 @@ tag / value pairs to set # Returns -a new `TagList`. Free with `TagList::unref` +a new `TagList`. Free with `gst_tag_list_unref` when no longer needed. Sets the values for the given tags using the specified mode. @@ -15109,11 +15275,11 @@ Creates a new `TagList` as a copy of the old `self`. The new taglist will have a refcount of 1, owned by the caller, and will be writable as a result. -Note that this function is the semantic equivalent of a `TagList::ref` +Note that this function is the semantic equivalent of a `gst_tag_list_ref` followed by a `gst_tag_list_make_writable`. If you only want to hold on to a -reference to the data, you should use `TagList::ref`. +reference to the data, you should use `gst_tag_list_ref`. -When you are finished with the taglist, call `TagList::unref` on it. +When you are finished with the taglist, call `gst_tag_list_unref` on it. # Returns @@ -15349,7 +15515,7 @@ location for the result given list. Copies the first sample for the given tag in the taglist into the variable -pointed to by `sample`. Free the sample with `Sample::unref` when it is +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 `Sample::get_buffer` and the associated caps (if any) with `Sample::get_caps`. @@ -15368,7 +15534,7 @@ address of a GstSample 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 `Sample::unref` when it is no longer needed. You can retrieve the +with `gst_sample_unref` when it is no longer needed. You can retrieve the buffer from the sample using `Sample::get_buffer` and the associated caps (if any) with `Sample::get_caps`. @@ -15570,18 +15736,6 @@ location for the result `true`, if a value was set, `false` if the tag didn't exist in the given list. - -Add a reference to a `TagList` mini object. - -From this point on, until the caller calls `TagList::unref` or -`gst_tag_list_make_writable`, it is guaranteed that the taglist object will -not change. To use a `TagList` object, you must always have a refcount on -it -- either the one made implicitly by e.g. `TagList::new`, or via -taking one explicitly with this function. - -# Returns - -the same `TagList` mini object. Removes the given tag from the taglist. ## `tag` @@ -15599,8 +15753,6 @@ 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. - -Unref a `TagList`, and and free all its memory when the refcount reaches 0. Copies the contents for the given tag into the value, merging multiple values into one if multiple values are associated