Commit graph

688 commits

Author SHA1 Message Date
Antti-Ville Jansson
7d05ac606b stream: Fix upload samples' cleanup
In pa_create_stream_callback, a stream is inserted into
s->context->record_streams only if it's a record stream. Otherwise it's
inserted into s->context->playback_streams. However, in stream_unlink the
stream is removed from s->context->playback_streams only if it's a playback
stream and otherwise it's removed from s->context->record_streams.

Thus, if the stream is an upload stream, we first insert it into
s->context->playback_streams in pa_create_stream_callback and then try to
remove it unsuccessfully from s->context->record_streams in stream_unlink. This
means that we are leaking hashmap entries until the context is freed,
constantly consuming more memory with applications that upload and unload a
large number of samples through one context.

Of course, this begs the question whether upload streams even belong in either
of those hashmaps. I don't want to mess around with the code too much at this
point though, so this patch should be a sufficient improvement.
2011-11-14 10:54:18 +05:30
Arun Raghavan
667289679f doc: Correct intended roles property documentation
The documentation says we expect a comma-separate list of intended
roles, but the code splits the string on whitespaces, so this corrects
the documentation to match the implementation.
2011-10-28 14:44:53 +02:00
Pierre-Louis Bossart
f0ec495938 sink,source: support for rate update
Avoid resampling or use integer resampling when supported by the
sinks/sources

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2011-10-17 20:09:46 +05:30
Maarten Bosmans
3b7c6b21f4 Do something sensible when compiled without iconv support
Without this fix, pacat won't start up, because it is unable to set the stream name.
2011-10-11 22:48:21 +05:30
Maarten Bosmans
9e92b1977b doc: Add some more doxygen tags to existing comments 2011-10-04 09:40:05 +01:00
Tanu Kaskinen
666261ece8 memblockq: Improve debuggability by storing a name and a sample spec.
These are not used for anything at this point, but this
makes it easy to add ad-hoc debug prints that show the
memblockq name and to convert between bytes and usecs.
2011-10-01 13:25:16 +01:00
Colin Guthrie
7563e0bbb5 libpulse: Always return a three part version number in API calls.
For both the headers and the library we should provide clean, three part
strings as this has been what we've previously done in the past
and some external systems apparently rely on this format. While it's not
something we've officially commented on before, there is no real advantage
to us to change it so let's not try to tidy things up too much
considering some third party apps (e.g. Skype) seem to dislike a two
part version string.
2011-10-01 13:21:03 +01:00
Arun Raghavan
6878140662 extended: Fix doxygen comment style typos
Thanks to Rémi Denis-Courmont for pointing this out on IRC.
2011-09-27 18:57:48 +05:30
Arun Raghavan
a9c85074cb def: Hide server-side sink/source flags
This makes sure that sink/source flags that are used on the server side
only are not leaked to clients.
2011-09-14 14:02:12 +05:30
Arun Raghavan
ec4f256493 stream: Relax assert for extended API
For some reason this assert wasn't triggered earlier -- we shouldn't be
looking at the stream sample_spec if the formats API is used.
2011-09-14 13:55:58 +05:30
Colin Guthrie
aa3142ab20 volume: Rename 'sync volume' to 'deferred volume'.
This just covers Lennart's concern over the terminology used.

The majority of this change is simply the following command:
 grep -rli sync[-_]volume . | xargs sed -i 's/sync_volume/deferred_volume/g;s/PA_SINK_SYNC_VOLUME/PA_SINK_DEFERRED_VOLUME/g;s/PA_SOURCE_SYNC_VOLUME/PA_SOURCE_DEFERRED_VOLUME/g;s/sync-volume/deferred-volume/g'

Some minor tweaks were added on top to tidy up formatting and
a couple of phrases were clarified too.
2011-09-13 21:15:49 +01:00
Maarten Bosmans
dfd706da71 Squash the last gcc warnings 2011-09-03 12:17:13 +02:00
Maarten Bosmans
55fdb0162c Remove extra ; s where they are not allowed in strict C99 2011-08-25 18:21:49 +05:30
Maarten Bosmans
c5dca7cf2b More spelling fixes 2011-08-25 11:27:47 +01:00
Maarten Bosmans
231645d4fc Spelling fixes in public headers 2011-08-25 11:27:35 +01:00
Colin Guthrie
d6b9e61b90 device-restore: Change the API to include type information (sink vs. source)
This changes the API, but as we have not released yet, this is OK.
2011-08-18 17:33:08 +01:00
Colin Guthrie
cc117be62b def: Add a new enum to allow differntiation between sinks and sources.
This is for bits of code or API where the concepts and constructs are
extensibly the same for sinks and sources. To avoid duplication we can
simply define our structure/API and then use this enum to differentiate
the two.
2011-08-18 17:10:13 +01:00
Arun Raghavan
a6ad2d860a sink: Add PA_SINK_SET_FORMATS macro
Required for testing the existence of the flag
2011-08-18 14:56:41 +05:30
Arun Raghavan
2677911e92 source: Remove the PA_SOURCE_PASSTHROUGH flag
This isn't actually used anywhere, and PA_SINK_PASSTHROUGH was also
removed.
2011-08-17 09:00:47 +05:30
Jonny Lamb
7ed177dc29 introspect: fix typo in default sink/source docs
Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
2011-08-16 21:01:37 +05:30
Arun Raghavan
0ef7e5cb4c format: Remove stupid copy-paste-o
Thanks to Maarten Bosmans for the catch.
2011-08-16 15:21:45 +05:30
Jonny Lamb
cabc198306 introspect: fix source output and sink input docs mix-up
Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
2011-08-16 14:05:49 +05:30
Arun Raghavan
fb67016844 sink: Add a SET_FORMATS flag
This adds a PA_SINK_SET_FORMATS flag to the pa_sink_flags enum,
signalling that a sink allows the set of supported formats to be set
externally. The idea is for clients to be able to know what sinks
support this ability and adapt their UI appropriately.
2011-08-16 11:11:34 +05:30
Arun Raghavan
2e075bb837 proplist: Make filter properties line up prettily 2011-08-15 15:20:20 +05:30
Arun Raghavan
8bffbcde1b format: Add string to pa_format_info conversion function
This will help accept string formats from the command like (so we can
set formats using pactl).
2011-08-15 11:51:35 +05:30
Arun Raghavan
348c51bfcd format: Make pa_format_info_snprint() more parseable
Removes the comma as the proplist separator since that makes
pa_proplist_from_string() break and prints only the encoding if there
are no properties (instead of "<encoding>, (no properties)").
2011-08-15 11:51:35 +05:30
Maarten Bosmans
b4e938e194 Move i18n.[ch] to src/pulsecore
The header is used in files troughout the tree and is not included in the public api,
so it belongs in pulsecore, not in pulse.
2011-08-11 13:23:42 +02:00
Maarten Bosmans
464ddcdfea Add some missing format.h includes 2011-08-11 13:23:21 +02:00
Colin Guthrie
1824fc6d73 ext-device-restore: Include format.h 2011-08-11 10:36:21 +02:00
Colin Guthrie
fc0a6ee239 device-restore: Various fixes for the protocol extension.
* Fix extension API function export list.
 * Ensure we trigger a subscription event when things change.
 * Send the index with our subscription events.
 * Clear out any existing formats when saving.
 * Call the correct extension command for subscriptions.
