summaryrefslogtreecommitdiffstats
path: root/src/pulse/stream.c
Commit message (Collapse)AuthorAgeFilesLines
* win32: Make some unused-variable warnings go awayMaarten Bosmans2011-06-241-5/+4
|
* capture: Implement per-stream volume control for capture streams.Colin Guthrie2011-06-221-16/+22
| | | | | | | This piggy backs onto the previous changes for protocol 22 and thus does not bump the version. This and the previous commits should be seen as mostly atomic. Apologies for any bisecting issues this causes (although I would expect these to be minimal)
* capture: Add the passthrough format negotiation to capture streams.Colin Guthrie2011-06-221-18/+12
| | | | | This helps to keep the API more symmetrical and also potentially allows support for passthrough monitor sources at some point in the future.
* stream: Simplify passing of formats in extended APIArun Raghavan2011-06-191-9/+9
| | | | | | Passing a NULL-terminated array of pa_format_info pointers is a bit unwieldy for clients. Instead of this, let's pass in an array of pointers and the number of elements in the array.
* stream: Fix a couple of format_info leaksArun Raghavan2011-06-191-1/+4
|
* protocol-native: Stop auto timing updates if connected to suspended sink or ↵Jyri Sarha2011-05-151-4/+24
| | | | | | | | | | | | | source This quite is an old patch. It was added to N900 to avoid unnecessary wake-ups when the phone is in power save mode (= blank screen and no user interaction). In this situation if the user had a browser window with flash animation open pulseaudio kept waking up every 10 seconds, causing a severe hit to use times. Anyway I do not see any reason to send timing updates if the sink or source where the stream is connected to is suspended.
* sink-input: Provide more information to client when format is lostArun Raghavan2011-05-151-0/+8
| | | | | | | | When the sink format changes and we kill the stream, clients need a way to know (a) what device they should reconnect to, and (b) what the stream running time was when the stream got killed (pa_stream_get_time() won't work after the stream has been killed). This adds these two bits of information in the event callback's proplist parameter.
* stream: Add API to get a stream's pa_format_infoArun Raghavan2011-05-021-0/+10
|
* core: Fix some FIXMEs for the extended APIArun Raghavan2011-05-021-6/+17
| | | | | | This adds some checks that I'd postponed and adds a "should-be-good-enough" guess for tlength when using a compressed format.
* core: Add extended stream API to support compressed formatsArun Raghavan2011-05-021-19/+104
| | | | | | | | | | | | | | | This is the beginning of work to support compressed formats natively in PulseAudio. This adds a pa_stream_new_extended() that takes a format structure, sends it to the server (=> protocol extension) and has the server negotiate with the appropropriate sink to figure out what format it should use. This is work in progress, and works only with PCM streams. Actual compressed format support in some sink needs to be implemented, and extensive testing is required. More details on how this is supposed to work is available at: http://pulseaudio.org/wiki/PassthroughSupport
* Fix up some double spacesMaarten Bosmans2011-03-181-1/+1
|
* Fixup #include directives according to Coding StyleMaarten Bosmans2011-03-111-2/+2
| | | | | Use #include "header.h" if functionality of header.h is implemented and #include <header.h> if functionality of header.h is used.
* Fix up according to Coding StyleMaarten Bosmans2011-03-111-1/+1
| | | | Only whitespace changes in here
* client: Don't update smoother while corkedArun Raghavan2011-01-151-2/+2
| | | | | | | | | | | | | | This prevents the smoother attached to the stream clock from being updated while the stream is corked, which in turn ensures that once corking is completed, pa_stream_get_time() always returns the same value until the stream is uncorked - i.e., the clock does not advance when the client believes that it will not. The actual call to pa_smoother_put() happens on things like stream suspend/unsuspend, which trigger timing updates. This changes the smoother coefficients, which means that a call to pa_smoother_get() for the same value of 'x' can return different values before and after a timing update.
* AC3 passthrough supportPierre-Louis Bossart2010-08-121-1/+9
| | | | | | | | | | | | 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>
* native: rework handling of seeks that depend on variables the client does ↵Lennart Poettering2010-02-091-0/+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.
* client: implement $PULSE_LATENCY_MSECLennart Poettering2010-02-091-6/+31
| | | | | | | This allows easy overriding of a clients latency setting for debugging purposes. http://pulseaudio.org/ticket/753
* client: detect forking in sample cache API, tooLennart Poettering2010-02-091-0/+1
|
* native: fix request counter miscalculationsLennart Poettering2010-02-091-0/+4
| | | | | | | | | | | | | 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
* libpulse: Store pa_stream pointers to hashmaps instead of dynarrays.Tanu Kaskinen2009-12-031-10/+10
| | | | | | | | | Since the stream identifiers (channels) are monotonically growing integer, it isn't a good idea to use them as index to a dynamic array, because the array will grow all the time. This is not a problem with client connections that don't create many streams, but, for example, long-running clients that use libcanberra for playing event sounds, this means that the client connection effectively leaks memory.
* pulse: ask for timing updates both *before* and *after* triggering a stream ↵Lennart Poettering2009-11-201-2/+36
| | | | state change so that in the STARTED/UNDERFLOW callbacks we accurate transport latency information
* pulse: delay smoother update only when unpausing, not when pausing, since we ↵Lennart Poettering2009-11-201-17/+19
| | | | don't want the timer to advance when we are supposedly already paused
* pulse: try to fix inaccuracy with uncork timing for streams that are created ↵Lennart Poettering2009-11-201-1/+16
| | | | in corked state
* libpulse: introduce PA_STREAM_RELATIVE_VOLUMELennart Poettering2009-10-291-1/+9
|
* pulse: even in case of record stream, let's initialize req_bytes to 0Marc-André Lureau2009-08-151-1/+1
|
* client: limit block size for zero-copy operations to mempool block sizeLennart Poettering2009-07-241-0/+11
|
* client: make volume struct constLennart Poettering2009-07-241-1/+1
|
* alsa: throw timing data away after device resumeLennart Poettering2009-07-241-1/+1
|
* client: allow zero-copy writing to the streamLennart Poettering2009-07-201-37/+108
|
* Base mainloop on pa_rtclock_now()Marc-André Lureau2009-06-201-10/+3
| | | | | | | | | | | | | | | | 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>
* pulse: move pa_rtclock_now in pulsecommonMarc-André Lureau2009-06-201-1/+2
|
* perl -p -i -e 's/pa_rtclock_usec/pa_rtclock_now/g' `find . -name '*.[ch]'`Marc-André Lureau2009-06-191-4/+4
|
* don't try to outsmart the transportLennart Poettering2009-04-051-8/+0
|
* Modify smoothing code to make cubic interpolation optional and allow 'quick ↵Lennart Poettering2009-04-051-9/+13
| | | | | | | | | | | | | | | fixups' on resuming The primary reason for this change is to allow time graphs that do not go through the origin and hence smoothing starting from the origin is not desired. This change will allow passing time data into the smoother while paused and then abruptly use that data without smoothing using the 'quick fixup' flag when resuming. Primary use case is allowing recording time graphs where the data recorded originates from a time before the stream was created. The resulting graft will be shifted and should not be smoothened to go through the origin.
* properly account for seeks in the requested_bytes counterLennart Poettering2009-04-011-10/+10
|
* increase timing update interval exponentiallyLennart Poettering2009-04-011-4/+13
|
* notify clients about tlength changesLennart Poettering2009-03-301-1/+91
|
* minimal reorderingLennart Poettering2009-03-241-1/+1
|
* pulse: check context (do not user pstream when NULL)Marc-André Lureau2009-03-231-0/+1
|
* try to detect when stupid clients forks and refuse all service from then onLennart Poettering2009-03-051-0/+65
|
* Use LGPL 2.1 on all files previously using LGPL 2Colin Guthrie2009-03-031-1/+1
|
* allow sending meta/policy events to clientsLennart Poettering2009-02-121-0/+59
|
* implement PA_STREAM_FAIL_ON_SUSPEND logicLennart Poettering2009-02-031-1/+3
|
* don't use PA_STREAM_NOT_MONOTONOUS anymoreLennart Poettering2009-02-021-2/+2
|
* Add support for 24bit samples encoded in the LSB of 32 bit wordsLennart Poettering2009-01-161-0/+1
|
* add support for 24bit packed samplesLennart Poettering2009-01-161-0/+1
|
* Implement new flags DONT_INHIBIT_AUTO_SUSPEND and START_UNMUTEDLennart Poettering2008-10-261-1/+11
|
* properly parse response to pa_stream_set_buffer_attr() calls. closes #370Lennart Poettering2008-10-021-1/+14
|
* fix pa_stream_set_nameOmair Majid2008-09-111-1/+1
| | | | | | | | | | | | | This patch fixes a bug in pa_stream_set_name. It uses the media.name property instead of the application.name property when setting a stream's name >From aa1bda11d2084365cb0cec57f37d59f07ab80052 Mon Sep 17 00:00:00 2001 From: Omair Majid <omajid@redhat.com> Date: Wed, 10 Sep 2008 17:02:28 -0400 Subject: [PATCH] Fix bug in pa_stream_set_name Signed-off-by: Lennart Poettering <lennart@poettering.net>
* stream_started_callback userdata bugArthur Taylor2008-09-101-1/+1
| | | | | | | | | | Hello I came across a bug where the userdata parameter of the stream_started_callback was always NULL in some cases. I couldn't seem to make a ticket, so here's the one line patch: Signed-off-by: Lennart Poettering <lennart@poettering.net>