GstQuery

GstQuery — Dynamically register new query types. Provide functions to create queries, and to set and parse values in them.

Synopsis

#include <gst/gst.h>

struct              GstQuery;
enum                GstQueryType;
#define             GST_QUERY_TYPE_NAME                 (query)
struct              GstQueryTypeDefinition;
const gchar *       gst_query_type_get_name             (GstQueryType query);
GQuark              gst_query_type_to_quark             (GstQueryType query);
GstQueryType        gst_query_type_register             (const gchar *nick,
                                                         const gchar *description);
GstQueryType        gst_query_type_get_by_nick          (const gchar *nick);
gboolean            gst_query_types_contains            (const GstQueryType *types,
                                                         GstQueryType type);
const GstQueryTypeDefinition * gst_query_type_get_details
                                                        (GstQueryType type);
GstIterator *       gst_query_type_iterate_definitions  (void);
GstQuery *          gst_query_ref                       (GstQuery *q);
void                gst_query_unref                     (GstQuery *q);
GstQuery *          gst_query_copy                      (const GstQuery *q);
#define             gst_query_make_writable             (q)
GstQuery *          gst_query_new_application           (GstQueryType type,
                                                         GstStructure *structure);
GstStructure *      gst_query_get_structure             (GstQuery *query);
GstQuery *          gst_query_new_convert               (GstFormat src_format,
                                                         gint64 value,
                                                         GstFormat dest_format);
void                gst_query_set_convert               (GstQuery *query,
                                                         GstFormat src_format,
                                                         gint64 src_value,
                                                         GstFormat dest_format,
                                                         gint64 dest_value);
void                gst_query_parse_convert             (GstQuery *query,
                                                         GstFormat *src_format,
                                                         gint64 *src_value,
                                                         GstFormat *dest_format,
                                                         gint64 *dest_value);
GstQuery *          gst_query_new_position              (GstFormat format);
void                gst_query_set_position              (GstQuery *query,
                                                         GstFormat format,
                                                         gint64 cur);
void                gst_query_parse_position            (GstQuery *query,
                                                         GstFormat *format,
                                                         gint64 *cur);
GstQuery *          gst_query_new_duration              (GstFormat format);
void                gst_query_set_duration              (GstQuery *query,
                                                         GstFormat format,
                                                         gint64 duration);
void                gst_query_parse_duration            (GstQuery *query,
                                                         GstFormat *format,
                                                         gint64 *duration);
GstQuery *          gst_query_new_latency               (void);
void                gst_query_parse_latency             (GstQuery *query,
                                                         gboolean *live,
                                                         GstClockTime *min_latency,
                                                         GstClockTime *max_latency);
void                gst_query_set_latency               (GstQuery *query,
                                                         gboolean live,
                                                         GstClockTime min_latency,
                                                         GstClockTime max_latency);
GstQuery *          gst_query_new_seeking               (GstFormat format);
void                gst_query_set_seeking               (GstQuery *query,
                                                         GstFormat format,
                                                         gboolean seekable,
                                                         gint64 segment_start,
                                                         gint64 segment_end);
void                gst_query_parse_seeking             (GstQuery *query,
                                                         GstFormat *format,
                                                         gboolean *seekable,
                                                         gint64 *segment_start,
                                                         gint64 *segment_end);
GstQuery *          gst_query_new_formats               (void);
void                gst_query_set_formats               (GstQuery *query,
                                                         gint n_formats,
                                                         ...);
void                gst_query_set_formatsv              (GstQuery *query,
                                                         gint n_formats,
                                                         const GstFormat *formats);
void                gst_query_parse_formats_length      (GstQuery *query,
                                                         guint *n_formats);
void                gst_query_parse_formats_nth         (GstQuery *query,
                                                         guint nth,
                                                         GstFormat *format);
GstQuery *          gst_query_new_segment               (GstFormat format);
void                gst_query_set_segment               (GstQuery *query,
                                                         gdouble rate,
                                                         GstFormat format,
                                                         gint64 start_value,
                                                         gint64 stop_value);