2011-08-09 11:01:01 +02:00
David Henningsson
1893234063 protocol-native: Allow clients to know at what index underrun occurred
This patch introduces some extra protocol information, so protocol
version is bumped. This functionality is primarily needed to solve
a long standing issue in alsa-plugins, which should ignore underruns
if and only if it is obsolete, i e, if more data has been written to
the pipe in the meantime (which will automatically end the underrun).

BugLink: http://bugs.launchpad.net/bugs/805940
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2011-08-02 13:59:00 +01:00
Arun Raghavan
4e8bb96975 doc: Document subscription events better
Add an explanation and some example code to make it easier for people
writing client-side code to figure out how subscription events work.
2011-07-27 21:52:32 +05:30
Colin Guthrie
a9cf320bc1 devices: Set certain sink/source flags automatically.
Some sink flags are really just a product of what callbacks
are set on the device. We still enforce a degree of sanity
that the flags match the callbacks set, but we also set the
flags automatically in our callback setter functions to
help ensure that a) people use them and b) flags & callbacks
are kept in sync.
2011-07-20 22:20:37 +01:00
Ralph Giles
8840ebf9c3 Fix two comment typos. 2011-07-14 14:13:52 -07:00
Maarten Bosmans
ebf93404b6 Remove libpulse-browse and pabrowse 2011-06-24 10:08:11 +01:00
Maarten Bosmans
5818a2c63e win32: Make some unused-variable warnings go away 2011-06-24 00:34:05 +01:00
Maarten Bosmans
8ce326816b Add sys/time.h include to rtclock.c
Cross-compiling for win32 failed after the previous #include removal.
Somehow when building for Linux the struct timeval definition got picked up elsewhere.
2011-06-24 00:29:47 +01:00
Maarten Bosmans
dd9265ac78 Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
Colin Guthrie
35f99c6e31 device-restore: Add a new protocol extension for device-restore.
This simply exposes the formats that a device supports
via a simple protocol extension that will allow clients
to setup what a connected receiver supports format wise.
2011-06-22 23:12:19 +01:00
Colin Guthrie
4ab60d0377 introspect: Get format of source output
This gets the negotiated format of source outputs in
pa_context_get_source_output*(). Also prints the format and volume
in 'pactl list'.
2011-06-22 22:45:27 +01:00
Colin Guthrie
dffc4d18d3 capture: Implement per-stream volume control for capture streams.
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)
2011-06-22 22:45:27 +01:00
Colin Guthrie
fdf3a08814 introspect: Get formats for sources
This gets the list of supported formats for a source in
pa_context_get_source_info*(). Also prints these in 'pactl list'.
2011-06-22 21:55:27 +01:00
Colin Guthrie
5d35375aa7 capture: Add the passthrough format negotiation to capture streams.
This helps to keep the API more symmetrical and also potentially
allows support for passthrough monitor sources at some point in the future.
2011-06-22 21:55:27 +01:00
Colin Guthrie
30597b7c27 def: Add some flags for source outputs.
These flags will be required in upcoming work to integrate format and volume
support for source outputs.
2011-06-22 21:53:20 +01:00
Colin Guthrie
205265b7bb introspect: Clear out memory properly on error. 2011-06-22 21:53:20 +01:00
Arun Raghavan
257bdcafe3 stream: Simplify passing of formats in extended API
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.
2011-06-19 17:46:35 -07:00
Arun Raghavan
573b9d6ca8 stream: Fix a couple of format_info leaks 2011-06-19 17:46:35 -07:00
Arun Raghavan
117c714594 format: Fix channel map handling
Channel map handling in the extended API was broken. Thanks for Milos_SD
for pointing this out on IRC.
2011-05-20 19:21:02 +05:30
Jyri Sarha
47b7ca830e protocol-native: Stop auto timing updates if connected to suspended sink or 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.
2011-05-15 14:58:12 +01:00
Arun Raghavan
1404db3d47 format: Add some convenience API for setting properties
Adds functions to set sample format, rate, channels and channel map on a
format to make life easier for users of the API.
2011-05-15 10:09:35 +05:30