| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Fallback to the default C implementation when the remap init function did not
set a function.
|
| |
| |
| |
| |
| | |
Move the remapping code into a separate file. Have functions to install custom
init functions that can install optimized versions, when they want.
|
| |
| |
| |
| |
| |
| | |
Move the channel remapping bits into a separate structure. We'll make this
structure global so that optimized versions can use it to perform the channel
remapping.
|
| |
| |
| |
| | |
Add methods to override the default conversion functions.
|
| |
| |
| |
| |
| |
| |
| | |
Exponentially increase the amount of time between smoother updates. We start
with a 2ms interval and increase up to 200ms intervals.
Smoother updates and the resulting linear regression take a fair amount of CPU
so we want to reduce the amount of updates.
|
| |
| |
| |
| |
| | |
Use PA_MAX
Use pa_rtclock_now() for benchmarks
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Manually inline some table lookups to avoid excessive calls to
pa_sample_spec_valid().
|
| |
| |
| |
| |
| |
| | |
Fix the identity matrix check for mono to stereo.
Help the compiler generate better code for the C implementation of the channel
remapping code.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Factor out the channel remap matrix code into a separate function.
Keep a pointer to the channel remapping function so we can install custom
functions.
Catch the common mono->stereo remapping case and install a custom, more
optimized function.
|
| |
| |
| |
| | |
Mark code that should only be compiled on x86 CPUs with proper defines.
|
| | |
|
| |
| |
| |
| |
| | |
We don't need the compare because the sub operation already set the right flags
for us.
|
| |
| |
| |
| |
| | |
Calculate and cache an integer version of the channel map so that we don't have
to regenerate it when dealing with s16 samples.
|
| |
| |
| |
| |
| |
| |
| | |
Get rid of the liboil dependency and reimplement the liboil functions with an
equivalent C implementation. Note that most of these functions are deprecated in
liboil and that none of them had any optimisations. We can further specialize
our handrolled versions for some extra speedups.
|
| | |
|
| | |
|
| |
| |
| |
| | |
MMX is about 6x faster, SSE around 15x on my machine.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
Add CPU detection code to activate the various optimisations.
Move some method definitions around.
Use compatibility macros when we can.
|
| |
| |
| |
| |
| | |
Add CPU detection code and various macros and typdefs to make it easier to write
64 and 32 bit code.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Add code for an mmx optimized version of s16ne volume scaling. Install the
custom function.
|
| |
| |
| |
| |
| | |
Pad the volume array with a copy of the start. We'll need this later to be able
to write optimized functions.
|
| |
| |
| |
| |
| | |
Move the volume code into a separate file with the reference C implementations.
Add a function to retrieve the volume function and one to install a new one.
|
| |
| |
| |
| | |
Move some stuff around before splitting it into a separate file.
|
| |
| |
| |
| |
| |
| | |
Make the coding style match the rest of pulseaudio more.
Remove some liboil functions, they seem unoptimized and likely slower than our
handrolled versions here.
|
| |
| |
| |
| |
| | |
Move the volume functions out of the switch case and use a table indexed by the
sample format to find the volume function.
|
| |
| |
| |
| | |
initiating profile probing
|
| | |
|
| |
| |
| |
| | |
inputs
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Set a fixed latency based on the given buffer size, which is constrained to
the 128 KB limit on buffered writes. Also fix an error path.
|
| |
| |
| |
| | |
Make use of the smoother, just in case.
|
| |
| |
| |
| | |
Fix bit rot due to recent flat volume changes.
|
| |
| |
| |
| |
| |
| |
| | |
Provides getgrgid, getgrnam, getpwuid & getpwnam replacements that are
thread safe (a la getgrgid_r() and friends) that internally
handle allocating big-enough buffers to avoid ERANGE errors
on large users or groups.
|