void                gst_query_parse_segment             (GstQuery *query,
                                                         gdouble *rate,
                                                         GstFormat *format,
                                                         gint64 *start_value,
                                                         gint64 *stop_value);
enum                GstBufferingMode;
GstQuery *          gst_query_new_buffering             (GstFormat format);
void                gst_query_set_buffering_percent     (GstQuery *query,
                                                         gboolean busy,
                                                         gint percent);
void                gst_query_parse_buffering_percent   (GstQuery *query,
                                                         gboolean *busy,
                                                         gint *percent);
void                gst_query_set_buffering_stats       (GstQuery *query,
                                                         GstBufferingMode mode,
                                                         gint avg_in,
                                                         gint avg_out,
                                                         gint64 buffering_left);
void                gst_query_parse_buffering_stats     (GstQuery *query,
                                                         GstBufferingMode *mode,
                                                         gint *avg_in,
                                                         gint *avg_out,
                                                         gint64 *buffering_left);
void                gst_query_set_buffering_range       (GstQuery *query,
                                                         GstFormat format,
                                                         gint64 start,
                                                         gint64 stop,
                                                         gint64 estimated_total);
void                gst_query_parse_buffering_range     (GstQuery *query,
                                                         GstFormat *format,
                                                         gint64 *start,
                                                         gint64 *stop,
                                                         gint64 *estimated_total);
gboolean            gst_query_add_buffering_range       (GstQuery *query,
                                                         gint64 start,
                                                         gint64 stop);
guint               gst_query_get_n_buffering_ranges    (GstQuery *query);
gboolean            gst_query_parse_nth_buffering_range (GstQuery *query,
                                                         guint index,
                                                         gint64 *start,
                                                         gint64 *stop);
GstQuery *          gst_query_new_uri                   (void);
void                gst_query_parse_uri                 (GstQuery *query,
                                                         gchar **uri);
void                gst_query_set_uri                   (GstQuery *query,
                                                         const gchar *uri);

Description

GstQuery functions are used to register new query types to the gstreamer core and use them. 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:

Example 16. Query duration on a pipeline

1
2
3
4
5
6
7
8
9
10
11
12
13
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);


Last reviewed on 2006-02-14 (0.10.4)

Details

struct GstQuery

struct GstQuery {
  GstMiniObject mini_object;

  GstQueryType type;

  GstStructure *structure;
};

The GstQuery structure.

GstMiniObject mini_object;

The parent GstMiniObject type

GstQueryType type;

the GstQueryType

GstStructure *structure;

the GstStructure containing the query details.

enum GstQueryType

typedef enum {
  GST_QUERY_NONE = 0,
  GST_QUERY_POSITION,
  GST_QUERY_DURATION,
  GST_QUERY_LATENCY,
  GST_QUERY_JITTER,     /* not in draft-query, necessary? */
  GST_QUERY_RATE,
  GST_QUERY_SEEKING,
  GST_QUERY_SEGMENT,
  GST_QUERY_CONVERT,
  GST_QUERY_FORMATS,
  GST_QUERY_BUFFERING,
  GST_QUERY_CUSTOM,
  GST_QUERY_URI
} GstQueryType;

Standard predefined Query types

GST_QUERY_NONE

invalid query type

GST_QUERY_POSITION

current position in stream

GST_QUERY_DURATION

total duration of the stream

GST_QUERY_LATENCY

latency of stream

GST_QUERY_JITTER

current jitter of stream

GST_QUERY_RATE

current rate of the stream

GST_QUERY_SEEKING

seeking capabilities

GST_QUERY_SEGMENT

segment start/stop positions

GST_QUERY_CONVERT

convert values between formats

GST_QUERY_FORMATS

query supported formats for convert

GST_QUERY_BUFFERING

query available media for efficient seeking. Since 0.10.20.

GST_QUERY_CUSTOM

a custom application or element defined query. Since 0.10.22.

GST_QUERY_URI

