Controlling parameters in pygst

Jille Timmermans jille at quis.cx
Sat Nov 26 07:56:01 PST 2011


Hello,

I'm looking for a way to, let's say, change the equalizer-settings at a 
specified point in time with GStreamer in Python. I've read the manual 
and found the Controller-class.

Some snippets:
[..]
eq = gst.element_factory_make('equalizer-3bands')
[..]
control = gst.Controller(eq, 'band0', 'band1', 'band2')
control.set_interpolation_mode('band0', gst.INTERPOLATE_NONE)
[..]
control.set("band0", 8 * gst.SECOND, 12.0)
control.set("band0", 12 * gst.SECOND, -12.0)
[..]

My code is playing the MP3 I want, but doesn't do anything with the 
equalizer-settings.

If I change the state of the pipeline to STATE_PLAYING and sleep for 
some time and call
   eq.set_property('band0', -12.0)
it actually works, but I want a more exact timing.

Some background:
The projects[1] goal is to make a transition between two songs described 
in an XML-file. It specifies at which time the second song should start 
playing, can specify changes in pitch, equalizer-settings etc.

I would really love some hint whether the Controller is the right way to 
go. I've also read something about DParams but I can't find the calls in 
pygst so I assume they are not (yet) implemented.

Thanks in advance,
-- Jille
[1] https://github.com/Jille/MiXML


More information about the gstreamer-devel mailing list