After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 647561 - volume: need a way to control the volume of individual channels of a multi-channel source
volume: need a way to control the volume of individual channels of a multi-ch...
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal enhancement
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2011-04-12 14:51 UTC by sdegrande
Modified: 2018-11-03 11:18 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description sdegrande 2011-04-12 14:51:25 UTC
The volume element is currently not able to control each channel individually.

I tried to replace the playbin2's audio-sink, to use deinterleave/interleave, but did not succeed (I've got some warnings about the channel layout). Improving the volume element would dramatically ease such use case.
Comment 1 Stefan Sauer (gstreamer, gtkdoc dev) 2011-04-12 14:57:45 UTC
Volume could implement the GstChildProxy iface and have per channel dummies that have volume/mute properties. Then one can write:
  gst-launch ... ! volume channel0::volume=0.5 channel1::volume=1.7 ... ! ..
Reflecting that in the volume elements gst-mixer iface implementation might be overkill. Also wonder if the child-names should be "channel{0,1,2,3..} or the audiochannel names, such as "left,right,front,...".
Comment 2 Tim-Philipp Müller 2011-04-12 15:07:39 UTC
Let's move this to -base/volume for now.
Comment 3 sdegrande 2011-04-13 15:25:14 UTC
With such a solution, will I be able to use something such as:
g_object_set (the_volume, "channel0::volume", 0.1, NULL);

(sorry, but I'm not a glib expert, so some features are yet obscures to me...)
Comment 4 Stefan Sauer (gstreamer, gtkdoc dev) 2011-04-13 17:34:23 UTC
(In reply to comment #3)
> With such a solution, will I be able to use something such as:
> g_object_set (the_volume, "channel0::volume", 0.1, NULL);
> 
> (sorry, but I'm not a glib expert, so some features are yet obscures to me...)

Almost, you will have to use:
gst_child_proxy_set(the_volume, 
  "channel0::volume", 0.1, 
  "channel1::volume", 0.5,
  ...
  NULL);
Comment 5 sdegrande 2011-04-14 10:31:59 UTC
Oh... I use gstreamer with clutter, and so I was wondering if I could connect clutter animations with such an improved volume element. So, I guess that the answer is "no". But, well, it can be done in some other ways...
Comment 6 Stefan Sauer (gstreamer, gtkdoc dev) 2011-04-14 10:38:59 UTC
(In reply to comment #5)
> Oh... I use gstreamer with clutter, and so I was wondering if I could connect
> clutter animations with such an improved volume element. So, I guess that the
> answer is "no". But, well, it can be done in some other ways...

we have a property-animation feature in gstreamer too (GstController). But maybe lets discuss that on the list or in irc.

You could also do:
child = gst_child_proxy_get_child_by_name(volume, "channel0");
g_object_set(child, "volume", 0.5, NULL);
g_object_unref(child);
Comment 7 GStreamer system administrator 2018-11-03 11:18:40 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/46.