Commit graph

4626 commits

Author SHA1 Message Date
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
c1b6a87b27 alsa-sink: reduce the amount of smoother updates
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.
2009-08-20 13:40:27 +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
d2389ef96e sample: manually inline table lookups
Manually inline some table lookups to avoid excessive calls to
pa_sample_spec_valid().
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
Wim Taymans
08f3e16c84 volume_mmx: fix mmx code a bit 2009-08-20 11:31:02 +02:00
Wim Taymans
3a0b012ee0 volume: add first mmx optimized function
Add code for an mmx optimized version of s16ne volume scaling. Install the
custom function.
2009-08-20 11:31:02 +02:00
Wim Taymans
2d73f13567 samples-util: add padding to volume array
Pad the volume array with a copy of the start. We'll need this later to be able
to write optimized functions.
2009-08-20 11:30:55 +02:00
Wim Taymans
3d008961c0 sample-util: move volume code to separate file
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.
2009-08-20 11:29:48 +02:00
Wim Taymans
e71e644eb6 sample-util: move some functions around
Move some stuff around before splitting it into a separate file.
2009-08-20 11:29:47 +02:00
Wim Taymans
5b8b6544e2 sample-utils: coding style cleanup
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.
2009-08-20 11:29:47 +02:00
Wim Taymans
26839c4b9e sample-utils: split out functions from case
Move the volume functions out of the switch case and use a table indexed by the
sample format to find the volume function.
2009-08-20 11:29:47 +02:00
Xabier Rodriguez Calvar
52e5d4b1d2 Modification of the thread-mainloop doc to ensure that nobody frees the api as it is owned by the loop. 2009-08-20 02:31:08 +02:00
Xabier Rodriguez Calvar
65f86ef7d4 Modification of the mainloop doc to ensure that nobody frees the api as it is owned by the loop. 2009-08-20 02:31:02 +02:00
Xabier Rodriguez Calvar
30ba9030ef Modification of the glib-mainloop doc to ensure that nobody frees the api as it is owned by the loop. 2009-08-20 02:30:54 +02:00
Lennart Poettering
c5bd72509e core: check return value of getgrnam_r() instead of errno
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.
2009-08-20 00:20:03 +02:00
raven
d2f50eaa91 Sending translation for Polish 2009-08-19 20:53:19 +00:00
beckerde
9b6add303a Sending translation for Spanish 2009-08-19 11:13:19 +00:00
Tanu Kaskinen
179f849c08 dbusifaca-device: Adapt to the changed pa_sink_get/set_volume() interface. 2009-08-19 09:54:09 +03:00
Tanu Kaskinen
292d6dcb5f Merge branch 'master' of git://0pointer.de/pulseaudio into dbus-work 2009-08-19 09:20:02 +03:00
Tanu Kaskinen
b4e0d5d1e1 dbusiface-sample: Implement the Sample D-Bus interface. 2009-08-19 09:18:50 +03:00
Tanu Kaskinen
3de210b671 dbusiface-core: Assert that _add/remove_interface calls succeed. 2009-08-19 09:13:59 +03:00
Tanu Kaskinen
636dbc31f9 dbusiface-core: Use the PA_IDXSET_FOREACH macro. 2009-08-19 09:10:38 +03:00
Tanu Kaskinen
8e6664f499 dbusiface-core: Split some overly long lines. 2009-08-19 09:09:40 +03:00
Lennart Poettering
f4f16ab10d i18n: run make update-po 2009-08-19 04:16:35 +02:00
Lennart Poettering
8f2909058a i18n: add ko to LINGUAS 2009-08-19 04:15:36 +02:00
Lennart Poettering
b2cb8efd28 Merge commit 'origin/master-tx' 2009-08-19 04:14:00 +02:00