Commit graph

1092 commits

Author SHA1 Message Date
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
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
Tanu Kaskinen
292d6dcb5f Merge branch 'master' of git://0pointer.de/pulseaudio into dbus-work 2009-08-19 09:20:02 +03:00
Lennart Poettering
8c31974f56 sink: volume handling rework, new flat volume logic
- 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.
2009-08-19 02:55:02 +02:00
Lennart Poettering
24e582808c source: rework volume handling
- 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
2009-08-19 01:35:43 +02:00
Lennart Poettering
2838b78e59 macro: extend comments a bit 2009-08-19 01:03:09 +02:00
Lennart Poettering
8f928b2e57 macro: simplify page/word alignment macros a bit 2009-08-17 19:17:10 +02:00
Lennart Poettering
fe3a21f6a5 macro: add PA_ROUND_UP/PA_ROUND_DOWN macros 2009-08-17 19:15:33 +02:00
Tanu Kaskinen
f48684e4db namereg: Revert default device handling back to the upstream version. 2009-08-17 08:26:06 +03:00
Tanu Kaskinen
bcaba0b1b4 Merge branch 'master' of git://0pointer.de/pulseaudio into dbus-work
Conflicts:
	src/Makefile.am
	src/daemon/daemon-conf.c
	src/daemon/daemon.conf.in
	src/modules/module-stream-restore.c
	src/pulse/client-conf.c
	src/pulsecore/namereg.c
2009-08-16 21:25:48 +03:00
Lennart Poettering
01e4b61a91 aupdate: implicitly call _write_swap() if it wasn't called explicitly 2009-08-16 02:02:51 +02:00
Lennart Poettering
8dd0d871a7 core: add to FIXMEs 2009-08-16 00:45:56 +02:00
Lennart Poettering
4c29ba9c33 modules: add various checks to avoid selecting objects that are not linked or in another unclear state 2009-08-16 00:45:23 +02:00
Lennart Poettering
011add1c83 thread-mq: do final q flush only when we aren't dispatching anyway 2009-08-15 22:23:42 +02:00
Lennart Poettering
0c20e740f6 asyncmsgq: introduce pa_asyncmsgq_dispatching() 2009-08-15 22:22:57 +02:00
Tanu Kaskinen
22ab141450 dbus-protocol: Use pa_hashmap_remove() instead of _get(). 2009-08-15 06:13:17 +03:00
Lennart Poettering
0c08dbd9b9 core: introduce pa_{sink|source}_update_flags() 2009-08-15 03:41:13 +02:00
Juho Hämäläinen
ea5cdcbe52 database: simple hashmap based database implementation 2009-08-15 02:07:00 +02:00
Lennart Poettering
d9e4605e09 hook-list: make use of PA_LLIST_FOREACH 2009-08-15 00:55:31 +02:00
Lennart Poettering
d7d86e32dd native-protocol: downgrade volume change log messages 2009-08-15 00:54:51 +02:00
Lennart Poettering
3c271ae060 core: document difference between IO and main thread view on requested latency 2009-08-15 00:54:25 +02:00
Lennart Poettering
c6080d8c61 core: don't update latency range if not changed 2009-08-15 00:54:02 +02:00
Lennart Poettering
3f9c67a7fb core: call pa_sink_get_latency_within_thread() instead of going directly via process_msg() 2009-08-15 00:52:50 +02:00
Lennart Poettering
350a2bc846 core: make fixed latency dynamically changeable
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.
2009-08-15 00:48:14 +02:00
Lennart Poettering
4eb59fb90e core: move rtpoll to thread_info sub structure 2009-08-15 00:26:00 +02:00
Lennart Poettering
58d441f7ea log: place more rate limit invocations 2009-08-15 00:16:25 +02:00
Lennart Poettering
e4db56bf07 core: split of FAIL_ON_SUSPEND into KILL_ON_SUSPEND and NO_CREATE_ON_SUSPEND 2009-08-15 00:12:53 +02:00
Lennart Poettering
e53d2fc6b5 native: handle moving() callback with NULL destination properly 2009-08-15 00:05:17 +02:00
Lennart Poettering
0989be13f6 core: introduce pa_{sink_input|source_output}_fail_move() 2009-08-15 00:03:50 +02:00
Lennart Poettering
72d2540e8d protocol-native: log explicitly each time a client triggers a volume change 2009-08-14 19:31:05 +02:00
Lennart Poettering
fecd0dc801 resampler: round up when estimating input/output sizes 2009-08-14 04:21:09 +02:00
Lennart Poettering
9e21182e01 thread-mq: never drop queued messages for the main loop
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.
2009-08-14 04:18:28 +02:00
Lennart Poettering
446fb2c9fe asyncmsgq: add pa_asyncmsgq_flush() call 2009-08-14 04:17:48 +02:00
Lennart Poettering
a42c597f0a memblockq: add pa_memblockq_get_maxrewind() API 2009-08-14 04:16:28 +02:00
Lennart Poettering
b0cabfe16b shm: bump shm size limit to 1GB 2009-08-14 04:14:35 +02:00
Lennart Poettering
5ee4069e9e core: add functions to query max_rewind/max_request values from streams 2009-08-13 02:17:24 +02:00
Lennart Poettering
9a95fe49c8 core: add assert macros for verifying calling context
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)
2009-08-13 02:14:19 +02:00
Lennart Poettering
17d57415f5 start-child: clean up child environment a bit better 2009-08-12 21:43:06 +02:00
Lennart Poettering
286ab2f193 memblock: rate limit 'Pool full' message 2009-08-12 21:40:38 +02:00
Lennart Poettering
ef176ecb62 core-util: move personality resetting into core-util 2009-08-12 21:36:52 +02:00
Lennart Poettering
8998cba683 conf: add pa_config_parse_not_bool() for parsing inverse boolean configuration options 2009-08-12 20:14:31 +02:00
Tanu Kaskinen
31117fe99e dbus-protocol: Fix signal sending for the case when the client doesn't listen
for all signals.
2009-08-10 10:40:40 +03:00
Tanu Kaskinen
7cfda56af9 dbus-protocol: Add a note for _send_signal that by default the signal isn't
actually sent.
2009-08-10 10:38:01 +03:00
Tanu Kaskinen
16dce8d7cb dbus-protocol: Take advantage of the helpers in dbus-util. 2009-08-09 09:19:33 +03:00
Tanu Kaskinen
7699cfd4c0 dbus-protocol: Split some overly long lines. 2009-08-09 09:18:03 +03:00