diff options
author | Andoni Morales Alastruey <ylatuya@gmail.com> | 2012-11-09 15:37:57 +0100 |
---|---|---|
committer | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2012-12-10 12:06:09 +0000 |
commit | 4d3281b0ab810fe596ac1ed5410d88a4a174f71c (patch) | |
tree | efe59a594493ff64cfb625d42f64a9821d51ada3 | |
parent | 7e1c1dc41f6482ee9cb1a2d4181bc770885146d7 (diff) | |
download | gstreamer-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.txt | 1 | ||||
-rw-r--r-- | gst-libs/gst/video/gstvideodecoder.c | 28 | ||||
-rw-r--r-- | gst-libs/gst/video/gstvideodecoder.h | 4 | ||||
-rw-r--r-- | win32/common/libgstvideo.def | 1 |
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 |