summaryrefslogtreecommitdiffstats
path: root/src/pulsecore
Commit message (Collapse)AuthorAgeFilesLines
* core: Add infrastructure for synchronizing HW and SW volume changesJyri Sarha2010-10-162-30/+363
| | | | | | | | | | | | | | | | To make concurrent use of SW and HW volume glitchles their application needs to be synchronized. For accurate synchronization the HW volume needs to be applied in IO thread. This patch adds infrastructure to delay the applying of HW volume to match with SW volume timing. To avoid synchronization problems this patch moves many of the volume and mute related functions from main thread to IO thread. All these changes become active only if the sync volume flag for a sink has been set. So, for this patch to have any effect it needs to be taken into use by sink implementor. Signed-off-by: Jyri Sarha <jyri.sarha@nokia.com> Reviewed-by: Tanu Kaskinen <tanu.kaskinen@digia.com> Reviewd-by: Colin Guthrie <cguthrie@mandriva.org>
* cli: Validate volume before settingArun Raghavan2010-10-151-0/+15
| | | | | This causes an error to be generated if an invalid volume is provided to commands that set sink/sink-input/source volume.
* volume: Use a macro to check if a volume is validArun Raghavan2010-10-151-2/+2
| | | | | | | This adds a PA_VOLUME_IS_VALID() macro for checking if a given pa_volume_t is valid. This makes changes to the volume ranges simpler (just change PA_VOLUME_MAX, for example, without needing to modify any other code).
* SSE/MMX/ARM: Fix high frequency noise with unusual number of channelsDavid Henningsson2010-10-133-13/+25
| | | | | | | | In the assembly optimized versions of SSE, a noise could occur when the number of channels were 3,5,6 or 7. For MMX and ARM, this could occur when the number of channels were 3. Signed-off-by: David Henningsson <david.henningsson@canonical.com>
* introspect: Include whether a stream is corked in the info callback.Colin Guthrie2010-10-063-2/+12
|
* sink-input: Fix commentColin Guthrie2010-10-011-1/+1
|
* suspend: Do not assert when checking for device suspended status and a ↵Colin Guthrie2010-10-012-2/+16
| | | | | | | | | | | | | | | | | | | | | | | | stream is not linked. When looping through the streams on a given device checking to see if the stream is 'active' there should be no assert if the stream is not linked, it should simply be ignored. This assert can be hit if a sink and a sink input are both created and setup but the final put calls are left to the end as is done in module-ladspa-sink. While the order of the calls in module-ladspa-sink could be altered, we should deal gracefully with the way it is now and not complain about ending up in this state. A trigger case was trivial: 1. Load a ladspa-sink. 2. Play a stream and move it to it. 3. Unload the module, then reload it. 4. Due to module-stream-restore and module-suspend-on-idle, the hook callbacks will ultimately hit this assert. Thanks to Kim Therkelsen for highlighting this issue.
* cpu: Add CPU information to pa_coreArun Raghavan2010-09-236-50/+110
| | | | | | This retains CPU information (processor type and supported features) in pa_core, so that this information can be used by modules at init time to figure out what optimisations may be used.
* x11: Use the default screen for X11 properties.Colin Guthrie2010-09-182-20/+39
| | | | | This commit restores the functionality originally included in 65e807 by Leszek Koltunski.
* xcb: xcb_get_setup() can return 0, so make sure we check it before usingColin Guthrie2010-09-181-20/+48
|
* x11: Partially convert to XCB.Colin Guthrie2010-09-184-33/+47
| | | | | | | | | This commit mostly converts the X11 handling to XCB. There are still some uses of XLib to deal with the X11 session handling modules, however all client-side code should now be free of XLib and thus this should fix Bug #799 Note that this removes the screen-based changes by Leszek Koltunski in 65e80, however this will be restored in due course.
* smoother: avoid losing precisionWim Taymans2010-09-071-3/+1
| | | | | Avoid losing precision by subtracting uint64 values before converting them to doubles.
* cli: Allow .include on directories as well as files.Colin Guthrie2010-09-041-13/+81
| | | | | When .including a directory, all files with the extension '.pa' in that folder will be parsed in alphabetical order.
* core: New function: pa_module_update_proplist().Tanu Kaskinen2010-08-192-0/+11
|
* AC3 passthrough supportPierre-Louis Bossart2010-08-124-3/+78
| | | | | | | | | | | | Second version after Tanu's feedback TODO: - notify client that volume control is disabled - change sink rate in passthrough mode if needed - automatic detection of passthrough mode instead of hard coded profile names Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@intel.com>
* dbus: Fix slightly messed up assertions.Tanu Kaskinen2010-05-101-2/+3
|
* dbus: Use a struct as the hashmap items for listening_signals.Tanu Kaskinen2010-05-101-44/+69
| | | | | | Previously we used libdbus's memory as keys in listening_signals, which caused that the memory of the hashmap keys got overwritten, which led to that signals weren't sent properly.
* dbus: Fix segfault when receiving a property access call that isn't permitted.Tanu Kaskinen2010-05-101-2/+2
|
* cli: Increase the command maximum length from 1024 to 2048.Tanu Kaskinen2010-05-101-1/+1
|
* socket-client: properly handle asyncns failuresJez Austin2010-05-081-1/+2
| | | | | | | | | We fail to detect when people disable IPv6 in there kernels. This patch makes sure we don't ignore this error condition. http://pulseaudio.org/ticket/752 https://bugzilla.mozilla.org/show_bug.cgi?id=533470 http://bugs.freedesktop.org/show_bug.cgi?id=25742
* core-util: ensure that we chmod only the dir we ourselves createdKees Cook2010-05-081-5/+34
|
* thread: name all threads so that the names appear in /proc/$PID/task/$TID/commLennart Poettering2010-05-073-4/+51
|
* memblockq: implement new call pa_memblockq_peek_fixed_size()Lennart Poettering2010-02-252-1/+75
|
* core: rework how stream volumes affect sink volumesLennart Poettering2010-02-231-1/+41
|
* esd,simple: use pa_memblockq_pop_missing()Lennart Poettering2010-02-232-2/+2
| | | | | | | | | | We need to use pa_memblockq_pop_missing() for all request handling, including the initial request, because otherwise the counters will be stay off during the entire runtime. This should fix: https://bugzilla.redhat.com/show_bug.cgi?id=559467
* various modernizationsLennart Poettering2010-02-233-33/+32
|
* iochannel: remove fd from poll() when we don't care from eventsLennart Poettering2010-02-232-57/+75
| | | | | | | This should make it unlikely that we loop on SIGHUP indefinitely. Also, this makes it possible for callbacks not to process all events and still not busy loop.
* native: improve logging for buffer_attrsLennart Poettering2010-02-221-0/+18
|
* conf-parser: make use of pa_strip() wherever applicableLennart Poettering2010-02-211-29/+2
|
* core-util: introduce generic function pa_strip()Lennart Poettering2010-02-212-4/+25
|
* http: support HTTP HEADMatthijs Kooijman2010-02-211-3/+44
| | | | http://pulseaudio.org/ticket/781
* scache: when playing a sample from the cache make sure not queue them up ↵Lennart Poettering2010-02-215-19/+31
| | | | | | | when the sink is suspended libcanberra already sets the appropriate flags for uncached sample streams, we now need to make sure to set them for cached samples too.
* sample-cache: use the sample name as unmodified fallback in the properties ↵Lennart Poettering2010-02-211-1/+2
| | | | when playing a sample from the cache
* shm: don't complain about missing SHM segmentsLennart Poettering2010-02-211-1/+1
| | | | | | | If two clients try to cleanup the SHM directory at the same time, they might want to open and then delete the same segment at the same time, in which case one client might win, the other one lose. In this case, don't warn about ENOENT.
* fdsem: be more verbose when reading from eventfd fails.Lennart Poettering2010-02-211-6/+35
| | | | | | | | | Apperently reading from an eventfd can fail, which results in an assert to be hit. I am not sure about the reason for the failure, but in attempt to track down the issue the next time is hit this prints a more useful log message. https://bugzilla.redhat.com/attachment.cgi?id=386380
* dbus: first restart timer, then dispatch itLennart Poettering2010-02-211-13/+16
| | | | | | | This makes sure that we don't access the timer after it might have been destroyed already from the dbus timeout callback. https://bugzilla.redhat.com/attachment.cgi?id=389952
* native: rework handling of seeks that depend on variables the client does ↵Lennart Poettering2010-02-094-5/+11
| | | | | | | | | | | | not know anything about All seeks/flushes that depend on the playback buffer read pointer cannot be accounted for properly in the client since it does not know the actual read pointer. Due to that the clients do not account for it at all. We need do the same on the server side. And we did, but a little bit too extreme. While we properly have not applied the changes to the "request" counter we still do have to apply it to the "missing" counter. This patch fixes that.
* cpu: check for CMOV flag before using this intsruction in assemblyLennart Poettering2010-02-093-4/+8
| | | | http://pulseaudio.org/ticket/776
* log: add an easy way to disable log rate limitingLennart Poettering2010-02-091-38/+50
| | | | | | Should help with debuggin bugs like: https://bugzilla.redhat.com/show_bug.cgi?id=554405
* once: make once related variables volatileLennart Poettering2010-02-094-10/+5
|
* core: make sure we always return a valid memblock in sink_input_pop() callbacksLennart Poettering2010-02-094-4/+18
| | | | https://bugzilla.redhat.com/show_bug.cgi?id=553607
* native: fix request counter miscalculationsLennart Poettering2010-02-092-57/+51
| | | | | | | | | | | | | Do not subtract bytes the client sends us beyond what we requested from our missing bytes counter. This was mostly a thinko that caused servers asking for too little data when the client initially sent more data than requested, because that data sent too much was accounted for twice. This commit fixes this miscalculation. http://bugzilla.redhat.com/show_bug.cgi?id=534130
* core: Fix macro typo - PA_SINK_IS_LINKED -> PA_SINK_INPUT_IS_LINKEDColin Guthrie2010-02-091-1/+1
|
* shm: explicitly mark shm seg for MAP_NORESERVE to request overcommiting no ↵Lennart Poettering2010-02-021-1/+5
| | | | matter what
* native: fallback to another port if the default port is takenLennart Poettering2010-01-142-29/+52
| | | | | | | Unless the port number is explicitly configured we will now fallback to a kernel picked port if the one we'd like by default we cannot get. http://pulseaudio.org/ticket/773
* sink-input: Replace a tab indentation with spaces.Tanu Kaskinen2010-01-061-1/+1
|
* idxset: Fix _get_by_data() comment.Tanu Kaskinen2010-01-061-1/+1
|
* core: volume ramping fixhuan zheng2010-01-061-1/+1
| | | | | | | | | | | | | | | Hi, I found that volume ramping is inside PA now. there's a minor fix here, it is a bug i found after the patch is submitted: line 1781 of sink-input.c : if ((i->thread_info.ramp_info.envelope_dying - nbytes) <= 0) { need to be changed to if ((i->thread_info.ramp_info.envelope_dying - (ssize_t) nbytes) <= 0) { otherwise this argument will never be negative since nbytes is of type size_t which is unsigned. Please change it when you have time, sorry if bring any inconvenience. :)
* Merge remote branch 'zonque/topic/osx'Lennart Poettering2010-01-055-57/+75
|\
| * fix a number of warningsDaniel Mack2009-12-163-12/+12
| | | | | | | | | | most of them were due to missing #ifdefs or wrong printf format type for [s]size_t.