query the URI of the source or sink. Since 0.10.22.

GST_QUERY_TYPE_NAME()

#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.

query :

the query to query

Since 0.10.4


struct GstQueryTypeDefinition

struct GstQueryTypeDefinition {
  GstQueryType   value;
  const gchar   *nick;
  const gchar   *description;
  GQuark         quark;
};

A Query Type definition

GstQueryType value;

the unique id of the Query type

const gchar *nick;

a short nick

const gchar *description;

a longer description of the query type

GQuark quark;

the quark for the nick

gst_query_type_get_name ()

const gchar *       gst_query_type_get_name             (GstQueryType query);

Get a printable name for the given query type. Do not modify or free.

query :

the query type

Returns :

a reference to the static name of the query.

gst_query_type_to_quark ()

GQuark              gst_query_type_to_quark             (GstQueryType query);

Get the unique quark for the given query type.

query :

the query type

Returns :

the quark associated with the query type

gst_query_type_register ()

GstQueryType        gst_query_type_register             (const gchar *nick,
                                                         const gchar *description);

Create a new GstQueryType based on the nick or return an already registered query with that nick

nick :

The nick of the new query

description :

The description of the new query

Returns :

A new GstQueryType or an already registered query with the same nick.

gst_query_type_get_by_nick ()

GstQueryType        gst_query_type_get_by_nick          (const gchar *nick);

Get the query type registered with nick.

nick :

The nick of the query

Returns :

The query registered with nick or GST_QUERY_NONE if the query was not registered.

gst_query_types_contains ()

gboolean            gst_query_types_contains            (const GstQueryType *types,
                                                         GstQueryType type);

See if the given GstQueryType is inside the types query types array.

types :

The query array to search

type :

the GstQueryType to find

Returns :

TRUE if the type is found inside the array

gst_query_type_get_details ()

const GstQueryTypeDefinition * gst_query_type_get_details
                                                        (GstQueryType type);

Get details about the given GstQueryType.

type :

a GstQueryType

Returns :

The GstQueryTypeDefinition for type or NULL on failure.

gst_query_type_iterate_definitions ()

GstIterator *       gst_query_type_iterate_definitions  (void);

Get a GstIterator of all the registered query types. The definitions iterated over are read only.

Free-function: gst_iterator_free

Returns :

a GstIterator of GstQueryTypeDefinition. [transfer full]

gst_query_ref ()

GstQuery *          gst_query_ref                       (GstQuery *q);

Increases the refcount of the given query by one.

q :

a GstQuery to increase the refcount of.

Returns :

q

gst_query_unref ()

void                gst_query_unref                     (GstQuery *q);

Decreases the refcount of the query. If the refcount reaches 0, the query will be freed.

q :

a GstQuery to decrease the refcount of.

gst_query_copy ()

GstQuery *          gst_query_copy                      (const GstQuery *q);

Copies the given query using the copy function of the parent GstStructure.

Free-function: gst_query_unref

q :

a GstQuery to copy.

Returns :

a new copy of q. [transfer full]

gst_query_make_writable()

#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.

q :

a GstQuery to make writable. [transfer full]

Returns :

a new writable query (possibly same as q). [transfer full]

gst_query_new_application ()

GstQuery *          gst_query_new_application           (GstQueryType type,
                                                         GstStructure *structure);

Constructs a new custom application query object. Use gst_query_unref() when done with it.

Free-function: gst_query_unref

type :

the query type

structure :

a structure for the query

Returns :

a new GstQuery. [transfer full]

gst_query_get_structure ()

GstStructure *      gst_query_get_structure             (GstQuery *query);

Get the structure of a query.

query :

a GstQuery

Returns :

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]

gst_query_new_convert ()

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

src_format :

the source GstFormat for the new query

value :

the value to convert

dest_format :

the target GstFormat

Returns :

a GstQuery. [transfer full]

gst_query_set_convert ()

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.

query :

a GstQuery

src_format :

the source GstFormat

src_value :

the source value

dest_format :

