[clutter-gst] ClutterGstPlayer: Add API to set/get buffer size/duration.
- From: Lionel Landwerlin <llandwerlin src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [clutter-gst] ClutterGstPlayer: Add API to set/get buffer size/duration.
- Date: Mon, 18 Mar 2013 23:36:14 +0000 (UTC)
commit 72b47d2bacdae6bc99a0092e85b13a49f6ba3659
Author: Andre Moreira Magalhaes (andrunko) <andre magalhaes collabora co uk>
Date: Wed Aug 15 14:37:41 2012 -0300
ClutterGstPlayer: Add API to set/get buffer size/duration.
clutter-gst/clutter-gst-player.c | 133 ++++++++++++++++++++++++++++++++++++++
clutter-gst/clutter-gst-player.h | 18 ++++-
2 files changed, 147 insertions(+), 4 deletions(-)
---
diff --git a/clutter-gst/clutter-gst-player.c b/clutter-gst/clutter-gst-player.c
index 234d885..34aabdb 100644
--- a/clutter-gst/clutter-gst-player.c
+++ b/clutter-gst/clutter-gst-player.c
@@ -839,6 +839,7 @@ player_buffering_timeout (gpointer data)
}
/* signal the current range */
+
gst_query_parse_buffering_stats (query, NULL, NULL, NULL, &left);
gst_query_parse_buffering_range (query, NULL, &start, &stop, NULL);
@@ -1770,6 +1771,54 @@ clutter_gst_player_set_buffering_mode_impl (ClutterGstPlayer *player,
g_object_set (G_OBJECT (priv->pipeline), "flags", flags, NULL);
}
+static gint
+clutter_gst_player_get_buffer_size_impl (ClutterGstPlayer *player)
+{
+ ClutterGstPlayerPrivate *priv;
+ gint size;
+
+ priv = PLAYER_GET_PRIVATE (player);
+
+ g_object_get (G_OBJECT (priv->pipeline), "buffer-size", &size, NULL);
+
+ return size;
+}
+
+static void
+clutter_gst_player_set_buffer_size_impl (ClutterGstPlayer *player,
+ gint size)
+{
+ ClutterGstPlayerPrivate *priv;
+
+ priv = PLAYER_GET_PRIVATE (player);
+
+ g_object_set (G_OBJECT (priv->pipeline), "buffer-size", size, NULL);
+}
+
+static gint64
+clutter_gst_player_get_buffer_duration_impl (ClutterGstPlayer *player)
+{
+ ClutterGstPlayerPrivate *priv;
+ gint64 duration;
+
+ priv = PLAYER_GET_PRIVATE (player);
+
+ g_object_get (G_OBJECT (priv->pipeline), "buffer-duration", &duration, NULL);
+
+ return duration;
+}
+
+static void
+clutter_gst_player_set_buffer_duration_impl (ClutterGstPlayer *player,
+ gint64 duration)
+{
+ ClutterGstPlayerPrivate *priv;
+
+ priv = PLAYER_GET_PRIVATE (player);
+
+ g_object_set (G_OBJECT (priv->pipeline), "buffer-duration", duration, NULL);
+}
+
static GList *
clutter_gst_player_get_audio_streams_impl (ClutterGstPlayer *player)
{
@@ -1981,6 +2030,10 @@ clutter_gst_player_init (ClutterGstPlayer *player)
iface->set_seek_flags = clutter_gst_player_set_seek_flags_impl;
iface->get_buffering_mode = clutter_gst_player_get_buffering_mode_impl;
iface->set_buffering_mode = clutter_gst_player_set_buffering_mode_impl;
+ iface->get_buffer_size = clutter_gst_player_get_buffer_size_impl;
+ iface->set_buffer_size = clutter_gst_player_set_buffer_size_impl;
+ iface->get_buffer_duration = clutter_gst_player_get_buffer_duration_impl;
+ iface->set_buffer_duration = clutter_gst_player_set_buffer_duration_impl;
iface->get_audio_streams = clutter_gst_player_get_audio_streams_impl;
iface->get_audio_stream = clutter_gst_player_get_audio_stream_impl;
iface->set_audio_stream = clutter_gst_player_set_audio_stream_impl;
@@ -2722,6 +2775,86 @@ clutter_gst_player_get_buffer_fill (ClutterGstPlayer *player)
return retval;
}
+/*
+ * clutter_gst_player_get_buffer_size:
+ * @player: a #ClutterGstPlayer
+ *
+ * Retrieves the buffer size when buffering network streams.
+ *
+ * Return value: The buffer size
+ */
+gint
+clutter_gst_player_get_buffer_size (ClutterGstPlayer *player)
+{
+ ClutterGstPlayerIface *iface;
+
+ g_return_val_if_fail (CLUTTER_GST_IS_PLAYER (player), -1);
+
+ iface = CLUTTER_GST_PLAYER_GET_INTERFACE (player);
+
+ return iface->get_buffer_size (player);
+}
+
+/**
+ * clutter_gst_player_set_buffer_size:
+ * @player: a #ClutterGstPlayer
+ * @size: The new size
+ *
+ * Sets the buffer size to be used when buffering network streams.
+ */
+void
+clutter_gst_player_set_buffer_size (ClutterGstPlayer *player,
+ gint size)
+{
+ ClutterGstPlayerIface *iface;
+
+ g_return_if_fail (CLUTTER_GST_IS_PLAYER (player));
+
+ iface = CLUTTER_GST_PLAYER_GET_INTERFACE (player);
+
+ iface->set_buffer_size (player, size);
+}
+
+/**
+ * clutter_gst_player_get_buffer_duration:
+ * @player: a #ClutterGstPlayer
+ *
+ * Retrieves the buffer duration when buffering network streams.
+ *
+ * Return value: The buffer duration
+ */
+gint64
+clutter_gst_player_get_buffer_duration (ClutterGstPlayer *player)
+{
+ ClutterGstPlayerIface *iface;
+
+ g_return_val_if_fail (CLUTTER_GST_IS_PLAYER (player), -1);
+
+ iface = CLUTTER_GST_PLAYER_GET_INTERFACE (player);
+
+ return iface->get_buffer_duration (player);
+}
+
+/**
+ * clutter_gst_player_set_buffer_duration:
+ * @player: a #ClutterGstPlayer
+ * @duration: The new duration
+ *
+ * Sets the buffer duration to be used when buffering network streams.
+ */
+void
+clutter_gst_player_set_buffer_duration (ClutterGstPlayer *player,
+ gint64 duration)
+{
+ ClutterGstPlayerIface *iface;
+
+ g_return_if_fail (CLUTTER_GST_IS_PLAYER (player));
+
+ iface = CLUTTER_GST_PLAYER_GET_INTERFACE (player);
+
+ iface->set_buffer_duration (player, duration);
+}
+
/**
* clutter_gst_player_set_audio_volume:
* @player: a #ClutterGstPlayer
diff --git a/clutter-gst/clutter-gst-player.h b/clutter-gst/clutter-gst-player.h
index 1ab9ff1..012210f 100644
--- a/clutter-gst/clutter-gst-player.h
+++ b/clutter-gst/clutter-gst-player.h
@@ -116,10 +116,14 @@ struct _ClutterGstPlayerIface
gboolean (*get_in_seek) (ClutterGstPlayer *player);
- void (* _iface_reserved16) (void);
- void (* _iface_reserved17) (void);
- void (* _iface_reserved18) (void);
- void (* _iface_reserved19) (void);
+ gint (* get_buffer_size) (ClutterGstPlayer *player);
+ void (* set_buffer_size) (ClutterGstPlayer *player,
+ gint size);
+
+ gint64 (* get_buffer_duration) (ClutterGstPlayer *player);
+ void (* set_buffer_duration) (ClutterGstPlayer *player,
+ gint64 duration);
+
void (* _iface_reserved20) (void);
void (* _iface_reserved21) (void);
void (* _iface_reserved22) (void);
@@ -186,6 +190,12 @@ ClutterGstBufferingMode clutter_gst_player_get_buffering_mode (ClutterGstPlay
void clutter_gst_player_set_buffering_mode (ClutterGstPlayer *player,
ClutterGstBufferingMode mode);
gdouble clutter_gst_player_get_buffer_fill (ClutterGstPlayer *player);
+gint clutter_gst_player_get_buffer_size (ClutterGstPlayer *player);
+void clutter_gst_player_set_buffer_size (ClutterGstPlayer *player,
+ gint size);
+gint64 clutter_gst_player_get_buffer_duration (ClutterGstPlayer *player);
+void clutter_gst_player_set_buffer_duration (ClutterGstPlayer *player,
+ gint64 duration);
void clutter_gst_player_set_audio_volume (ClutterGstPlayer *player,
gdouble volume);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]