From: <wt...@ke...> - 2007-05-03 14:54:53
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: wtay Date: Thu May 03 2007 14:54:46 UTC Log message: * 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. Modified files: . : ChangeLog docs/libs : gstreamer-libs-sections.txt libs/gst/base : gstbasesrc.c gstbasesrc.h Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.3187&r2=1.3188 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/docs/libs/gstreamer-libs-sections.txt.diff?r1=1.57&r2=1.58 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/libs/gst/base/gstbasesrc.c.diff?r1=1.133&r2=1.134 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/libs/gst/base/gstbasesrc.h.diff?r1=1.44&r2=1.45 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.3187 retrieving revision 1.3188 diff -u -d -r1.3187 -r1.3188 --- ChangeLog 3 May 2007 09:24:58 -0000 1.3187 +++ ChangeLog 3 May 2007 14:54:32 -0000 1.3188 @@ -1,3 +1,12 @@ +2007-05-03 Wim Taymans <wi...@fl...> + + * 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>> * tools/gst-inspect.c (print_implementation_info): Index: gstreamer-libs-sections.txt RCS file: /cvs/gstreamer/gstreamer/docs/libs/gstreamer-libs-sections.txt,v retrieving revision 1.57 retrieving revision 1.58 diff -u -d -r1.57 -r1.58 --- gstreamer-libs-sections.txt 13 Apr 2007 15:15:50 -0000 1.57 +++ gstreamer-libs-sections.txt 3 May 2007 14:54:34 -0000 1.58 @@ -154,6 +154,7 @@ gst_base_src_is_live gst_base_src_set_live gst_base_src_set_format +gst_base_src_query_latency GST_BASE_SRC_PAD <SUBSECTION Standard> Index: gstbasesrc.c RCS file: /cvs/gstreamer/gstreamer/libs/gst/base/gstbasesrc.c,v retrieving revision 1.133 retrieving revision 1.134 diff -u -d -r1.133 -r1.134 --- gstbasesrc.c 13 Apr 2007 14:18:44 -0000 1.133 +++ gstbasesrc.c 3 May 2007 14:54:34 -0000 1.134 @@ -546,6 +546,40 @@ 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 gst_base_src_setcaps (GstPad * pad, GstCaps * caps) { @@ -740,14 +774,16 @@ break; } 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 - * usefull */ - GST_LIVE_LOCK (src); - gst_query_set_latency (query, src->is_live, 0, -1); - GST_LIVE_UNLOCK (src); - res = TRUE; + { + GstClockTime min, max; + gboolean live; + /* Subclasses should override and implement something usefull */ + res = gst_base_src_query_latency (src, &live, &min, &max); + gst_query_set_latency (query, live, min, max); + } case GST_QUERY_JITTER: case GST_QUERY_RATE: default: Index: gstbasesrc.h RCS file: /cvs/gstreamer/gstreamer/libs/gst/base/gstbasesrc.h,v retrieving revision 1.44 retrieving revision 1.45 diff -u -d -r1.44 -r1.45 --- gstbasesrc.h 13 Apr 2007 15:15:50 -0000 1.44 +++ gstbasesrc.h 3 May 2007 14:54:34 -0000 1.45 @@ -237,6 +237,10 @@ 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 #endif /* __GST_BASE_SRC_H__ */ |