summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* remap: make the MMX code pretierWim Taymans2009-08-201-50/+24
|
* remap: add MMX mono to stereoWim Taymans2009-08-204-1/+180
|
* remap: init the do_remap function to NULLWim Taymans2009-08-201-2/+4
|
* remap: allow specialisations to install NULLWim Taymans2009-08-201-0/+5
| | | | | Fallback to the default C implementation when the remap init function did not set a function.
* remap: move remapping code in separate fileWim Taymans2009-08-204-152/+249
| | | | | Move the remapping code into a separate file. Have functions to install custom init functions that can install optimized versions, when they want.
* resamples; refactor the channel remapping bitsWim Taymans2009-08-201-81/+105
| | | | | | 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.
* sconv: allow for setting custom functionsWim Taymans2009-08-202-64/+102
| | | | Add methods to override the default conversion functions.
* alsa-sink: reduce the amount of smoother updatesWim Taymans2009-08-201-4/+22
| | | | | | | 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.
* svolume: cleanupsWim Taymans2009-08-203-26/+26
| | | | | Use PA_MAX Use pa_rtclock_now() for benchmarks
* whitespace fixesWim Taymans2009-08-208-740/+765
|
* resampler: avoid some multiplies when we canWim Taymans2009-08-201-2/+7
|
* svolume: add commentWim Taymans2009-08-201-0/+3
|
* arm: implement ARM cpu detectionWim Taymans2009-08-202-7/+107
|
* x86: keep the cpu flags localWim Taymans2009-08-201-30/+27
|
* svolume: fix compilation in 32bitsWim Taymans2009-08-202-12/+12
|
* sample: manually inline table lookupsWim Taymans2009-08-201-25/+24
| | | | | Manually inline some table lookups to avoid excessive calls to pa_sample_spec_valid().
* resampler: fix identity checkWim Taymans2009-08-201-10/+6
| | | | | | Fix the identity matrix check for mono to stereo. Help the compiler generate better code for the C implementation of the channel remapping code.
* resample: fix countersWim Taymans2009-08-201-4/+4
|
* resample: refactor the channel remapping a littleWim Taymans2009-08-201-88/+109
| | | | | | | | 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.
* svolume: add CPU guards around codeWim Taymans2009-08-202-0/+11
| | | | Mark code that should only be compiled on x86 CPUs with proper defines.
* svolume: add ARM optimized volume scalingWim Taymans2009-08-205-2/+281
|
* svolume: remove unneeded compareWim Taymans2009-08-202-3/+1
| | | | | We don't need the compare because the sub operation already set the right flags for us.
* resampler: cache integer channel_mapWim Taymans2009-08-201-33/+33
| | | | | 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 liboilWim Taymans2009-08-208-90/+65
| | | | | | | 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.
* volume: remove ref functionsWim Taymans2009-08-202-446/+0
|
* volume: improved commentsWim Taymans2009-08-202-27/+30
|
* volume: make the benchmark more meaningfullWim Taymans2009-08-202-43/+69
| | | | MMX is about 6x faster, SSE around 15x on my machine.
* svolume: add some commentsWim Taymans2009-08-201-0/+18
|
* cpu-x86: guard header with ifdefWim Taymans2009-08-201-0/+5
|
* main: hook up cpu detection codeWim Taymans2009-08-204-21/+20
| | | | | | Add CPU detection code to activate the various optimisations. Move some method definitions around. Use compatibility macros when we can.
* cpu-x86: add cpu detection code and helpersWim Taymans2009-08-203-0/+184
| | | | | Add CPU detection code and various macros and typdefs to make it easier to write 64 and 32 bit code.
* svolume: improve SSE and MMX codeWim Taymans2009-08-202-123/+268
|
* volume_sse: add sse optimisationsWim Taymans2009-08-204-1/+440
|
* volume_mmx: fix mmx code a bitWim Taymans2009-08-201-20/+26
|
* volume: add first mmx optimized functionWim Taymans2009-08-204-0/+428
| | | | | Add code for an mmx optimized version of s16ne volume scaling. Install the custom function.
* samples-util: add padding to volume arrayWim Taymans2009-08-201-5/+17
| | | | | Pad the volume array with a copy of the start. We'll need this later to be able to write optimized functions.
* sample-util: move volume code to separate fileWim Taymans2009-08-204-311/+347
| | | | | 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.
* sample-util: move some functions aroundWim Taymans2009-08-201-22/+22
| | | | Move some stuff around before splitting it into a separate file.
* sample-utils: coding style cleanupWim Taymans2009-08-201-53/+46
| | | | | | 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.
* sample-utils: split out functions from caseWim Taymans2009-08-201-283/+303
| | | | | Move the volume functions out of the switch case and use a table indexed by the sample format to find the volume function.
* Modification of the thread-mainloop doc to ensure that nobody frees the api ↵Xabier Rodriguez Calvar2009-08-201-1/+3
| | | | as it is owned by the loop.
* Modification of the mainloop doc to ensure that nobody frees the api as it ↵Xabier Rodriguez Calvar2009-08-201-1/+3
| | | | is owned by the loop.
* Modification of the glib-mainloop doc to ensure that nobody frees the api as ↵Xabier Rodriguez Calvar2009-08-201-1/+3
| | | | it is owned by the loop.
* core: check return value of getgrnam_r() instead of errnoLennart Poettering2009-08-201-40/+34
| | | | | | | 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.
* lirc: replace manual code by pa_cvolume_{inc|dec}()Lennart Poettering2009-08-191-18/+4
|
* mmkbd: replace manual code by pa_cvolume_{inc|dec}()Lennart Poettering2009-08-191-22/+21
|
* sink: volume handling rework, new flat volume logicLennart Poettering2009-08-1916-286/+333
| | | | | | | | | | | | | | | | | | | | | | | - We now implement a logic where the sink maintains two distinct volumes: the 'reference' volume which is shown to the users, and the 'real' volume, which is configured to the hardware. The latter is configured to the max of all streams. Volume changes on sinks are propagated back to the streams proportional to the reference volume change. Volume changes on sink inputs are forwarded to the sink by 'pushing' the volume if necessary. This renames the old 'virtual_volume' to 'real_volume'. The 'reference_volume' is now the one exposed to users. By this logic the sink volume visible to the user, will always be the "upper" boundary for everything that is played. Saved/restored stream volumes are measured relative to this boundary, the factor here is always < 1.0. - introduce accuracy for sink volumes, similar to the accuracy we already have for source volumes. - other cleanups.
* match: document how broken the module-match logic isLennart Poettering2009-08-191-0/+3
|
* volume: introduce pa_cvolume_{inc|dec}()Lennart Poettering2009-08-193-0/+44
|
* volume: use PA_VOLUME_MAX instead of (pa_volume_t) -1Lennart Poettering2009-08-191-4/+4
|