[gstreamer-bugs] [Bug 609801] [volume] Use sample accurate property values if a controller is used

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Wed Feb 17 12:44:58 PST 2010


https://bugzilla.gnome.org/show_bug.cgi?id=609801
  GStreamer | gst-plugins-base | git

--- Comment #11 from Wim Taymans <wim.taymans at gmail.com> 2010-02-17 20:44:53 UTC ---
(In reply to comment #10)
> (In reply to comment #4)
> > we really don't want to do that.. If you want sample accurate interpollation we
> > don't want to split the buffer on each sample. We should use the controller to
> > generate an array of values for each sample that we need to modify (with some
> > interpolation) and then combine the arrays (this also allows us to use
> > efficient matrix multiply with sse or something).
> 
> We want sample accurate interpollation, but not a new control value per sample.
> The controller is for control curves and those cause to high overhead if done
> on sample level. Having a max controlrate of e.g. 50 Hz is covering already
> exotic use cases. Most use cases would still be fine with 2-10Hz.

I agree that always doing sample accurate interpollation is a bit over the top
for
most use cases. The granularity should somehow be a decision of the application
using the controller. 

At the volume level, however, I believe it should be possible to request
an equal amount of control points as you have samples so that you can later
optimize the multiplication (in volume case) with some straightforward sse/mmx
paralel multiplies (as the latest patch seems to do). I don't think the volume
element should try to split buffers or mess with the controller too much.

How the controller then generates those points would depend on its
configuration (it could duplicate the same value N times or it could do a
simple
linear interpollation between the calculated control points or...). 

It can't imagine that rendering a controller curve for N samples should be
such an expensive operation. Even less so when the algorithm is allowed to
take shortcuts based on the configured granularity. I might be wrong, though...

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.




More information about the Gstreamer-bugs mailing list