the destination GstFormat

dest_value :

the destination value

gst_query_parse_convert ()

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.

query :

a GstQuery

src_format :

the storage for the GstFormat of the source value, or NULL. [out][allow-none]

src_value :

the storage for the source value, or NULL. [out][allow-none]

dest_format :

the storage for the GstFormat of the destination value, or NULL. [out][allow-none]

dest_value :

the storage for the destination value, or NULL. [out][allow-none]

gst_query_new_position ()

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

format :

the default GstFormat for the new query

Returns :

a new GstQuery. [transfer full]

gst_query_set_position ()

void                gst_query_set_position              (GstQuery *query,
                                                         GstFormat format,
                                                         gint64 cur);

Answer a position query by setting the requested value in the given format.

query :

a GstQuery with query type GST_QUERY_POSITION

format :

the requested GstFormat

cur :

the position to set

gst_query_parse_position ()

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.

query :

a GstQuery

format :

the storage for the GstFormat of the position values (may be NULL). [out][allow-none]

cur :

the storage for the current position (may be NULL). [out][allow-none]

gst_query_new_duration ()

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

format :

the GstFormat for this duration query

Returns :

a new GstQuery. [transfer full]

gst_query_set_duration ()

void                gst_query_set_duration              (GstQuery *query,
                                                         GstFormat format,
                                                         gint64 duration);

Answer a duration query by setting the requested value in the given format.

query :

a GstQuery

format :

the GstFormat for the duration

duration :

the duration of the stream

gst_query_parse_duration ()

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.

query :

a GstQuery

format :

the storage for the GstFormat of the duration value, or NULL. [out][allow-none]

duration :

the storage for the total duration, or NULL. [out][allow-none]

gst_query_new_latency ()

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

Returns :

a GstQuery. [transfer full]

Since 0.10.12


gst_query_parse_latency ()

void                gst_query_parse_latency             (GstQuery *query,
                                                         gboolean *live,
                                                         GstClockTime *min_latency,
                                                         GstClockTime *max_latency);

Parse a latency query answer.

query :

a GstQuery

live :

storage for live or NULL. [out][allow-none]

min_latency :

the storage for the min latency or NULL. [out][allow-none]

max_latency :

the storage for the max latency or NULL. [out][allow-none]

Since 0.10.12


gst_query_set_latency ()

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 live element

max_latency :

the maximal latency of the live element

Since 0.10.12


gst_query_new_seeking ()

GstQuery *          gst_query_new_seeking               (GstFormat format);

Constructs a new query object for querying seeking properties of the stream.

Free-function: gst_query_unref

format :

the default GstFormat for the new query

Returns :

a new GstQuery. [transfer full]

gst_query_set_seeking ()

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 segment_start and segment_end values

seekable :

the seekable flag to set

segment_start :

the segment_start to set

segment_end :

the segment_end to set

gst_query_parse_seeking ()

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 segment_start and segment_end values, or NULL. [out][allow-none]

seekable :

the seekable flag to set, or NULL. [out][allow-none]

segment_start :

the segment_start to set, or NULL. [out][allow-none]

segment_end :

the segment_end to set, or NULL. [out][allow-none]

gst_query_new_formats ()

GstQuery *          gst_query_new_formats               (void);

Constructs a new query object for querying formats of the stream.

Free-function: gst_query_unref

Returns :

a new GstQuery. [transfer full]

Since 0.10.4


gst_query_set_formats ()

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 GstFormats equal to n_formats.

gst_query_set_formatsv ()

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 n_formats GstFormat values. [in][array length=n_formats]

Since 0.10.4


gst_query_parse_formats_length ()

void                gst_query_parse_formats_length      (GstQuery *query,
                                                         guint *n_formats);

Parse the number of formats in the formats query.

query :

a GstQuery

n_formats :

the number of formats in this query. [out]

Since 0.10.4


gst_query_parse_formats_nth ()

void                gst_query_parse_formats_nth         (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]

Since 0.10.4


gst_query_new_segment ()

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

