summaryrefslogtreecommitdiffstats
path: root/src/pulsecore/protocol-native.c
Commit message (Collapse)AuthorAgeFilesLines
* Fighting rewinds: Reduce calls to handle_seekDavid Henningsson2011-01-311-30/+26
| | | | | | | | | If many small blocks are in queue, handle_seek is being called for every one of them, sometimes causing a rewind. Delay the call until all blocks are handled, then call handle_seek only once. Signed-off-by: David Henningsson <david.henningsson@canonical.com>
* Fighting rewinds: Seek and write data in the same messageDavid Henningsson2011-01-311-8/+12
| | | | | | | | Allow a message in the queue to perform both a seek and a post data. For clients that do not use PA_SEEK_RELATIVE (e g gstreamer), this cuts the message count - and sometimes even the rewinds - in half. Signed-off-by: David Henningsson <david.henningsson@canonical.com>
* ratelimit: fix log levels of log suppression messagesLennart Poettering2011-01-311-1/+1
| | | | | | | | | When logging a suppression message do so on the same log level as the suppressed messages. Cherry picked by Colin Guthrie from ec5a7857127a1b3b9c5517c4a70a9b2c8aab35ca with a couple of additional changes due to extra limiting in master that was not present in stable-queue.
* introspect: Include whether a stream is corked in the info callback.Colin Guthrie2010-10-061-1/+4
|
* AC3 passthrough supportPierre-Louis Bossart2010-08-121-2/+14
| | | | | | | | | | | | 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>
* various modernizationsLennart Poettering2010-02-231-1/+1
|
* native: improve logging for buffer_attrsLennart Poettering2010-02-221-0/+18
|
* native: rework handling of seeks that depend on variables the client does ↵Lennart Poettering2010-02-091-1/+5
| | | | | | | | | | | | 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.
* native: fix request counter miscalculationsLennart Poettering2010-02-091-2/+5
| | | | | | | | | | | | | 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
* protocol: use the right sample rate for sourcesWim Taymans2009-11-101-1/+1
| | | | Use the correct sample rate for reporting about the timing.
* libpulse: introduce PA_STREAM_RELATIVE_VOLUMELennart Poettering2009-10-291-3/+14
|
* protocol-native: if a client set volume/mute/device store it since it is ↵Lennart Poettering2009-10-281-2/+8
| | | | user input
* protocol-native: declare that user configured volumes are always absoluteLennart Poettering2009-10-281-1/+3
|
* native: send PA_COMMAND_PLAYBACK_BUFFER_ATTR_CHANGED messages only to ↵Lennart Poettering2009-09-101-13/+15
| | | | clients that understand it
* protocol-native: log explicitly when someone asks us to quitLennart Poettering2009-09-081-0/+2
|
* llvm-clang-analyzer: drop a few unnecessary assignments and other trivial fixesLennart Poettering2009-09-081-2/+1
|
* core: always allow volume setting with single-channel pa_cvolumeLennart Poettering2009-08-311-3/+3
|
* native: make sure clients cannot trigger an assert by sending us invalid ↵Lennart Poettering2009-08-291-1/+6
| | | | volume info
* protocol-native: replace use of pa_namereg_is_valid_name() by ↵Lennart Poettering2009-08-291-10/+15
| | | | pa_namereg_is_valid_name_or_wildcard() where applicable to allow use of @@ wildcards
* core: move 'flags' field into 'pa_sink_input_new_data' structure so that ↵Lennart Poettering2009-08-281-2/+4
| | | | hooks can access it
* protocol-native: print more volume change debug messages to easy tracking ↵Lennart Poettering2009-08-271-6/+20
| | | | down of feedback loops
* protocol-native: compare uint64_t variable with (uint64_t) -1 instead of ↵Lennart Poettering2009-08-271-1/+2
| | | | (size_t) -1 for compat with 32bit archs
* object: speed up type verification by not relying on strcmp()Lennart Poettering2009-08-211-10/+5
| | | | | | | | | | | | | 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.
* sink: volume handling rework, new flat volume logicLennart Poettering2009-08-191-2/+2
| | | | | | | | | | | | | | | | | | | | | | | - 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.
* native-protocol: downgrade volume change log messagesLennart Poettering2009-08-151-3/+9
|
* log: place more rate limit invocationsLennart Poettering2009-08-151-1/+3
|
* core: split of FAIL_ON_SUSPEND into KILL_ON_SUSPEND and NO_CREATE_ON_SUSPENDLennart Poettering2009-08-151-2/+2
|
* native: handle moving() callback with NULL destination properlyLennart Poettering2009-08-151-1/+7
|
* protocol-native: log explicitly each time a client triggers a volume changeLennart Poettering2009-08-141-3/+12
|
* protocol-native: use the right samplerateWim Taymans2009-07-231-1/+1
| | | | | The render_memblockq is expressed in the sample_spec of the sink, not of the particular stream before resampling.
* native: don't hit assert when user uploads zero-sized sampleLennart Poettering2009-07-011-1/+3
|
* Base mainloop on pa_rtclock_now()Marc-André Lureau2009-06-201-10/+7
| | | | | | | | | | | | | | | | Move the mainloop to monotonic based time events. Introduces 4 helper functions: pa_{context,core}_rttime_{new,restart}(), that fill correctly a timeval with the rtclock flag set if the mainloop supports it. Both mainloop-test and mainloop-test-glib works with rt and timeval based time events. PulseAudio and clients should be fully functional. This patch has received several iterations, and this one as been largely untested. Signed-off-by: Marc-André Lureau <marca-andre.lureau@nokia.com>
* native-protocol: allow enumerating portsLennart Poettering2009-06-171-0/+35
|
* native: implement command to change sink/source portLennart Poettering2009-06-171-2/+65
|
* alsa: rework mixer logicLennart Poettering2009-06-171-4/+4
| | | | | | | | | | | | Completely rework mixer logic. This now allows controlling a full set of elements from a single sink's volume slider/mute button. This also introduces sink and source "ports" that can be used to choose different input or output ports with the UI. (i.e. "mic"/"line-in" or "speaker"/"headphones". The mixer paths and device maps are now configered in external configuration files and can be tweaked as necessary.
* core: add a suspend cause flags fieldLennart Poettering2009-06-051-4/+4
|
* protocol-native,proplist-util: port to pa_get_{user|host}_name_malloc()Lennart Poettering2009-04-291-3/+9
|
* core: introduce new 'reference' volume for sinksLennart Poettering2009-04-131-4/+5
| | | | | | | | | | | | | | | The reference volume is to be used as reference volume for stored stream volumes. Previously if a new stream was created the relative volume was taken relatively to the virtual device volume. Due to the flat volume logic this could then be fed back to the virtual device volume. Repeating the whole story over and over would result in a device volume that would go lower, and lower and lower. This patch introduces a 'reference' volume for each sink which stays unmodified by stream volume changes even if flat volumes are used. It is only modified if the sink volumes are modified directly by the user. For further explanations see http://pulseaudio.org/wiki/InternalVolumes
* protocol-native: downgrade message if we receive pcm block for dead streamLennart Poettering2009-04-101-1/+1
|
* protocol-native: print underrun message only once for each underrunLennart Poettering2009-04-101-1/+2
|
* Make sure we don't get stuck when prebuf is too highLennart Poettering2009-04-061-3/+6
| | | | | | | | If prebuf is greater than tlength minus minreq we might end up waiting for the buffer to fill up further however without ever asking for more data from the client since less minreq bytes might be missing. This fixes bug #440
* Fix a couple of races in native protocolLennart Poettering2009-04-051-42/+97
| | | | | | | | | Also make sure we account for recording memblock that are currently 'on the fly' between the main and the IO thread. Also makes a couple of timing calls that were done in different calls in a single inter-thread call. That way there is a better guarantee that they match up.
* properly account for seeks in the requested_bytes counterLennart Poettering2009-04-011-13/+16
|
* pass destination source/sink when moving streams so that we can access themLennart Poettering2009-04-011-10/+10
|
* be a bit more verbose about max_request changesLennart Poettering2009-03-311-5/+14
|
* Log underrunsLennart Poettering2009-03-311-1/+1
|
* notify clients about tlength changesLennart Poettering2009-03-301-202/+204
|
* document more often the context certain functions are called inLennart Poettering2009-03-301-1/+22
|
* Trigger move callback a little bit earlier so that no IO thread is runningLennart Poettering2009-03-301-6/+6
|
* only store card profile if flagged for thatLennart Poettering2009-03-231-1/+1
|