summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* alsa: disable timer-based scheduling inside a VMLennart Poettering2009-11-054-8/+28
| | | | | | | | | | | | | | | In virtual machines sound card clocks and OS scheduling tend to become unreliable, adding various 'uneven' latencies. The adaptive algorithm that handles drop-outs does not handle it this well: in contrast to drop-outs on real machines that are evenly distributed, small and can easily be encountered via the adpative algorithms, drop-outs in VMs tend to happen abruptly, and massively, which is not easy to counter. This patch simply disables timer based scheduling in VMs reverting to classic IO based scheduling. This should help make PA perform better in VMs. https://bugzilla.redhat.com/show_bug.cgi?id=532775
* daemon: during startup say whether we run in a VMLennart Poettering2009-11-051-1/+2
|
* core-util: add call to detect if we are called from within a VMLennart Poettering2009-11-052-0/+92
|
* alsa: introduce more standard path namesLennart Poettering2009-11-051-10/+14
|
* alsa: cover 'Analog Output' controlLennart Poettering2009-11-041-0/+17
| | | | http://pulseaudio.org/ticket/702
* Merge remote branch 'phish3/master'Lennart Poettering2009-10-311-14/+22
|\
| * module-equalizer-sink:Jason Newton2009-10-291-4/+4
| | | | | | | | add premultipliar to sse2 dsp_logic implementation
| * module-equalizer-sink: try to limit buffering to mempool's max_block_size ↵Jason Newton2009-10-291-9/+18
| | | | | | | | and disable debug output
| * drop redundant alloc callJason Newton2009-10-291-1/+0
| |
* | alsa: create a seperate mixer path for Speaker elementsLennart Poettering2009-10-314-13/+107
| | | | | | | | | | | | | | On some cards line-out is independant of Sepaker and it is a good idea to cover that so that they can independantly be activated. https://bugzilla.redhat.com/show_bug.cgi?id=520884
* | alsa: leave other headphone control enabled if possibleLennart Poettering2009-10-315-4/+22
| |
* | alsa: lower priority for Headphone2 pathLennart Poettering2009-10-311-1/+1
| |
* | alsa: cover Input Source:AUX INLennart Poettering2009-10-311-0/+4
| | | | | | | | | | | | As seen on some HDA chips: https://bugzilla.redhat.com/attachment.cgi?id=359804
* | alsa: cover Headphone2 mixer elementLennart Poettering2009-10-314-2/+86
| | | | | | | | | | | | As seen on some drivers: https://bugzilla.redhat.com/show_bug.cgi?id=498612
* | alsa: cover 'Digital Input Source' elementLennart Poettering2009-10-311-0/+14
| | | | | | | | | | | | As used by some HDA devices: https://bugzilla.redhat.com/attachment.cgi?id=365290
* | alsa: cover Mic Jack Mode elementLennart Poettering2009-10-311-1/+12
| | | | | | | | | | | | As used by some HDA chips: https://bugzilla.redhat.com/attachment.cgi?id=366816
* | daemon: make sure pa has its own session and process group, but is not its ↵Lennart Poettering2009-10-313-20/+38
| | | | | | | | leader so that we cannot acquire a tty ever
* | bluetooth: do not hand out access to devices that are not fully configured yetLennart Poettering2009-10-311-2/+8
| |
* | daemon: realpath segfault fixDavid Yoder2009-10-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Lennart, Apparently I was debugging this at the same time as you. I can't figure out why my Fedora 11 install with glibc-2.10 has a glibc realpath that doesn't match the gnu documentation and returns null. But it does. Your commit aa8ce5bb9b159abb2ffb0f43996340566fc2e9c6 almost fixed my problem, but it needs a tweak. Thanks, David Yoder
* | Mac OS X: add semaphore implementationDaniel Mack2009-10-311-0/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On Wed, Sep 16, 2009 at 11:57:04PM +0200, Lennart Poettering wrote: > On Wed, 16.09.09 15:15, Daniel Mack (daniel@caiaq.de) wrote: > > > + s = pa_xnew(pa_semaphore, 1); > > + MPCreateSemaphore(UINT_MAX, value, &(s->sema)); > > + pa_assert(s->sema != 0); > > Hmm, I'd prefer if the ret val of MPCreateSemaphore() would be checked > here. > > Also I find it a bit weird checking for s->sema, though not > initializing it to 0 in the beginning. If the call actually failed, > then the assert will check uninitialized memory. Also, comparing > pointers with 0 sucks. That should be NULL. > > Given that this can not realisitically fail, only in OOM or OOM-like > situations in which case we abort anyway it mght be enough just writing: > > pa_assert_se(MPCreateSemaphore(UINT_MAX, value, &s->sema) == 0); > > (Assuming that success is signalled by retval == 0 on MacOSX) > > > +void pa_semaphore_free(pa_semaphore *s) { > > + pa_assert(s); > > + MPDeleteSemaphore(s->sema); > > Same here. > > > + pa_xfree(s); > > +} > > + > > +void pa_semaphore_post(pa_semaphore *s) { > > + pa_assert(s); > > + MPSignalSemaphore(s->sema); > > And here. > > > +} > > + > > +void pa_semaphore_wait(pa_semaphore *s) { > > + pa_assert(s); > > + /* should probably check return value (-ve is error), noErr is ok. */ > > + MPWaitOnSemaphore(s->sema, kDurationForever); > > And here. Ok, done. See the patch below. Daniel >From 26df2fbae6d9215a3ae084876fb5f79e4d9cf4f0 Mon Sep 17 00:00:00 2001 From: Kim Lester <kim@dfusion.com.au> Date: Wed, 16 Sep 2009 09:23:39 +0800 Subject: [PATCH] Mac OS X: add semaphore implementation
* | Wrap clock_gettime and friendsDaniel Mack2009-10-311-6/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On Wed, Sep 16, 2009 at 11:48:58PM +0200, Lennart Poettering wrote: > On Wed, 16.09.09 15:15, Daniel Mack (daniel@caiaq.de) wrote: > > > From: Kim Lester <kim@dfusion.com.au> > > > > OS X does not define clockid_t or clock_gettime() and friends. > > Add a wrapper to fix this. > > Hmpf. I am not particularly happy with this. This adds a lot of > unnecessary compat code. We don't actually need implementations of > clock_getres(). All we need is some kind of check whether system > timers are accurate or whether they are rounded up to scheduling > slices. On Linux we do that check with clock_getres(), but all the > information it returns is actually not intertesting at all. We just > check if this is below some trheshold, that's all. > > clock_settime() we don't use at all! We shouldn't carry compat code > for that. > > And clock_gettime we don't really need either. We need some kind of > accurate system timers (preferably monotonic), and on Linux we use > clock_gettime() for that. But we already have a fallback there for > gettimeofday(). > > Or in other words, the current APIs pa_rtclock_get(), > pa_rtclock_hrtimer() is supposed to be the abstract API that has > different backends on different systems. I'd very much prefer if any > MacOS specific code would simply be plugged in there instead of > creating various new abstraction interfaces! Ok - what about the version below? I don't particularily like the Daniel >From 9f0a051953ec354ccdb8aa44a9845c408b26ae0b Mon Sep 17 00:00:00 2001 From: Kim Lester <kim@dfusion.com.au> Date: Wed, 16 Sep 2009 14:40:01 +0800 Subject: [PATCH] Implement pa_rtclock_get() and pa_rtclock_hrtimer() for Darwin OS X does not define clockid_t or clock_gettime() and friends. Add wrappers to fix this. Based on a patch from Kim Lester <kim@dfusion.com.au>.
* | X11: attach X11 properties to Screen, not DisplayLeszek Koltunski2009-10-301-6/+14
| |
* | git: ignore kde related filesLennart Poettering2009-10-302-0/+2
| |
* | svolume: fix MMX errorWim Taymans2009-10-301-1/+6
| | | | | | | | | | We need to sign extend the lower part of the multiplication before adding it to the higher part. Makes -1 * 0xffff work again.
* | sink: simplify silence checksWim Taymans2009-10-301-12/+10
| |
* | daemon: don't crash if pa_realpath() failsLennart Poettering2009-10-301-10/+13
| |
* | socket-util: drop redundant castsLennart Poettering2009-10-301-12/+12
| |
* | socket-util: allocate at least sizeof(sockaddr_storage) spaceLennart Poettering2009-10-301-2/+2
| |
* | use pa_fopen_cloexec() where applicableLennart Poettering2009-10-3014-27/+27
| |
* | tdb: use O_CLOEXEC if availableLennart Poettering2009-10-301-9/+34
| |
* | core-util: introduce pa_fopen_cloexec()Lennart Poettering2009-10-302-2/+28
| |
* | core-util: make sure to enable FD_CLOEXEC unconditionally to cope with ↵Lennart Poettering2009-10-301-3/+12
| | | | | | | | kernels that silently accept but ignore O_CLOEXEC
* | use cloexec wrappers wherever applicableLennart Poettering2009-10-3025-91/+39
| |
* | core-util: introduce FD_CLOEXEC wrappers for open/socket/pipe/acceptLennart Poettering2009-10-302-0/+85
|/
* Merge remote branch 'origin/master'Lennart Poettering2009-10-291-4/+4
|\
| * module-equalizer-sink: drop source executable permissions configure.ac: add ↵Jason Newton2009-10-201-0/+0
| | | | | | | | enable/disable + summary line for fftw
| * module-equalizer-sink:Jason Newton2009-10-201-96/+90
| | | | | | | | | | *fixed SSE2 optimized dsp logic (default if available) *cleaned up whitespace formatting (again)
| * module-equalizer-sink: fixed equalizer state save/restoreJason Newton2009-10-201-27/+29
| |
| * device-manager: Fix compiler warning.Colin Guthrie2009-10-191-4/+4
| | | | | | | | Do not use a variable called 'index' as it clashes with string.h
* | simd: update test casesLennart Poettering2009-10-292-3/+11
| |
* | smoother: add comments about optimization recommendations from Jason NewtonLennart Poettering2009-10-291-0/+7
| |
* | libpulse: introduce PA_STREAM_RELATIVE_VOLUMELennart Poettering2009-10-293-5/+32
| |
* | protocol-native: if a client set volume/mute/device store it since it is ↵Lennart Poettering2009-10-281-2/+8
| | | | | | | | user input
* | libpulse: explain semantics of pa_stream_connect_playback() in more detailLennart Poettering2009-10-281-1/+16
| |
* | protocol-native: declare that user configured volumes are always absoluteLennart Poettering2009-10-281-1/+3
| |
* | pactl: format cookie a little bit nicerLennart Poettering2009-10-281-2/+3
| |
* | pactl: include information about client context in pactl stat outputLennart Poettering2009-10-281-1/+14
| |
* | clients: drop definition of BUFSIZE which is unusedLennart Poettering2009-10-282-4/+0
| |
* | libpulse: introduce pa_context_get_tile_size() callLennart Poettering2009-10-283-3/+37
| |
* | memblock: decrease tile size to 64k againLennart Poettering2009-10-281-1/+1
| |