format :

the GstFormat for the new query

Returns :

a new GstQuery. [transfer full]

gst_query_set_segment ()

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.

query :

a GstQuery

rate :

the rate of the segment

format :

the GstFormat of the segment values (start_value and stop_value)

start_value :

the start value

stop_value :

the stop value

gst_query_parse_segment ()

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.

query :

a GstQuery

rate :

the storage for the rate of the segment, or NULL. [out][allow-none]

format :

the storage for the GstFormat of the values, or NULL. [out][allow-none]

start_value :

the storage for the start value, or NULL. [out][allow-none]

stop_value :

the storage for the stop value, or NULL. [out][allow-none]

enum GstBufferingMode

typedef enum {
  GST_BUFFERING_STREAM,
  GST_BUFFERING_DOWNLOAD,
  GST_BUFFERING_TIMESHIFT,
  GST_BUFFERING_LIVE
} GstBufferingMode;

The different types of buffering methods.

GST_BUFFERING_STREAM

a small amount of data is buffered

GST_BUFFERING_DOWNLOAD

the stream is being downloaded

GST_BUFFERING_TIMESHIFT

the stream is being downloaded in a ringbuffer

GST_BUFFERING_LIVE

the stream is a live stream

gst_query_new_buffering ()

GstQuery *          gst_query_new_buffering             (GstFormat format);

Constructs a new query object for querying the buffering status of a stream.

Free-function: gst_query_new

format :

the default GstFormat for the new query

Returns :

a new GstQuery. [transfer full]

Since 0.10.20


gst_query_set_buffering_percent ()

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

Since 0.10.20


gst_query_parse_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.

query :

A valid GstQuery of type GST_QUERY_BUFFERING.

busy :

if buffering is busy, or NULL. [out][allow-none]

percent :

a buffering percent, or NULL. [out][allow-none]

Since 0.10.20


gst_query_set_buffering_stats ()

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

Since 0.10.20


gst_query_parse_buffering_stats ()

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 NULL. [out][allow-none]

avg_in :

the average input rate, or NULL. [out][allow-none]

avg_out :

the average output rat, or NULLe. [out][allow-none]

buffering_left :

amount of buffering time left, or NULL. [out][allow-none]

Since 0.10.20


gst_query_set_buffering_range ()

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 and stop values

start :

the start to set

stop :

the stop to set

estimated_total :

estimated total amount of download time

Since 0.10.20


gst_query_parse_buffering_range ()

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 segment_start and segment_end values, or NULL. [out][allow-none]

start :

the start to set, or NULL. [out][allow-none]

stop :

the stop to set, or NULL. [out][allow-none]

estimated_total :

estimated total amount of download time, or NULL. [out][allow-none]

Since 0.10.20


gst_query_add_buffering_range ()

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

Returns :

a gboolean indicating if the range was added or not.

Since 0.10.31


gst_query_get_n_buffering_ranges ()

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.

query :

a GST_QUERY_BUFFERING type query GstQuery

Returns :

the range array size as a guint.

Since 0.10.31


gst_query_parse_nth_buffering_range ()

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.

query :

a GST_QUERY_BUFFERING type query GstQuery

index :

position in the buffered-ranges array to read

start :

the start position to set, or NULL. [out][allow-none]

stop :

the stop position to set, or NULL. [out][allow-none]

Returns :

a gboolean indicating if the parsing succeeded.

Since 0.10.31


gst_query_new_uri ()

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

Returns :

a new GstQuery. [transfer full]

Since 0.10.22


gst_query_parse_uri ()

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.

query :

a GstQuery

uri :

the storage for the current URI (may be NULL). [out callee-allocates][allow-none]

Since 0.10.22


gst_query_set_uri ()

void                gst_query_set_uri                   (GstQuery *query,
                                                         const gchar *uri);

Answer a URI query by setting the requested URI.

query :

a GstQuery with query type GST_QUERY_URI

uri :

the URI to set

Since 0.10.22

See Also

GstPad, GstElement