[snappy] engine: loop correctly through subtitle streams
- From: Luis de Bethencourt <luisbg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [snappy] engine: loop correctly through subtitle streams
- Date: Fri, 14 Dec 2012 20:15:45 +0000 (UTC)
commit f61a31fb6651340234ec00aee807e5830671a05f
Author: Luis de Bethencourt <luis debethencourt com>
Date: Fri Dec 14 15:15:40 2012 -0500
engine: loop correctly through subtitle streams
src/gst_engine.c | 15 +++++++++------
src/gst_engine.h | 2 +-
2 files changed, 10 insertions(+), 7 deletions(-)
---
diff --git a/src/gst_engine.c b/src/gst_engine.c
index 3e26927..8a5128e 100644
--- a/src/gst_engine.c
+++ b/src/gst_engine.c
@@ -632,7 +632,7 @@ change_state (GstEngine * engine, gchar * state)
/* Cycle through streams */
-void
+gboolean
cycle_streams (GstEngine * engine, guint streamid)
{
gboolean last_stream = FALSE;
@@ -665,8 +665,9 @@ cycle_streams (GstEngine * engine, guint streamid)
current = 0;
last_stream = TRUE;
}
-
g_object_set (G_OBJECT (engine->player), c, current, NULL);
+
+ return last_stream;
}
@@ -944,16 +945,18 @@ gboolean
toggle_subtitles (GstEngine * engine)
{
gint flags;
+ gboolean last_stream;
gboolean sub_state;
g_object_get (G_OBJECT (engine->player), "flags", &flags, NULL);
sub_state = flags & (1 << 2);
if (sub_state) { // If subtitles on, cycle streams and if last turn off
- cycle_streams (engine, STREAM_TEXT);
- flags &= ~(1 << 2);
- g_object_set (G_OBJECT (engine->player), "flags", flags, NULL);
-
+ last_stream = cycle_streams (engine, STREAM_TEXT);
+ if (last_stream) {
+ flags &= ~(1 << 2);
+ g_object_set (G_OBJECT (engine->player), "flags", flags, NULL);
+ }
} else { // If subtitles off, turn them on
flags |= (1 << 2);
g_object_set (G_OBJECT (engine->player), "flags", flags, NULL);
diff --git a/src/gst_engine.h b/src/gst_engine.h
index bb720d4..c3a6044 100644
--- a/src/gst_engine.h
+++ b/src/gst_engine.h
@@ -63,7 +63,7 @@ gboolean add_uri_unfinished (GstEngine * engine);
gboolean at_the_eos (GstEngine * engine);
gboolean bus_call (GstBus * bus, GstMessage * msg, gpointer data);
gboolean change_state (GstEngine * engine, gchar * state);
-void cycle_streams (GstEngine * engine, guint streamid);
+gboolean cycle_streams (GstEngine * engine, guint streamid);
gboolean engine_init (GstEngine * engine, GstElement * sink);
void engine_load_uri (GstEngine * engine, gchar * uri);
void engine_open_uri (GstEngine * engine, gchar * uri);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]