Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | main: hook up cpu detection code | Wim Taymans | 2009-08-20 | 3 | -19/+18 |
| | | | | | | 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 helpers | Wim Taymans | 2009-08-20 | 2 | -0/+183 |
| | | | | | 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 code | Wim Taymans | 2009-08-20 | 2 | -123/+268 |
| | |||||
* | volume_sse: add sse optimisations | Wim Taymans | 2009-08-20 | 2 | -0/+438 |
| | |||||
* | volume_mmx: fix mmx code a bit | Wim Taymans | 2009-08-20 | 1 | -20/+26 |
| | |||||
* | volume: add first mmx optimized function | Wim Taymans | 2009-08-20 | 2 | -0/+425 |
| | | | | | Add code for an mmx optimized version of s16ne volume scaling. Install the custom function. | ||||
* | samples-util: add padding to volume array | Wim Taymans | 2009-08-20 | 1 | -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 file | Wim Taymans | 2009-08-20 | 3 | -311/+346 |
| | | | | | 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 around | Wim Taymans | 2009-08-20 | 1 | -22/+22 |
| | | | | Move some stuff around before splitting it into a separate file. | ||||
* | sample-utils: coding style cleanup | Wim Taymans | 2009-08-20 | 1 | -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 case | Wim Taymans | 2009-08-20 | 1 | -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. | ||||
* | core: check return value of getgrnam_r() instead of errno | Lennart Poettering | 2009-08-20 | 1 | -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. | ||||
* | sink: volume handling rework, new flat volume logic | Lennart Poettering | 2009-08-19 | 8 | -270/+317 |
| | | | | | | | | | | | | | | | | | | | | | | | - 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. | ||||
* | source: rework volume handling | Lennart Poettering | 2009-08-19 | 2 | -20/+27 |
| | | | | | | | | | | | | | - drop the 'virtual_' prefix from s->virtual_volume since we don't distuingish between reference and real volumes for sources - introduce an accuracy for source volumes: if the hardware can control the volume "close enough" don't necessarily adjust the rest in software unless it is beyond a certain threshold. This should save a little bit of CPU at the expensive of a bit of accuracy in volume handling. - other minor cleanups | ||||
* | macro: extend comments a bit | Lennart Poettering | 2009-08-19 | 1 | -4/+4 |
| | |||||
* | macro: simplify page/word alignment macros a bit | Lennart Poettering | 2009-08-17 | 1 | -12/+8 |
| | |||||
* | macro: add PA_ROUND_UP/PA_ROUND_DOWN macros | Lennart Poettering | 2009-08-17 | 1 | -4/+30 |
| | |||||
* | aupdate: implicitly call _write_swap() if it wasn't called explicitly | Lennart Poettering | 2009-08-16 | 2 | -0/+12 |
| | |||||
* | core: add to FIXMEs | Lennart Poettering | 2009-08-16 | 2 | -0/+2 |
| | |||||
* | modules: add various checks to avoid selecting objects that are not linked ↵ | Lennart Poettering | 2009-08-16 | 1 | -8/+22 |
| | | | | or in another unclear state | ||||
* | thread-mq: do final q flush only when we aren't dispatching anyway | Lennart Poettering | 2009-08-15 | 1 | -3/+5 |
| | |||||
* | asyncmsgq: introduce pa_asyncmsgq_dispatching() | Lennart Poettering | 2009-08-15 | 2 | -0/+8 |
| | |||||
* | core: introduce pa_{sink|source}_update_flags() | Lennart Poettering | 2009-08-15 | 4 | -3/+41 |
| | |||||
* | database: simple hashmap based database implementation | Juho Hämäläinen | 2009-08-15 | 1 | -0/+510 |
| | |||||
* | hook-list: make use of PA_LLIST_FOREACH | Lennart Poettering | 2009-08-15 | 1 | -1/+1 |
| | |||||
* | native-protocol: downgrade volume change log messages | Lennart Poettering | 2009-08-15 | 1 | -3/+9 |
| | |||||
* | core: document difference between IO and main thread view on requested latency | Lennart Poettering | 2009-08-15 | 1 | -0/+3 |
| | |||||
* | core: don't update latency range if not changed | Lennart Poettering | 2009-08-15 | 1 | -2/+5 |
| | |||||
* | core: call pa_sink_get_latency_within_thread() instead of going directly via ↵ | Lennart Poettering | 2009-08-15 | 1 | -8/+2 |
| | | | | process_msg() | ||||
* | core: make fixed latency dynamically changeable | Lennart Poettering | 2009-08-15 | 9 | -50/+210 |
| | | | | | | | | | | | | | This of course makes the name 'fixed' a bit of a misnomer. However the definitions are now like this: fixed latency: the latency may change during runtime, but is solely controlled by the backend, the client has no influence. dynamic latency: the latency may change during runtime, influenced by the requests of the clients. i.e. fixed vs. dynamic is from the perspective of the client. | ||||
* | core: move rtpoll to thread_info sub structure | Lennart Poettering | 2009-08-15 | 4 | -13/+13 |
| | |||||
* | log: place more rate limit invocations | Lennart Poettering | 2009-08-15 | 1 | -1/+3 |
| | |||||
* | core: split of FAIL_ON_SUSPEND into KILL_ON_SUSPEND and NO_CREATE_ON_SUSPEND | Lennart Poettering | 2009-08-15 | 8 | -15/+18 |
| | |||||
* | native: handle moving() callback with NULL destination properly | Lennart Poettering | 2009-08-15 | 1 | -1/+7 |
| | |||||
* | core: introduce pa_{sink_input|source_output}_fail_move() | Lennart Poettering | 2009-08-15 | 6 | -12/+52 |
| | |||||
* | protocol-native: log explicitly each time a client triggers a volume change | Lennart Poettering | 2009-08-14 | 1 | -3/+12 |
| | |||||
* | resampler: round up when estimating input/output sizes | Lennart Poettering | 2009-08-14 | 1 | -2/+6 |
| | |||||
* | thread-mq: never drop queued messages for the main loop | Lennart Poettering | 2009-08-14 | 1 | -0/+7 |
| | | | | | | | | Previously we might have dropped messages from IO trheads to the main thread. This tuend out to be problematic since this cause SHM release messages to be lost. More visibly however this could cause playback freezing when moving streams between sinks and removing the old sink right away. | ||||
* | asyncmsgq: add pa_asyncmsgq_flush() call | Lennart Poettering | 2009-08-14 | 2 | -4/+34 |
| | |||||
* | memblockq: add pa_memblockq_get_maxrewind() API | Lennart Poettering | 2009-08-14 | 2 | -0/+9 |
| | |||||
* | shm: bump shm size limit to 1GB | Lennart Poettering | 2009-08-14 | 1 | -1/+2 |
| | |||||
* | core: add functions to query max_rewind/max_request values from streams | Lennart Poettering | 2009-08-13 | 4 | -0/+33 |
| | |||||
* | core: add assert macros for verifying calling context | Lennart Poettering | 2009-08-13 | 9 | -31/+234 |
| | | | | | | | This adds pa_assert_io_context() and pa_assert_ctl_context() in addition to a few related macros. When called they will fail when the current execution context is not IO resp. not control context. (aka 'thread' context vs. 'main' context) | ||||
* | start-child: clean up child environment a bit better | Lennart Poettering | 2009-08-12 | 1 | -7/+8 |
| | |||||
* | memblock: rate limit 'Pool full' message | Lennart Poettering | 2009-08-12 | 1 | -1/+2 |
| | |||||
* | core-util: move personality resetting into core-util | Lennart Poettering | 2009-08-12 | 2 | -0/+15 |
| | |||||
* | conf: add pa_config_parse_not_bool() for parsing inverse boolean ↵ | Lennart Poettering | 2009-08-12 | 2 | -0/+25 |
| | | | | configuration options | ||||
* | ladspa/remap: make sure we process all requested rewinds unconditionally | Lennart Poettering | 2009-08-07 | 2 | -5/+8 |
| | | | | | | | In some situations a rewind request travelling downstream might be optimized away on its way and an upstream rewind processing might never come back. Hence, call _process_rewind() before each _render()just to make sure we processed them all. | ||||
* | core: save volume/mute changes coming from the hardware automatically | Lennart Poettering | 2009-08-07 | 4 | -25/+30 |
| | | | | | Volume changes coming from the lower layers are most likely changes triggered by the user, so let's save them automatically. | ||||
* | smoother: readd #ifdef protection | Lennart Poettering | 2009-08-05 | 1 | -2/+2 |
| |