summaryrefslogtreecommitdiffstats
path: root/src/modules
Commit message (Collapse)AuthorAgeFilesLines
* build-sys: Add echo-cancel dummy MakefileColin Guthrie2011-06-232-1/+21
|
* device-manager: Free a hook slot to prevent segv on unloadColin Guthrie2011-06-061-0/+3
|
* module-combine-sink: Check running flag before rendering in null modeForest Bond2011-06-051-0/+4
| | | | | This makes process_render_null consistent with render_memblock and avoids introducing slight inaccuracies in early latency estimates.
* module-combine-sink: Initialize smoother in paused stateForest Bond2011-06-051-6/+9
| | | | | | | | | | | | | The smoother is paused on initialization and resumed when the sink state is set to running. Otherwise, early latency estimates are too low since there is some delay between module initialization and entering the running state. After the smoother is initially resumed, it is paused when the sink state is not running. The previous behavior was to pause only when the sink enters suspended state, however, this would lead to large errors in latency estimates after the sink has been idle for some time.
* module-combine-sink: Initialize smoother with offset pa_rtclock_now()Forest Bond2011-06-051-1/+1
| | | | | The smoother was being initialized with offset zero, which caused the sink latency to be unconditionally reported as zero.
* module-jack-sink/source: protect against null return in jack_get_portsDavid Henningsson2011-03-282-10/+16
| | | | | | | | | | | | | | | | | | | | Just picking up a crash report from Ubuntu, here's the result. -- David Henningsson, Canonical Ltd. http://launchpad.net/~diwic From 934c52c79bb6faed56a64d6e15f9b285f687afee Mon Sep 17 00:00:00 2001 From: David Henningsson <david.henningsson@canonical.com> Date: Mon, 28 Mar 2011 14:30:44 +0200 Subject: [PATCH] module-jack-sink/source: protect against null return in jack_get_ports According to jack_get_ports documentation, it seems like returning NULL is valid, and that it should be freed using jack_free. Reported-by: Grayson Peddie BugLink: http://bugs.launchpad.net/bugs/733424 Signed-off-by: David Henningsson <david.henningsson@canonical.com>
* echo-cancel: Fix source may_move_to functionArun Raghavan2011-03-281-1/+1
| | | | | | | This is required to make sure that the source output between module-echo-cancel and ALSA can't get plugged to the virtual source or monitor of the virtual sink that we expose. This could be triggered by changing the profile of the underlying ALSA device.
* echo-cancel: Use S16NE for adrian moduleArun Raghavan2011-03-281-9/+5
| | | | | | This forces us to get native-endian samples in the adrian module so that we can rely on the existing endianness conversion mechanisms instead of doing it in the module.
* echo-cancel: Ensure correct handling of endiannessArun Raghavan2011-03-282-3/+4
| | | | | | The adrian module was using home-brewed endianness conversion instead of the appropriate mactos, and speex assumed a little-endian host. This fixes both of these.
* echo-cancel: pause timer when echo canceling is offWim Taymans2011-03-281-16/+25
| | | | | While the sink or source is in the suspended state, disable the timer callback because we are not doing any echo canceling then.
* echo-cancel: improve accuracyWim Taymans2011-03-281-1/+5
| | | | | Make the echo canceler drift up to 1ms now that things are more accurate. Add 10 samples of headroom to allow for timing inaccuracies.
* echo-cancel: rework alignment codeWim Taymans2011-03-281-59/+76
| | | | | Rework the code to align capture and playback samples so that we can keep more accurate timings.
* echo-cancel: Mark immutable parameters as const in vfuncArun Raghavan2011-03-283-5/+5
| | | | | Marks the recording and playback streams as const in the pa_echo_canceller->run method for clarity.
* echo-cancel: Make blocksize a module-wide parameterArun Raghavan2011-03-284-43/+25
| | | | | | Since all algorithms will need to specify a block size (the amount of data to be processed together), we make this a common parameter and have the implementation set it at initialisation time.
* echo-cancel: Allow selection of AEC method using modargsArun Raghavan2011-03-281-8/+27
| | | | | This adds an "aec_method" module argument to allow us to select the AEC implementation to use.
* echo-cancel: Add alternative echo-cancellation implementationArun Raghavan2011-03-287-0/+794
| | | | | | | | | | | | This adds Andre Adrian's AEC implementation from his intercom project (http://andreadrian.de/intercom/) as an alternative to the speex echo cancellation routines. Since the implementation was in C++ and not in the form of a library, I have converted the code to C and made a local copy of the implementation. The implementation actually works on floating point data, so we can tweak it to work with both integer and floating point samples (currently we just use S16LE).
* echo-cancel: Let AEC module determine source/sink specArun Raghavan2011-03-283-24/+49
| | | | | | | | | | | | | Since the source and sink specification will need to be determined by the AEC algorithm (can it handle multi-channel audio, does it work with a fixed sample rate, etc.), we negotiate these using inout parameters at initialisation time. There is opportunity to make the sink-handling more elegant. Since the sink data isn't used for playback (just processing), we could pass through the data as-is and resample to the required spec before using in the cancellation algorithm. This isn't too important immediately, but would be nice to have.
* echo-cancel: Pass arguments to the specific canceller moduleArun Raghavan2011-03-283-33/+53
| | | | | This allows us to tweak module parameters for whichever AEC module is chosen.
* echo-cancel: Split out speex code from the core moduleArun Raghavan2011-03-283-35/+183
| | | | | This splits out the echo-cancelling core from the PA-specific bits to allow us to plug in other echo-cancellation engines.
* echo-cancel: Move the module into it's own directoryArun Raghavan2011-03-281-0/+0
| | | | This will make splitting out the canceller parts cleaner.
* echo-cancel: keep frame_size a power of 2Wim Taymans2011-03-281-1/+8
| | | | | | | The speex echo canceler prefers a power of 2 for the frame size. Round down the ideal frame_size to the nearest power of two. This makes sure we don't create more than the requested frame_size_ms latency while still providing a power of 2 to the speex echo canceller.
* echo-cancel: improve debugWim Taymans2011-03-281-11/+13
|
* echo-cancel: tweak the resync code a littleWim Taymans2011-03-281-5/+2
| | | | | | Try to keep the drift between source and sink within 4ms now that we have more accurate timings. Don't force a resync on latency changes but let the drift code handle it.
* echo-cancel: use the phone media roleWim Taymans2011-03-281-0/+2
| | | | | Tag the source and sink with the phone media roles so that they automatially connect to phone streams such as Empathy when using the intended-rols module.
* echo-cancel: take into account snapshot delayWim Taymans2011-03-281-5/+13
| | | | | Take into account the delay between taking the snapshot from the source and the sink. Improves the quality of the timings.
* make echo-cancel module that exposes a new sink and sourceWim Taymans2011-03-281-0/+1609
| | | | | | Make a new echo-cancel module that exposes a new sink and source. All data sent to the sink is matched against the data captured from the source and echo-canceled using the speex echo canceler.
* module-rtp-recv: Remove smoother from write indexMaarten Bosmans2011-02-251-21/+3
| | | | | It isn't necessary anymore with the new algorithm. The slow adjust of the smoother was even detrimental to the accuracy of the rate estimate.
* module-rtp-recv: Average the estimated real sample rateMaarten Bosmans2011-02-251-4/+22
|
* module-rtp-recv: Use new algorithm for adjusting sample rateMaarten Bosmans2011-02-251-15/+29
|
* Limit rate adjustments to small, inaudible jumpsMaarten Bosmans2011-02-253-26/+52
| | | | | | | | | | | | | | | The same logic is applied to the sample rate adjustments in module-rtp-recv, module-loopback and module-combine: - Each time an adjustment is made, the new rate can differ at most 2‰ from the old rate. Such a step is equal to 3.5 cents (a cent is 1/100th of a semitone) and as 5 cents is generally considered the smallest observable difference in pitch, this results in inaudible adjustments. - The sample rate of the stream can only differ from the rate of the corresponding sink by 25%. As these adjustments are meant to account for very small clock drifts, any large deviation from the base rate suggests something is seriously wrong. - If the calculated rate is within 20Hz of the base rate, set it to the base rate. This saves CPU because no resampling is necessary.
* module-loopback: Add adjust_time to valid argsMaarten Bosmans2011-02-251-0/+1
|
* tunnel: Fix automatic names when source/sink_name argument is missing.Colin Guthrie2011-01-231-2/+2
| | | | Spotted by palmerdabbelt via #894
* ratelimit: fix log levels of log suppression messagesLennart Poettering2011-01-223-6/+6
| | | | | When logging a suppression message do so on the same log level as the suppressed messages.
* fix bug about get source-output statusChen Rui2010-12-201-1/+1
|
* Fix typosZhang Wanming2010-12-207-13/+13
|
* module-loopback: Prevent an infinite loop when rate adjusting is disabledMaarten Lankhorst2010-12-121-1/+2
|
* jack: Add module-jackdbus-detectDavid Henningsson2010-12-051-0/+304
|
* build-sys: Replace dummy Makefiles with proper Makefile.am'sColin Guthrie2010-12-0421-9/+240
| | | | | | | | | | | | | | | | | | | | | | | | This is needed to better support out of tree builds (including distcheck) and to ensure the necessary folders are created in the build tree on configure and also works around an intl-tools bug (https://bugs.launchpad.net/intltool/+bug/605826) The Makefile.am's used are minimal (and in some cases completely blank). At present they do not include anything interesting with the majority of the real work still done by the monolitic src/Makefile.am It may make sense to start splitting out src/Makefile.am into smaller chunks but this commit makes the minimum changes to address the issues that result from using make distcheck and other out of tree builds. Note: This 'breaks' the ability to type make in e.g. the src/modules folder and have all of PA rebuilt accordingly (this is because the static Makefiles previously present just did a "make -C ..") which was purportedly for use in emacs. But I'm sure there will be a better and more robust way to configure emacs to do your builds properly if this behaviour is still desirable.
* rescue-streams: Fix segfault in some conditionsArun Raghavan2010-12-021-1/+1
| | | | | | | There is a call to this function where 'skip' variable is NULL. Looks like this code doesn't get hit very often, probably because a suitable default sink can be found to move the stream to. However, if we can't move to the default sink and skip is NULL, there will be a segfault.
* Handle 'Internal Mic 1' as an 'Input Source'Daniel T Chen2010-11-251-0/+4
| | | | | | | | | BugLink: https://launchpad.net/bugs/680810 Some laptops have 'Internal Mic 1' exposed as an 'Input Source', e.g., Dell XPSM 1530, so handle these, too. Signed-off-by: Daniel T Chen <crimsun@ubuntu.com>
* Add "Rear Mic" to alsa mixer paths.David Henningsson2010-11-252-0/+13
| | | | Signed-off-by: David Henningsson <david.henningsson@canonical.com>
* alsa-source: fix enum typesLennart Poettering2010-11-251-2/+2
|
* alsa-mixer: make a few strings translatableLennart Poettering2010-11-251-3/+3
| | | | | | Original patch contributed by 'kelemeng' http://pulseaudio.org/ticket/843
* upnp: Implement the MediaServer2 D-Bus interfaceStephen Moehle2010-11-171-199/+463
| | | | | | This allows PulseAudio to work with versions of Rygel 0.7.1 and higher which only support MediaServer2: http://live.gnome.org/Rygel/MediaServer2Spec
* combine: Only check if the sink is h/w etc. in automatic modeColin Guthrie2010-11-171-8/+8
|
* combine: Handle reappearing slave sinks in non-automatic mode.Antti-Ville Jansson2010-11-171-3/+23
| | | | | | | | Earlier, if slave sinks were unlinked in non-automatic mode, their re-appearance was disregarded. Now they are added back to the list of outputs. Signed-off-by: Antti-Ville Jansson <antti-ville.jansson@digia.com> Reviewed-by: Tanu Kaskinen <tanu.kaskinen@digia.com>
* alsa: remove redundant call to snd_pcm_nonblock()Pierre-Louis Bossart2010-11-171-2/+0
| | | | | | | The PCM handle is already opened with the SND_PCM_NONBLOCK flag. This additional call is useless. Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@intel.com>
* alsa-mixer: add profile for Native Instruments KorecontrollerDaniel Mack2010-10-312-0/+86
|
* augment-properties: Fix debug messages and statement bracketing.Colin Guthrie2010-10-061-2/+3
|
* device-manager: Ensure that sinks/sources populate the device manager lists ↵Colin Guthrie2010-09-291-5/+59
| | | | | | | in order of their priority. Currently the order of the sinks is simply that of their position in the idxset which is certainly not what the user would want.