davemds pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=3a726037fa8e9b2042a514f1441719a5ae883807

commit 3a726037fa8e9b2042a514f1441719a5ae883807
Author: Dave Andreoli <d...@gurumeditation.it>
Date:   Sat Jul 23 23:31:35 2016 +0200

    Gstreamer1: implement subtitles mute/unmute ability
    
    This seems the only way to disable subtitles embedded in the video file.
    
    WIthout this patch calling em_spu_mute_set/get do not work, thus I consider 
this a @fix
---
 src/modules/emotion/gstreamer1/emotion_gstreamer.c | 28 ++++++++++++++++++----
 1 file changed, 24 insertions(+), 4 deletions(-)

diff --git a/src/modules/emotion/gstreamer1/emotion_gstreamer.c 
b/src/modules/emotion/gstreamer1/emotion_gstreamer.c
index b6574a5..3a76595 100644
--- a/src/modules/emotion/gstreamer1/emotion_gstreamer.c
+++ b/src/modules/emotion/gstreamer1/emotion_gstreamer.c
@@ -895,7 +895,7 @@ em_spu_channel_set(void *video, int channel)
 
    if (channel < 0) channel = -1;
 
-   g_object_set (ev->pipeline, "current-text", channel, NULL);
+   g_object_set(ev->pipeline, "current-text", channel, NULL);
 }
 
 static int
@@ -918,14 +918,34 @@ em_spu_channel_name_get(void *video EINA_UNUSED, int 
channel EINA_UNUSED)
 }
 
 static void
-em_spu_channel_mute_set(void *video EINA_UNUSED, int mute EINA_UNUSED)
+em_spu_channel_mute_set(void *video, int mute)
 {
+   Emotion_Gstreamer *ev = video;
+   gint flags;
+
+   if (!ev->pipeline) return;
+
+   g_object_get(ev->pipeline, "flags", &flags, NULL);
+
+   if (mute)
+     flags &= ~GST_PLAY_FLAG_TEXT;
+   else
+     flags |= GST_PLAY_FLAG_TEXT;
+
+   g_object_set(ev->pipeline, "flags", flags, NULL);
 }
 
 static int
-em_spu_channel_mute_get(void *video EINA_UNUSED)
+em_spu_channel_mute_get(void *video)
 {
-   return 0;
+   Emotion_Gstreamer *ev = video;
+   gint flags;
+
+   if (!ev->pipeline) return 0;
+
+   g_object_get(ev->pipeline, "flags", &flags, NULL);
+
+   return (flags & GST_PLAY_FLAG_TEXT) ? 0 : 1;
 }
 
 static int

-- 


Reply via email to