Top |
struct | GstQuery |
enum | GstQueryTypeFlags |
#define | GST_QUERY_TYPE_BOTH |
enum | GstQueryType |
enum | GstBufferingMode |
enum | GstSchedulingFlags |
Queries can be performed on pads (gst_pad_query()
) and elements
(gst_element_query()
). Please note that some queries might need a running
pipeline to work.
Queries can be created using the gst_query_new_*() functions. Query values can be set using gst_query_set_*(), and parsed using gst_query_parse_*() helpers.
The following example shows how to query the duration of a pipeline:
1 2 3 4 5 6 7 8 9 10 11 12 |
GstQuery *query; gboolean res; query = gst_query_new_duration (GST_FORMAT_TIME); res = gst_element_query (pipeline, query); if (res) { gint64 duration; gst_query_parse_duration (query, NULL, &duration); g_print ("duration = %"GST_TIME_FORMAT, GST_TIME_ARGS (duration)); } else { g_print ("duration query failed..."); } gst_query_unref (query); |
#define GST_QUERY_MAKE_TYPE(num,flags)
when making custom query types, use this macro with the num and the given flags
#define GST_QUERY_TYPE(query) (((GstQuery*)(query))->type)
Get the GstQueryType of the query.
#define GST_QUERY_TYPE_NAME(query) (gst_query_type_get_name(GST_QUERY_TYPE(query)))
Get a constant string representation of the GstQueryType of the query.
#define GST_QUERY_IS_UPSTREAM(ev) !!(GST_QUERY_TYPE (ev) & GST_QUERY_TYPE_UPSTREAM)
Check if an query can travel upstream.
#define GST_QUERY_IS_DOWNSTREAM(ev) !!(GST_QUERY_TYPE (ev) & GST_QUERY_TYPE_DOWNSTREAM)
Check if an query can travel downstream.
#define GST_QUERY_IS_SERIALIZED(ev) !!(GST_QUERY_TYPE (ev) & GST_QUERY_TYPE_SERIALIZED)
Check if an query is serialized with the data stream.
GstQueryTypeFlags
gst_query_type_get_flags (GstQueryType type
);
Gets the GstQueryTypeFlags associated with type
.
const gchar *
gst_query_type_get_name (GstQueryType type
);
Get a printable name for the given query type. Do not modify or free.
GQuark
gst_query_type_to_quark (GstQueryType type
);
Get the unique quark for the given query type.
GstQuery *
gst_query_ref (GstQuery *q
);
Increases the refcount of the given query by one.
void
gst_query_unref (GstQuery *q
);
Decreases the refcount of the query. If the refcount reaches 0, the query will be freed.
GstQuery *
gst_query_copy (const GstQuery *q
);
Copies the given query using the copy function of the parent GstStructure.
Free-function: gst_query_unref
#define gst_query_make_writable(q) GST_QUERY_CAST (gst_mini_object_make_writable (GST_MINI_OBJECT_CAST (q)))
Makes a writable query from the given query.
#define gst_query_is_writable(q) gst_mini_object_is_writable (GST_MINI_OBJECT_CAST (q))
Tests if you can safely write data into a query's structure.
gboolean gst_query_replace (GstQuery **old_query
,GstQuery *new_query
);
Modifies a pointer to a GstQuery to point to a different GstQuery. The modification is done atomically (so this is useful for ensuring thread safety in some cases), and the reference counts are updated appropriately (the old query is unreffed, the new one is reffed).
Either new_query
or the GstQuery pointed to by old_query
may be NULL
.
GstStructure *
gst_query_writable_structure (GstQuery *query
);
Get the structure of a query. This method should be called with a writable
query
so that the returned structure is guaranteed to be writable.
the GstStructure of the query. The structure is still owned by the query and will therefore be freed when the query is unreffed.
[transfer none]
GstQuery * gst_query_new_custom (GstQueryType type
,GstStructure *structure
);
Constructs a new custom query object. Use gst_query_unref()
when done with it.
Free-function: gst_query_unref
const GstStructure *
gst_query_get_structure (GstQuery *query
);
Get the structure of a query.
the GstStructure of the query. The structure is still owned by the query and will therefore be freed when the query is unreffed.
[transfer none]
GstQuery * gst_query_new_convert (GstFormat src_format
,gint64 value
,GstFormat dest_format
);
Constructs a new convert query object. Use gst_query_unref()
when done with it. A convert query is used to ask for a conversion between
one format and another.
Free-function: gst_query_unref
void gst_query_set_convert (GstQuery *query
,GstFormat src_format
,gint64 src_value
,GstFormat dest_format
,gint64 dest_value
);
Answer a convert query by setting the requested values.
void gst_query_parse_convert (GstQuery *query
,GstFormat *src_format
,gint64 *src_value
,GstFormat *dest_format
,gint64 *dest_value
);
Parse a convert query answer. Any of src_format
, src_value
, dest_format
,
and dest_value
may be NULL
, in which case that value is omitted.
GstQuery *
gst_query_new_position (GstFormat format
);
Constructs a new query stream position query object. Use gst_query_unref()
when done with it. A position query is used to query the current position
of playback in the streams, in some format.
Free-function: gst_query_unref
void gst_query_set_position (GstQuery *query
,GstFormat format
,gint64 cur
);
Answer a position query by setting the requested value in the given format.
void gst_query_parse_position (GstQuery *query
,GstFormat *format
,gint64 *cur
);
Parse a position query, writing the format into format
, and the position
into cur
, if the respective parameters are non-NULL
.
GstQuery *
gst_query_new_duration (GstFormat format
);
Constructs a new stream duration query object to query in the given format.
Use gst_query_unref()
when done with it. A duration query will give the
total length of the stream.
Free-function: gst_query_unref
void gst_query_set_duration (GstQuery *query
,GstFormat format
,gint64 duration
);
Answer a duration query by setting the requested value in the given format.
void gst_query_parse_duration (GstQuery *query
,GstFormat *format
,gint64 *duration
);
Parse a duration query answer. Write the format of the duration into format
,
and the value into duration
, if the respective variables are non-NULL
.
GstQuery *
gst_query_new_latency (void
);
Constructs a new latency query object.
Use gst_query_unref()
when done with it. A latency query is usually performed
by sinks to compensate for additional latency introduced by elements in the
pipeline.
Free-function: gst_query_unref
void gst_query_parse_latency (GstQuery *query
,gboolean *live
,GstClockTime *min_latency
,GstClockTime *max_latency
);
Parse a latency query answer.
void gst_query_set_latency (GstQuery *query
,gboolean live
,GstClockTime min_latency
,GstClockTime max_latency
);
Answer a latency query by setting the requested values in the given format.
query |
a GstQuery |
|
live |
if there is a live element upstream |
|
min_latency |
the minimal latency of the upstream elements |
|
max_latency |
the maximal latency of the upstream elements |
GstQuery *
gst_query_new_seeking (GstFormat format
);
Constructs a new query object for querying seeking properties of the stream.
Free-function: gst_query_unref
void gst_query_set_seeking (GstQuery *query
,GstFormat format
,gboolean seekable
,gint64 segment_start
,gint64 segment_end
);
Set the seeking query result fields in query
.
query |
a GstQuery |
|
format |
the format to set for the |
|
seekable |
the seekable flag to set |
|
segment_start |
the segment_start to set |
|
segment_end |
the segment_end to set |
void gst_query_parse_seeking (GstQuery *query
,GstFormat *format
,gboolean *seekable
,gint64 *segment_start
,gint64 *segment_end
);
Parse a seeking query, writing the format into format
, and
other results into the passed parameters, if the respective parameters
are non-NULL
query |
a GST_QUERY_SEEKING type query GstQuery |
|
format |
the format to set for the |
[out][allow-none] |
seekable |
the seekable flag to set, or |
[out][allow-none] |
segment_start |
the segment_start to set, or |
[out][allow-none] |
segment_end |
the segment_end to set, or |
[out][allow-none] |
GstQuery *
gst_query_new_formats (void
);
Constructs a new query object for querying formats of the stream.
Free-function: gst_query_unref
void gst_query_set_formats (GstQuery *query
,gint n_formats
,...
);
Set the formats query result fields in query
. The number of formats passed
must be equal to n_formats
.
query |
a GstQuery |
|
n_formats |
the number of formats to set. |
|
... |
A number of |
void gst_query_set_formatsv (GstQuery *query
,gint n_formats
,const GstFormat *formats
);
Set the formats query result fields in query
. The number of formats passed
in the formats
array must be equal to n_formats
.
query |
a GstQuery |
|
n_formats |
the number of formats to set. |
|
formats |
an array containing |
[in][array length=n_formats] |
void gst_query_parse_n_formats (GstQuery *query
,guint *n_formats
);
Parse the number of formats in the formats query
.
void gst_query_parse_nth_format (GstQuery *query
,guint nth
,GstFormat *format
);
Parse the format query and retrieve the nth
format from it into
format
. If the list contains less elements than nth
, format
will be
set to GST_FORMAT_UNDEFINED.
query |
a GstQuery |
|
nth |
the nth format to retrieve. |
[out] |
format |
a pointer to store the nth format. |
[out][allow-none] |
GstQuery *
gst_query_new_segment (GstFormat format
);
Constructs a new segment query object. Use gst_query_unref()
when done with it. A segment query is used to discover information about the
currently configured segment for playback.
Free-function: gst_query_unref
void gst_query_set_segment (GstQuery *query
,gdouble rate
,GstFormat format
,gint64 start_value
,gint64 stop_value
);
Answer a segment query by setting the requested values. The normal playback segment of a pipeline is 0 to duration at the default rate of 1.0. If a seek was performed on the pipeline to play a different segment, this query will return the range specified in the last seek.
start_value
and stop_value
will respectively contain the configured
playback range start and stop values expressed in format
.
The values are always between 0 and the duration of the media and
start_value
<= stop_value
. rate
will contain the playback rate. For
negative rates, playback will actually happen from stop_value
to
start_value
.
void gst_query_parse_segment (GstQuery *query
,gdouble *rate
,GstFormat *format
,gint64 *start_value
,gint64 *stop_value
);
Parse a segment query answer. Any of rate
, format
, start_value
, and
stop_value
may be NULL
, which will cause this value to be omitted.
See gst_query_set_segment()
for an explanation of the function arguments.
GstQuery *
gst_query_new_caps (GstCaps *filter
);
Constructs a new query object for querying the caps.
The CAPS query should return the allowable caps for a pad in the context of the element's state, its link to other elements, and the devices or files it has opened. These caps must be a subset of the pad template caps. In the NULL state with no links, the CAPS query should ideally return the same caps as the pad template. In rare circumstances, an object property can affect the caps returned by the CAPS query, but this is discouraged.
For most filters, the caps returned by CAPS query is directly affected by the allowed caps on other pads. For demuxers and decoders, the caps returned by the srcpad's getcaps function is directly related to the stream data. Again, the CAPS query should return the most specific caps it reasonably can, since this helps with autoplugging.
The filter
is used to restrict the result caps, only the caps matching
filter
should be returned from the CAPS query. Specifying a filter might
greatly reduce the amount of processing an element needs to do.
Free-function: gst_query_unref
void gst_query_parse_caps (GstQuery *query
,GstCaps **filter
);
Get the filter from the caps query
. The caps remains valid as long as
query
remains valid.
void gst_query_set_caps_result (GstQuery *query
,GstCaps *caps
);
Set the caps
result in query
.
void gst_query_parse_caps_result (GstQuery *query
,GstCaps **caps
);
Get the caps result from query
. The caps remains valid as long as
query
remains valid.
GstQuery *
gst_query_new_accept_caps (GstCaps *caps
);
Constructs a new query object for querying if caps
are accepted.
Free-function: gst_query_unref
void gst_query_parse_accept_caps (GstQuery *query
,GstCaps **caps
);
Get the caps from query
. The caps remains valid as long as query
remains
valid.
void gst_query_set_accept_caps_result (GstQuery *query
,gboolean result
);
Set result
as the result for the query
.
void gst_query_parse_accept_caps_result (GstQuery *query
,gboolean *result
);
Parse the result from query
and store in result
.
GstQuery *
gst_query_new_buffering (GstFormat format
);
Constructs a new query object for querying the buffering status of a stream.
Free-function: gst_query_unref
void gst_query_set_buffering_percent (GstQuery *query
,gboolean busy
,gint percent
);
Set the percentage of buffered data. This is a value between 0 and 100.
The busy
indicator is TRUE
when the buffering is in progress.
query |
A valid GstQuery of type GST_QUERY_BUFFERING. |
|
busy |
if buffering is busy |
|
percent |
a buffering percent |
void gst_query_parse_buffering_percent (GstQuery *query
,gboolean *busy
,gint *percent
);
Get the percentage of buffered data. This is a value between 0 and 100.
The busy
indicator is TRUE
when the buffering is in progress.
void gst_query_set_buffering_stats (GstQuery *query
,GstBufferingMode mode
,gint avg_in
,gint avg_out
,gint64 buffering_left
);
Configures the buffering stats values in query
.
query |
A valid GstQuery of type GST_QUERY_BUFFERING. |
|
mode |
a buffering mode |
|
avg_in |
the average input rate |
|
avg_out |
the average output rate |
|
buffering_left |
amount of buffering time left in milliseconds |
void gst_query_parse_buffering_stats (GstQuery *query
,GstBufferingMode *mode
,gint *avg_in
,gint *avg_out
,gint64 *buffering_left
);
Extracts the buffering stats values from query
.
query |
A valid GstQuery of type GST_QUERY_BUFFERING. |
|
mode |
a buffering mode, or |
[out][allow-none] |
avg_in |
the average input rate, or |
[out][allow-none] |
avg_out |
the average output rat, or |
[out][allow-none] |
buffering_left |
amount of buffering time left in
milliseconds, or |
[out][allow-none] |
void gst_query_set_buffering_range (GstQuery *query
,GstFormat format
,gint64 start
,gint64 stop
,gint64 estimated_total
);
Set the available query result fields in query
.
query |
a GstQuery |
|
format |
the format to set for the |
|
start |
the start to set |
|
stop |
the stop to set |
|
estimated_total |
estimated total amount of download time remaining in milliseconds |
void gst_query_parse_buffering_range (GstQuery *query
,GstFormat *format
,gint64 *start
,gint64 *stop
,gint64 *estimated_total
);
Parse an available query, writing the format into format
, and
other results into the passed parameters, if the respective parameters
are non-NULL
query |
a GST_QUERY_BUFFERING type query GstQuery |
|
format |
the format to set for the |
[out][allow-none] |
start |
the start to set, or |
[out][allow-none] |
stop |
the stop to set, or |
[out][allow-none] |
estimated_total |
estimated total amount of download
time remaining in milliseconds, or |
[out][allow-none] |
gboolean gst_query_add_buffering_range (GstQuery *query
,gint64 start
,gint64 stop
);
Set the buffering-ranges array field in query
. The current last
start position of the array should be inferior to start
.
query |
a GST_QUERY_BUFFERING type query GstQuery |
|
start |
start position of the range |
|
stop |
stop position of the range |
guint
gst_query_get_n_buffering_ranges (GstQuery *query
);
Retrieve the number of values currently stored in the buffered-ranges array of the query's structure.
gboolean gst_query_parse_nth_buffering_range (GstQuery *query
,guint index
,gint64 *start
,gint64 *stop
);
Parse an available query and get the start and stop values stored
at the index
of the buffered ranges array.
GstQuery *
gst_query_new_uri (void
);
Constructs a new query URI query object. Use gst_query_unref()
when done with it. An URI query is used to query the current URI
that is used by the source or sink.
Free-function: gst_query_unref
void gst_query_parse_uri (GstQuery *query
,gchar **uri
);
Parse an URI query, writing the URI into uri
as a newly
allocated string, if the respective parameters are non-NULL
.
Free the string with g_free()
after usage.
void gst_query_set_uri (GstQuery *query
,const gchar *uri
);
Answer a URI query by setting the requested URI.
void gst_query_parse_uri_redirection (GstQuery *query
,gchar **uri
);
Parse an URI query, writing the URI into uri
as a newly
allocated string, if the respective parameters are non-NULL
.
Free the string with g_free()
after usage.
Since: 1.2
void gst_query_set_uri_redirection (GstQuery *query
,const gchar *uri
);
Answer a URI query by setting the requested URI redirection.
Since: 1.2
void gst_query_parse_uri_redirection_permanent (GstQuery *query
,gboolean *permanent
);
Parse an URI query, and set permanent
to TRUE
if there is a redirection
and it should be considered permanent. If a redirection is permanent,
applications should update their internal storage of the URI, otherwise
they should make all future requests to the original URI.
Since: 1.4
void gst_query_set_uri_redirection_permanent (GstQuery *query
,gboolean permanent
);
Answer a URI query by setting the requested URI redirection to permanent or not.
query |
a GstQuery with query type |
|
permanent |
whether the redirect is permanent or not |
Since: 1.4
GstQuery * gst_query_new_allocation (GstCaps *caps
,gboolean need_pool
);
Constructs a new query object for querying the allocation properties.
Free-function: gst_query_unref
void gst_query_parse_allocation (GstQuery *query
,GstCaps **caps
,gboolean *need_pool
);
Parse an allocation query, writing the requested caps in caps
and
whether a pool is needed in need_pool
, if the respective parameters
are non-NULL
.
query |
a GstQuery |
|
caps |
The GstCaps. |
[out][transfer none][allow-none] |
need_pool |
Whether a GstBufferPool is needed. |
[out][allow-none] |
void gst_query_add_allocation_pool (GstQuery *query
,GstBufferPool *pool
,guint size
,guint min_buffers
,guint max_buffers
);
Set the pool parameters in query
.
query |
A valid GstQuery of type GST_QUERY_ALLOCATION. |
|
pool |
the GstBufferPool. |
[transfer none][allow-none] |
size |
the size |
|
min_buffers |
the min buffers |
|
max_buffers |
the max buffers |
guint
gst_query_get_n_allocation_pools (GstQuery *query
);
Retrieve the number of values currently stored in the pool array of the query's structure.
void gst_query_parse_nth_allocation_pool (GstQuery *query
,guint index
,GstBufferPool **pool
,guint *size
,guint *min_buffers
,guint *max_buffers
);
Get the pool parameters in query
.
Unref pool
with gst_object_unref()
when it's not needed any more.
query |
A valid GstQuery of type GST_QUERY_ALLOCATION. |
|
index |
index to parse |
|
pool |
the GstBufferPool. |
[out][allow-none][transfer full] |
size |
the size. |
[out][allow-none] |
min_buffers |
the min buffers. |
[out][allow-none] |
max_buffers |
the max buffers. |
[out][allow-none] |
void gst_query_set_nth_allocation_pool (GstQuery *query
,guint index
,GstBufferPool *pool
,guint size
,guint min_buffers
,guint max_buffers
);
Set the pool parameters in query
.
index |
index to modify |
|
query |
A valid GstQuery of type GST_QUERY_ALLOCATION. |
|
pool |
the GstBufferPool. |
[transfer none][allow-none] |
size |
the size |
|
min_buffers |
the min buffers |
|
max_buffers |
the max buffers |
void gst_query_remove_nth_allocation_pool (GstQuery *query
,guint index
);
Remove the allocation pool at index
of the allocation pool array.
query |
a GST_QUERY_ALLOCATION type query GstQuery |
|
index |
position in the allocation pool array to remove |
Since: 1.2
void gst_query_add_allocation_param (GstQuery *query
,GstAllocator *allocator
,const GstAllocationParams *params
);
Add allocator
and its params
as a supported memory allocator.
query |
a GST_QUERY_ALLOCATION type query GstQuery |
|
allocator |
the memory allocator. |
[transfer none][allow-none] |
params |
[transfer none][allow-none] |
guint
gst_query_get_n_allocation_params (GstQuery *query
);
Retrieve the number of values currently stored in the allocator params array of the query's structure.
If no memory allocator is specified, the downstream element can handle the default memory allocator. The first memory allocator in the query should be generic and allow mapping to system memory, all following allocators should be ordered by preference with the preferred one first.
void gst_query_parse_nth_allocation_param (GstQuery *query
,guint index
,GstAllocator **allocator
,GstAllocationParams *params
);
Parse an available query and get the allocator and its params
at index
of the allocator array.
query |
a GST_QUERY_ALLOCATION type query GstQuery |
|
index |
position in the allocator array to read |
|
allocator |
variable to hold the result. |
[out][transfer full][allow-none] |
params |
parameters for the allocator. |
[out][allow-none] |
void gst_query_set_nth_allocation_param (GstQuery *query
,guint index
,GstAllocator *allocator
,const GstAllocationParams *params
);
Parse an available query and get the allocator and its params
at index
of the allocator array.
query |
a GST_QUERY_ALLOCATION type query GstQuery |
|
index |
position in the allocator array to set |
|
allocator |
new allocator to set. |
[transfer none][allow-none] |
params |
parameters for the allocator. |
[transfer none][allow-none] |
void gst_query_remove_nth_allocation_param (GstQuery *query
,guint index
);
Remove the allocation param at index
of the allocation param array.
query |
a GST_QUERY_ALLOCATION type query GstQuery |
|
index |
position in the allocation param array to remove |
Since: 1.2
void gst_query_add_allocation_meta (GstQuery *query
,GType api
,const GstStructure *params
);
Add api
with params
as one of the supported metadata API to query
.
query |
a GST_QUERY_ALLOCATION type query GstQuery |
|
api |
the metadata API |
|
params |
API specific parameters. |
[transfer none][allow-none] |
guint
gst_query_get_n_allocation_metas (GstQuery *query
);
Retrieve the number of values currently stored in the meta API array of the query's structure.
GType gst_query_parse_nth_allocation_meta (GstQuery *query
,guint index
,const GstStructure **params
);
Parse an available query and get the metadata API
at index
of the metadata API array.
query |
a GST_QUERY_ALLOCATION type query GstQuery |
|
index |
position in the metadata API array to read |
|
params |
API specific parameters. |
[out][transfer none][allow-none] |
void gst_query_remove_nth_allocation_meta (GstQuery *query
,guint index
);
Remove the metadata API at index
of the metadata API array.
query |
a GST_QUERY_ALLOCATION type query GstQuery |
|
index |
position in the metadata API array to remove |
gboolean gst_query_find_allocation_meta (GstQuery *query
,GType api
,guint *index
);
Check if query
has metadata api
set. When this function returns TRUE
,
index
will contain the index where the requested API and the parameters
can be found.
query |
a GST_QUERY_ALLOCATION type query GstQuery |
|
api |
the metadata API |
|
index |
the index. |
[out][transfer none][allow-none] |
GstQuery *
gst_query_new_scheduling (void
);
Constructs a new query object for querying the scheduling properties.
Free-function: gst_query_unref
void gst_query_parse_scheduling (GstQuery *query
,GstSchedulingFlags *flags
,gint *minsize
,gint *maxsize
,gint *align
);
Set the scheduling properties.
query |
A valid GstQuery of type GST_QUERY_SCHEDULING. |
|
flags |
[out][allow-none] | |
minsize |
the suggested minimum size of pull requests. |
[out][allow-none] |
maxsize |
the suggested maximum size of pull requests:. |
[out][allow-none] |
align |
the suggested alignment of pull requests. |
[out][allow-none] |
void gst_query_set_scheduling (GstQuery *query
,GstSchedulingFlags flags
,gint minsize
,gint maxsize
,gint align
);
Set the scheduling properties.
query |
A valid GstQuery of type GST_QUERY_SCHEDULING. |
|
flags |
||
minsize |
the suggested minimum size of pull requests |
|
maxsize |
the suggested maximum size of pull requests |
|
align |
the suggested alignment of pull requests |
void gst_query_add_scheduling_mode (GstQuery *query
,GstPadMode mode
);
Add mode
as one of the supported scheduling modes to query
.
guint
gst_query_get_n_scheduling_modes (GstQuery *query
);
Retrieve the number of values currently stored in the scheduling mode array of the query's structure.
GstPadMode gst_query_parse_nth_scheduling_mode (GstQuery *query
,guint index
);
Parse an available query and get the scheduling mode
at index
of the scheduling modes array.
query |
a GST_QUERY_SCHEDULING type query GstQuery |
|
index |
position in the scheduling modes array to read |
gboolean gst_query_has_scheduling_mode (GstQuery *query
,GstPadMode mode
);
Check if query
has scheduling mode set.
When checking if upstream supports pull mode, it is usually not
enough to just check for GST_PAD_MODE_PULL with this function, you
also want to check whether the scheduling flags returned by
gst_query_parse_scheduling()
have the seeking flag set (meaning
random access is supported, not only sequential pulls).
gboolean gst_query_has_scheduling_mode_with_flags (GstQuery *query
,GstPadMode mode
,GstSchedulingFlags flags
);
Check if query
has scheduling mode set and flags
is set in
query scheduling flags.
TRUE
when mode
is in the list of scheduling modes
and flags
are compatible with query flags.
GstQuery *
gst_query_new_drain (void
);
Constructs a new query object for querying the drain state.
Free-function: gst_query_unref
GstQuery *
gst_query_new_context (const gchar *context_type
);
Constructs a new query object for querying the pipeline-local context.
Free-function: gst_query_unref
Since: 1.2
void gst_query_set_context (GstQuery *query
,GstContext *context
);
Answer a context query by setting the requested context.
Since: 1.2
void gst_query_parse_context (GstQuery *query
,GstContext **context
);
Get the context from the context query
. The context remains valid as long as
query
remains valid.
Since: 1.2
gboolean gst_query_parse_context_type (GstQuery *query
,const gchar **context_type
);
Parse a context type from an existing GST_QUERY_CONTEXT query.
query |
a GST_QUERY_CONTEXT type query |
|
context_type |
the context type, or |
[out][transfer none][allow-none] |
Since: 1.2
struct GstQuery { GstMiniObject mini_object; GstQueryType type; };
The GstQuery structure.
GstMiniObject |
The parent GstMiniObject type |
|
GstQueryType |
the GstQueryType |
GstQueryTypeFlags indicate the aspects of the different GstQueryType
values. You can get the type flags of a GstQueryType with the
gst_query_type_get_flags()
function.
#define GST_QUERY_TYPE_BOTH
The same thing as GST_QUERY_TYPE_UPSTREAM | GST_QUERY_TYPE_DOWNSTREAM.
Standard predefined Query types
unknown query type |
||
current position in stream |
||
total duration of the stream |
||
latency of stream |
||
current jitter of stream |
||
current rate of the stream |
||
seeking capabilities |
||
segment start/stop positions |
||
convert values between formats |
||
query supported formats for convert |
||
query available media for efficient seeking. |
||
a custom application or element defined query. |
||
query the URI of the source or sink. |
||
the buffer allocation properties |
||
the scheduling properties |
||
the accept caps query |
||
the caps query |
||
wait till all serialized data is consumed downstream |
||
query the pipeline-local context from downstream or upstream (since 1.2) |