videodecoder: add getter for QoS proportion and earliest_time
authorAndoni Morales Alastruey <ylatuya@gmail.com>
Fri, 9 Nov 2012 14:37:57 +0000 (15:37 +0100)
committerTim-Philipp Müller <tim@centricular.net>
Mon, 19 Nov 2012 23:57:43 +0000 (23:57 +0000)
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

docs/libs/gst-plugins-base-libs-sections.txt
gst-libs/gst/video/gstvideodecoder.c
gst-libs/gst/video/gstvideodecoder.h
win32/common/libgstvideo.def

index 68e2b80..ee2ea4b 100644 (file)
@@ -2253,6 +2253,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
index 2aa9875..d48aa0a 100644 (file)
@@ -3158,6 +3158,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,
index adcd5a1..9dbe571 100644 (file)
@@ -353,6 +353,10 @@ gboolean         gst_video_decoder_negotiate           (GstVideoDecoder * decode
 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);
 
index ad40805..797287e 100644 (file)
@@ -88,6 +88,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_merge_tags