Commit graph

965 commits

Author SHA1 Message Date
Wim Taymans
509d9f04e5 remap: add sse optimized mono to stereo 2009-08-27 10:44:52 +02:00
Wim Taymans
26bd0901ac sconv: fix indentation 2009-08-27 10:44:52 +02:00
Lennart Poettering
5df842db64 sink-input: extend comments on rewinding logic a bit 2009-08-27 01:48:35 +02:00
Lennart Poettering
c372b52a77 protocol-native: print more volume change debug messages to easy tracking down of feedback loops 2009-08-27 00:05:54 +02:00
Lennart Poettering
cab48d48d1 protocol-native: compare uint64_t variable with (uint64_t) -1 instead of (size_t) -1 for compat with 32bit archs 2009-08-27 00:04:33 +02:00
Lennart Poettering
44b798237a pdispatch: various modernizations 2009-08-26 20:07:04 +02:00
Lennart Poettering
34829eb07f pdispatch: add missing commands to command table 2009-08-26 20:06:24 +02:00
Lennart Poettering
4e1298d7c7 llist: add PA_LLIST_FOREACH_SAFE macro for iteration that allows deleting 2009-08-26 20:05:48 +02:00
Lennart Poettering
827ae07c1e macro: add PA_CLIP_SUB() for saturated subtraction 2009-08-26 01:41:34 +02:00
Lennart Poettering
57fb77134b remap: fix build for non-x86 builds 2009-08-24 17:01:44 +02:00
Lennart Poettering
050a3a99e1 alsa: automatically decrease watermark after a time of stability 2009-08-24 03:27:29 +02:00
Lennart Poettering
a0f01ddc95 port a few things over to use xmalloc and friends instead of low-level libc malloc/free directly 2009-08-23 21:49:37 +02:00
Lennart Poettering
ab5ac06ac7 Merge commit 'wtay/optimize' 2009-08-23 00:06:35 +02:00
Lennart Poettering
1a05d67f07 core: relex validity checks when destructing half-set up source outputs/sink inputs 2009-08-22 04:04:23 +02:00
Ted Percival
17dc410e88 core: Remove wrong doc on how to free returned data 2009-08-22 01:08:39 +02:00
Ted Percival
15eb03a5b3 core: Add thread-safe group info functions with dynamic buffers
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.
2009-08-22 00:53:39 +02:00
Lennart Poettering
9abc010c93 object: speed up type verification by not relying on strcmp()
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.
2009-08-21 21:27:44 +02:00
Lennart Poettering
8a2a6b2004 adjust various data/library paths automatically if we are run from a build tree 2009-08-21 03:43:53 +02:00
Lennart Poettering
9f97b7cbe1 sink-input: add callbacks that are called whenever the mute/volume changes 2009-08-21 02:56:17 +02:00
Wim Taymans
6076cef209 remap: make the MMX code pretier 2009-08-20 20:00:50 +02:00
Wim Taymans
6e5dbed51e remap: add MMX mono to stereo 2009-08-20 19:46:06 +02:00
Wim Taymans
e961efc130 remap: init the do_remap function to NULL 2009-08-20 18:32:51 +02:00
Wim Taymans
28baa53d55 remap: allow specialisations to install NULL
Fallback to the default C implementation when the remap init function did not
set a function.
2009-08-20 18:29:02 +02:00
Wim Taymans
ac1f2e0a2e remap: move remapping code in separate file
Move the remapping code into a separate file. Have functions to install custom
init functions that can install optimized versions, when they want.
2009-08-20 18:23:42 +02:00
Wim Taymans
a3f4a4f6ba resamples; refactor the channel remapping bits
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.
2009-08-20 17:54:45 +02:00
Wim Taymans
05fef5f551 sconv: allow for setting custom functions
Add methods to override the default conversion functions.
2009-08-20 15:50:02 +02:00
Wim Taymans
f8ffe0dabc svolume: cleanups
Use PA_MAX
Use pa_rtclock_now() for benchmarks
2009-08-20 12:30:48 +02:00
Wim Taymans
f09b51198f whitespace fixes 2009-08-20 11:31:04 +02:00
Wim Taymans
3cc1278dcf resampler: avoid some multiplies when we can 2009-08-20 11:31:04 +02:00
Wim Taymans
aeae567f88 svolume: add comment 2009-08-20 11:31:04 +02:00
Wim Taymans
8aa86f5247 arm: implement ARM cpu detection 2009-08-20 11:31:04 +02:00
Wim Taymans
078bde1b49 x86: keep the cpu flags local 2009-08-20 11:31:04 +02:00
Wim Taymans
370016c0e7 svolume: fix compilation in 32bits 2009-08-20 11:31:04 +02:00
Wim Taymans
548b735ccf resampler: fix identity check
Fix the identity matrix check for mono to stereo.
Help the compiler generate better code for the C implementation of the channel
remapping code.
2009-08-20 11:31:04 +02:00
Wim Taymans
d04a6e935f resample: fix counters 2009-08-20 11:31:04 +02:00
Wim Taymans
b4e9942c2f resample: refactor the channel remapping a little
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.
2009-08-20 11:31:04 +02:00
Wim Taymans
bd49d43bd3 svolume: add CPU guards around code
Mark code that should only be compiled on x86 CPUs with proper defines.
2009-08-20 11:31:03 +02:00
Wim Taymans
951bf1b28d svolume: add ARM optimized volume scaling 2009-08-20 11:31:03 +02:00
Wim Taymans
a98fa950d2 svolume: remove unneeded compare
We don't need the compare because the sub operation already set the right flags
for us.
2009-08-20 11:31:03 +02:00
Wim Taymans
601e5f1867 resampler: cache integer channel_map
Calculate and cache an integer version of the channel map so that we don't have
to regenerate it when dealing with s16 samples.
2009-08-20 11:31:03 +02:00
Wim Taymans
25724cdd40 Get rid of liboil
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.
2009-08-20 11:31:03 +02:00
Wim Taymans
591baacba5 volume: remove ref functions 2009-08-20 11:31:03 +02:00
Wim Taymans
f24c24c14b volume: improved comments 2009-08-20 11:31:03 +02:00
Wim Taymans
a1235446a7 volume: make the benchmark more meaningfull
MMX is about 6x faster, SSE around 15x on my machine.
2009-08-20 11:31:03 +02:00
Wim Taymans
dcae9a3113 svolume: add some comments 2009-08-20 11:31:03 +02:00
Wim Taymans
e396fe67fb cpu-x86: guard header with ifdef 2009-08-20 11:31:03 +02:00
Wim Taymans
563cb2dea9 main: hook up cpu detection code
Add CPU detection code to activate the various optimisations.
Move some method definitions around.
Use compatibility macros when we can.
2009-08-20 11:31:03 +02:00
Wim Taymans
a83f5524fb cpu-x86: add cpu detection code and helpers
Add CPU detection code and various macros and typdefs to make it easier to write
64 and 32 bit code.
2009-08-20 11:31:02 +02:00
Wim Taymans
5998cf99b0 svolume: improve SSE and MMX code 2009-08-20 11:31:02 +02:00
Wim Taymans
7086784573 volume_sse: add sse optimisations 2009-08-20 11:31:02 +02:00