1007 Commits

Author SHA1 Message Date
Peter Boström
d98d457134 Remove "This file includes unit tests" comments.
Superfluous, neteq_unittests.cc conveys that the file contains unittests
for NetEq for instance.

BUG=
TBR=henrik.lundin@webrtc.org, stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1922103002 .

Cr-Commit-Position: refs/heads/master@{#12504}
2016-04-26 11:44:02 +00:00
kjellander
4e7f6c1887 Add proper dependencies for webrtc/modules/audio_coding/codecs
The audio_decoder_interface and audio_encoder_interface
targets are depending on rtc_base_approved headers but don't
declare such dependencies.

NOTRY=True

Review URL: https://codereview.webrtc.org/1916953002

Cr-Commit-Position: refs/heads/master@{#12500}
2016-04-26 04:59:56 +00:00
henrik.lundin
ed4972116c Add a TickTimer object to NetEqImpl
The TickTimer is incremented on each call to GetAudioInternal(). Other
than that, the new object is not used yet.

Also adding a unit test in NetEqImplTest to verify that the tick timer
is incremented in the call to NetEq::GetAudio.

BUG=webrtc:5608

Review URL: https://codereview.webrtc.org/1903153005

Cr-Commit-Position: refs/heads/master@{#12493}
2016-04-25 17:11:45 +00:00
ossu
97ba30eedf Convert CNG into C++ and remove it from AudioDecoder
Broke out CNG from AudioDecoder as they didn't really share an interface.

Converted the CNG code to C++, to make initialization and resource handling easier. This includes several changes to the behavior, favoring RTC_CHECKs over returning error codes.

Review URL: https://codereview.webrtc.org/1868143002

Cr-Commit-Position: refs/heads/master@{#12491}
2016-04-25 14:56:05 +00:00
kjellander@webrtc.org
c23bf2e54d Disable failing modules_unittests for UBSan.
BUG=webrtc:5820
TBR=pbos@webrtc.org

Review URL: https://codereview.webrtc.org/1915813002 .

Cr-Commit-Position: refs/heads/master@{#12482}
2016-04-25 04:43:20 +00:00
henrik.lundin
8053f79bd9 Add a new TickTimer class to NetEq
The new class is intended to be used as a central time-keeping object
inside NetEq. The actual use of the class will come in subsequent
changes.

BUG=webrtc:5608

Review URL: https://codereview.webrtc.org/1910523003

Cr-Commit-Position: refs/heads/master@{#12477}
2016-04-22 20:21:49 +00:00
kwiberg
4fb3d2bcca Add defaulted move constructors for some types that just got copy constructors
They can all benefit from moving, since they contain std::string and
std::vector. We intended to add these in
https://codereview.webrtc.org/1896953004/, but got compiler errors we
couldn't make sense of, so we skipped them. It turns out that what the
compiler was complaining about was that when we said we'd have a
user-defined move constructor, it stopped generating a copy assignment
operator for us. This CL solves the problem by outfitting the types
with defaulted copy and move assignment operators too.

Review URL: https://codereview.webrtc.org/1899173002

Cr-Commit-Position: refs/heads/master@{#12469}
2016-04-22 11:59:34 +00:00
kwiberg
bfde543f73 Audio Coding Module: Use separate instances for 16 kHz and 32 kHz iSAC decoder
This will allow us to fix the sample rate of each AudioDecoder at
instantiation time.

This change results in different checksums for the following tests:

AcmReceiverBitExactnessOldApi.8kHzOutput
AcmReceiverBitExactnessOldApi.16kHzOutput
AcmReceiverBitExactnessOldApi.32kHzOutput
AcmReceiverBitExactnessOldApi.48kHzOutputExternalDecoder
AcmReceiverBitExactnessOldApi.48kHzOutput

Because they make an ACM and then ask it to decode both 16 kHz and 32
kHz iSAC. (The arm32 and arm64 checksums didn't change, because the
tests skip 32 kHz iSAC on arm.)

BUG=webrtc:5801

Review URL: https://codereview.webrtc.org/1908923002

Cr-Commit-Position: refs/heads/master@{#12463}
2016-04-22 07:32:06 +00:00
kwiberg
bcc6dbb6b2 DecoderDatabase::DecoderInfo: Remove unused member variable rtp_sample_rate_hz
The fs_hz member variable is going away too, being replaced by a
method in the AudioDecoder interface. If we ever end up needing the
RTP sample rate here, a method ought to be the right solution for that
too.

BUG=webrtc:5801

Review URL: https://codereview.webrtc.org/1907183002

Cr-Commit-Position: refs/heads/master@{#12462}
2016-04-22 07:12:49 +00:00
kwiberg
0fa0a97cf3 NetEq: Simplify DecoderDatabase::DecoderInfo
By eliminating one of the two constructors, handling decoder ownership
with a unique_ptr instead of a raw pointer, and making all member
variables const (except one, which is made private instead).

BUG=webrtc:5801

Review URL: https://codereview.webrtc.org/1899733002

Cr-Commit-Position: refs/heads/master@{#12425}
2016-04-19 12:03:51 +00:00
kjellander
470dd37b41 Roll chromium_revision 212f976fef..61ed337cfe (387882:388120)
https://codereview.chromium.org/1826693002 enables some
more Clang warnings which were fixed.

Change log: 212f976fef..61ed337cfe
Full diff: 212f976fef..61ed337cfe

No dependencies changed.
No update to Clang.

TBR=
NOTRY=True

Review URL: https://codereview.webrtc.org/1896953004

Cr-Commit-Position: refs/heads/master@{#12422}
2016-04-19 10:03:31 +00:00
ossu
264087f45a A few small cleanups of stuff caught by lint
Review URL: https://codereview.webrtc.org/1871003002

Cr-Commit-Position: refs/heads/master@{#12412}
2016-04-18 15:07:33 +00:00
ossu
2903ba5ff3 Reland Remove the deprecated EncodeInternal interface from AudioEncoder
Remove the deprecated EncodeInternal interface from AudioEncoder

Also hid MaxEncodedBytes by making it private. It will get removed as soon as subclasses have had time to remove their overrides.

BUG=webrtc:5591

Review URL: https://codereview.webrtc.org/1881003003

Cr-Commit-Position: refs/heads/master@{#12409}
2016-04-18 13:14:42 +00:00
kjellander
e532aec252 Add isolate files for Android tests
BUG=chromium:583318
TESTED=Passing runs with:
GYP_DEFINES='test_isolation_mode=prepare OS=android' webrtc/build/gyp_webrtc
ninja -C out/Release
NOTRY=True
NOPRESUBMIT=True

Review URL: https://codereview.webrtc.org/1882963003

Cr-Commit-Position: refs/heads/master@{#12397}
2016-04-18 03:08:28 +00:00
kwiberg
6ca0a31708 We no longer use compilers that can't =default move construction and assignment
Review URL: https://codereview.webrtc.org/1891483006

Cr-Commit-Position: refs/heads/master@{#12376}
2016-04-15 12:25:03 +00:00
ossu
164bc4bbd3 Revert of Remove the deprecated EncodeInternal interface from AudioEncoder (patchset #4 id:60001 of https://codereview.webrtc.org/1864993002/ )
Reason for revert:
Broke import. Implementations of the old interface still exists somewhere.

Original issue's description:
> Remove the deprecated EncodeInternal interface from AudioEncoder
>
> Also hid MaxEncodedBytes by making it private. It will get removed as soon as subclasses have had time to remove their overrides.
>
> BUG=webrtc:5591
>
> Committed: https://crrev.com/5222d315dbea8f3563c100cc9f2451907f70b05f
> Cr-Commit-Position: refs/heads/master@{#12329}

TBR=kwiberg@webrtc.org,solenberg@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5591

Review URL: https://codereview.webrtc.org/1883543002

Cr-Commit-Position: refs/heads/master@{#12330}
2016-04-12 10:58:10 +00:00
ossu
5222d315db Remove the deprecated EncodeInternal interface from AudioEncoder
Also hid MaxEncodedBytes by making it private. It will get removed as soon as subclasses have had time to remove their overrides.

BUG=webrtc:5591

Review URL: https://codereview.webrtc.org/1864993002

Cr-Commit-Position: refs/heads/master@{#12329}
2016-04-12 10:31:03 +00:00
henrik.lundin
0d96ab7dc4 NetEq::GetPlayoutTimestamp returns empty during CNG
With this change, the return value from NetEq::GetPlayoutTimestamp is
empty if the latest call to NetEq::GetAudio resulted in comfort noise
(codec-internal or external) being played out. This is because the
playout timestamp is not updated during CNG, and can therefore not be
trusted.

A few unit tests were updated to reflect the change.

BUG=webrtc:5669

Review URL: https://codereview.webrtc.org/1861303002

Cr-Commit-Position: refs/heads/master@{#12268}
2016-04-06 19:28:31 +00:00
kwiberg
c8d071e4e0 Switch to using new ACM methods for encoder management
BUG=webrtc:5028

Review URL: https://codereview.webrtc.org/1677013002

Cr-Commit-Position: refs/heads/master@{#12267}
2016-04-06 19:22:45 +00:00
henrik.lundin
15c51e355f Move setting of AudioFrame::timestamp_ into NetEq
This was previously done in AcmReceiver, but belongs in NetEq where the
rest of the AudioFrame fields are populated.

BUG=webrtc:5669,webrtc:5607

Review URL: https://codereview.webrtc.org/1863993002

Cr-Commit-Position: refs/heads/master@{#12265}
2016-04-06 15:39:01 +00:00
henrik.lundin
9a410dd082 Change NetEq::GetPlayoutTimestamp to return an rtc::Optional<uint32_t>
This is in preparation for changes to when the playout timestamp is
valid.

BUG=webrtc:5669

Review URL: https://codereview.webrtc.org/1853183002

Cr-Commit-Position: refs/heads/master@{#12256}
2016-04-06 08:39:30 +00:00
henrik.lundin
7dc68897d3 Unit test for AudioFrame output from AcmReceiver::GetAudio
This new unit test verifies the parameter fields (not the audio data
itself) written to the AudioFrame output by AcmReceiver::GetAudio.

Also corrected a few comments reflecting recent changes in the code.

BUG=webrtc:5669

Review URL: https://codereview.webrtc.org/1859953002

Cr-Commit-Position: refs/heads/master@{#12253}
2016-04-06 08:03:07 +00:00
kwiberg
0d05da7ee6 Rent-A-Codec: Reference count the shared iSAC bandwidth estimation state
Now that the Rent-A-Codec no longer owns the encoders and decoders it
produces, they may outlive it. It's thus no longer correct for the
Rent-A-Codec to own the bandwidth estimation state; all of the
involved objects need to share ownership.

BUG=webrtc:5028

Review URL: https://codereview.webrtc.org/1821513003

Cr-Commit-Position: refs/heads/master@{#12159}
2016-03-30 11:10:18 +00:00
kwiberg
4cdbd57fe3 AudioCodingModule: Add methods for injecting external encoder stacks
BUG=webrtc:5028

Review URL: https://codereview.webrtc.org/1673213002

Cr-Commit-Position: refs/heads/master@{#12158}
2016-03-30 10:10:15 +00:00
solenberg
0d343fa39d Remove unused stuff from AudioFrame:
- The interleaved_ field. Never set to anything but 'true'. AudioFrame data appears to always be treated as interleaved.
- The Append() method.
- operator-=().

BUG=

Review URL: https://codereview.webrtc.org/1830713003

Cr-Commit-Position: refs/heads/master@{#12152}
2016-03-29 23:42:12 +00:00
Henrik Kjellander
b252856d10 Remove all uses of the HAVE_CONFIG_H define.
BUG=
R=henrik.lundin@webrtc.org, pthatcher@google.com, stefan@webrtc.org, tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1820023004 .

Cr-Commit-Position: refs/heads/master@{#12141}
2016-03-29 15:47:28 +00:00
kwiberg
15622c0aaf WebRtcIsacfix_PitchFilter: Don't read uninitialized array entries
WebRtcIsacfix_PitchFilterCore requires indW32 >= PITCH_FRACORDER - 2;
otherwise, it will read from entries of ubufQQ that haven't been
written yet. (The problem of indW32 being too small has only been seen
in fuzzer tests, not in real life.)

BUG=chromium:581901

Review URL: https://codereview.webrtc.org/1811453002

Cr-Commit-Position: refs/heads/master@{#12047}
2016-03-18 05:17:21 +00:00
kwiberg
22feaa3d15 Replace scoped_ptr with unique_ptr in webrtc/modules/
Except in places where this would break out-of-tree code,
such as Chromium.

BUG=webrtc:5520

Review URL: https://codereview.webrtc.org/1785173002

Cr-Commit-Position: refs/heads/master@{#12037}
2016-03-17 16:17:49 +00:00
kjellander@webrtc.org
94a23f04af Reland "Add check_deps rules in DEPS files."
Relanding https://codereview.webrtc.org/1796413002/
without the change to the openmax_dl include path
(which broke downstream code).

TBR=tommi@webrtc.org
BUG=webrtc:5623
TESTED=Passing runs using:
buildtools/checkdeps/checkdeps.py --root=. talk
buildtools/checkdeps/checkdeps.py --root=. webrtc

Review URL: https://codereview.webrtc.org/1804333002 .

Cr-Commit-Position: refs/heads/master@{#12031}
2016-03-17 11:05:50 +00:00
henrik.lundin
b4855cc366 Delete file acm_neteq_unittest.cc
The file was essentially empty, and not used.

TBR=kwiberg@webrtc.org
NOTRY=true

Review URL: https://codereview.webrtc.org/1804303003

Cr-Commit-Position: refs/heads/master@{#12013}
2016-03-16 09:34:33 +00:00
kjellander
56cf60e717 Revert of Add check_deps rules in DEPS files. (patchset #2 id:60001 of https://codereview.webrtc.org/1796413002/ )
Reason for revert:
The openmax_dl include change breaks downstream projects.

Original issue's description:
> Add check_deps rules in DEPS files.
>
> Add fine-grained check_deps rules for all of WebRTC.
> This will help both maintaining sane dependencies and provides a way
> to visualize dependency graphs using the buildtools/checkdeps/graphdeps.py script.
>
> Example:
> buildtools/checkdeps/graphdeps.py --root=. --format=png \
> --out=./webrtc.png --incl='^webrtc/modules/bitrate_controller->' \
> --excl='chromium|base|external|testing|webrtc/test|\.h$|\.cc$'
>
> will produce a neat webrtc.png image showcasing the dependencies
> (according to the DEPS file) for the bitrate_controller module.
> Some dependencies are filtered out for readability.
>
> BUG=webrtc:5623
> TESTED=Passing runs using:
> buildtools/checkdeps/checkdeps.py --root=. talk
> buildtools/checkdeps/checkdeps.py --root=. webrtc
>
> R=tommi@webrtc.org
>
> Committed: https://crrev.com/086f851b7b9b4bcbd4fe507c3bf83b760bd7f4d9
> Cr-Commit-Position: refs/heads/master@{#12008}

TBR=tommi@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5623

Review URL: https://codereview.webrtc.org/1808573002

Cr-Commit-Position: refs/heads/master@{#12009}
2016-03-16 00:41:04 +00:00
kjellander@webrtc.org
086f851b7b Add check_deps rules in DEPS files.
Add fine-grained check_deps rules for all of WebRTC.
This will help both maintaining sane dependencies and provides a way
to visualize dependency graphs using the buildtools/checkdeps/graphdeps.py script.

Example:
buildtools/checkdeps/graphdeps.py --root=. --format=png \
--out=./webrtc.png --incl='^webrtc/modules/bitrate_controller->' \
--excl='chromium|base|external|testing|webrtc/test|\.h$|\.cc$'

will produce a neat webrtc.png image showcasing the dependencies
(according to the DEPS file) for the bitrate_controller module.
Some dependencies are filtered out for readability.

BUG=webrtc:5623
TESTED=Passing runs using:
buildtools/checkdeps/checkdeps.py --root=. talk
buildtools/checkdeps/checkdeps.py --root=. webrtc

R=tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1796413002 .

Cr-Commit-Position: refs/heads/master@{#12008}
2016-03-16 00:22:53 +00:00
solenberg
b2a24ecf44 Relanding https://codereview.webrtc.org/1715883002/ in pieces.
- Clean up unused methods in voe::Channel following removal of VoEDtmf APIs.

BUG=webrtc:4690

Review URL: https://codereview.webrtc.org/1785643006

Cr-Commit-Position: refs/heads/master@{#11976}
2016-03-14 10:25:17 +00:00
Tommi
d44c077dce Revert of Safe numeric library: base/numerics (copied from Chromium) (patchset #11 id:250001 of https://codereview.webrtc.org/1753293002/ )
Reason for revert:
Looks like the Chrome iOS build is broken because of these two changes.  So I'm going to have to revert.  Here's the error:

https://build.chromium.org/p/tryserver.chromium.mac/builders/ios_rel_device_ninja/builds/185624/steps/compile/logs/stdio

FAILED: rm -f arch/libsafe_numerics.arm64.a && ./gyp-mac-tool filter-libtool libtool  -static -o arch/libsafe_numerics.arm64.a
error: /Applications/Xcode7.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: no files specified
Usage: /Applications/Xcode7.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool -static [-] file [...] [-filelist listfile[,dirname]] [-arch_only arch] [-sacLT] [-no_warning_for_no_symbols]
Usage: /Applications/Xcode7.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool -dynamic [-] file [...] [-filelist listfile[,dirname]] [-arch_only arch] [-o output] [-install_name name] [-compatibility_version #] [-current_version #] [-seg1addr 0x#] [-segs_read_only_addr 0x#] [-segs_read_write_addr 0x#] [-seg_addr_table <filename>] [-seg_addr_table_filename <file_system_path>] [-all_load] [-noall_load]
FAILED: rm -f arch/libsafe_numerics.armv7.a && ./gyp-mac-tool filter-libtool libtool  -static -o arch/libsafe_numerics.armv7.a
error: /Applications/Xcode7.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: no files specified
Usage: /Applications/Xcode7.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool -static [-] file [...] [-filelist listfile[,dirname]] [-arch_only arch] [-sacLT] [-no_warning_for_no_symbols]
Usage: /Applications/Xcode7.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool -dynamic [-] file [...] [-filelist listfile[,dirname]] [-arch_only arch] [-o output] [-install_name name] [-compatibility_version #] [-current_version #] [-seg1addr 0x#] [-segs_read_only_addr 0x#] [-segs_read_write_addr 0x#] [-seg_addr_table <filename>] [-seg_addr_table_filename <file_system_path>] [-all_load] [-noall_load]
ninja: build stopped: subcommand failed.

Original issue's description:
> Safe numeric library added: base/numerics (copied from Chromium)
>
> This copies the contents (unittest excluded) of base/numerics in
> chromium to base/numerics in webrtc. Files added:
> - safe_conversions.h
> - safe_conversions_impl.h
> - safe_math.h
> - safe_math_impl.h
>
> A really old version of safe_conversions[_impl].h previously existed in
> base/, this has been deleted and sources using it have been updated
> to include the new base/numerics/safe_converions.h.
>
> This CL also adds a DEPS file to webrtc/base.
>
> NOPRESUBMIT=True
> BUG=webrtc:5548, webrtc:5623
>
> Committed: https://crrev.com/de1c81b2d2196be611674aa6019b9db3a9329042
> Cr-Commit-Position: refs/heads/master@{#11907}

TBR=kjellander@webrtc.org,kwiberg@webrtc.org,tina.legrand@webrtc.org,hbos@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:5548, webrtc:5623

Review URL: https://codereview.webrtc.org/1792613002 .

Cr-Commit-Position: refs/heads/master@{#11965}
2016-03-12 01:12:40 +00:00
henrik.lundin
d72595eeea Fix NetEq performance test regression
The test code created an AudioBuffer object inside the work loop. This
turned out to be expensive, since the AudioBuffer ctor implicitly
called memset on all of the audio data array. The obvious remedy is to
create the buffer outside of the loop. This does not have any impact
apart from the performance boost, since the output data from NetEq is
not even considered in the test.

BUG=chromium:592907,webrtc:5647
TBR=ivoc@webrtc.org
NOTRY=true

Review URL: https://codereview.webrtc.org/1782803002

Cr-Commit-Position: refs/heads/master@{#11940}
2016-03-10 10:26:36 +00:00
solenberg
3ecb5c8698 Revert of - Clean up unused voice engine DTMF code. (patchset #4 id:60001 of https://codereview.webrtc.org/1722253002/ )
Reason for revert:
Breaks Chromium FYI bots for Android. E.g. https://build.chromium.org/p/chromium.webrtc.fyi/builders/Android%20Tests%20%28dbg%29%20%28K%20Nexus5%29/builds/4486/steps/content_browsertests/logs/stdio

Original issue's description:
> - Clean up unused voice engine DTMF code following removal of VoEDtmf APIs.
> - Use better types in AudioSendStream::SendTelephoneEvent() and related methods.
>
> BUG=webrtc:4690
>
> Committed: https://crrev.com/8886c816582a7c6190c5429222cb8096fca302a6
> Cr-Commit-Position: refs/heads/master@{#11927}

TBR=tina.legrand@webrtc.org,henrik.lundin@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:4690

Review URL: https://codereview.webrtc.org/1776243003

Cr-Commit-Position: refs/heads/master@{#11930}
2016-03-09 15:32:05 +00:00
solenberg
8886c81658 - Clean up unused voice engine DTMF code following removal of VoEDtmf APIs.
- Use better types in AudioSendStream::SendTelephoneEvent() and related methods.

BUG=webrtc:4690

Review URL: https://codereview.webrtc.org/1722253002

Cr-Commit-Position: refs/heads/master@{#11927}
2016-03-09 11:32:53 +00:00
kwiberg
6030a129c0 Pass ownership of external encoders to the ACM
We want this because otherwise the ACM uses its mutex to protect an
encoder that's owned by someone else. That someone else may easily
slip up and delete or otherwise touch the encoder before making sure
that the ACM has stopped using it, bypassing the lock.

BUG=webrtc:5028

Review URL: https://codereview.webrtc.org/1702943002

Cr-Commit-Position: refs/heads/master@{#11909}
2016-03-08 14:01:37 +00:00
henrik.lundin
bc89de3bca Adding a namespace comment
This was pointed out in https://codereview.webrtc.org/1772583002/.

BUG=webrtc:5607 NOTRY=true
TBR=kwiberg@webrtc.org

Review URL: https://codereview.webrtc.org/1774933002

Cr-Commit-Position: refs/heads/master@{#11908}
2016-03-08 13:20:18 +00:00
hbos
de1c81b2d2 Safe numeric library added: base/numerics (copied from Chromium)
This copies the contents (unittest excluded) of base/numerics in
chromium to base/numerics in webrtc. Files added:
- safe_conversions.h
- safe_conversions_impl.h
- safe_math.h
- safe_math_impl.h

A really old version of safe_conversions[_impl].h previously existed in
base/, this has been deleted and sources using it have been updated
to include the new base/numerics/safe_converions.h.

This CL also adds a DEPS file to webrtc/base.

NOPRESUBMIT=True
BUG=webrtc:5548, webrtc:5623

Review URL: https://codereview.webrtc.org/1753293002

Cr-Commit-Position: refs/heads/master@{#11907}
2016-03-08 12:46:07 +00:00
henrik.lundin
55480f5efa Remove the type parameter to NetEq::GetAudio
The type is included in the AudioFrame output parameter.

Rename the type NetEqOutputType to just OutputType, since it is now
internal to NetEq.

BUG=webrtc:5607

Review URL: https://codereview.webrtc.org/1769883002

Cr-Commit-Position: refs/heads/master@{#11903}
2016-03-08 10:38:02 +00:00
henrik.lundin
500c04bc86 Delete VAD methods from AcmReceiver and move functionality inside NetEq
This change essentially does two things:

1. Remove the VAD-related methods from AcmReceiver. These are
EnableVad(), DisableVad(), and vad_enabled(). None of them were used
outside of unit tests.

2. Move the functionality to set AudioFrame::speech_type_ and
AudioFrame::vad_activity_ inside NetEq. This was previously done in
AcmReceiver, but based on information inherently owned by NetEq.

With the change in 2, NetEq's GetAudio interface can be simplified by
removing the output type parameter. This will be done in a follow-up
CL.

BUG=webrtc:5607

Review URL: https://codereview.webrtc.org/1772583002

Cr-Commit-Position: refs/heads/master@{#11902}
2016-03-08 10:36:07 +00:00
asapersson
a2c58e2198 Switch to use new implementation in metrics.h for gathering statistics.
Sparse macro replaced for all audio histograms that have a constant name.

BUG=webrtc:5283

Review URL: https://codereview.webrtc.org/1762863003

Cr-Commit-Position: refs/heads/master@{#11885}
2016-03-07 09:53:08 +00:00
henrik.lundin
6d8e011b64 Change NetEq::GetAudio to use AudioFrame
With this change, NetEq now uses AudioFrame as output type, like the
surrounding functions in ACM and VoiceEngine already do.

The computational savings is probably slim, since one memcpy is
removed while another one is added (both in AcmReceiver::GetAudio).

More simplifications and clean-up will be done in
AcmReceiver::GetAudio in future CLs.

BUG=webrtc:5607

Review URL: https://codereview.webrtc.org/1750353002

Cr-Commit-Position: refs/heads/master@{#11874}
2016-03-04 18:34:26 +00:00
ossu
4f43fcfd49 Renamed new EncodeInternal to EncodeImpl to ensure proper backwards compatibility.
Renamed the new variant of EncodeInternal to EncodeImpl, so that
subclasses implementing one of the EncodeInternal don't need to
explicitly contain 'using AudioEncoder::EncodeInternal' to avoid their
implementation hiding the other variant of EncodeInternal. This causes
a warning (treated as an error) when building using GCC.

Review URL: https://codereview.webrtc.org/1764583003

Cr-Commit-Position: refs/heads/master@{#11868}
2016-03-04 08:54:38 +00:00
henrik.lundin
0023fdffd0 Remove the ID from AcmReceiver
This is an artifact from the past, and is no longer used.

R=ivoc@webrtc.org

Review URL: https://codereview.webrtc.org/1764623002

Cr-Commit-Position: refs/heads/master@{#11866}
2016-03-04 07:05:45 +00:00
ossu
10a029e952 Changed AudioEncoder::Encode to take an rtc::Buffer* instead of uint8_t* and a maximum size.
For backwards compatibility, I've added kept the old interface to
Encode() and EncodeInternal and created default implementations of both
variants of EncodeInternal(), each calling the other. At least one of
the variants must be implemented in a subclass or we'll run out of stack
and explode. Would be nice if we could catch that before runtime. :/

The new interface to EncodeInternal() is protected, since it should
never be called from the outside.

Was unable to mark the old EncodeInternal() as RTC_DEPRECATED, since the
default implementaion of the new variant needs to call it to work around
old implementations. The old Encode() variant is deprecated, at least.

Added a test for backwards compatibility in audio_encoder_unittest.cc.
For the added test I broke out MockEncodeHelper from
audio_encoder_copy_red_unittest.cc and renamed it MockAudioEncoderHelper.

Review URL: https://codereview.webrtc.org/1725143003

Cr-Commit-Position: refs/heads/master@{#11823}
2016-03-01 08:41:39 +00:00
minyuel
7e937e951c Remove workaround for Opus DTX noise pumping issue.
A workaround for Opus DTX noise pumping issue was made according upon this
https://codereview.webrtc.org/1422213003

Recently, Opus has fixed this problem internally, and hence the workaround is not needed any longer.

This CL removes this workaround.

BUG=586175
R=flim@webrtc.org, tina.legrand@webrtc.org

Review URL: https://codereview.webrtc.org/1715423002 .

Cr-Commit-Position: refs/heads/master@{#11805}
2016-02-29 09:24:25 +00:00
kwiberg
806706875d iSAC entropy coder: Avoid signed integer overflow
By doing an unsigned instead of a signed addition, we get the exact
same machine code (in non-UBSan builds), but no longer trigger
undefined behavior since unsigned overflow is defined behavior.

BUG=webrtc:5485

Review URL: https://codereview.webrtc.org/1734883003

Cr-Commit-Position: refs/heads/master@{#11776}
2016-02-26 10:52:14 +00:00
minyue
58e08cbea8 Reset indexer upon initialization in AudioLoop.
The array is reset in Init() but not the indexer. This makes the start point undefined after Init() for re-initializing an AudioLoop. This can be fixed.

BUG=

Review URL: https://codereview.webrtc.org/1727353002

Cr-Commit-Position: refs/heads/master@{#11739}
2016-02-24 11:49:23 +00:00