summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2010-09-29time-smoother: make fixed point gradient workoptimize-smootherWim Taymans1-7/+10
2010-09-29time-smoother: filter historyWim Taymans1-33/+93
2010-09-29timings: improve timings by returning latency/time pairWim Taymans7-37/+72
When we ask for the latency, also return the time when the latency calculation was made so that we can use both values to have more accurate timing results.
2010-09-29time-smoother: add option to filter outliersWim Taymans1-1/+96
Add an option to filter out outliers by comparing the error of each point against the variance of the errors.
2010-09-29time-smoother: optimize calculation of sumsWim Taymans1-22/+31
Update the sums of x and y while we add and remove values so that we can avoid some work before doing the regression. Simplify the monotonicity check of the gradient.
2010-09-29time-smoother: refactor removing samplesWim Taymans1-13/+25
Refactor how we remove samples from the smoother into a separate method. We will need this when we later want to implement Least Trimmed Squares. simplify advancing the position in the smoother.
2010-09-29build: Copy orc dist files to the correct directoryArun Raghavan1-2/+3
2010-09-27echo-cancel: Use S16NE for adrian moduleArun Raghavan1-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.
2010-09-23echo-cancel: Ensure correct handling of endiannessArun Raghavan2-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.
2010-09-23echo-cancel: orc-ify some bits for optimisationArun Raghavan9-5/+472
This uses Orc to optimise an inner loop in the core NLMS function of the Adrian echo canceller.
2010-09-23echo-cancel: Add SSE optimisation to the adrian moduleArun Raghavan7-12/+61
Optimises the core inner-product function, which takes the most CPU. The SSE-optimised bits of the adrian echo canceller only if the CPU that PA is running on actually supports SSE.
2010-09-23cpu: Add CPU information to pa_coreArun Raghavan8-55/+119
This retains CPU information (processor type and supported features) in pa_core, so that this information can be used by modules at init time to figure out what optimisations may be used.
2010-09-23build: Fix make distcheckArun Raghavan1-0/+1
src/utils/qpaeq was not being dist'ed
2010-09-20echo-cancel: Fix out-of-tree buildArun Raghavan1-0/+2
2010-09-18x11: Use the default screen for X11 properties.Colin Guthrie5-69/+95
This commit restores the functionality originally included in 65e807 by Leszek Koltunski.
2010-09-18xcb: xcb_get_setup() can return 0, so make sure we check it before usingColin Guthrie1-20/+48
2010-09-18xcb: Ensure the XCB connection is valid before using it.Colin Guthrie2-0/+10
2010-09-18x11: Partially convert to XCB.Colin Guthrie8-98/+109
This commit mostly converts the X11 handling to XCB. There are still some uses of XLib to deal with the X11 session handling modules, however all client-side code should now be free of XLib and thus this should fix Bug #799 Note that this removes the screen-based changes by Leszek Koltunski in 65e80, however this will be restored in due course.
2010-09-14alsa: Only set the 'first' flag to false when we actually call snd_pcm_start()Colin Guthrie1-1/+2
Previously, if work_done was false, we could conceivably not call snd_pcm_start().
2010-09-14alsa: Set the rewind safeguard proportionally to sample specColin Guthrie1-2/+3
Currently when rewinding alsa, a fixed value of 256 bytes is used, which represents 1.33ms @ 48kHz (2ch, 16bit). This is typically fine and due to DMA constraints we would not want to rewind less than this. However with more demanding sample specs, (e.g. 8ch 192kHz 32bit) 256 bytes is likely not sufficient, so calculate what 1.33ms would be and use which ever value is bigger. Discussed with David Henningsson and Pierre-Louis Bossart here: http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/7286
2010-09-12alsa-mixer: add profile for Traktor Kontrol S4fixesDaniel Mack3-1/+84
This new audio interface from Native Instruments has 2 stereo channels for both input and output direction. This patch adds mappings for them.
2010-09-10echo-cancel: Fix make distcheckRico Tzschichholz1-4/+5
Add missing files to module_echo_cancel_la_SOURCES Add Adrian license file to EXTRA_DIST
2010-09-09echo-cancel: pause timer when echo canceling is offWim Taymans1-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.
2010-09-09echo-cancel: improve accuracyWim Taymans1-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.
2010-09-09alsa: make defines for smoother configurationWim Taymans2-4/+10
Make new defines for the smoother window size and adjust time constants instead of reusing some unrelated constant. Increase the smoother window size even more because the bigger it is, the better. Since we have a 200ms max update interval and the max smoother history is 64 entries, 10seconds is a good default. Decrease the smoother adjust time to 1 second. The previous value of 4 seconds was too much to adapt quickly after a resume.
2010-09-09echo-cancel: rework alignment codeWim Taymans1-59/+76
Rework the code to align capture and playback samples so that we can keep more accurate timings.
2010-09-09alsa: work around slightly broken _delay implementationsWim Taymans4-6/+46
Use snd_pcm_avail_delay() in pa_alsa_safe_delay() so that we can check the delay value against the avail value and patch it up when it looks invalid. Only do this for capture.
2010-09-07alsa-time-test: make test usable for capture tooWim Taymans1-16/+43
Extend the test to also work for capture devices.
2010-09-07alsa-source: refactor smoother and device startWim Taymans1-8/+18
Move the code to start the capture and the smoother closer together to improve smoother accuracy. Rework things to look more like the alsa sink where the device is started in only one place.
2010-09-07smoother: avoid losing precisionWim Taymans1-3/+1
Avoid losing precision by subtracting uint64 values before converting them to doubles.
2010-09-07echo-cancel: Mark immutable parameters as const in vfuncArun Raghavan3-5/+5
Marks the recording and playback streams as const in the pa_echo_canceller->run method for clarity.
2010-09-07echo-cancel: Make blocksize a module-wide parameterArun Raghavan4-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.
2010-09-07echo-cancel: Allow selection of AEC method using modargsArun Raghavan1-8/+27
This adds an "aec_method" module argument to allow us to select the AEC implementation to use.
2010-09-07echo-cancel: Add alternative echo-cancellation implementationArun Raghavan9-1/+802
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).
2010-09-07echo-cancel: Let AEC module determine source/sink specArun Raghavan3-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.
2010-09-07echo-cancel: Pass arguments to the specific canceller moduleArun Raghavan3-33/+53
This allows us to tweak module parameters for whichever AEC module is chosen.
2010-09-07echo-cancel: Split out speex code from the core moduleArun Raghavan4-36/+184
This splits out the echo-cancelling core from the PA-specific bits to allow us to plug in other echo-cancellation engines.
2010-09-07echo-cancel: Move the module into it's own directoryArun Raghavan2-2/+2
This will make splitting out the canceller parts cleaner.
2010-09-04cli: Allow .include on directories as well as files.Colin Guthrie1-13/+81
When .including a directory, all files with the extension '.pa' in that folder will be parsed in alphabetical order.
2010-09-03alsa: increase the smoother windowmodule-echo-cancelWim Taymans1-2/+2
40ms for the smoother window is too small. Increase the size to 4 seconds, like we do for the sinks.
2010-09-02echo-cancel: keep frame_size a power of 2Wim Taymans1-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.
2010-09-02echo-cancel: improve debugWim Taymans1-11/+13
2010-09-02echo-cancel: tweak the resync code a littleWim Taymans1-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.
2010-09-02echo-cancel: use the phone media roleWim Taymans1-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.
2010-08-30alsa-sink/source: Use the "namereg_fail" module argument.Tanu Kaskinen2-2/+28
This allows the name registry to mangle the names of auto-detected sinks and sources to be unique, which makes it possible to load multiple identical sound cards using module-udev-detect. At least for now the module argument can only be passed through module-alsa-card.
2010-08-24alsa-sink: Get rid of a compiler warning regarding rewind_safeguard type.Tanu Kaskinen1-2/+2
GCC gave a warning, because the pointer given to pa_modargs_get_value_u32() had type size_t instead of uint32_t.
2010-08-24module-udev-detect: When loading module-alsa-card, use namereg_fail=false.Tanu Kaskinen1-0/+1
2010-08-24module-alsa-card: New argument: namereg_fail.Tanu Kaskinen1-0/+15
This is added so that module-udev-detect can load multiple module-alsa-card instances with the same card name - forcing namereg_fail to false allows the name registry to mangle the card names to be unique.
2010-08-23echo-cancel: take into account snapshot delayWim Taymans1-5/+13
Take into account the delay between taking the snapshot from the source and the sink. Improves the quality of the timings.
2010-08-23make echo-cancel module that exposes a new sink and sourceWim Taymans2-0/+1617
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.