Commit Graph

15 Commits

Author SHA1 Message Date
12dc1a38ca Switch C++-style C headers with their C equivalents.
The C++ headers define the C functions within the std:: namespace, but
we mainly don't use the std:: namespace for C functions. Therefore we
should include the C headers.

BUG=1833
R=tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1917004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4486 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-05 16:22:53 +00:00
51b2459d37 Add some virtual and OVERRIDEs in webrtc/common_audio/
BUG=163
R=andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1899004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4473 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-02 11:44:38 +00:00
b86fbaf1d4 Downstream latest Chromium SincResampler changes.
Replace the BlockSize() workaround we were using previously to support
the push wrapper with the upstream request_frames interface. This
requires a bit of a trick to ensure we don't add more delay than
necessary. On the first pass we use a dummy Resample() call in order to
prime the buffer such that all later calls only require a single input
request through Run().

Notably, this brings in an optimized loop condition, improving
performance by ~2% - 3% on tested platforms and avoids a 20% performance
hit with clang. This addresses issue2041.

Only negligible changes to the PushSincResamplerTest SNR thresholds, due
to a fractional sample adjustment in output delay.

This still retains the per-instance CPU detection, as webrtc lacks a
LazyInstance helper for static initialization.

Ideally, we would adopt SetRatio() in PushSincResampler's
InitializeIfNeeded() for on-the-fly changes, but this will require a way
to update request_frames.

The diff against Chromium upstream is available here:
https://codereview.chromium.org/19470003

BUG=2041
TESTED=unit tests, voe_cmd_test in loopback running through all codecs
with 44.1 kHz and 48 kHz device formats using a stereo mic.

R=dalecurtis@chromium.org

Review URL: https://webrtc-codereview.appspot.com/1838004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4406 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-25 22:04:30 +00:00
d900e8bea8 Proper spacing for end-of-namespace comments.
BUG=
R=mflodman@webrtc.org, tina.legrand@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1760006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4293 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-03 15:12:26 +00:00
c1eb560a5c Replace the old resampler with SincResampler in the voice engine signal path.
* The old resampler was found to have a wraparound bug.
* Remove support for the old resampler from PushResampler.
* Use PushResampler in AudioCodingModule.
* The old resampler must still be removed from the file utility.

BUG=webrtc:1867,webrtc:827
TESTED=unit tests, Chrome using apprtc and voe_cmd_test to verify wrap-around is corrected, voe_cmd_test running through all supported codec sample rates and channels to verify good quality audio
R=henrika@webrtc.org, turaj@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1590004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4156 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-03 19:00:29 +00:00
aa30bb7ef5 Include files from webrtc/.. paths in common_audio/
BUG=1662
R=tina.legrand@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1535005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4107 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-27 09:49:58 +00:00
c6a3755ada Update SincResampler with the latest Chromium code.
* Brings in on-the-fly sample ratio updates (or varispeed) with minor modifications to build in webrtc.
* Moved SSE and NEON optimized functions into their own files to handle run-time detection properly. NEON optimizations now enabled.

TESTED=unit tests and ran voe_cmd_test loopback with both devices using 44.1 kHz to exercise SincResampler in real-time.
R=dalecurtis@chromium.org, kma@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1438004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3987 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-08 20:35:43 +00:00
342353780d Consolidate common_audio into a single target.
In principle should reduce gyp processing time, but the difference was not measurable. In any case, it's a good simplification that aligns with having a single common_video target.

R=bjornv@webrtc.org, kma@webrtc.org, tina.legrand@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1375004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3928 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-30 23:43:26 +00:00
50b2efef6e Add a wrapper around PushSincResampler and the old Resampler.
The old resampler is used whenever it supports the requested rates. Otherwise
the sinc resampler is enabled.

Integrated with output_mixer in order to test the change through
output_mixer_unittest. The sinc resampler will not yet be used, since we don't
feed VoE with any rates that trigger it.

BUG=webrtc:1395
R=bjornv@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1355004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3915 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-29 17:27:29 +00:00
8fc05feed4 Add a push-based wrapper around SincResampler.
Includes a unittest to ensure we meet the same quality thresholds as SincResampler (modulo quantization error).

BUG=webrtc:1395

Review URL: https://webrtc-codereview.appspot.com/1323011

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3909 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-26 14:56:51 +00:00
b09130763b WebRtc_Word32 -> int32_t in common_audio/
BUG=314

Review URL: https://webrtc-codereview.appspot.com/1299004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3803 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-09 16:40:28 +00:00
076fc12539 Modify SincResampler to build in webrtc.
This is the first in a series of CLs to bring arbitrary resampling to webrtc.

* Replace Chromium-specific helpers with their respective webrtc versions.
* Add a second constructor to permit runtime selection of block_size.
* Add stringize_macros to system_wrappers.

BUG=webrtc:1395
TESTED=unit tests

Review URL: https://webrtc-codereview.appspot.com/1097012

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3518 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-15 03:54:22 +00:00
a8ef811fe5 Import SincResampler from Chromium.
Committing the originals to make further reviews cleaner.

TBR=bjornv
BUG=webrtc:1395

Review URL: https://webrtc-codereview.appspot.com/1096010

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3508 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-13 23:00:49 +00:00
a3c82bf667 Remove '<(library)' in gyp files.
This will remove all usage of '<(library)' in all webrtc gyp files. 
Review URL: https://webrtc-codereview.appspot.com/1049005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3392 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-18 23:42:21 +00:00
14b43beb7c Move src/ -> webrtc/
TBR=niklas.enbom@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/915006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2963 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-10-22 18:19:23 +00:00