Enlightenment CVS committal

Author  : doursse
Project : e17
Module  : libs/emotion

Dir     : e17/libs/emotion/src/modules


Modified Files:
        emotion_gstreamer.c 


Log Message:
fix volume for the gstreamer plugin

===================================================================
RCS file: /cvs/e/e17/libs/emotion/src/modules/emotion_gstreamer.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -3 -r1.12 -r1.13
--- emotion_gstreamer.c 14 May 2006 14:32:45 -0000      1.12
+++ emotion_gstreamer.c 21 May 2006 10:23:15 -0000      1.13
@@ -1036,6 +1036,8 @@
                            double vol)
 {
    Emotion_Gstreamer_Video *ev;
+   Emotion_Audio_Sink      *asink;
+   GstElement              *volume;
 
    ev = (Emotion_Gstreamer_Video *)video;
 
@@ -1043,21 +1045,28 @@
      vol = 0.0;
    if (vol > 100.0)
      vol = 100.0;
-   g_object_set (G_OBJECT (ev->pipeline), "volume",
-                vol / 100.0, NULL);
+   volume = gst_bin_get_by_name (GST_BIN (ev->pipeline), "volume");
+   if (!volume) return;
+   g_object_set (G_OBJECT (volume), "volume",
+                vol / 10.0, NULL);
+   gst_object_unref (volume);
 }
 
 static double
 em_audio_channel_volume_get(void *video)
 {
    Emotion_Gstreamer_Video *ev;
+   GstElement              *volume;
    double                   vol;
 
    ev = (Emotion_Gstreamer_Video *)video;
 
-   g_object_get (G_OBJECT (ev->pipeline), "volume", &vol, NULL);
+   volume = gst_bin_get_by_name (GST_BIN (ev->pipeline), "volume");
+   if (!volume) return;
+   g_object_get (G_OBJECT (volume), "volume", &vol, NULL);
+   gst_object_unref (volume);
 
-   return vol*100.0;
+   return vol*10.0;
 }
 
 /* spu stuff */
@@ -1532,6 +1541,7 @@
      GstElement *queue;
      GstElement *conv;
      GstElement *resample;
+     GstElement *volume;
      GstElement *sink;
      GstPad     *audiopad;
 
@@ -1540,14 +1550,15 @@
      queue = gst_element_factory_make ("queue", NULL);
      conv = gst_element_factory_make ("audioconvert", NULL);
      resample = gst_element_factory_make ("audioresample", NULL);
+     volume = gst_element_factory_make ("volume", "volume");
      if (index == 1)
        sink = gst_element_factory_make ("autoaudiosink", NULL);
      else
        sink = gst_element_factory_make ("fakesink", NULL);
 
      gst_bin_add_many (GST_BIN (audiobin),
-                       queue, conv, resample, sink, NULL);
-     gst_element_link_many (queue, conv, resample, sink, NULL);
+                       queue, conv, resample, volume, sink, NULL);
+     gst_element_link_many (queue, conv, resample, volume, sink, NULL);
 
      audiopad = gst_element_get_pad (queue, "sink");
      gst_element_add_pad (audiobin, gst_ghost_pad_new ("sink", audiopad));




-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to