Lennart Poettering [Sun, 23 Aug 2009 20:34:42 +0000 (22:34 +0200)]
alsa: increase interval between smoother updates exponentially for alsa sources, following the scheme for sinks
Lennart Poettering [Sun, 23 Aug 2009 19:49:37 +0000 (21:49 +0200)]
port a few things over to use xmalloc and friends instead of low-level libc malloc/free directly
Lennart Poettering [Sat, 22 Aug 2009 22:06:35 +0000 (00:06 +0200)]
Merge commit 'wtay/optimize'
Lennart Poettering [Sat, 22 Aug 2009 21:10:45 +0000 (23:10 +0200)]
udev: check busy status of alsa cards before loading alsa modules and hence initiating profile probing
Lennart Poettering [Sat, 22 Aug 2009 19:59:17 +0000 (21:59 +0200)]
udev: process all inotify events queued up, not just the first one in the queue
Lennart Poettering [Sat, 22 Aug 2009 02:04:23 +0000 (04:04 +0200)]
core: relex validity checks when destructing half-set up source outputs/sink inputs
Lennart Poettering [Sat, 22 Aug 2009 02:03:31 +0000 (04:03 +0200)]
ladspa/remap: handle failing stream moves properly
Lennart Poettering [Sat, 22 Aug 2009 01:17:24 +0000 (03:17 +0200)]
add usergroup-test to .gitignore
Lennart Poettering [Sat, 22 Aug 2009 01:16:47 +0000 (03:16 +0200)]
daemon: don't free script_commands twice
Ted Percival [Fri, 21 Aug 2009 23:05:41 +0000 (17:05 -0600)]
core: Remove wrong doc on how to free returned data
Finn Thain [Fri, 21 Aug 2009 03:18:40 +0000 (13:18 +1000)]
Solaris: fixed latency (resent)
Set a fixed latency based on the given buffer size, which is constrained to
the 128 KB limit on buffered writes. Also fix an error path.
Finn Thain [Fri, 21 Aug 2009 03:17:03 +0000 (13:17 +1000)]
Solaris: use smoother (resent)
Make use of the smoother, just in case.
Finn Thain [Fri, 21 Aug 2009 03:15:38 +0000 (13:15 +1000)]
Solaris: build fixes (resent)
Fix bit rot due to recent flat volume changes.
Finn Thain [Fri, 21 Aug 2009 08:13:11 +0000 (18:13 +1000)]
Solaris: bootstrap portability
On Fri, 21 Aug 2009, Colin Guthrie wrote:
>
> Just put an echo statement in there too. Should cover the bases for everyone.
Something like this?
Ted Percival [Fri, 21 Aug 2009 22:02:57 +0000 (16:02 -0600)]
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.
Lennart Poettering [Fri, 21 Aug 2009 22:09:14 +0000 (00:09 +0200)]
i18n: run make update-po
Lennart Poettering [Fri, 21 Aug 2009 22:08:33 +0000 (00:08 +0200)]
Merge commit 'origin/master-tx'
Scott Reeves [Fri, 21 Aug 2009 21:59:39 +0000 (23:59 +0200)]
daemon: fix leak of script_commands
Lennart Poettering [Fri, 21 Aug 2009 21:24:40 +0000 (23:24 +0200)]
udev: tell inotify to actually inform us about ACL changes
Lennart Poettering [Fri, 21 Aug 2009 20:49:23 +0000 (22:49 +0200)]
udev: watch for both ACL changes and processes closing devices
Lennart Poettering [Fri, 21 Aug 2009 20:11:38 +0000 (22:11 +0200)]
udev: don't access string after free()
Lennart Poettering [Fri, 21 Aug 2009 20:06:23 +0000 (22:06 +0200)]
udev: always verify access before loading modules
Lennart Poettering [Fri, 21 Aug 2009 20:05:27 +0000 (22:05 +0200)]
gconf: use correct path for gconf-helper tool when running from build tree
Lennart Poettering [Fri, 21 Aug 2009 19:27:44 +0000 (21:27 +0200)]
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.
igor [Fri, 21 Aug 2009 14:27:24 +0000 (14:27 +0000)]
Sending translation for Brazilian Portuguese
Lennart Poettering [Fri, 21 Aug 2009 12:55:05 +0000 (14:55 +0200)]
udev: when a device appears that we cannot access right-away try again later on inotify
Lennart Poettering [Fri, 21 Aug 2009 01:45:58 +0000 (03:45 +0200)]
alsa: leave headphone jack enabled in normal mixer paths
Lennart Poettering [Fri, 21 Aug 2009 01:45:17 +0000 (03:45 +0200)]
combine: quieten gcc a bit
Lennart Poettering [Fri, 21 Aug 2009 01:43:53 +0000 (03:43 +0200)]
adjust various data/library paths automatically if we are run from a build tree
Lennart Poettering [Fri, 21 Aug 2009 00:59:26 +0000 (02:59 +0200)]
ladspa: forward volume changes from ladspa sink to stream and hence via flat volume logic to master sink
Lennart Poettering [Fri, 21 Aug 2009 00:56:17 +0000 (02:56 +0200)]
sink-input: add callbacks that are called whenever the mute/volume changes
Wim Taymans [Thu, 20 Aug 2009 18:00:50 +0000 (20:00 +0200)]
remap: make the MMX code pretier
Wim Taymans [Thu, 20 Aug 2009 17:46:06 +0000 (19:46 +0200)]
remap: add MMX mono to stereo
Wim Taymans [Thu, 20 Aug 2009 16:32:51 +0000 (18:32 +0200)]
remap: init the do_remap function to NULL
Wim Taymans [Thu, 20 Aug 2009 16:29:02 +0000 (18:29 +0200)]
remap: allow specialisations to install NULL
Fallback to the default C implementation when the remap init function did not
set a function.
Wim Taymans [Thu, 20 Aug 2009 16:23:42 +0000 (18:23 +0200)]
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.
Wim Taymans [Thu, 20 Aug 2009 15:54:45 +0000 (17:54 +0200)]
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.
Wim Taymans [Thu, 20 Aug 2009 13:50:02 +0000 (15:50 +0200)]
sconv: allow for setting custom functions
Add methods to override the default conversion functions.
Wim Taymans [Thu, 20 Aug 2009 11:40:27 +0000 (13:40 +0200)]
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.
Wim Taymans [Thu, 20 Aug 2009 10:30:48 +0000 (12:30 +0200)]
svolume: cleanups
Use PA_MAX
Use pa_rtclock_now() for benchmarks
Wim Taymans [Thu, 20 Aug 2009 08:56:20 +0000 (10:56 +0200)]
whitespace fixes
Wim Taymans [Wed, 19 Aug 2009 18:47:48 +0000 (20:47 +0200)]
resampler: avoid some multiplies when we can
Wim Taymans [Wed, 19 Aug 2009 18:00:28 +0000 (20:00 +0200)]
svolume: add comment
Wim Taymans [Wed, 19 Aug 2009 17:51:11 +0000 (19:51 +0200)]
arm: implement ARM cpu detection
Wim Taymans [Wed, 19 Aug 2009 17:50:42 +0000 (19:50 +0200)]
x86: keep the cpu flags local
Wim Taymans [Wed, 19 Aug 2009 16:52:28 +0000 (18:52 +0200)]
svolume: fix compilation in 32bits
Wim Taymans [Wed, 19 Aug 2009 15:27:17 +0000 (17:27 +0200)]
sample: manually inline table lookups
Manually inline some table lookups to avoid excessive calls to
pa_sample_spec_valid().
Wim Taymans [Wed, 19 Aug 2009 15:24:23 +0000 (17:24 +0200)]
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.
Wim Taymans [Wed, 19 Aug 2009 14:23:55 +0000 (16:23 +0200)]
resample: fix counters
Wim Taymans [Wed, 19 Aug 2009 14:15:18 +0000 (16:15 +0200)]
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.
Wim Taymans [Wed, 19 Aug 2009 14:09:48 +0000 (16:09 +0200)]
svolume: add CPU guards around code
Mark code that should only be compiled on x86 CPUs with proper defines.
Wim Taymans [Wed, 19 Aug 2009 14:09:14 +0000 (16:09 +0200)]
svolume: add ARM optimized volume scaling
Wim Taymans [Wed, 19 Aug 2009 13:56:44 +0000 (15:56 +0200)]
svolume: remove unneeded compare
We don't need the compare because the sub operation already set the right flags
for us.
Wim Taymans [Mon, 17 Aug 2009 09:35:47 +0000 (11:35 +0200)]
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.
Wim Taymans [Fri, 14 Aug 2009 17:45:39 +0000 (19:45 +0200)]
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.
Wim Taymans [Fri, 14 Aug 2009 13:48:10 +0000 (15:48 +0200)]
volume: remove ref functions
Wim Taymans [Fri, 14 Aug 2009 13:41:32 +0000 (15:41 +0200)]
volume: improved comments
Wim Taymans [Fri, 14 Aug 2009 13:19:26 +0000 (15:19 +0200)]
volume: make the benchmark more meaningfull
MMX is about 6x faster, SSE around 15x on my machine.
Wim Taymans [Fri, 14 Aug 2009 11:12:30 +0000 (13:12 +0200)]
svolume: add some comments
Wim Taymans [Thu, 13 Aug 2009 15:22:39 +0000 (17:22 +0200)]
cpu-x86: guard header with ifdef
Wim Taymans [Thu, 13 Aug 2009 15:12:44 +0000 (17:12 +0200)]
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.
Wim Taymans [Thu, 13 Aug 2009 15:11:43 +0000 (17:11 +0200)]
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.
Wim Taymans [Thu, 13 Aug 2009 11:45:01 +0000 (13:45 +0200)]
svolume: improve SSE and MMX code
Wim Taymans [Wed, 12 Aug 2009 18:44:12 +0000 (20:44 +0200)]
volume_sse: add sse optimisations
Wim Taymans [Wed, 12 Aug 2009 18:43:37 +0000 (20:43 +0200)]
volume_mmx: fix mmx code a bit
Wim Taymans [Wed, 12 Aug 2009 15:08:41 +0000 (17:08 +0200)]
volume: add first mmx optimized function
Add code for an mmx optimized version of s16ne volume scaling. Install the
custom function.
Wim Taymans [Wed, 12 Aug 2009 15:03:30 +0000 (17:03 +0200)]
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.
Wim Taymans [Tue, 11 Aug 2009 15:10:44 +0000 (17:10 +0200)]
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.
Wim Taymans [Tue, 11 Aug 2009 14:43:46 +0000 (16:43 +0200)]
sample-util: move some functions around
Move some stuff around before splitting it into a separate file.
Wim Taymans [Tue, 11 Aug 2009 14:25:44 +0000 (16:25 +0200)]
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.
Wim Taymans [Tue, 11 Aug 2009 13:15:57 +0000 (15:15 +0200)]
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.
Xabier Rodriguez Calvar [Tue, 30 Jun 2009 16:23:17 +0000 (18:23 +0200)]
Modification of the thread-mainloop doc to ensure that nobody frees the api as it is owned by the loop.
Xabier Rodriguez Calvar [Tue, 30 Jun 2009 16:22:44 +0000 (18:22 +0200)]
Modification of the mainloop doc to ensure that nobody frees the api as it is owned by the loop.
Xabier Rodriguez Calvar [Tue, 30 Jun 2009 16:20:03 +0000 (18:20 +0200)]
Modification of the glib-mainloop doc to ensure that nobody frees the api as it is owned by the loop.
Lennart Poettering [Wed, 19 Aug 2009 22:20:03 +0000 (00:20 +0200)]
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.
raven [Wed, 19 Aug 2009 20:53:19 +0000 (20:53 +0000)]
Sending translation for Polish
beckerde [Wed, 19 Aug 2009 11:13:19 +0000 (11:13 +0000)]
Sending translation for Spanish
Lennart Poettering [Wed, 19 Aug 2009 02:16:35 +0000 (04:16 +0200)]
i18n: run make update-po
Lennart Poettering [Wed, 19 Aug 2009 02:15:36 +0000 (04:15 +0200)]
i18n: add ko to LINGUAS
Lennart Poettering [Wed, 19 Aug 2009 02:14:00 +0000 (04:14 +0200)]
Merge commit 'origin/master-tx'
Lennart Poettering [Wed, 19 Aug 2009 01:37:42 +0000 (03:37 +0200)]
lirc: replace manual code by pa_cvolume_{inc|dec}()
Lennart Poettering [Wed, 19 Aug 2009 01:37:29 +0000 (03:37 +0200)]
mmkbd: replace manual code by pa_cvolume_{inc|dec}()
Lennart Poettering [Wed, 19 Aug 2009 00:55:02 +0000 (02:55 +0200)]
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.
Lennart Poettering [Wed, 19 Aug 2009 00:37:35 +0000 (02:37 +0200)]
match: document how broken the module-match logic is
Lennart Poettering [Wed, 19 Aug 2009 00:32:36 +0000 (02:32 +0200)]
volume: introduce pa_cvolume_{inc|dec}()
Lennart Poettering [Wed, 19 Aug 2009 00:31:11 +0000 (02:31 +0200)]
volume: use PA_VOLUME_MAX instead of (pa_volume_t) -1
Lennart Poettering [Wed, 19 Aug 2009 00:29:59 +0000 (02:29 +0200)]
udev: allow passing of ignore_dB= parameter to alsa modules
Lennart Poettering [Tue, 18 Aug 2009 23:35:43 +0000 (01:35 +0200)]
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
Lennart Poettering [Tue, 18 Aug 2009 23:03:09 +0000 (01:03 +0200)]
macro: extend comments a bit
Lennart Poettering [Tue, 18 Aug 2009 23:02:32 +0000 (01:02 +0200)]
voltest: extend test to verify correctness of _multiply() and _divide()
Lennart Poettering [Tue, 18 Aug 2009 22:59:23 +0000 (00:59 +0200)]
dbus: never return DBUS_HANDLER_RESULT_HANDLED in filter callbacks, since other callbacks might stell want to have the messages
Lennart Poettering [Tue, 18 Aug 2009 22:58:20 +0000 (00:58 +0200)]
volume: round properly when showing human readable volume percentages
Lennart Poettering [Tue, 18 Aug 2009 22:57:58 +0000 (00:57 +0200)]
volume: simplify volume multiplifactions, do them in integer only
Lennart Poettering [Tue, 18 Aug 2009 22:56:16 +0000 (00:56 +0200)]
volume: introduce pa_cvolume_min() and pa_cvolume_min_mask()
Lennart Poettering [Mon, 17 Aug 2009 17:17:10 +0000 (19:17 +0200)]
macro: simplify page/word alignment macros a bit
Lennart Poettering [Mon, 17 Aug 2009 17:15:33 +0000 (19:15 +0200)]
macro: add PA_ROUND_UP/PA_ROUND_DOWN macros
Lennart Poettering [Mon, 17 Aug 2009 17:14:35 +0000 (19:14 +0200)]
bluetooth: fix match syntax
Lennart Poettering [Mon, 17 Aug 2009 01:51:17 +0000 (03:51 +0200)]
bluetooth: make NameOwnerChanged filter matches more focussed
Lennart Poettering [Mon, 17 Aug 2009 01:50:43 +0000 (03:50 +0200)]
volume: document when arguments of certain functions may overlap
Lennart Poettering [Mon, 17 Aug 2009 01:50:04 +0000 (03:50 +0200)]
libpulse: some minor optimizations when checking equality