mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-25 11:11:08 +00:00
1695 lines
105 KiB
Text
1695 lines
105 KiB
Text
<!-- This file was automatically generated from C sources - DO NOT EDIT!
|
|
To affect the contents of this file, edit the original C definitions,
|
|
and/or use gtk-doc annotations. -->
|
|
<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2">
|
|
<include name="Gst" version="1.0"/>
|
|
<include name="GstAudio" version="1.0"/>
|
|
<include name="GstBase" version="1.0"/>
|
|
<package name="gstreamer-bad-audio-1.0"/>
|
|
<namespace name="GstBadAudio" version="1.0" shared-library="libgstbadaudio-1.0.so.0" c:identifier-prefixes="Gst" c:symbol-prefixes="gst">
|
|
<function-macro name="IS_NONSTREAM_AUDIO_DECODER" c:identifier="GST_IS_NONSTREAM_AUDIO_DECODER" introspectable="0">
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<parameters>
|
|
<parameter name="obj">
|
|
</parameter>
|
|
</parameters>
|
|
</function-macro>
|
|
<function-macro name="IS_NONSTREAM_AUDIO_DECODER_CLASS" c:identifier="GST_IS_NONSTREAM_AUDIO_DECODER_CLASS" introspectable="0">
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<parameters>
|
|
<parameter name="klass">
|
|
</parameter>
|
|
</parameters>
|
|
</function-macro>
|
|
<function-macro name="IS_PLANAR_AUDIO_ADAPTER" c:identifier="GST_IS_PLANAR_AUDIO_ADAPTER" introspectable="0">
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/>
|
|
<parameters>
|
|
<parameter name="obj">
|
|
</parameter>
|
|
</parameters>
|
|
</function-macro>
|
|
<function-macro name="IS_PLANAR_AUDIO_ADAPTER_CLASS" c:identifier="GST_IS_PLANAR_AUDIO_ADAPTER_CLASS" introspectable="0">
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/>
|
|
<parameters>
|
|
<parameter name="klass">
|
|
</parameter>
|
|
</parameters>
|
|
</function-macro>
|
|
<function-macro name="NONSTREAM_AUDIO_DECODER" c:identifier="GST_NONSTREAM_AUDIO_DECODER" introspectable="0">
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<parameters>
|
|
<parameter name="obj">
|
|
</parameter>
|
|
</parameters>
|
|
</function-macro>
|
|
<function-macro name="NONSTREAM_AUDIO_DECODER_CAST" c:identifier="GST_NONSTREAM_AUDIO_DECODER_CAST" introspectable="0">
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<parameters>
|
|
<parameter name="obj">
|
|
</parameter>
|
|
</parameters>
|
|
</function-macro>
|
|
<function-macro name="NONSTREAM_AUDIO_DECODER_CLASS" c:identifier="GST_NONSTREAM_AUDIO_DECODER_CLASS" introspectable="0">
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<parameters>
|
|
<parameter name="klass">
|
|
</parameter>
|
|
</parameters>
|
|
</function-macro>
|
|
<function-macro name="NONSTREAM_AUDIO_DECODER_GET_CLASS" c:identifier="GST_NONSTREAM_AUDIO_DECODER_GET_CLASS" introspectable="0">
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<parameters>
|
|
<parameter name="obj">
|
|
</parameter>
|
|
</parameters>
|
|
</function-macro>
|
|
<function-macro name="NONSTREAM_AUDIO_DECODER_LOCK_MUTEX" c:identifier="GST_NONSTREAM_AUDIO_DECODER_LOCK_MUTEX" introspectable="0">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Locks the decoder mutex.
|
|
|
|
Internally, the mutex is locked before one of the class vfuncs are
|
|
called, when position and duration queries are handled, and when
|
|
properties are set/retrieved.
|
|
|
|
Derived classes should call lock during decoder related modifications
|
|
(for example, setting/clearing filter banks), when at the same time
|
|
audio might get decoded. An example are configuration changes that
|
|
happen when properties are set. Properties might be set from another
|
|
thread, so while the derived decoder is reconfigured, the mutex
|
|
should be locked.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<parameters>
|
|
<parameter name="obj">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">base nonstream audio codec instance</doc>
|
|
</parameter>
|
|
</parameters>
|
|
</function-macro>
|
|
<constant name="NONSTREAM_AUDIO_DECODER_SINK_NAME" value="sink" c:type="GST_NONSTREAM_AUDIO_DECODER_SINK_NAME">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">The name of the template for the sink pad.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<type name="utf8" c:type="gchar*"/>
|
|
</constant>
|
|
<function-macro name="NONSTREAM_AUDIO_DECODER_SINK_PAD" c:identifier="GST_NONSTREAM_AUDIO_DECODER_SINK_PAD" introspectable="0">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Gives the pointer to the sink #GstPad object of the element.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<parameters>
|
|
<parameter name="obj">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">base nonstream audio codec instance</doc>
|
|
</parameter>
|
|
</parameters>
|
|
</function-macro>
|
|
<constant name="NONSTREAM_AUDIO_DECODER_SRC_NAME" value="src" c:type="GST_NONSTREAM_AUDIO_DECODER_SRC_NAME">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">The name of the template for the source pad.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<type name="utf8" c:type="gchar*"/>
|
|
</constant>
|
|
<function-macro name="NONSTREAM_AUDIO_DECODER_SRC_PAD" c:identifier="GST_NONSTREAM_AUDIO_DECODER_SRC_PAD" introspectable="0">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Gives the pointer to the source #GstPad object of the element.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<parameters>
|
|
<parameter name="obj">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">base nonstream audio codec instance</doc>
|
|
</parameter>
|
|
</parameters>
|
|
</function-macro>
|
|
<function-macro name="NONSTREAM_AUDIO_DECODER_UNLOCK_MUTEX" c:identifier="GST_NONSTREAM_AUDIO_DECODER_UNLOCK_MUTEX" introspectable="0">
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<parameters>
|
|
<parameter name="obj">
|
|
</parameter>
|
|
</parameters>
|
|
</function-macro>
|
|
<class name="NonstreamAudioDecoder" c:symbol-prefix="nonstream_audio_decoder" c:type="GstNonstreamAudioDecoder" parent="Gst.Element" abstract="1" glib:type-name="GstNonstreamAudioDecoder" glib:get-type="gst_nonstream_audio_decoder_get_type" glib:type-struct="NonstreamAudioDecoderClass">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">This base class is for decoders which do not operate on a streaming model.
|
|
That is: they load the encoded media at once, as part of an initialization,
|
|
and afterwards can decode samples (sometimes referred to as "rendering the
|
|
samples").
|
|
|
|
This sets it apart from GstAudioDecoder, which is a base class for
|
|
streaming audio decoders.
|
|
|
|
The base class is conceptually a mix between decoder and parser. This is
|
|
unavoidable, since virtually no format that isn't streaming based has a
|
|
clear distinction between parsing and decoding. As a result, this class
|
|
also handles seeking.
|
|
|
|
Non-streaming audio formats tend to have some characteristics unknown to
|
|
more "regular" bitstreams. These include subsongs and looping.
|
|
|
|
Subsongs are a set of songs-within-a-song. An analogy would be a multitrack
|
|
recording, where each track is its own song. The first subsong is typically
|
|
the "main" one. Subsongs were popular for video games to enable context-
|
|
aware music; for example, subsong `#0` would be the "main" song, `#1` would be
|
|
an alternate song playing when a fight started, `#2` would be heard during
|
|
conversations etc. The base class is designed to always have at least one
|
|
subsong. If the subclass doesn't provide any, the base class creates a
|
|
"pseudo" subsong, which is actually the whole song.
|
|
Downstream is informed about the subsong using a table of contents (TOC),
|
|
but only if there are at least 2 subsongs.
|
|
|
|
Looping refers to jumps within the song, typically backwards to the loop
|
|
start (although bi-directional looping is possible). The loop is defined
|
|
by a chronological start and end; once the playback position reaches the
|
|
loop end, it jumps back to the loop start.
|
|
Depending on the subclass, looping may not be possible at all, or it
|
|
may only be possible to enable/disable it (that is, either no looping, or
|
|
an infinite amount of loops), or it may allow for defining a finite number
|
|
of times the loop is repeated.
|
|
Looping can affect output in two ways. Either, the playback position is
|
|
reset to the start of the loop, similar to what happens after a seek event.
|
|
Or, it is not reset, so the pipeline sees playback steadily moving forwards,
|
|
the playback position monotonically increasing. However, seeking must
|
|
always happen within the confines of the defined subsong duration; for
|
|
example, if a subsong is 2 minutes long, steady playback is at 5 minutes
|
|
(because infinite looping is enabled), then seeking will still place the
|
|
position within the 2 minute period.
|
|
Loop count 0 means no looping. Loop count -1 means infinite looping.
|
|
Nonzero positive values indicate how often a loop shall occur.
|
|
|
|
If the initial subsong and loop count are set to values the subclass does
|
|
not support, the subclass has a chance to correct these values.
|
|
@get_property then reports the corrected versions.
|
|
|
|
The base class operates as follows:
|
|
* Unloaded mode
|
|
- Initial values are set. If a current subsong has already been
|
|
defined (for example over the command line with gst-launch), then
|
|
the subsong index is copied over to current_subsong .
|
|
Same goes for the num-loops and output-mode properties.
|
|
Media is NOT loaded yet.
|
|
- Once the sinkpad is activated, the process continues. The sinkpad is
|
|
activated in push mode, and the class accumulates the incoming media
|
|
data in an adapter inside the sinkpad's chain function until either an
|
|
EOS event is received from upstream, or the number of bytes reported
|
|
by upstream is reached. Then it loads the media, and starts the decoder
|
|
output task.
|
|
- If upstream cannot respond to the size query (in bytes) of @load_from_buffer
|
|
fails, an error is reported, and the pipeline stops.
|
|
- If there are no errors, @load_from_buffer is called to load the media. The
|
|
subclass must at least call gst_nonstream_audio_decoder_set_output_format()
|
|
there, and is free to make use of the initial subsong, output mode, and
|
|
position. If the actual output mode or position differs from the initial
|
|
value,it must set the initial value to the actual one (for example, if
|
|
the actual starting position is always 0, set *initial_position to 0).
|
|
If loading is unsuccessful, an error is reported, and the pipeline
|
|
stops. Otherwise, the base class calls @get_current_subsong to retrieve
|
|
the actual current subsong, @get_subsong_duration to report the current
|
|
subsong's duration in a duration event and message, and @get_subsong_tags
|
|
to send tags downstream in an event (these functions are optional; if
|
|
set to NULL, the associated operation is skipped). Afterwards, the base
|
|
class switches to loaded mode, and starts the decoder output task.
|
|
|
|
* Loaded mode</title>
|
|
- Inside the decoder output task, the base class repeatedly calls @decode,
|
|
which returns a buffer with decoded, ready-to-play samples. If the
|
|
subclass reached the end of playback, @decode returns FALSE, otherwise
|
|
TRUE.
|
|
- Upon reaching a loop end, subclass either ignores that, or loops back
|
|
to the beginning of the loop. In the latter case, if the output mode is set
|
|
to LOOPING, the subclass must call gst_nonstream_audio_decoder_handle_loop()
|
|
*after* the playback position moved to the start of the loop. In
|
|
STEADY mode, the subclass must *not* call this function.
|
|
Since many decoders only provide a callback for when the looping occurs,
|
|
and that looping occurs inside the decoding operation itself, the following
|
|
mechanism for subclass is suggested: set a flag inside such a callback.
|
|
Then, in the next @decode call, before doing the decoding, check this flag.
|
|
If it is set, gst_nonstream_audio_decoder_handle_loop() is called, and the
|
|
flag is cleared.
|
|
(This function call is necessary in LOOPING mode because it updates the
|
|
current segment and makes sure the next buffer that is sent downstream
|
|
has its DISCONT flag set.)
|
|
- When the current subsong is switched, @set_current_subsong is called.
|
|
If it fails, a warning is reported, and nothing else is done. Otherwise,
|
|
it calls @get_subsong_duration to get the new current subsongs's
|
|
duration, @get_subsong_tags to get its tags, reports a new duration
|
|
(i.e. it sends a duration event downstream and generates a duration
|
|
message), updates the current segment, and sends the subsong's tags in
|
|
an event downstream. (If @set_current_subsong has been set to NULL by
|
|
the subclass, attempts to set a current subsong are ignored; likewise,
|
|
if @get_subsong_duration is NULL, no duration is reported, and if
|
|
@get_subsong_tags is NULL, no tags are sent downstream.)
|
|
- When an attempt is made to switch the output mode, it is checked against
|
|
the bitmask returned by @get_supported_output_modes. If the proposed
|
|
new output mode is supported, the current segment is updated
|
|
(it is open-ended in STEADY mode, and covers the (sub)song length in
|
|
LOOPING mode), and the subclass' @set_output_mode function is called
|
|
unless it is set to NULL. Subclasses should reset internal loop counters
|
|
in this function.
|
|
|
|
The relationship between (sub)song duration, output mode, and number of loops
|
|
is defined this way (this is all done by the base class automatically):
|
|
|
|
* Segments have their duration and stop values set to GST_CLOCK_TIME_NONE in
|
|
STEADY mode, and to the duration of the (sub)song in LOOPING mode.
|
|
|
|
* The duration that is returned to a DURATION query is always the duration
|
|
of the (sub)song, regardless of number of loops or output mode. The same
|
|
goes for DURATION messages and tags.
|
|
|
|
* If the number of loops is >0 or -1, durations of TOC entries are set to
|
|
the duration of the respective subsong in LOOPING mode and to G_MAXINT64 in
|
|
STEADY mode. If the number of loops is 0, entry durations are set to the
|
|
subsong duration regardless of the output mode.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<virtual-method name="decide_allocation">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Optional.
|
|
Sets up the allocation parameters for allocating output
|
|
buffers. The passed in query contains the result of the
|
|
downstream allocation query.
|
|
Subclasses should chain up to the parent implementation to
|
|
invoke the default handler.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="gboolean" c:type="gboolean"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</instance-parameter>
|
|
<parameter name="query" transfer-ownership="none">
|
|
<type name="Gst.Query" c:type="GstQuery*"/>
|
|
</parameter>
|
|
</parameters>
|
|
</virtual-method>
|
|
<virtual-method name="decode">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Always required.
|
|
Allocates an output buffer, fills it with decoded audio samples, and must be passed on to
|
|
*buffer . The number of decoded samples must be passed on to *num_samples.
|
|
If decoding finishes or the decoding is no longer possible (for example, due to an
|
|
unrecoverable error), this function returns FALSE, otherwise TRUE.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="gboolean" c:type="gboolean"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</instance-parameter>
|
|
<parameter name="buffer" transfer-ownership="none">
|
|
<type name="Gst.Buffer" c:type="GstBuffer**"/>
|
|
</parameter>
|
|
<parameter name="num_samples" transfer-ownership="none">
|
|
<type name="guint" c:type="guint*"/>
|
|
</parameter>
|
|
</parameters>
|
|
</virtual-method>
|
|
<virtual-method name="get_current_subsong">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Optional.
|
|
Returns the current subsong.
|
|
If the current subsong mode is not GST_NONSTREAM_AUDIO_SUBSONG_MODE_SINGLE, this
|
|
function's return value is undefined.
|
|
If this function is implemented by the subclass,
|
|
@get_num_subsongs should be implemented as well.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="guint" c:type="guint"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</instance-parameter>
|
|
</parameters>
|
|
</virtual-method>
|
|
<virtual-method name="get_main_tags">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Optional.
|
|
Returns a tag list containing the main song tags, or NULL if there are
|
|
no such tags. Returned tags will be unref'd. Use this vfunc instead of
|
|
manually pushing a tag event downstream to avoid edge cases where not yet
|
|
pushed sticky tag events get overwritten before they are pushed (can for
|
|
example happen with decodebin if tags are pushed downstream before the
|
|
decodebin pads are linked).</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="full">
|
|
<type name="Gst.TagList" c:type="GstTagList*"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</instance-parameter>
|
|
</parameters>
|
|
</virtual-method>
|
|
<virtual-method name="get_num_loops">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Optional.
|
|
Returns the number of loops for playback.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="gint" c:type="gint"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</instance-parameter>
|
|
</parameters>
|
|
</virtual-method>
|
|
<virtual-method name="get_num_subsongs">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Optional.
|
|
Returns the number of subsongs available.
|
|
The return values 0 and 1 have a similar, but distinct, meaning.
|
|
If this function returns 0, then this decoder does not support subsongs at all.
|
|
@get_current_subsong must then also always return 0. In other words, this function
|
|
either never returns 0, or never returns anything else than 0.
|
|
A return value of 1 means that the media contains either only one or no subsongs
|
|
(the entire song is then considered to be one single subsong). 1 also means that only
|
|
this very media has no or just one subsong, and the decoder itself can
|
|
support multiple subsongs.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="guint" c:type="guint"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</instance-parameter>
|
|
</parameters>
|
|
</virtual-method>
|
|
<virtual-method name="get_subsong_duration">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Optional.
|
|
Returns the duration of a subsong. Returns GST_CLOCK_TIME_NONE if duration is unknown.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="Gst.ClockTime" c:type="GstClockTime"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</instance-parameter>
|
|
<parameter name="subsong" transfer-ownership="none">
|
|
<type name="guint" c:type="guint"/>
|
|
</parameter>
|
|
</parameters>
|
|
</virtual-method>
|
|
<virtual-method name="get_subsong_tags">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Optional.
|
|
Returns tags for a subsong, or NULL if there are no tags.
|
|
Returned tags will be unref'd.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="full">
|
|
<type name="Gst.TagList" c:type="GstTagList*"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</instance-parameter>
|
|
<parameter name="subsong" transfer-ownership="none">
|
|
<type name="guint" c:type="guint"/>
|
|
</parameter>
|
|
</parameters>
|
|
</virtual-method>
|
|
<virtual-method name="get_supported_output_modes">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Always required.
|
|
Returns a bitmask containing the output modes the subclass supports.
|
|
The mask is formed by a bitwise OR combination of integers, which can be calculated
|
|
this way: 1 << GST_NONSTREAM_AUDIO_OUTPUT_MODE_<mode> , where mode is either STEADY or LOOPING</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="guint" c:type="guint"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</instance-parameter>
|
|
</parameters>
|
|
</virtual-method>
|
|
<virtual-method name="load_from_buffer">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Required if loads_from_sinkpad is set to TRUE (the default value).
|
|
Loads the media from the given buffer. The entire media is supplied at once,
|
|
so after this call, loading should be finished. This function
|
|
can also make use of a suggested initial subsong & subsong mode and initial
|
|
playback position (but isn't required to). In case it chooses a different starting
|
|
position, the function must pass this position to *initial_position.
|
|
The subclass does not have to unref the input buffer; the base class does that
|
|
already.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="gboolean" c:type="gboolean"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</instance-parameter>
|
|
<parameter name="source_data" transfer-ownership="none">
|
|
<type name="Gst.Buffer" c:type="GstBuffer*"/>
|
|
</parameter>
|
|
<parameter name="initial_subsong" transfer-ownership="none">
|
|
<type name="guint" c:type="guint"/>
|
|
</parameter>
|
|
<parameter name="initial_subsong_mode" transfer-ownership="none">
|
|
<type name="NonstreamAudioSubsongMode" c:type="GstNonstreamAudioSubsongMode"/>
|
|
</parameter>
|
|
<parameter name="initial_position" transfer-ownership="none">
|
|
<type name="Gst.ClockTime" c:type="GstClockTime*"/>
|
|
</parameter>
|
|
<parameter name="initial_output_mode" transfer-ownership="none">
|
|
<type name="NonstreamAudioOutputMode" c:type="GstNonstreamAudioOutputMode*"/>
|
|
</parameter>
|
|
<parameter name="initial_num_loops" transfer-ownership="none">
|
|
<type name="gint" c:type="gint*"/>
|
|
</parameter>
|
|
</parameters>
|
|
</virtual-method>
|
|
<virtual-method name="load_from_custom">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Required if loads_from_sinkpad is set to FALSE.
|
|
Loads the media in a way defined by the custom sink. Data is not supplied;
|
|
the derived class has to handle this on its own. Otherwise, this function is
|
|
identical to @load_from_buffer.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="gboolean" c:type="gboolean"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</instance-parameter>
|
|
<parameter name="initial_subsong" transfer-ownership="none">
|
|
<type name="guint" c:type="guint"/>
|
|
</parameter>
|
|
<parameter name="initial_subsong_mode" transfer-ownership="none">
|
|
<type name="NonstreamAudioSubsongMode" c:type="GstNonstreamAudioSubsongMode"/>
|
|
</parameter>
|
|
<parameter name="initial_position" transfer-ownership="none">
|
|
<type name="Gst.ClockTime" c:type="GstClockTime*"/>
|
|
</parameter>
|
|
<parameter name="initial_output_mode" transfer-ownership="none">
|
|
<type name="NonstreamAudioOutputMode" c:type="GstNonstreamAudioOutputMode*"/>
|
|
</parameter>
|
|
<parameter name="initial_num_loops" transfer-ownership="none">
|
|
<type name="gint" c:type="gint*"/>
|
|
</parameter>
|
|
</parameters>
|
|
</virtual-method>
|
|
<virtual-method name="negotiate">
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="gboolean" c:type="gboolean"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</instance-parameter>
|
|
</parameters>
|
|
</virtual-method>
|
|
<virtual-method name="propose_allocation">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Optional.
|
|
Proposes buffer allocation parameters for upstream elements.
|
|
Subclasses should chain up to the parent implementation to
|
|
invoke the default handler.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="gboolean" c:type="gboolean"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</instance-parameter>
|
|
<parameter name="query" transfer-ownership="none">
|
|
<type name="Gst.Query" c:type="GstQuery*"/>
|
|
</parameter>
|
|
</parameters>
|
|
</virtual-method>
|
|
<virtual-method name="seek">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Optional.
|
|
Called when a seek event is received by the parent class.
|
|
new_position is a pointer to a GstClockTime integer which
|
|
contains a position relative to the current subsong.
|
|
Minimum is 0, maximum is the subsong length.
|
|
After this function finishes, new_position is set to the
|
|
actual new position (which may differ from the request
|
|
position, depending on the decoder).</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="gboolean" c:type="gboolean"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</instance-parameter>
|
|
<parameter name="new_position" transfer-ownership="none">
|
|
<type name="Gst.ClockTime" c:type="GstClockTime*"/>
|
|
</parameter>
|
|
</parameters>
|
|
</virtual-method>
|
|
<virtual-method name="set_current_subsong">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Optional.
|
|
Sets the current subsong. This function is allowed to switch to a different
|
|
subsong than the required one, and can optionally make use of the suggested initial
|
|
position. In case it chooses a different starting position, the function must pass
|
|
this position to *initial_position.
|
|
This function switches the subsong mode to GST_NONSTREAM_AUDIO_SUBSONG_MODE_SINGLE
|
|
automatically.
|
|
If this function is implemented by the subclass, @get_current_subsong and
|
|
@get_num_subsongs should be implemented as well.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="gboolean" c:type="gboolean"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</instance-parameter>
|
|
<parameter name="subsong" transfer-ownership="none">
|
|
<type name="guint" c:type="guint"/>
|
|
</parameter>
|
|
<parameter name="initial_position" transfer-ownership="none">
|
|
<type name="Gst.ClockTime" c:type="GstClockTime*"/>
|
|
</parameter>
|
|
</parameters>
|
|
</virtual-method>
|
|
<virtual-method name="set_num_loops">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Optional.
|
|
Sets the number of loops for playback. If this is called during playback,
|
|
the subclass must set any internal loop counters to zero. A loop value of -1
|
|
means infinite looping; 0 means no looping; and when the num_loops is greater than 0,
|
|
playback should loop exactly num_loops times. If this function is implemented,
|
|
@get_num_loops should be implemented as well. The function can ignore the given values
|
|
and choose another; however, @get_num_loops should return this other value afterwards.
|
|
It is up to the subclass to define where the loop starts and ends. It can mean that only
|
|
a subset at the end or in the middle of a song is repeated, for example.
|
|
If the current subsong mode is GST_NONSTREAM_AUDIO_SUBSONG_MODE_SINGLE, then the subsong
|
|
is repeated this many times. If it is GST_NONSTREAM_AUDIO_SUBSONG_MODE_ALL, then all
|
|
subsongs are repeated this many times. With GST_NONSTREAM_AUDIO_SUBSONG_MODE_DECODER_DEFAULT,
|
|
the behavior is decoder specific.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="gboolean" c:type="gboolean"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</instance-parameter>
|
|
<parameter name="num_loops" transfer-ownership="none">
|
|
<type name="gint" c:type="gint"/>
|
|
</parameter>
|
|
</parameters>
|
|
</virtual-method>
|
|
<virtual-method name="set_output_mode">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Optional.
|
|
Sets the output mode the subclass has to use. Unlike with most other functions, the subclass
|
|
cannot choose a different mode; it must use the requested one.
|
|
If the output mode is set to LOOPING, @gst_nonstream_audio_decoder_handle_loop
|
|
must be called after playback moved back to the start of a loop.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="gboolean" c:type="gboolean"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</instance-parameter>
|
|
<parameter name="mode" transfer-ownership="none">
|
|
<type name="NonstreamAudioOutputMode" c:type="GstNonstreamAudioOutputMode"/>
|
|
</parameter>
|
|
<parameter name="current_position" transfer-ownership="none">
|
|
<type name="Gst.ClockTime" c:type="GstClockTime*"/>
|
|
</parameter>
|
|
</parameters>
|
|
</virtual-method>
|
|
<virtual-method name="set_subsong_mode">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Optional.
|
|
Sets the current subsong mode. Since this might influence the current playback position,
|
|
this function must set the initial_position integer argument to a defined value.
|
|
If the playback position is not affected at all, it must be set to GST_CLOCK_TIME_NONE.
|
|
If the subsong is restarted after the mode switch, it is recommended to set the value
|
|
to the position in the playback right after the switch (or 0 if the subsongs are always
|
|
reset back to the beginning).</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="gboolean" c:type="gboolean"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</instance-parameter>
|
|
<parameter name="mode" transfer-ownership="none">
|
|
<type name="NonstreamAudioSubsongMode" c:type="GstNonstreamAudioSubsongMode"/>
|
|
</parameter>
|
|
<parameter name="initial_position" transfer-ownership="none">
|
|
<type name="Gst.ClockTime" c:type="GstClockTime*"/>
|
|
</parameter>
|
|
</parameters>
|
|
</virtual-method>
|
|
<virtual-method name="tell">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Optional.
|
|
Called when a position query is received by the parent class.
|
|
The position that this function returns must be relative to
|
|
the current subsong. Thus, the minimum is 0, and the maximum
|
|
is the subsong length.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="Gst.ClockTime" c:type="GstClockTime"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</instance-parameter>
|
|
</parameters>
|
|
</virtual-method>
|
|
<method name="allocate_output_buffer" c:identifier="gst_nonstream_audio_decoder_allocate_output_buffer">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">Allocates an output buffer with the internally configured buffer pool.
|
|
|
|
This function may only be called from within @load_from_buffer,
|
|
@load_from_custom, and @decode.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="full" nullable="1">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">Newly allocated output buffer, or NULL
|
|
if allocation failed</doc>
|
|
<type name="Gst.Buffer" c:type="GstBuffer*"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="dec" transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">Decoder instance</doc>
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</instance-parameter>
|
|
<parameter name="size" transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">Size of the output buffer, in bytes</doc>
|
|
<type name="gsize" c:type="gsize"/>
|
|
</parameter>
|
|
</parameters>
|
|
</method>
|
|
<method name="get_downstream_info" c:identifier="gst_nonstream_audio_decoder_get_downstream_info">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">Gets sample format, sample rate, channel count from the allowed srcpad caps.
|
|
|
|
This is useful for when the subclass wishes to adjust one or more output
|
|
parameters to whatever downstream is supporting. For example, the output
|
|
sample rate is often a freely adjustable value in module players.
|
|
|
|
This function tries to find a value inside the srcpad peer's caps for
|
|
@format, @sample_rate, @num_chnanels . Any of these can be NULL; they
|
|
(and the corresponding downstream caps) are then skipped while retrieving
|
|
information. Non-fixated caps are fixated first; the value closest to
|
|
their present value is then chosen. For example, if the variables pointed
|
|
to by the arguments are GST_AUDIO_FORMAT_16, 48000 Hz, and 2 channels,
|
|
and the downstream caps are:
|
|
|
|
"audio/x-raw, format={S16LE,S32LE}, rate=[1,32000], channels=[1,MAX]"
|
|
|
|
Then @format and @channels stay the same, while @sample_rate is set to 32000 Hz.
|
|
This way, the initial values the the variables pointed to by the arguments
|
|
are set to can be used as default output values. Note that if no downstream
|
|
caps can be retrieved, then this function does nothing, therefore it is
|
|
necessary to ensure that @format, @sample_rate, and @channels have valid
|
|
initial values.
|
|
|
|
Decoder lock is not held by this function, so it can be called from within
|
|
any of the class vfuncs.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="none" c:type="void"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="dec" transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">a #GstNonstreamAudioDecoder</doc>
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</instance-parameter>
|
|
<parameter name="format" transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">#GstAudioFormat value to fill with a sample format</doc>
|
|
<type name="GstAudio.AudioFormat" c:type="GstAudioFormat*"/>
|
|
</parameter>
|
|
<parameter name="sample_rate" transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">Integer to fill with a sample rate</doc>
|
|
<type name="gint" c:type="gint*"/>
|
|
</parameter>
|
|
<parameter name="num_channels" transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">Integer to fill with a channel count</doc>
|
|
<type name="gint" c:type="gint*"/>
|
|
</parameter>
|
|
</parameters>
|
|
</method>
|
|
<method name="handle_loop" c:identifier="gst_nonstream_audio_decoder_handle_loop">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">Reports that a loop has been completed and creates a new appropriate
|
|
segment for the next loop.
|
|
|
|
@new_position exists because a loop may not start at the beginning.
|
|
|
|
This function is only useful for subclasses which can be in the
|
|
GST_NONSTREAM_AUDIO_OUTPUT_MODE_LOOPING output mode, since in the
|
|
GST_NONSTREAM_AUDIO_OUTPUT_MODE_STEADY output mode, this function
|
|
does nothing. See #GstNonstreamAudioOutputMode for more details.
|
|
|
|
The subclass calls this during playback when it loops. It produces
|
|
a new segment with updated base time and internal time values, to allow
|
|
for seamless looping. It does *not* check the number of elapsed loops;
|
|
this is up the subclass.
|
|
|
|
Note that if this function is called, then it must be done after the
|
|
last samples of the loop have been decoded and pushed downstream.
|
|
|
|
This function must be called with the decoder mutex lock held, since it
|
|
is typically called from within @decode (which in turn are called with
|
|
the lock already held).</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="none" c:type="void"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="dec" transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">a #GstNonstreamAudioDecoder
|
|
@new_position New position the next loop starts with</doc>
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</instance-parameter>
|
|
<parameter name="new_position" transfer-ownership="none">
|
|
<type name="Gst.ClockTime" c:type="GstClockTime"/>
|
|
</parameter>
|
|
</parameters>
|
|
</method>
|
|
<method name="set_output_format" c:identifier="gst_nonstream_audio_decoder_set_output_format">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">Sets the output caps by means of a GstAudioInfo structure.
|
|
|
|
This must be called latest in the first @decode call, to ensure src caps are
|
|
set before decoded samples are sent downstream. Typically, this is called
|
|
from inside @load_from_buffer or @load_from_custom.
|
|
|
|
This function must be called with the decoder mutex lock held, since it
|
|
is typically called from within the aforementioned vfuncs (which in turn
|
|
are called with the lock already held).</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">TRUE if setting the output format succeeded, FALSE otherwise</doc>
|
|
<type name="gboolean" c:type="gboolean"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="dec" transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">a #GstNonstreamAudioDecoder</doc>
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</instance-parameter>
|
|
<parameter name="audio_info" transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">Valid audio info structure containing the output format</doc>
|
|
<type name="GstAudio.AudioInfo" c:type="const GstAudioInfo*"/>
|
|
</parameter>
|
|
</parameters>
|
|
</method>
|
|
<method name="set_output_format_simple" c:identifier="gst_nonstream_audio_decoder_set_output_format_simple">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">Convenience function; sets the output caps by means of common parameters.
|
|
|
|
Internally, this fills a GstAudioInfo structure and calls
|
|
gst_nonstream_audio_decoder_set_output_format().</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">TRUE if setting the output format succeeded, FALSE otherwise</doc>
|
|
<type name="gboolean" c:type="gboolean"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="dec" transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">a #GstNonstreamAudioDecoder</doc>
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</instance-parameter>
|
|
<parameter name="sample_rate" transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">Output sample rate to use, in Hz</doc>
|
|
<type name="guint" c:type="guint"/>
|
|
</parameter>
|
|
<parameter name="sample_format" transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">Output sample format to use</doc>
|
|
<type name="GstAudio.AudioFormat" c:type="GstAudioFormat"/>
|
|
</parameter>
|
|
<parameter name="num_channels" transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.c">Number of output channels to use</doc>
|
|
<type name="guint" c:type="guint"/>
|
|
</parameter>
|
|
</parameters>
|
|
</method>
|
|
<property name="current-subsong" writable="1" transfer-ownership="none" default-value="0">
|
|
<type name="guint" c:type="guint"/>
|
|
</property>
|
|
<property name="num-loops" writable="1" transfer-ownership="none" default-value="0">
|
|
<type name="gint" c:type="gint"/>
|
|
</property>
|
|
<property name="output-mode" introspectable="0" writable="1" transfer-ownership="none" default-value="Steady output">
|
|
<type/>
|
|
</property>
|
|
<property name="subsong-mode" introspectable="0" writable="1" transfer-ownership="none" default-value="Decoder specific default behavior">
|
|
<type/>
|
|
</property>
|
|
<field name="element">
|
|
<type name="Gst.Element" c:type="GstElement"/>
|
|
</field>
|
|
<field name="sinkpad">
|
|
<type name="Gst.Pad" c:type="GstPad*"/>
|
|
</field>
|
|
<field name="srcpad">
|
|
<type name="Gst.Pad" c:type="GstPad*"/>
|
|
</field>
|
|
<field name="upstream_size">
|
|
<type name="gint64" c:type="gint64"/>
|
|
</field>
|
|
<field name="loaded_mode">
|
|
<type name="gboolean" c:type="gboolean"/>
|
|
</field>
|
|
<field name="input_data_adapter">
|
|
<type name="GstBase.Adapter" c:type="GstAdapter*"/>
|
|
</field>
|
|
<field name="current_subsong">
|
|
<type name="guint" c:type="guint"/>
|
|
</field>
|
|
<field name="subsong_mode">
|
|
<type name="NonstreamAudioSubsongMode" c:type="GstNonstreamAudioSubsongMode"/>
|
|
</field>
|
|
<field name="subsong_duration">
|
|
<type name="Gst.ClockTime" c:type="GstClockTime"/>
|
|
</field>
|
|
<field name="output_mode">
|
|
<type name="NonstreamAudioOutputMode" c:type="GstNonstreamAudioOutputMode"/>
|
|
</field>
|
|
<field name="num_loops">
|
|
<type name="gint" c:type="gint"/>
|
|
</field>
|
|
<field name="output_format_changed">
|
|
<type name="gboolean" c:type="gboolean"/>
|
|
</field>
|
|
<field name="output_audio_info">
|
|
<type name="GstAudio.AudioInfo" c:type="GstAudioInfo"/>
|
|
</field>
|
|
<field name="cur_pos_in_samples">
|
|
<type name="guint64" c:type="guint64"/>
|
|
</field>
|
|
<field name="num_decoded_samples">
|
|
<type name="guint64" c:type="guint64"/>
|
|
</field>
|
|
<field name="cur_segment">
|
|
<type name="Gst.Segment" c:type="GstSegment"/>
|
|
</field>
|
|
<field name="discont">
|
|
<type name="gboolean" c:type="gboolean"/>
|
|
</field>
|
|
<field name="toc">
|
|
<type name="Gst.Toc" c:type="GstToc*"/>
|
|
</field>
|
|
<field name="allocator">
|
|
<type name="Gst.Allocator" c:type="GstAllocator*"/>
|
|
</field>
|
|
<field name="allocation_params">
|
|
<type name="Gst.AllocationParams" c:type="GstAllocationParams"/>
|
|
</field>
|
|
<field name="mutex">
|
|
<type name="GLib.Mutex" c:type="GMutex"/>
|
|
</field>
|
|
</class>
|
|
<record name="NonstreamAudioDecoderClass" c:type="GstNonstreamAudioDecoderClass" glib:is-gtype-struct-for="NonstreamAudioDecoder">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Subclasses can override any of the available optional virtual methods or not, as
|
|
needed. At minimum, @load_from_buffer (or @load_from_custom), @get_supported_output_modes,
|
|
and @decode need to be overridden.
|
|
|
|
All functions are called with a locked decoder mutex.
|
|
|
|
> If GST_ELEMENT_ERROR, GST_ELEMENT_WARNING, or GST_ELEMENT_INFO are called from
|
|
> inside one of these functions, it is strongly recommended to unlock the decoder mutex
|
|
> before and re-lock it after these macros to prevent potential deadlocks in case the
|
|
> application does something with the element when it receives an ERROR/WARNING/INFO
|
|
> message. Same goes for gst_element_post_message() calls and non-serialized events.
|
|
|
|
By default, this class works by reading media data from the sinkpad, and then commencing
|
|
playback. Some decoders cannot be given data from a memory block, so the usual way of
|
|
reading all upstream data and passing it to @load_from_buffer doesn't work then. In this case,
|
|
set the value of loads_from_sinkpad to FALSE. This changes the way this class operates;
|
|
it does not require a sinkpad to exist anymore, and will call @load_from_custom instead.
|
|
One example of a decoder where this makes sense is UADE (Unix Amiga Delitracker Emulator).
|
|
For some formats (such as TFMX), it needs to do the file loading by itself.
|
|
Since most decoders can read input data from a memory block, the default value of
|
|
loads_from_sinkpad is TRUE.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<field name="element_class">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">The parent class structure</doc>
|
|
<type name="Gst.ElementClass" c:type="GstElementClass"/>
|
|
</field>
|
|
<field name="loads_from_sinkpad">
|
|
<type name="gboolean" c:type="gboolean"/>
|
|
</field>
|
|
<field name="seek">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Optional.
|
|
Called when a seek event is received by the parent class.
|
|
new_position is a pointer to a GstClockTime integer which
|
|
contains a position relative to the current subsong.
|
|
Minimum is 0, maximum is the subsong length.
|
|
After this function finishes, new_position is set to the
|
|
actual new position (which may differ from the request
|
|
position, depending on the decoder).</doc>
|
|
<callback name="seek">
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="gboolean" c:type="gboolean"/>
|
|
</return-value>
|
|
<parameters>
|
|
<parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</parameter>
|
|
<parameter name="new_position" transfer-ownership="none">
|
|
<type name="Gst.ClockTime" c:type="GstClockTime*"/>
|
|
</parameter>
|
|
</parameters>
|
|
</callback>
|
|
</field>
|
|
<field name="tell">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Optional.
|
|
Called when a position query is received by the parent class.
|
|
The position that this function returns must be relative to
|
|
the current subsong. Thus, the minimum is 0, and the maximum
|
|
is the subsong length.</doc>
|
|
<callback name="tell">
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="Gst.ClockTime" c:type="GstClockTime"/>
|
|
</return-value>
|
|
<parameters>
|
|
<parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</parameter>
|
|
</parameters>
|
|
</callback>
|
|
</field>
|
|
<field name="load_from_buffer">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Required if loads_from_sinkpad is set to TRUE (the default value).
|
|
Loads the media from the given buffer. The entire media is supplied at once,
|
|
so after this call, loading should be finished. This function
|
|
can also make use of a suggested initial subsong & subsong mode and initial
|
|
playback position (but isn't required to). In case it chooses a different starting
|
|
position, the function must pass this position to *initial_position.
|
|
The subclass does not have to unref the input buffer; the base class does that
|
|
already.</doc>
|
|
<callback name="load_from_buffer">
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="gboolean" c:type="gboolean"/>
|
|
</return-value>
|
|
<parameters>
|
|
<parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</parameter>
|
|
<parameter name="source_data" transfer-ownership="none">
|
|
<type name="Gst.Buffer" c:type="GstBuffer*"/>
|
|
</parameter>
|
|
<parameter name="initial_subsong" transfer-ownership="none">
|
|
<type name="guint" c:type="guint"/>
|
|
</parameter>
|
|
<parameter name="initial_subsong_mode" transfer-ownership="none">
|
|
<type name="NonstreamAudioSubsongMode" c:type="GstNonstreamAudioSubsongMode"/>
|
|
</parameter>
|
|
<parameter name="initial_position" transfer-ownership="none">
|
|
<type name="Gst.ClockTime" c:type="GstClockTime*"/>
|
|
</parameter>
|
|
<parameter name="initial_output_mode" transfer-ownership="none">
|
|
<type name="NonstreamAudioOutputMode" c:type="GstNonstreamAudioOutputMode*"/>
|
|
</parameter>
|
|
<parameter name="initial_num_loops" transfer-ownership="none">
|
|
<type name="gint" c:type="gint*"/>
|
|
</parameter>
|
|
</parameters>
|
|
</callback>
|
|
</field>
|
|
<field name="load_from_custom">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Required if loads_from_sinkpad is set to FALSE.
|
|
Loads the media in a way defined by the custom sink. Data is not supplied;
|
|
the derived class has to handle this on its own. Otherwise, this function is
|
|
identical to @load_from_buffer.</doc>
|
|
<callback name="load_from_custom">
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="gboolean" c:type="gboolean"/>
|
|
</return-value>
|
|
<parameters>
|
|
<parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</parameter>
|
|
<parameter name="initial_subsong" transfer-ownership="none">
|
|
<type name="guint" c:type="guint"/>
|
|
</parameter>
|
|
<parameter name="initial_subsong_mode" transfer-ownership="none">
|
|
<type name="NonstreamAudioSubsongMode" c:type="GstNonstreamAudioSubsongMode"/>
|
|
</parameter>
|
|
<parameter name="initial_position" transfer-ownership="none">
|
|
<type name="Gst.ClockTime" c:type="GstClockTime*"/>
|
|
</parameter>
|
|
<parameter name="initial_output_mode" transfer-ownership="none">
|
|
<type name="NonstreamAudioOutputMode" c:type="GstNonstreamAudioOutputMode*"/>
|
|
</parameter>
|
|
<parameter name="initial_num_loops" transfer-ownership="none">
|
|
<type name="gint" c:type="gint*"/>
|
|
</parameter>
|
|
</parameters>
|
|
</callback>
|
|
</field>
|
|
<field name="get_main_tags">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Optional.
|
|
Returns a tag list containing the main song tags, or NULL if there are
|
|
no such tags. Returned tags will be unref'd. Use this vfunc instead of
|
|
manually pushing a tag event downstream to avoid edge cases where not yet
|
|
pushed sticky tag events get overwritten before they are pushed (can for
|
|
example happen with decodebin if tags are pushed downstream before the
|
|
decodebin pads are linked).</doc>
|
|
<callback name="get_main_tags">
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="full">
|
|
<type name="Gst.TagList" c:type="GstTagList*"/>
|
|
</return-value>
|
|
<parameters>
|
|
<parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</parameter>
|
|
</parameters>
|
|
</callback>
|
|
</field>
|
|
<field name="set_current_subsong">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Optional.
|
|
Sets the current subsong. This function is allowed to switch to a different
|
|
subsong than the required one, and can optionally make use of the suggested initial
|
|
position. In case it chooses a different starting position, the function must pass
|
|
this position to *initial_position.
|
|
This function switches the subsong mode to GST_NONSTREAM_AUDIO_SUBSONG_MODE_SINGLE
|
|
automatically.
|
|
If this function is implemented by the subclass, @get_current_subsong and
|
|
@get_num_subsongs should be implemented as well.</doc>
|
|
<callback name="set_current_subsong">
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="gboolean" c:type="gboolean"/>
|
|
</return-value>
|
|
<parameters>
|
|
<parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</parameter>
|
|
<parameter name="subsong" transfer-ownership="none">
|
|
<type name="guint" c:type="guint"/>
|
|
</parameter>
|
|
<parameter name="initial_position" transfer-ownership="none">
|
|
<type name="Gst.ClockTime" c:type="GstClockTime*"/>
|
|
</parameter>
|
|
</parameters>
|
|
</callback>
|
|
</field>
|
|
<field name="get_current_subsong">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Optional.
|
|
Returns the current subsong.
|
|
If the current subsong mode is not GST_NONSTREAM_AUDIO_SUBSONG_MODE_SINGLE, this
|
|
function's return value is undefined.
|
|
If this function is implemented by the subclass,
|
|
@get_num_subsongs should be implemented as well.</doc>
|
|
<callback name="get_current_subsong">
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="guint" c:type="guint"/>
|
|
</return-value>
|
|
<parameters>
|
|
<parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</parameter>
|
|
</parameters>
|
|
</callback>
|
|
</field>
|
|
<field name="get_num_subsongs">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Optional.
|
|
Returns the number of subsongs available.
|
|
The return values 0 and 1 have a similar, but distinct, meaning.
|
|
If this function returns 0, then this decoder does not support subsongs at all.
|
|
@get_current_subsong must then also always return 0. In other words, this function
|
|
either never returns 0, or never returns anything else than 0.
|
|
A return value of 1 means that the media contains either only one or no subsongs
|
|
(the entire song is then considered to be one single subsong). 1 also means that only
|
|
this very media has no or just one subsong, and the decoder itself can
|
|
support multiple subsongs.</doc>
|
|
<callback name="get_num_subsongs">
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="guint" c:type="guint"/>
|
|
</return-value>
|
|
<parameters>
|
|
<parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</parameter>
|
|
</parameters>
|
|
</callback>
|
|
</field>
|
|
<field name="get_subsong_duration">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Optional.
|
|
Returns the duration of a subsong. Returns GST_CLOCK_TIME_NONE if duration is unknown.</doc>
|
|
<callback name="get_subsong_duration">
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="Gst.ClockTime" c:type="GstClockTime"/>
|
|
</return-value>
|
|
<parameters>
|
|
<parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</parameter>
|
|
<parameter name="subsong" transfer-ownership="none">
|
|
<type name="guint" c:type="guint"/>
|
|
</parameter>
|
|
</parameters>
|
|
</callback>
|
|
</field>
|
|
<field name="get_subsong_tags">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Optional.
|
|
Returns tags for a subsong, or NULL if there are no tags.
|
|
Returned tags will be unref'd.</doc>
|
|
<callback name="get_subsong_tags">
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="full">
|
|
<type name="Gst.TagList" c:type="GstTagList*"/>
|
|
</return-value>
|
|
<parameters>
|
|
<parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</parameter>
|
|
<parameter name="subsong" transfer-ownership="none">
|
|
<type name="guint" c:type="guint"/>
|
|
</parameter>
|
|
</parameters>
|
|
</callback>
|
|
</field>
|
|
<field name="set_subsong_mode">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Optional.
|
|
Sets the current subsong mode. Since this might influence the current playback position,
|
|
this function must set the initial_position integer argument to a defined value.
|
|
If the playback position is not affected at all, it must be set to GST_CLOCK_TIME_NONE.
|
|
If the subsong is restarted after the mode switch, it is recommended to set the value
|
|
to the position in the playback right after the switch (or 0 if the subsongs are always
|
|
reset back to the beginning).</doc>
|
|
<callback name="set_subsong_mode">
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="gboolean" c:type="gboolean"/>
|
|
</return-value>
|
|
<parameters>
|
|
<parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</parameter>
|
|
<parameter name="mode" transfer-ownership="none">
|
|
<type name="NonstreamAudioSubsongMode" c:type="GstNonstreamAudioSubsongMode"/>
|
|
</parameter>
|
|
<parameter name="initial_position" transfer-ownership="none">
|
|
<type name="Gst.ClockTime" c:type="GstClockTime*"/>
|
|
</parameter>
|
|
</parameters>
|
|
</callback>
|
|
</field>
|
|
<field name="set_num_loops">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Optional.
|
|
Sets the number of loops for playback. If this is called during playback,
|
|
the subclass must set any internal loop counters to zero. A loop value of -1
|
|
means infinite looping; 0 means no looping; and when the num_loops is greater than 0,
|
|
playback should loop exactly num_loops times. If this function is implemented,
|
|
@get_num_loops should be implemented as well. The function can ignore the given values
|
|
and choose another; however, @get_num_loops should return this other value afterwards.
|
|
It is up to the subclass to define where the loop starts and ends. It can mean that only
|
|
a subset at the end or in the middle of a song is repeated, for example.
|
|
If the current subsong mode is GST_NONSTREAM_AUDIO_SUBSONG_MODE_SINGLE, then the subsong
|
|
is repeated this many times. If it is GST_NONSTREAM_AUDIO_SUBSONG_MODE_ALL, then all
|
|
subsongs are repeated this many times. With GST_NONSTREAM_AUDIO_SUBSONG_MODE_DECODER_DEFAULT,
|
|
the behavior is decoder specific.</doc>
|
|
<callback name="set_num_loops">
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="gboolean" c:type="gboolean"/>
|
|
</return-value>
|
|
<parameters>
|
|
<parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</parameter>
|
|
<parameter name="num_loops" transfer-ownership="none">
|
|
<type name="gint" c:type="gint"/>
|
|
</parameter>
|
|
</parameters>
|
|
</callback>
|
|
</field>
|
|
<field name="get_num_loops">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Optional.
|
|
Returns the number of loops for playback.</doc>
|
|
<callback name="get_num_loops">
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="gint" c:type="gint"/>
|
|
</return-value>
|
|
<parameters>
|
|
<parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</parameter>
|
|
</parameters>
|
|
</callback>
|
|
</field>
|
|
<field name="get_supported_output_modes">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Always required.
|
|
Returns a bitmask containing the output modes the subclass supports.
|
|
The mask is formed by a bitwise OR combination of integers, which can be calculated
|
|
this way: 1 << GST_NONSTREAM_AUDIO_OUTPUT_MODE_<mode> , where mode is either STEADY or LOOPING</doc>
|
|
<callback name="get_supported_output_modes">
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="guint" c:type="guint"/>
|
|
</return-value>
|
|
<parameters>
|
|
<parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</parameter>
|
|
</parameters>
|
|
</callback>
|
|
</field>
|
|
<field name="set_output_mode">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Optional.
|
|
Sets the output mode the subclass has to use. Unlike with most other functions, the subclass
|
|
cannot choose a different mode; it must use the requested one.
|
|
If the output mode is set to LOOPING, @gst_nonstream_audio_decoder_handle_loop
|
|
must be called after playback moved back to the start of a loop.</doc>
|
|
<callback name="set_output_mode">
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="gboolean" c:type="gboolean"/>
|
|
</return-value>
|
|
<parameters>
|
|
<parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</parameter>
|
|
<parameter name="mode" transfer-ownership="none">
|
|
<type name="NonstreamAudioOutputMode" c:type="GstNonstreamAudioOutputMode"/>
|
|
</parameter>
|
|
<parameter name="current_position" transfer-ownership="none">
|
|
<type name="Gst.ClockTime" c:type="GstClockTime*"/>
|
|
</parameter>
|
|
</parameters>
|
|
</callback>
|
|
</field>
|
|
<field name="decode">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Always required.
|
|
Allocates an output buffer, fills it with decoded audio samples, and must be passed on to
|
|
*buffer . The number of decoded samples must be passed on to *num_samples.
|
|
If decoding finishes or the decoding is no longer possible (for example, due to an
|
|
unrecoverable error), this function returns FALSE, otherwise TRUE.</doc>
|
|
<callback name="decode">
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="gboolean" c:type="gboolean"/>
|
|
</return-value>
|
|
<parameters>
|
|
<parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</parameter>
|
|
<parameter name="buffer" transfer-ownership="none">
|
|
<type name="Gst.Buffer" c:type="GstBuffer**"/>
|
|
</parameter>
|
|
<parameter name="num_samples" transfer-ownership="none">
|
|
<type name="guint" c:type="guint*"/>
|
|
</parameter>
|
|
</parameters>
|
|
</callback>
|
|
</field>
|
|
<field name="negotiate">
|
|
<callback name="negotiate">
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="gboolean" c:type="gboolean"/>
|
|
</return-value>
|
|
<parameters>
|
|
<parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</parameter>
|
|
</parameters>
|
|
</callback>
|
|
</field>
|
|
<field name="decide_allocation">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Optional.
|
|
Sets up the allocation parameters for allocating output
|
|
buffers. The passed in query contains the result of the
|
|
downstream allocation query.
|
|
Subclasses should chain up to the parent implementation to
|
|
invoke the default handler.</doc>
|
|
<callback name="decide_allocation">
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="gboolean" c:type="gboolean"/>
|
|
</return-value>
|
|
<parameters>
|
|
<parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</parameter>
|
|
<parameter name="query" transfer-ownership="none">
|
|
<type name="Gst.Query" c:type="GstQuery*"/>
|
|
</parameter>
|
|
</parameters>
|
|
</callback>
|
|
</field>
|
|
<field name="propose_allocation">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Optional.
|
|
Proposes buffer allocation parameters for upstream elements.
|
|
Subclasses should chain up to the parent implementation to
|
|
invoke the default handler.</doc>
|
|
<callback name="propose_allocation">
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="gboolean" c:type="gboolean"/>
|
|
</return-value>
|
|
<parameters>
|
|
<parameter name="dec" transfer-ownership="none">
|
|
<type name="NonstreamAudioDecoder" c:type="GstNonstreamAudioDecoder*"/>
|
|
</parameter>
|
|
<parameter name="query" transfer-ownership="none">
|
|
<type name="Gst.Query" c:type="GstQuery*"/>
|
|
</parameter>
|
|
</parameters>
|
|
</callback>
|
|
</field>
|
|
<field name="_gst_reserved" readable="0" private="1">
|
|
<array zero-terminated="0" fixed-size="20">
|
|
<type name="gpointer" c:type="gpointer"/>
|
|
</array>
|
|
</field>
|
|
</record>
|
|
<enumeration name="NonstreamAudioOutputMode" c:type="GstNonstreamAudioOutputMode">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">The output mode defines how the output behaves with regards to looping. Either the playback position is
|
|
moved back to the beginning of the loop, acting like a backwards seek, or it increases steadily, as if
|
|
loop were "unrolled".</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<member name="looping" value="0" c:identifier="GST_NONSTREAM_AUDIO_OUTPUT_MODE_LOOPING">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Playback position is moved back to the beginning of the loop</doc>
|
|
</member>
|
|
<member name="steady" value="1" c:identifier="GST_NONSTREAM_AUDIO_OUTPUT_MODE_STEADY">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Playback position increases steadily, even when looping</doc>
|
|
</member>
|
|
</enumeration>
|
|
<enumeration name="NonstreamAudioSubsongMode" c:type="GstNonstreamAudioSubsongMode">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">The subsong mode defines how the decoder shall handle subsongs.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h"/>
|
|
<member name="single" value="0" c:identifier="GST_NONSTREAM_AUDIO_SUBSONG_MODE_SINGLE">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Only the current subsong is played</doc>
|
|
</member>
|
|
<member name="all" value="1" c:identifier="GST_NONSTREAM_AUDIO_SUBSONG_MODE_ALL">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">All subsongs are played (current subsong index is ignored)</doc>
|
|
</member>
|
|
<member name="decoder_default" value="2" c:identifier="GST_NONSTREAM_AUDIO_SUBSONG_MODE_DECODER_DEFAULT">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstnonstreamaudiodecoder.h">Use decoder specific default behavior</doc>
|
|
</member>
|
|
</enumeration>
|
|
<function-macro name="PLANAR_AUDIO_ADAPTER" c:identifier="GST_PLANAR_AUDIO_ADAPTER" introspectable="0">
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/>
|
|
<parameters>
|
|
<parameter name="obj">
|
|
</parameter>
|
|
</parameters>
|
|
</function-macro>
|
|
<function-macro name="PLANAR_AUDIO_ADAPTER_CLASS" c:identifier="GST_PLANAR_AUDIO_ADAPTER_CLASS" introspectable="0">
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/>
|
|
<parameters>
|
|
<parameter name="klass">
|
|
</parameter>
|
|
</parameters>
|
|
</function-macro>
|
|
<function-macro name="PLANAR_AUDIO_ADAPTER_GET_CLASS" c:identifier="GST_PLANAR_AUDIO_ADAPTER_GET_CLASS" introspectable="0">
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/>
|
|
<parameters>
|
|
<parameter name="obj">
|
|
</parameter>
|
|
</parameters>
|
|
</function-macro>
|
|
<class name="PlanarAudioAdapter" c:symbol-prefix="planar_audio_adapter" c:type="GstPlanarAudioAdapter" parent="GObject.Object" glib:type-name="GstPlanarAudioAdapter" glib:get-type="gst_planar_audio_adapter_get_type" glib:type-struct="PlanarAudioAdapterClass">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">This class is similar to GstAdapter, but it is made to work with
|
|
non-interleaved (planar) audio buffers. Before using, an audio format
|
|
must be configured with gst_planar_audio_adapter_configure()</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/>
|
|
<constructor name="new" c:identifier="gst_planar_audio_adapter_new">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">Creates a new #GstPlanarAudioAdapter. Free with g_object_unref().</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/>
|
|
<return-value transfer-ownership="full">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a new #GstPlanarAudioAdapter</doc>
|
|
<type name="PlanarAudioAdapter" c:type="GstPlanarAudioAdapter*"/>
|
|
</return-value>
|
|
</constructor>
|
|
<method name="available" c:identifier="gst_planar_audio_adapter_available">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">Gets the maximum amount of samples available, that is it returns the maximum
|
|
value that can be supplied to gst_planar_audio_adapter_get_buffer() without
|
|
that function returning %NULL.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">number of samples available in @adapter</doc>
|
|
<type name="gsize" c:type="gsize"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="adapter" transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a #GstPlanarAudioAdapter</doc>
|
|
<type name="PlanarAudioAdapter" c:type="GstPlanarAudioAdapter*"/>
|
|
</instance-parameter>
|
|
</parameters>
|
|
</method>
|
|
<method name="clear" c:identifier="gst_planar_audio_adapter_clear">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">Removes all buffers from @adapter.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="none" c:type="void"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="adapter" transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a #GstPlanarAudioAdapter</doc>
|
|
<type name="PlanarAudioAdapter" c:type="GstPlanarAudioAdapter*"/>
|
|
</instance-parameter>
|
|
</parameters>
|
|
</method>
|
|
<method name="configure" c:identifier="gst_planar_audio_adapter_configure">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">Sets up the @adapter to handle audio data of the specified audio format.
|
|
Note that this will internally clear the adapter and re-initialize it.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="none" c:type="void"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="adapter" transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a #GstPlanarAudioAdapter</doc>
|
|
<type name="PlanarAudioAdapter" c:type="GstPlanarAudioAdapter*"/>
|
|
</instance-parameter>
|
|
<parameter name="info" transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a #GstAudioInfo describing the format of the audio data</doc>
|
|
<type name="GstAudio.AudioInfo" c:type="const GstAudioInfo*"/>
|
|
</parameter>
|
|
</parameters>
|
|
</method>
|
|
<method name="distance_from_discont" c:identifier="gst_planar_audio_adapter_distance_from_discont">
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="guint64" c:type="guint64"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="adapter" transfer-ownership="none">
|
|
<type name="PlanarAudioAdapter" c:type="GstPlanarAudioAdapter*"/>
|
|
</instance-parameter>
|
|
</parameters>
|
|
</method>
|
|
<method name="dts_at_discont" c:identifier="gst_planar_audio_adapter_dts_at_discont">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">Get the DTS that was on the last buffer with the GST_BUFFER_FLAG_DISCONT
|
|
flag, or GST_CLOCK_TIME_NONE.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">The DTS at the last discont or GST_CLOCK_TIME_NONE.</doc>
|
|
<type name="Gst.ClockTime" c:type="GstClockTime"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="adapter" transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a #GstPlanarAudioAdapter</doc>
|
|
<type name="PlanarAudioAdapter" c:type="GstPlanarAudioAdapter*"/>
|
|
</instance-parameter>
|
|
</parameters>
|
|
</method>
|
|
<method name="flush" c:identifier="gst_planar_audio_adapter_flush">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">Flushes the first @to_flush samples in the @adapter. The caller must ensure
|
|
that at least this many samples are available.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="none" c:type="void"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="adapter" transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a #GstPlanarAudioAdapter</doc>
|
|
<type name="PlanarAudioAdapter" c:type="GstPlanarAudioAdapter*"/>
|
|
</instance-parameter>
|
|
<parameter name="to_flush" transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">the number of samples to flush</doc>
|
|
<type name="gsize" c:type="gsize"/>
|
|
</parameter>
|
|
</parameters>
|
|
</method>
|
|
<method name="get_buffer" c:identifier="gst_planar_audio_adapter_get_buffer">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">Returns a #GstBuffer containing the first @nsamples of the @adapter, but
|
|
does not flush them from the adapter.
|
|
Use gst_planar_audio_adapter_take_buffer() for flushing at the same time.
|
|
|
|
The map @flags can be used to give an optimization hint to this function.
|
|
When the requested buffer is meant to be mapped only for reading, it might
|
|
be possible to avoid copying memory in some cases.
|
|
|
|
Caller owns a reference to the returned buffer. gst_buffer_unref() after
|
|
usage.
|
|
|
|
Free-function: gst_buffer_unref</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/>
|
|
<return-value transfer-ownership="full" nullable="1">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a #GstBuffer containing the first
|
|
@nsamples of the adapter, or %NULL if @nsamples samples are not
|
|
available. gst_buffer_unref() when no longer needed.</doc>
|
|
<type name="Gst.Buffer" c:type="GstBuffer*"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="adapter" transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a #GstPlanarAudioAdapter</doc>
|
|
<type name="PlanarAudioAdapter" c:type="GstPlanarAudioAdapter*"/>
|
|
</instance-parameter>
|
|
<parameter name="nsamples" transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">the number of samples to get</doc>
|
|
<type name="gsize" c:type="gsize"/>
|
|
</parameter>
|
|
<parameter name="flags" transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">hint the intended use of the returned buffer</doc>
|
|
<type name="Gst.MapFlags" c:type="GstMapFlags"/>
|
|
</parameter>
|
|
</parameters>
|
|
</method>
|
|
<method name="offset_at_discont" c:identifier="gst_planar_audio_adapter_offset_at_discont">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">Get the offset that was on the last buffer with the GST_BUFFER_FLAG_DISCONT
|
|
flag, or GST_BUFFER_OFFSET_NONE.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">The offset at the last discont or GST_BUFFER_OFFSET_NONE.</doc>
|
|
<type name="guint64" c:type="guint64"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="adapter" transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a #GstPlanarAudioAdapter</doc>
|
|
<type name="PlanarAudioAdapter" c:type="GstPlanarAudioAdapter*"/>
|
|
</instance-parameter>
|
|
</parameters>
|
|
</method>
|
|
<method name="prev_dts" c:identifier="gst_planar_audio_adapter_prev_dts">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">Get the dts that was before the current sample in the adapter. When
|
|
@distance is given, the amount of bytes between the dts and the current
|
|
position is returned.
|
|
|
|
The dts is reset to GST_CLOCK_TIME_NONE and the distance is set to 0 when
|
|
the adapter is first created or when it is cleared. This also means that
|
|
before the first sample with a dts is removed from the adapter, the dts
|
|
and distance returned are GST_CLOCK_TIME_NONE and 0 respectively.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">The previously seen dts.</doc>
|
|
<type name="Gst.ClockTime" c:type="GstClockTime"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="adapter" transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a #GstPlanarAudioAdapter</doc>
|
|
<type name="PlanarAudioAdapter" c:type="GstPlanarAudioAdapter*"/>
|
|
</instance-parameter>
|
|
<parameter name="distance" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">pointer to location for distance, or %NULL</doc>
|
|
<type name="guint64" c:type="guint64*"/>
|
|
</parameter>
|
|
</parameters>
|
|
</method>
|
|
<method name="prev_offset" c:identifier="gst_planar_audio_adapter_prev_offset">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">Get the offset that was before the current sample in the adapter. When
|
|
@distance is given, the amount of samples between the offset and the current
|
|
position is returned.
|
|
|
|
The offset is reset to GST_BUFFER_OFFSET_NONE and the distance is set to 0
|
|
when the adapter is first created or when it is cleared. This also means that
|
|
before the first sample with an offset is removed from the adapter, the
|
|
offset and distance returned are GST_BUFFER_OFFSET_NONE and 0 respectively.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">The previous seen offset.</doc>
|
|
<type name="guint64" c:type="guint64"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="adapter" transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a #GstPlanarAudioAdapter</doc>
|
|
<type name="PlanarAudioAdapter" c:type="GstPlanarAudioAdapter*"/>
|
|
</instance-parameter>
|
|
<parameter name="distance" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">pointer to a location for distance, or %NULL</doc>
|
|
<type name="guint64" c:type="guint64*"/>
|
|
</parameter>
|
|
</parameters>
|
|
</method>
|
|
<method name="prev_pts" c:identifier="gst_planar_audio_adapter_prev_pts">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">Get the pts that was before the current sample in the adapter. When
|
|
@distance is given, the amount of samples between the pts and the current
|
|
position is returned.
|
|
|
|
The pts is reset to GST_CLOCK_TIME_NONE and the distance is set to 0 when
|
|
the adapter is first created or when it is cleared. This also means that before
|
|
the first sample with a pts is removed from the adapter, the pts
|
|
and distance returned are GST_CLOCK_TIME_NONE and 0 respectively.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">The previously seen pts.</doc>
|
|
<type name="Gst.ClockTime" c:type="GstClockTime"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="adapter" transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a #GstPlanarAudioAdapter</doc>
|
|
<type name="PlanarAudioAdapter" c:type="GstPlanarAudioAdapter*"/>
|
|
</instance-parameter>
|
|
<parameter name="distance" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">pointer to location for distance, or %NULL</doc>
|
|
<type name="guint64" c:type="guint64*"/>
|
|
</parameter>
|
|
</parameters>
|
|
</method>
|
|
<method name="pts_at_discont" c:identifier="gst_planar_audio_adapter_pts_at_discont">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">Get the PTS that was on the last buffer with the GST_BUFFER_FLAG_DISCONT
|
|
flag, or GST_CLOCK_TIME_NONE.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">The PTS at the last discont or GST_CLOCK_TIME_NONE.</doc>
|
|
<type name="Gst.ClockTime" c:type="GstClockTime"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="adapter" transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a #GstPlanarAudioAdapter</doc>
|
|
<type name="PlanarAudioAdapter" c:type="GstPlanarAudioAdapter*"/>
|
|
</instance-parameter>
|
|
</parameters>
|
|
</method>
|
|
<method name="push" c:identifier="gst_planar_audio_adapter_push">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">Adds the data from @buf to the data stored inside @adapter and takes
|
|
ownership of the buffer.</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/>
|
|
<return-value transfer-ownership="none">
|
|
<type name="none" c:type="void"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="adapter" transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a #GstPlanarAudioAdapter</doc>
|
|
<type name="PlanarAudioAdapter" c:type="GstPlanarAudioAdapter*"/>
|
|
</instance-parameter>
|
|
<parameter name="buf" transfer-ownership="full">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a #GstBuffer to queue in the adapter</doc>
|
|
<type name="Gst.Buffer" c:type="GstBuffer*"/>
|
|
</parameter>
|
|
</parameters>
|
|
</method>
|
|
<method name="take_buffer" c:identifier="gst_planar_audio_adapter_take_buffer">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">Returns a #GstBuffer containing the first @nsamples bytes of the
|
|
@adapter. The returned bytes will be flushed from the adapter.
|
|
|
|
See gst_planar_audio_adapter_get_buffer() for more details.
|
|
|
|
Caller owns a reference to the returned buffer. gst_buffer_unref() after
|
|
usage.
|
|
|
|
Free-function: gst_buffer_unref</doc>
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/>
|
|
<return-value transfer-ownership="full" nullable="1">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a #GstBuffer containing the first
|
|
@nsamples of the adapter, or %NULL if @nsamples samples are not
|
|
available. gst_buffer_unref() when no longer needed.</doc>
|
|
<type name="Gst.Buffer" c:type="GstBuffer*"/>
|
|
</return-value>
|
|
<parameters>
|
|
<instance-parameter name="adapter" transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">a #GstPlanarAudioAdapter</doc>
|
|
<type name="PlanarAudioAdapter" c:type="GstPlanarAudioAdapter*"/>
|
|
</instance-parameter>
|
|
<parameter name="nsamples" transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">the number of samples to take</doc>
|
|
<type name="gsize" c:type="gsize"/>
|
|
</parameter>
|
|
<parameter name="flags" transfer-ownership="none">
|
|
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.c">hint the intended use of the returned buffer</doc>
|
|
<type name="Gst.MapFlags" c:type="GstMapFlags"/>
|
|
</parameter>
|
|
</parameters>
|
|
</method>
|
|
</class>
|
|
<record name="PlanarAudioAdapterClass" c:type="GstPlanarAudioAdapterClass" disguised="1" opaque="1" glib:is-gtype-struct-for="PlanarAudioAdapter">
|
|
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/audio/gstplanaraudioadapter.h"/>
|
|
</record>
|
|
</namespace>
|
|
</repository>
|