| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| | |
Conflicts:
src/Makefile.am
|
| | |
|
| |
| |
| |
| | |
malloc/free directly
|
| |\ |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
| | |
| | |
| | |
| | | |
Use PA_MAX
Use pa_rtclock_now() for benchmarks
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
| | |
| | |
| | | |
inputs
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Instead of using string contents for type identification use the address
of a constant string array. This should speed up type verifications a
little sind we only need to compare one machine word instead of a full
string. Also, this saves a few strings.
To make clear that types must be compared via address and not string
contents 'type_name' is now called 'type_id'.
This also simplifies the macros for declaring and defining public and
private subclasses.
|
| | | |
|
| |/ |
|
| |
| |
| |
| |
| |
| |
| | |
According to POSIX getgrnam_r() returns the error code as return value,
and not in errno. Honour that.
Pointed out and inspired by a patch from Ted Percival.
|
| | |
|