summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndoni Morales Alastruey <ylatuya@gmail.com>2012-11-09 15:37:57 +0100
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2012-12-10 12:06:09 +0000
commit4d3281b0ab810fe596ac1ed5410d88a4a174f71c (patch)
treeefe59a594493ff64cfb625d42f64a9821d51ada3
parent7e1c1dc41f6482ee9cb1a2d4181bc770885146d7 (diff)
downloadgstreamer-plugins-base-4d3281b0ab810fe596ac1ed5410d88a4a174f71c.tar.gz
videodecoder: add getter for QoS proportion and earliest_time
Add a getter for the QoS proportion and earliest_time to help subclasses do better estimations based on the proportion. API: gst_video_decoder_get_qos_info() https://bugzilla.gnome.org/show_bug.cgi?id=687991
-rw-r--r--docs/libs/gst-plugins-base-libs-sections.txt1
-rw-r--r--gst-libs/gst/video/gstvideodecoder.c28
-rw-r--r--gst-libs/gst/video/gstvideodecoder.h4
-rw-r--r--win32/common/libgstvideo.def1
4 files changed, 34 insertions, 0 deletions
diff --git a/docs/libs/gst-plugins-base-libs-sections.txt b/docs/libs/gst-plugins-base-libs-sections.txt
index d250702a6..8c02f0614 100644
--- a/docs/libs/gst-plugins-base-libs-sections.txt
+++ b/docs/libs/gst-plugins-base-libs-sections.txt
@@ -2537,6 +2537,7 @@ gst_video_decoder_get_max_decode_time
gst_video_decoder_get_max_errors
gst_video_decoder_get_oldest_frame
gst_video_decoder_get_packetized
+gst_video_decoder_get_qos_info
gst_video_decoder_have_frame
gst_video_decoder_get_latency
gst_video_decoder_set_latency
diff --git a/gst-libs/gst/video/gstvideodecoder.c b/gst-libs/gst/video/gstvideodecoder.c
index 9f8ed0c68..d0370748e 100644
--- a/gst-libs/gst/video/gstvideodecoder.c
+++ b/gst-libs/gst/video/gstvideodecoder.c
@@ -2895,6 +2895,34 @@ gst_video_decoder_get_max_decode_time (GstVideoDecoder *
return deadline;
}
+/**
+ * gst_video_decoder_get_qos_info:
+ * @decoder: a #GstVideoDecoder
+ * @proportion: (out) (allow-none): address of variable in which to store the
+ * current QoS proportion, or %NULL
+ * @earliest_time: (out) (allow-none): address of variable in which to store the
+ * QoS earliest_time, or %NULL
+ *
+ * Returns: TRUE on success
+ *
+ * Since: 1.0.3
+ */
+gboolean
+gst_video_decoder_get_qos_info (GstVideoDecoder * decoder, gdouble * proportion,
+ GstClockTime * earliest_time)
+{
+ g_return_val_if_fail (GST_IS_VIDEO_DECODER (decoder), FALSE);
+
+ GST_OBJECT_LOCK (decoder);
+ if (proportion != NULL)
+ *proportion = decoder->priv->proportion;
+ if (earliest_time != NULL)
+ *earliest_time = decoder->priv->earliest_time;
+ GST_OBJECT_UNLOCK (decoder);
+
+ return TRUE;
+}
+
GstFlowReturn
_gst_video_decoder_error (GstVideoDecoder * dec, gint weight,
GQuark domain, gint code, gchar * txt, gchar * dbg, const gchar * file,
diff --git a/gst-libs/gst/video/gstvideodecoder.h b/gst-libs/gst/video/gstvideodecoder.h
index 26466689d..539faf146 100644
--- a/gst-libs/gst/video/gstvideodecoder.h
+++ b/gst-libs/gst/video/gstvideodecoder.h
@@ -358,6 +358,10 @@ GstVideoCodecState *gst_video_decoder_get_output_state (GstVideoDecoder *decoder
GstClockTimeDiff gst_video_decoder_get_max_decode_time (GstVideoDecoder *decoder,
GstVideoCodecFrame *frame);
+gboolean gst_video_decoder_get_qos_info (GstVideoDecoder * decoder,
+ gdouble *proportion,
+ GstClockTime *earliest_time);
+
GstFlowReturn gst_video_decoder_finish_frame (GstVideoDecoder *decoder,
GstVideoCodecFrame *frame);
diff --git a/win32/common/libgstvideo.def b/win32/common/libgstvideo.def
index bcd5e13df..4b8f60513 100644
--- a/win32/common/libgstvideo.def
+++ b/win32/common/libgstvideo.def
@@ -33,6 +33,7 @@ EXPORTS
gst_video_decoder_get_oldest_frame
gst_video_decoder_get_output_state
gst_video_decoder_get_packetized
+ gst_video_decoder_get_qos_info
gst_video_decoder_get_type
gst_video_decoder_have_frame
gst_video_decoder_set_estimate_rate