9 Commits

Author SHA1 Message Date
henrike@webrtc.org
f2aafe4355 Added include of assert.h for files calling assert but missing the include.
BUG=N/A
R=niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6022 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-29 17:54:17 +00:00
andrew@webrtc.org
00073aafa8 Clean up CPU detection defines in SincResampler a little.
R=aluebs@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5615 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-27 04:12:34 +00:00
andrew@webrtc.org
2038920a2b Use scoped_ptr<T[]> in SincResampler to avoid .get()[] weirdness.
R=aluebs@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5613 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-26 18:14:54 +00:00
pbos@webrtc.org
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
andrew@webrtc.org
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
andrew@webrtc.org
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
andrew@webrtc.org
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
andrew@webrtc.org
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
andrew@webrtc.org
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