summaryrefslogtreecommitdiffstats
path: root/src/pulse
Commit message (Collapse)AuthorAgeFilesLines
* Remove libpulse-browse and pabrowseMaarten Bosmans2011-06-242-563/+0
|
* win32: Make some unused-variable warnings go awayMaarten Bosmans2011-06-243-7/+8
|
* Add sys/time.h include to rtclock.cMaarten Bosmans2011-06-241-0/+3
| | | | | Cross-compiling for win32 failed after the previous #include removal. Somehow when building for Linux the struct timeval definition got picked up elsewhere.
* Remove unnecessary #includesMaarten Bosmans2011-06-2227-40/+6
|
* device-restore: Add a new protocol extension for device-restore.Colin Guthrie2011-06-224-3/+466
| | | | | | 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.
* introspect: Get format of source outputColin Guthrie2011-06-222-1/+6
| | | | | | This gets the negotiated format of source outputs in pa_context_get_source_output*(). Also prints the format and volume in 'pactl list'.
* capture: Implement per-stream volume control for capture streams.Colin Guthrie2011-06-223-21/+93
| | | | | | | 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)
* introspect: Get formats for sourcesColin Guthrie2011-06-222-17/+51
| | | | | This gets the list of supported formats for a source in pa_context_get_source_info*(). Also prints these in 'pactl list'.
* 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.
* def: Add some flags for source outputs.Colin Guthrie2011-06-221-1/+28
| | | | | These flags will be required in upcoming work to integrate format and volume support for source outputs.
* introspect: Clear out memory properly on error.Colin Guthrie2011-06-221-42/+40
|
* stream: Simplify passing of formats in extended APIArun Raghavan2011-06-192-9/+10
| | | | | | 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
|
* format: Fix channel map handlingArun Raghavan2011-05-201-6/+7
| | | | | Channel map handling in the extended API was broken. Thanks for Milos_SD for pointing this out on IRC.
* 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.
* format: Add some convenience API for setting propertiesArun Raghavan2011-05-152-3/+34
| | | | | Adds functions to set sample format, rate, channels and channel map on a format to make life easier for users of the API.
* format: Extend properties to handle lists/rangesArun Raghavan2011-05-153-20/+263
| | | | | | | | | | | | | This replaces the simple string used by pa_format_info's proplist with a JSON string (accessed via new API only). This allows us to express lists and ranges more cleanly, and embed type information for future extensibility. We use json-c for JSON parsing. This is a lightweight depdency (32 KB on my system) and avoids the hassle of having to reinvent a JSON parser. Also included is a test which verifies functionality and is valgrind-clean.
* 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.
* format: Add correct sample spec conversion for E-AC3Arun Raghavan2011-05-151-0/+3
| | | | | | | IEC61937-encapsulated E-AC3 frames contain 6 audio blocks per substream, which corresponds to 1536 samples contained a 24576-byte frame. To cope with this, we maintain the s16le stereo sample spec, but quadruple the sample rate so that the conversion remains accurate.
* format: Export pa_format_info_is_compatible in APIArun Raghavan2011-05-153-2/+10
| | | | This allows clients to perform checks between formats as well.
* sink-input: Add a format-lost eventArun Raghavan2011-05-151-0/+7
| | | | | | | This event is emitted if the sink-input could not be moved to a new sink because it doesn't support the format of the sink-input. Clients can reconnect their stream with a different format if they wish or gracefully exit.
* format: Add a type for DTSArun Raghavan2011-05-022-0/+4
|
* introspect: Get format of sink inputArun Raghavan2011-05-022-1/+6
| | | | | This gets the negotiated format of sink inputs in pa_context_get_sink_input*(). Also prints the format in 'pactl list'.
* introspect: Get formats for sinksArun Raghavan2011-05-022-0/+37
| | | | | This gets the list of supported formats for a sink in pa_context_get_sink_info*(). Also prints these in 'pactl list'.
* stream: Add API to get a stream's pa_format_infoArun Raghavan2011-05-022-0/+13
|
* format: Add some convenience functions for printingArun Raghavan2011-05-022-0/+49
|
* format: Const-ify some parametersArun Raghavan2011-05-022-4/+4
|
* 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.
* format: Avoid some code duplicationArun Raghavan2011-05-022-0/+5
| | | | | | We frequently need to free an idxset containing pa_format_infos, so define an internal free function that can be used directly with this (instead of defining it once-per-file).
* sink-input: Don't assert on bad formatsArun Raghavan2011-05-022-15/+19
| | | | Handles bad format input more gracefully and returns an error instead.
* sink: Remove PASSTHROUGH flagArun Raghavan2011-05-021-8/+2
| | | | | | | This removes the passthrough flag from sinks since we will drop exclusively passthrough sinks in favour of providing a list of formats supported by each sink. We can still determine whether a sink is in passthrough mode by checking if any non-PCM streams are attached to it.
* format: Add convenience API to check if a format is PCM or notArun Raghavan2011-05-022-0/+7
|
* core: Add extended stream API to support compressed formatsArun Raghavan2011-05-023-19/+120
| | | | | | | | | | | | | | | 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
* format: Add some properties and internal APIArun Raghavan2011-05-023-0/+104
| | | | | The properties will be used by clients to set the sample format, sampling rate, etc. The functions will be used internally.
* core: Add a pa_format_info structureArun Raghavan2011-05-023-0/+151
| | | | | This will be used to represent the format of data provided by the client for both compressed and PCM formats in a new extended API.
* sample: Use PA_SAMPLE_INVALID instead of numeric valueArun Raghavan2011-05-021-1/+1
|
* filters: Handle stream moves properlyArun Raghavan2011-04-231-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | This makes sure that we handle streams moving between sinks properly. To do this, we change the way the filter.* properties are handled a little bit. Firstly, this splits up the "filter.apply" property into two properties - "filter.want" and "filter.apply". "filter.apply" acts as before - it bypasses module-filter-heuristics and directly tells module-filter-apply what filters are to be applied. "filter.want" is used to tell module-filter-heuristics what filters the client wants. The module then decides whether to actually apply the filter or not (for now, this makes sure we don't apply echo-cancellation even if requested on phone sinks (where it is assumed AEC is taken care of or is not required). Next, we also make sure that we track whether the client set "filter.apply" or module-filter-heuristics did - and in the latter case, we recalculate "filter.apply" and then have module-filter-apply apply the filter if required. This introduces some evil in the form of causing the move_finish callback to possibly trigger another move, but we protect for this case (with a property) to be doubly sure of not causing an infinite loop.
* util: Implement pa_get_binary_name() for Mac OS XDaniel Mack2011-04-231-0/+26
|
* filter: Move the proplist defines into the central place and document them.Colin Guthrie2011-04-201-0/+6
|
* doc: Fix typoColin Guthrie2011-04-051-1/+1
|
* sink-input: Add volume_writable to pa_sink_input.Tanu Kaskinen2011-03-292-4/+4
| | | | | | | | | | This is pretty cosmetic change; there's no actual functionality added. Previously the volume_writable information was available through the pa_sink_input_is_volume_writable() function, but I find it cleaner to have a real variable. The sink input introspection variable name was also changed from read_only_volume to volume_writable for consistency.
* Get rid of some warningsMaarten Bosmans2011-03-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Mostly warnings about unused stuff. Furthermore, the first hunk is a fix for the change in 177948a6. Finally, comment in AEC_dtd was translated and the code simplified slightly. CC module_bluetooth_device_la-module-bluetooth-device.lo modules/bluetooth/module-bluetooth-device.c: In function ‘a2dp_process_render’: modules/bluetooth/module-bluetooth-device.c:1335:30: warning: pointer targets in passing argument 6 of ‘sbc_encode’ differ in signedness [-Wpointer-sign] ../src/modules/bluetooth/sbc/sbc.h:92:9: note: expected ‘ssize_t *’ but argument is of type ‘size_t *’ CC module_rygel_media_server_la-module-rygel-media-server.lo modules/module-rygel-media-server.c:383:13: warning: ‘append_property_dict_entry_object_array’ defined but not used [-Wunused-function] CC module_echo_cancel_la-adrian-aec.lo modules/echo-cancel/adrian-aec.h:360:15: warning: ‘AEC_getambient’ defined but not used [-Wunused-function] modules/echo-cancel/adrian-aec.h:368:14: warning: ‘AEC_setgain’ defined but not used [-Wunused-function] modules/echo-cancel/adrian-aec.h:374:14: warning: ‘AEC_setaes’ defined but not used [-Wunused-function] modules/echo-cancel/adrian-aec.h:377:16: warning: ‘AEC_max_dotp_xf_xf’ declared ‘static’ but never defined [-Wunused-function] CC module_echo_cancel_la-module-echo-cancel.lo modules/echo-cancel/module-echo-cancel.c: In function ‘time_callback’: modules/echo-cancel/module-echo-cancel.c:266:12: warning: variable ‘fs’ set but not used [-Wunused-but-set-variable] CC module-virtual-sink.lo modules/module-virtual-sink.c: In function ‘sink_input_pop_cb’: modules/module-virtual-sink.c:206:15: warning: variable ‘current_latency’ set but not used [-Wunused-but-set-variable]
* Merge remote-tracking branch 'mkbosmans/mingw32-build'Colin Guthrie2011-03-201-9/+14
|\
| * Fix pa_rtclock_from_wallclockMaarten Bosmans2011-03-191-9/+14
| | | | | | | | | | | | | | | | The HAVE_CLOCK_GETTIME macro protects timespec and related functions, nothing of which is used in pa_rtclock_from_wallclock. And silently just not converting was not the proper solution anyway. Also add an assert in pulse/mainloop.c to report the integer overflow that was triggered by the wrong pa_rtclock_from_wallclock. Without the assert, debugging was painful.
* | Fix up some double spacesMaarten Bosmans2011-03-184-10/+9
| |
* | Fixup #include directives according to Coding StyleMaarten Bosmans2011-03-118-22/+15
| | | | | | | | | | 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-112-2/+2
| | | | | | | | Only whitespace changes in here
* | volume: Add a PA_VOLUME_UI_MAX define for the recommended max volume to show ↵Colin Guthrie2011-03-031-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in UIs This value is not a technical upper limit, it's just a 'sensible' value that is not crazy high, but also allows software amplification above 0dB (aka 100%) for very quiet audio sources. We recommend that a comprehensive volume control UI should allow users to set volumes up to this limit, although of course should deal gracefully if the user has set the volume even higher than this without resulting in a feedback loop that effectively limits the upper volume. The value chosen is +11dB. This was selected somewhat subjectively and is very similar to the current 150% that gnome-volume-control uses (which is ~+10.57dB). On the plus side, we now recommend that everyone allows 'Volumes up to 11' which is pretty awesome. http://en.wikipedia.org/wiki/Up_to_eleven https://tango.0pointer.de/pipermail/pulseaudio-discuss/2010-April/006945.html https://tango.0pointer.de/pipermail/pulseaudio-discuss/2010-April/006950.html
* | Various fixes for build warningsMaarten Bosmans2011-03-021-1/+1
| |
* | introspect: Client-side implementation for has_volume/read_only_volumeArun Raghavan2011-03-021-2/+6
| | | | | | | | | | This completes the client-side changes to the protocol extension introduced by commit 99ddca89cdca9b0b92ab9870764f9211e6a82e31