mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-09-29 15:22:17 +00:00
Add busy field and quark for the buffering query so that the app can only use the query to see if buffering is in pro...
Original commit message from CVS: * docs/design/part-buffering.txt: * gst/gstquark.c: * gst/gstquark.h: * gst/gstquery.c: (gst_query_parse_latency), (gst_query_new_buffering), (gst_query_set_buffering_percent), (gst_query_parse_buffering_percent): * gst/gstquery.h: Add busy field and quark for the buffering query so that the app can only use the query to see if buffering is in progress.
This commit is contained in:
parent
5e14412c47
commit
1365624d74
6 changed files with 36 additions and 7 deletions
12
ChangeLog
12
ChangeLog
|
@ -1,3 +1,15 @@
|
||||||
|
2008-04-08 Wim Taymans <wim.taymans@collabora.co.uk>
|
||||||
|
|
||||||
|
* docs/design/part-buffering.txt:
|
||||||
|
* gst/gstquark.c:
|
||||||
|
* gst/gstquark.h:
|
||||||
|
* gst/gstquery.c: (gst_query_parse_latency),
|
||||||
|
(gst_query_new_buffering), (gst_query_set_buffering_percent),
|
||||||
|
(gst_query_parse_buffering_percent):
|
||||||
|
* gst/gstquery.h:
|
||||||
|
Add busy field and quark for the buffering query so that the app can
|
||||||
|
only use the query to see if buffering is in progress.
|
||||||
|
|
||||||
2008-04-08 Wim Taymans <wim.taymans@collabora.co.uk>
|
2008-04-08 Wim Taymans <wim.taymans@collabora.co.uk>
|
||||||
|
|
||||||
* docs/gst/gstreamer-sections.txt:
|
* docs/gst/gstreamer-sections.txt:
|
||||||
|
|
|
@ -191,6 +191,10 @@ In addition to all the fields present in the buffering message, the BUFFERING
|
||||||
query contains the following field, which indicate the available downloaded
|
query contains the following field, which indicate the available downloaded
|
||||||
range in a specific format and the estimated time to complete:
|
range in a specific format and the estimated time to complete:
|
||||||
|
|
||||||
|
"busy", G_TYPE_BOOLEAN
|
||||||
|
- if buffering was busy. This flag allows the application to pause the
|
||||||
|
pipeline by using the query only.
|
||||||
|
|
||||||
"format", GST_TYPE_FORMAT
|
"format", GST_TYPE_FORMAT
|
||||||
- the format of the "start" and "stop" values below
|
- the format of the "start" and "stop" values below
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@ static const gchar *_quark_strings[] = {
|
||||||
"avg-in-rate", "avg-out-rate", "buffering-left",
|
"avg-in-rate", "avg-out-rate", "buffering-left",
|
||||||
"estimated-total", "old-state", "new-state", "pending-state",
|
"estimated-total", "old-state", "new-state", "pending-state",
|
||||||
"clock", "ready", "position", "new-base-time", "live", "min-latency",
|
"clock", "ready", "position", "new-base-time", "live", "min-latency",
|
||||||
"max-latency"
|
"max-latency", "busy"
|
||||||
};
|
};
|
||||||
|
|
||||||
GQuark _priv_gst_quark_table[GST_QUARK_MAX];
|
GQuark _priv_gst_quark_table[GST_QUARK_MAX];
|
||||||
|
|
|
@ -59,8 +59,9 @@ typedef enum _GstQuarkId
|
||||||
GST_QUARK_LIVE = 30,
|
GST_QUARK_LIVE = 30,
|
||||||
GST_QUARK_MIN_LATENCY = 31,
|
GST_QUARK_MIN_LATENCY = 31,
|
||||||
GST_QUARK_MAX_LATENCY = 32,
|
GST_QUARK_MAX_LATENCY = 32,
|
||||||
|
GST_QUARK_BUSY = 33,
|
||||||
|
|
||||||
GST_QUARK_MAX = 33
|
GST_QUARK_MAX = 34
|
||||||
} GstQuarkId;
|
} GstQuarkId;
|
||||||
|
|
||||||
extern GQuark _priv_gst_quark_table[GST_QUARK_MAX];
|
extern GQuark _priv_gst_quark_table[GST_QUARK_MAX];
|
||||||
|
|
|
@ -1118,8 +1118,11 @@ gst_query_new_buffering (GstFormat format)
|
||||||
GstStructure *structure;
|
GstStructure *structure;
|
||||||
|
|
||||||
structure = gst_structure_empty_new ("GstQueryBuffering");
|
structure = gst_structure_empty_new ("GstQueryBuffering");
|
||||||
|
/* by default, we configure the answer as no buffering with a 100% buffering
|
||||||
|
* progress */
|
||||||
gst_structure_id_set (structure,
|
gst_structure_id_set (structure,
|
||||||
GST_QUARK (BUFFER_PERCENT), G_TYPE_INT, -1,
|
GST_QUARK (BUSY), G_TYPE_BOOLEAN, FALSE,
|
||||||
|
GST_QUARK (BUFFER_PERCENT), G_TYPE_INT, 100,
|
||||||
GST_QUARK (BUFFERING_MODE), GST_TYPE_BUFFERING_MODE, GST_BUFFERING_STREAM,
|
GST_QUARK (BUFFERING_MODE), GST_TYPE_BUFFERING_MODE, GST_BUFFERING_STREAM,
|
||||||
GST_QUARK (AVG_IN_RATE), G_TYPE_INT, -1,
|
GST_QUARK (AVG_IN_RATE), G_TYPE_INT, -1,
|
||||||
GST_QUARK (AVG_OUT_RATE), G_TYPE_INT, -1,
|
GST_QUARK (AVG_OUT_RATE), G_TYPE_INT, -1,
|
||||||
|
@ -1137,36 +1140,45 @@ gst_query_new_buffering (GstFormat format)
|
||||||
/**
|
/**
|
||||||
* gst_query_set_buffering_percent
|
* gst_query_set_buffering_percent
|
||||||
* @query: A valid #GstQuery of type GST_QUERY_BUFFERING.
|
* @query: A valid #GstQuery of type GST_QUERY_BUFFERING.
|
||||||
|
* @busy: if buffering is busy
|
||||||
* @percent: a buffering percent
|
* @percent: a buffering percent
|
||||||
*
|
*
|
||||||
* Set the percentage of buffered data. This is a value between 0 and 100.
|
* 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.
|
||||||
*
|
*
|
||||||
* Since: 0.10.20
|
* Since: 0.10.20
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
gst_query_set_buffering_percent (GstQuery * query, gint percent)
|
gst_query_set_buffering_percent (GstQuery * query, gboolean busy, gint percent)
|
||||||
{
|
{
|
||||||
g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_BUFFERING);
|
g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_BUFFERING);
|
||||||
g_return_if_fail (percent >= 0 && percent <= 100);
|
g_return_if_fail (percent >= 0 && percent <= 100);
|
||||||
|
|
||||||
gst_structure_id_set (query->structure,
|
gst_structure_id_set (query->structure,
|
||||||
|
GST_QUARK (BUSY), G_TYPE_BOOLEAN, busy,
|
||||||
GST_QUARK (BUFFER_PERCENT), G_TYPE_INT, percent, NULL);
|
GST_QUARK (BUFFER_PERCENT), G_TYPE_INT, percent, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gst_query_parse_buffering_percent
|
* gst_query_parse_buffering_percent
|
||||||
* @query: A valid #GstQuery of type GST_QUERY_BUFFERING.
|
* @query: A valid #GstQuery of type GST_QUERY_BUFFERING.
|
||||||
|
* @busy: if buffering is busy
|
||||||
* @percent: a buffering percent
|
* @percent: a buffering percent
|
||||||
*
|
*
|
||||||
* Get the percentage of buffered data. This is a value between 0 and 100.
|
* 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.
|
||||||
*
|
*
|
||||||
* Since: 0.10.20
|
* Since: 0.10.20
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
gst_query_parse_buffering_percent (GstQuery * query, gint * percent)
|
gst_query_parse_buffering_percent (GstQuery * query, gboolean * busy,
|
||||||
|
gint * percent)
|
||||||
{
|
{
|
||||||
g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_BUFFERING);
|
g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_BUFFERING);
|
||||||
|
|
||||||
|
if (busy)
|
||||||
|
*busy = g_value_get_boolean (gst_structure_id_get_value (query->structure,
|
||||||
|
GST_QUARK (BUSY)));
|
||||||
if (percent)
|
if (percent)
|
||||||
*percent = g_value_get_int (gst_structure_id_get_value (query->structure,
|
*percent = g_value_get_int (gst_structure_id_get_value (query->structure,
|
||||||
GST_QUARK (BUFFER_PERCENT)));
|
GST_QUARK (BUFFER_PERCENT)));
|
||||||
|
|
|
@ -266,8 +266,8 @@ void gst_query_parse_formats_nth (GstQuery *query, guint nth, Gst
|
||||||
|
|
||||||
/* buffering query */
|
/* buffering query */
|
||||||
GstQuery* gst_query_new_buffering (GstFormat format);
|
GstQuery* gst_query_new_buffering (GstFormat format);
|
||||||
void gst_query_set_buffering_percent (GstQuery *query, gint percent);
|
void gst_query_set_buffering_percent (GstQuery *query, gboolean busy, gint percent);
|
||||||
void gst_query_parse_buffering_percent (GstQuery *query, gint *percent);
|
void gst_query_parse_buffering_percent (GstQuery *query, gboolean *busy, gint *percent);
|
||||||
|
|
||||||
void gst_query_set_buffering_stats (GstQuery *query, GstBufferingMode mode,
|
void gst_query_set_buffering_stats (GstQuery *query, GstBufferingMode mode,
|
||||||
gint avg_in, gint avg_out,
|
gint avg_in, gint avg_out,
|
||||||
|
|
Loading…
Reference in a new issue