Controller doesn't work with volume element.
Stefan Sauer
ensonic at hora-obscura.de
Mon Mar 11 14:13:14 PDT 2013
On 11.03.2013 18:39, Nox Deleo wrote:
> Interesting. I'm using GStreamer 1.0.5 from the gstreamer-developers
> PPA in Ubuntu. Any chance this missed release somehow? Or am I doing
> something strange to cause it? The code used is literally just what I
> posted before.
I think the fix is only in HEAD.
Stefan
>
>
> On 10 March 2013 15:47, Stefan Sauer <ensonic at hora-obscura.de
> <mailto:ensonic at hora-obscura.de>> wrote:
>
> On 08.03.2013 22:22, Nox Deleo wrote:
>> If I set up a control binding to the 'volume' property of the
>> volume element, it reports 'Failed to get values from controller'.
> This is fixed in git since quite a while. The volume element
> requests an array of volume factor values. This ensures smooth
> volume ramping for cases where block sizes are big. This code path
> had a bug.
>
> Stefan
>>
>> I'm using the following (Python) code.
>>
>> self.volume_1 = Gst.ElementFactory.make('volume', 'volume_1')
>> self.volume_2 = Gst.ElementFactory.make('volume', 'volume_2')
>>
>> self.volume_1_cs = GstController.InterpolationControlSource.new()
>> self.volume_2_cs = GstController.InterpolationControlSource.new()
>> self.volume_1.add_control_binding(GstController.DirectControlBinding.new(self.volume_1,
>> 'volume', self.volume_1_cs))
>> self.volume_2.add_control_binding(GstController.DirectControlBinding.new(self.volume_2,
>> 'volume', self.volume_2_cs))
>> self.volume_1_cs.set_property('mode',
>> GstController.InterpolationMode.CUBIC)
>> self.volume_2_cs.set_property('mode',
>> GstController.InterpolationMode.CUBIC)
>>
>> Could this be related to this thread?:
>> http://gstreamer-devel.966125.n4.nabble.com/1-0-controller-API-td4571962.html
>>
>> I'm able to work around this using the audioamplify plugin for
>> now, but it seems I'm still not getting the controller stuff to
>> work. I don't think I'm grasping exactly how the whole controller
>> thing works, despite taking a look at a design doc and a few code
>> examples.
>>
>> What I'm trying to do is implement a smooth crossfade between two
>> audio sources a few seconds before the end of the currently
>> playing one. So I've set up control sources as above (save for
>> using linear interpolation with audioamplify instead), and I've
>> been trying to get the volumes to change using code like this:
>>
>> self.volume_1_cs.set(1 * Gst.SECOND, 1.0)
>> ...and...
>> successful, time = self.src_1.query_position(Gst.Format.TIME)
>> self.volume_1_cs.set(time + (1 * Gst.SECOND), 0.0)
>>
>> The functions return true, so they say they're doing things, but
>> I can't hear any difference. I just can't get my head around how
>> this all works. Apologies if I'm just being dense.
>>
>>
>> _______________________________________________
>> gstreamer-devel mailing list
>> gstreamer-devel at lists.freedesktop.org <mailto:gstreamer-devel at lists.freedesktop.org>
>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> <mailto:gstreamer-devel at lists.freedesktop.org>
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
>
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20130311/e5d4c099/attachment.html>
More information about the gstreamer-devel
mailing list