From: GStreamer (bugzilla.gnome.o. <bug...@gn...> - 2010-02-17 20:45:08
|
https://bugzilla.gnome.org/show_bug.cgi?id=609801 GStreamer | gst-plugins-base | git --- Comment #11 from Wim Taymans <wim...@gm...> 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. |