mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-23 16:50:47 +00:00
API: gst_base_src_query_latency(). Added method so that subclasses can easily get the latency values of the base sour...
Original commit message from CVS: * docs/libs/gstreamer-libs-sections.txt: * libs/gst/base/gstbasesrc.c: (gst_base_src_query_latency), (gst_base_src_default_query), (gst_base_src_get_range): * libs/gst/base/gstbasesrc.h: API: gst_base_src_query_latency(). Added method so that subclasses can easily get the latency values of the base source class.
This commit is contained in:
parent
2c3ba9c734
commit
60f3a9de93
4 changed files with 57 additions and 7 deletions
|
@ -1,3 +1,12 @@
|
||||||
|
2007-05-03 Wim Taymans <wim@fluendo.com>
|
||||||
|
|
||||||
|
* docs/libs/gstreamer-libs-sections.txt:
|
||||||
|
* libs/gst/base/gstbasesrc.c: (gst_base_src_query_latency),
|
||||||
|
(gst_base_src_default_query), (gst_base_src_get_range):
|
||||||
|
* libs/gst/base/gstbasesrc.h:
|
||||||
|
API: gst_base_src_query_latency(). Added method so that subclasses can
|
||||||
|
easily get the latency values of the base source class.
|
||||||
|
|
||||||
2007-05-02 Zaheer Abbas Merali <<zaheerabbas at merali dot org>>
|
2007-05-02 Zaheer Abbas Merali <<zaheerabbas at merali dot org>>
|
||||||
|
|
||||||
* tools/gst-inspect.c (print_implementation_info):
|
* tools/gst-inspect.c (print_implementation_info):
|
||||||
|
|
|
@ -154,6 +154,7 @@ gst_base_src_wait_playing
|
||||||
gst_base_src_is_live
|
gst_base_src_is_live
|
||||||
gst_base_src_set_live
|
gst_base_src_set_live
|
||||||
gst_base_src_set_format
|
gst_base_src_set_format
|
||||||
|
gst_base_src_query_latency
|
||||||
|
|
||||||
GST_BASE_SRC_PAD
|
GST_BASE_SRC_PAD
|
||||||
<SUBSECTION Standard>
|
<SUBSECTION Standard>
|
||||||
|
|
|
@ -546,6 +546,40 @@ gst_base_src_set_format (GstBaseSrc * src, GstFormat format)
|
||||||
gst_segment_init (&src->segment, format);
|
gst_segment_init (&src->segment, format);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gst_base_src_query_latency:
|
||||||
|
* @src: the source
|
||||||
|
* @live: if the source is live
|
||||||
|
* @min_latency: the min latency of the source
|
||||||
|
* @max_latency: the max latency of the source
|
||||||
|
*
|
||||||
|
* Query the source for the latency parameters. @live will be TRUE when @src is
|
||||||
|
* configured as a live source. @min_latency will be set as the latency between
|
||||||
|
* calling the create function and the timestamp on the resulting buffer.
|
||||||
|
* @max_latency is always the undefined value of -1.
|
||||||
|
*
|
||||||
|
* This function is mostly used by subclasses.
|
||||||
|
*
|
||||||
|
* Returns: TRUE if the query succeeded.
|
||||||
|
*
|
||||||
|
* Since: 0.10.13
|
||||||
|
*/
|
||||||
|
gboolean
|
||||||
|
gst_base_src_query_latency (GstBaseSrc * src, gboolean * live,
|
||||||
|
GstClockTime * min_latency, GstClockTime * max_latency)
|
||||||
|
{
|
||||||
|
GST_LIVE_LOCK (src);
|
||||||
|
if (live)
|
||||||
|
*live = src->is_live;
|
||||||
|
if (min_latency)
|
||||||
|
*min_latency = 0;
|
||||||
|
if (max_latency)
|
||||||
|
*max_latency = -1;
|
||||||
|
GST_LIVE_UNLOCK (src);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
gst_base_src_setcaps (GstPad * pad, GstCaps * caps)
|
gst_base_src_setcaps (GstPad * pad, GstCaps * caps)
|
||||||
{
|
{
|
||||||
|
@ -740,14 +774,16 @@ gst_base_src_default_query (GstBaseSrc * src, GstQuery * query)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case GST_QUERY_LATENCY:
|
case GST_QUERY_LATENCY:
|
||||||
/* we can only report the fact that we are live or not, we know nothing
|
{
|
||||||
* about latency. Subclasses should override and implement something
|
GstClockTime min, max;
|
||||||
* usefull */
|
gboolean live;
|
||||||
GST_LIVE_LOCK (src);
|
|
||||||
gst_query_set_latency (query, src->is_live, 0, -1);
|
/* Subclasses should override and implement something usefull */
|
||||||
GST_LIVE_UNLOCK (src);
|
res = gst_base_src_query_latency (src, &live, &min, &max);
|
||||||
res = TRUE;
|
|
||||||
|
gst_query_set_latency (query, live, min, max);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case GST_QUERY_JITTER:
|
case GST_QUERY_JITTER:
|
||||||
case GST_QUERY_RATE:
|
case GST_QUERY_RATE:
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -237,6 +237,10 @@ gboolean gst_base_src_is_live (GstBaseSrc *src);
|
||||||
|
|
||||||
void gst_base_src_set_format (GstBaseSrc *src, GstFormat format);
|
void gst_base_src_set_format (GstBaseSrc *src, GstFormat format);
|
||||||
|
|
||||||
|
gboolean gst_base_src_query_latency (GstBaseSrc *src, gboolean * live,
|
||||||
|
GstClockTime * min_latency,
|
||||||
|
GstClockTime * max_latency);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif /* __GST_BASE_SRC_H__ */
|
#endif /* __GST_BASE_SRC_H__ */
|
||||||
|
|
Loading…
Reference in a new issue