Commit Graph

122 Commits

Author SHA1 Message Date
abe3f1879c Checking whether ACM uses codec internal or WebRTC DTX.
It was not clear how one could know if ACM is using DTX from WebRTC or codec internal DTX.

This CL makes better use of IsInternalDTXReplacedWithWebRtc() which was designed for G.729 to export such information.

Before
IsInternalDTXReplacedWithWebRtc() gives true only if codec == G729 and G729's internal DTX is replaced with WebRTC DTX.

Now
IsInternalDTXReplacedWithWebRtc() gives true also when codec does not have internal DTX, i.e., must use WebRTC DTX, which is much more logical.

BUG=
R=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7870 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-11 08:53:21 +00:00
d8ca723de7 Remove CELT support from audio_coding.
R=henrik.lundin@webrtc.org, juberti@webrtc.org
TBR=kjellander@webrtc.org
BUG=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7864 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-10 11:49:13 +00:00
e04a93bcf5 Move the AudioDecoder interface out of NetEq
It belongs with the codecs, next to the AudioEncoder interface.

R=andrew@webrtc.org, henrik.lundin@webrtc.org, kjellander@webrtc.org

Previously committed here: https://code.google.com/p/webrtc/source/detail?r=7798
and reverted here: https://code.google.com/p/webrtc/source/detail?r=7799

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7839 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-09 10:12:53 +00:00
cb858ba397 Make an AudioEncoder subclass for iLBC
BUG=3926
R=henrik.lundin@webrtc.org, kjellander@google.com
TBR=kjellander@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7828 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-08 17:11:44 +00:00
3800e13a3a Revert r7798 ("Move the AudioDecoder interface out of NetEq")
Apparently, it caused all sorts of problems I don't have time to
straighten out right now.

TBR=henrika@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7799 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-03 16:28:17 +00:00
00ba1a7dfd Move the AudioDecoder interface out of NetEq
It belongs with the codecs, next to the AudioEncoder interface.

R=henrik.lundin@webrtc.org, kjellander@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7798 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-03 14:23:23 +00:00
0cd5558f2b AudioEncoder subclass for G722
BUG=3926
R=henrik.lundin@webrtc.org, kjellander@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7779 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-02 11:45:51 +00:00
4591fbd09f Use size_t more consistently for packet/payload lengths.
See design doc at https://docs.google.com/a/chromium.org/document/d/1I6nmE9D_BmCY-IoV6MDPY2V6WYpEI-dg2apWXTfZyUI/edit?usp=sharing for more information.

This CL was reviewed and approved in pieces in the following CLs:
https://webrtc-codereview.appspot.com/24209004/
https://webrtc-codereview.appspot.com/24229004/
https://webrtc-codereview.appspot.com/24259004/
https://webrtc-codereview.appspot.com/25109004/
https://webrtc-codereview.appspot.com/26099004/
https://webrtc-codereview.appspot.com/27069004/
https://webrtc-codereview.appspot.com/27969004/
https://webrtc-codereview.appspot.com/27989004/
https://webrtc-codereview.appspot.com/29009004/
https://webrtc-codereview.appspot.com/30929004/
https://webrtc-codereview.appspot.com/30939004/
https://webrtc-codereview.appspot.com/31999004/
Committing as TBR to the original reviewers.

BUG=chromium:81439
TEST=none
TBR=pthatcher,henrik.lundin,tina.legrand,stefan,tkchin,glaznev,kjellander,perkj,mflodman,henrika,asapersson,niklas.enbom

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7726 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-20 22:28:14 +00:00
8b2058e733 Remove the state_ member from AudioDecoder
The subclasses that need a state pointer should declare them---with
the right type, not void*, to get rid of all those casts.

Two small but not quite trivial cleanups are included because they
blocked the state_ removal:

  - AudioDecoderG722Stereo now inherits directly from AudioDecoder
    instead of being a subclass of AudioDecoderG722.

  - AudioDecoder now has a CngDecoderInstance member function, which
    is implemented only by AudioDecoderCng. This replaces the previous
    practice of calling AudioDecoder::state() and casting the result
    to a CNG_dec_inst*. It still isn't pretty, but now the blemish is
    plainly visible in the AudioDecoder class declaration.

R=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7644 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-06 07:54:31 +00:00
368215dacb Revert 7623 "Remove the state_ member from AudioDecoder"
Breaks Chrome compile:
e:\b\build\slave\win_builder\build\src\third_party\webrtc\modules\audio_coding\neteq\neteq_impl.cc(131) : error C3867: 'webrtc::NetEqImpl::InsertPacketInternal': function call missing argument list; use '&webrtc::NetEqImpl::InsertPacketInternal' to create a pointer to member
e:\b\build\slave\win_builder\build\src\third_party\webrtc\modules\audio_coding\neteq\neteq_impl.cc(131) : error C3861: 'LOG_FERR1': identifier not found
e:\b\build\slave\win_builder\build\src\third_party\webrtc\modules\audio_coding\neteq\neteq_impl.cc(152) : error C3867: 'webrtc::NetEqImpl::InsertPacketInternal': function call missing argument list; use '&webrtc::NetEqImpl::InsertPacketInternal' to create a pointer to member
e:\b\build\slave\win_builder\build\src\third_party\webrtc\modules\audio_coding\neteq\neteq_impl.cc(152) : error C3861: 'LOG_FERR1': identifier not found
e:\b\build\slave\win_builder\build\src\third_party\webrtc\modules\audio_coding\neteq\neteq_impl.cc(169) : error C3867: 'webrtc::NetEqImpl::GetAudioInternal': function call missing argument list; use '&webrtc::NetEqImpl::GetAudioInternal' to create a pointer to member
...

> Remove the state_ member from AudioDecoder
> 
> The subclasses that need a state pointer should declare them---with
> the right type, not void*, to get rid of all those casts.
> 
> Two small but not quite trivial cleanups are included because they
> blocked the state_ removal:
> 
>   - AudioDecoderG722Stereo now inherits directly from AudioDecoder
>     instead of being a subclass of AudioDecoderG722.
> 
>   - AudioDecoder now has a CngDecoderInstance member function, which
>     is implemented only by AudioDecoderCng. This replaces the previous
>     practice of calling AudioDecoder::state() and casting the result
>     to a CNG_dec_inst*. It still isn't pretty, but now the blemish is
>     plainly visible in the AudioDecoder class declaration.
> 
> R=henrik.lundin@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/24169005

TBR=kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7629 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-05 00:45:58 +00:00
9e525585fd Remove the state_ member from AudioDecoder
The subclasses that need a state pointer should declare them---with
the right type, not void*, to get rid of all those casts.

Two small but not quite trivial cleanups are included because they
blocked the state_ removal:

  - AudioDecoderG722Stereo now inherits directly from AudioDecoder
    instead of being a subclass of AudioDecoderG722.

  - AudioDecoder now has a CngDecoderInstance member function, which
    is implemented only by AudioDecoderCng. This replaces the previous
    practice of calling AudioDecoder::state() and casting the result
    to a CNG_dec_inst*. It still isn't pretty, but now the blemish is
    plainly visible in the AudioDecoder class declaration.

R=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7623 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-04 21:18:47 +00:00
c78cf97ecb Remove the useless dummy state parameter to WebRtcG711_*
R=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7609 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-04 13:23:36 +00:00
721ef633d0 Remove the codec_type_ member from AudioDecoder
It isn't actually required, as evidenced by the comparative ease with
which it can be removed.

R=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7606 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-04 11:51:46 +00:00
580d367b14 Add macros and APIs for webrtc histograms.
BUG=crbug/419657

Code that links system_wrappers.gyp:system_wrappers should either:
- provide implementations for the APIs, or
- link with default implementations in system_wrappers.gyp:system_wrappers_default.

R=andresp@webrtc.org, kjellander@webrtc.org, mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7508 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-23 12:57:56 +00:00
913f7b8d5e Fix for glitches in ACM when switching desired output sample rate
The problem was that if the output sample rate is changed such from one
where no resampling is needed to a rate that requires resampling, the
first output from the resampler will contain an onset period. The
solution provided in this CL is to keep a copy of the last output frame
in ACM, and if the resampler is engaged, it will be primed with this
old frame before resampling the current frame.

BUG=3919
R=bjornv@webrtc.org, turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7479 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-21 06:54:23 +00:00
99e561f6a6 Extend AcmSwitchingOutputFrequencyOldApi with more frequencies
Also reducing test duration, since the issue is triggered anyway.
The tests that are not failing are now enabled.

BUG=3919
R=kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7453 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-15 08:50:00 +00:00
81a78930ee New ACM test to trigger audio glitch when switching output sample rate
This CL implements a new unit test. The test is designed to trigger
a problem in ACM where switching the desired output frequency creates
a short discontinuity in the output audio. The problem itself is not
solved in this CL, but the failing test is disabled for now.

BUG=3919
R=kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7443 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-14 10:49:58 +00:00
a57678a70e Workarounds for a bug in VS2013.3 linker when PGO is turned on.
See crbug.com/421607 for more details about this. This CL solve a linker bug when the PGO is turned on, without changing the behaviour or the performances.

BUG=crbug.com/421607
R=kwiberg@webrtc.org, turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7441 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-14 09:40:04 +00:00
396a5e0001 WebRtcIsac_Decode et al.: Type encoded data as uint8[], not uint16[]
This patch changes WebRtcIsac_Decode, WebRtcIsac_DecodeRcu, and
WebRtcIsacfix_Decode so that they read the encoded data from a uint8
array instead of a uint16 array.

BUG=909
R=aluebs@webrtc.org, bjornv@webrtc.org, henrik.lundin@webrtc.org, turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7431 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-13 11:23:24 +00:00
3f7f899a15 WebRtcIsac_UpdateBwEstimate et al.: Type byte streams as uint8, not uint16
This patch changes the signature of WebRtcIsac_UpdateBwEstimate,
WebRtcIsacfix_UpdateBwEstimate, and WebRtcIsacfix_UpdateBwEstimate1 so
that they expect the encoded data to be uint8 arrays, not uint16,
which is more natural. The implementations of the functions are left
unchanged for now.

BUG=909
R=aluebs@webrtc.org, bjornv@webrtc.org, henrik.lundin@webrtc.org, turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7430 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-13 11:07:06 +00:00
1172988c79 Some WebRtcIsac_* and WebRtcIsacfix_* functions: type encoded stream as uint8[]
The affected functions are

  WebRtcIsacfix_ReadFrameLen
  WebRtcIsacfix_GetNewBitStream
  WebRtcIsacfix_ReadBwIndex

and

  WebRtcIsac_ReadFrameLen
  WebRtcIsac_GetNewBitStream
  WebRtcIsac_ReadBwIndex
  WebRtcIsac_GetRedPayload

BUG=909
R=aluebs@webrtc.org, henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7429 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-13 10:53:42 +00:00
60fbd65482 Removing error triggered for disabling FEC on non-opus
A failure was triggered when one sets FEC status on a codec that does not support FEC. While it is definitely logical when one wants to enable it, it makes no good sense if one tries to disable it.

BUG=
R=tina.legrand@webrtc.org, xians@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7298 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-25 14:36:30 +00:00
7ee24a7906 WebRtcIsac_Encode and WebRtcIsacfix_Encode: Type encoded stream as uint8_t
We have to fix both at once, since there's a macro that calls one of
them or the other.

BUG=909
R=andrew@webrtc.org, bjornv@webrtc.org, henrik.lundin@webrtc.org, minyue@webrtc.org

Committed: https://code.google.com/p/webrtc/source/detail?r=7266

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7285 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-24 10:31:02 +00:00
38344ed280 Move thread_annotations.h to webrtc/base/.
R=andresp@webrtc.org, mflodman@webrtc.org
BUG=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7283 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-24 06:05:00 +00:00
0e6e4d2ff2 Reland "Converting five tests to use new AudioCoding interface" (r7258)
This CL reverts r7264. The problem was that iSAC-SWB and iSAC-FB are
not supported on android. These are now disabled.

BUG=3520
R=kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7273 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-23 12:05:34 +00:00
4f6f22f0c6 Reland (rev 7259) "Convert AcmReceiverTest to new AudioCoding interface"
Was reverted by mistake in 7260. Actual culprit was 7258.

BUG=3520
R=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7272 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-23 11:37:57 +00:00
a3c4d4dd2c Revert 7266 "WebRtcIsac_Encode and WebRtcIsacfix_Encode: Type en..."
This was causing apparently legitimate failures on the following bots:
http://chromegw/i/client.webrtc/builders/Linux64%20Release%20%5Blarge%20tests%5D/builds/2599
http://chromegw/i/client.webrtc/builders/Android%20Tests%20%28KK%20Nexus5%29%28dbg%29/builds/2023
http://chromegw/i/client.webrtc/builders/Android%20Tests%20%28JB%20Nexus7.2%29%28dbg%29/builds/1825
http://chromegw/i/client.webrtc/builders/Android%20Tests%20%28KK%20Nexus5%29/builds/2013
http://chromegw/i/client.webrtc/builders/Android%20Tests%20%28JB%20Nexus7.2%29/builds/1795

> WebRtcIsac_Encode and WebRtcIsacfix_Encode: Type encoded stream as uint8_t
> 
> We have to fix both at once, since there's a macro that calls one of
> them or the other.
> 
> BUG=909
> R=andrew@webrtc.org, bjornv@webrtc.org, henrik.lundin@webrtc.org, minyue@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/19229004

TBR=kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7267 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-23 01:32:57 +00:00
8c5740b485 WebRtcIsac_Encode and WebRtcIsacfix_Encode: Type encoded stream as uint8_t
We have to fix both at once, since there's a macro that calls one of
them or the other.

BUG=909
R=andrew@webrtc.org, bjornv@webrtc.org, henrik.lundin@webrtc.org, minyue@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7266 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-22 23:04:14 +00:00
99e404c84a Revert "Converting five tests to use new AudioCoding interface" (rev 7258).
This time reverts the Cl that actually broke the tests. Got the wrong rev before. :/

BUG=3520
TESTED=Locally with CHECKOUT_SOURCE_ROOT=`pwd` build/android/test_runner.py gtest -s modules_unittests --gtest_filter=AcmReceiverBitExactness.8kHzOutput --verbose --isolate-file-path=webrtc/modules/modules_unittests.isolate
TBR=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7264 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-22 15:49:56 +00:00
c570761288 Revert "Convert AcmReceiverTest to new AudioCoding interface" (rev 7258).
Breaks android modules_unittests tests by crashing on AcmReceiverBitExactness.8kHzOutput
Was already visible on "git cl try" before submitting on https://webrtc-codereview.appspot.com/23719004/#

BUG=3520
R=kwiberg@webrtc.org, henrik.lundin@webrtc.org
TBR=kwiberg@webrtc.org, henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7260 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-22 13:18:34 +00:00
cfe073539c Convert AcmReceiverTest to new AudioCoding interface
In order to maintain test coverage for the old API (AudioCodingModule)
during the transition period, the old test was copied to
AcmReceiverTestOldApi.

Modified and extended AudioCoding and the implementation to make the
test compile and run.

Created a converter method from new to old config struct

BUG=3520
R=kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7259 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-22 12:10:44 +00:00
eb1de5cb72 Converting five tests to use new AudioCoding interface
The converted tests are:
AcmIsacMtTest
AcmReceiverBitExactness
AcmSenderBitExactness
AudioCodingModuleMtTest
AudioCodingModuleTest

In order to maintain test coverage for the old API (AudioCodingModule)
during the transition period, the old tests were copied and given the
suffix OldApi:
AcmIsacMtTestOldApi
AcmReceiverBitExactnessOldApi
AcmSenderBitExactnessOldApi
AudioCodingModuleMtTestOldApi
AudioCodingModuleTestOldApi

BUG=3520
R=kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7258 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-22 12:07:12 +00:00
1972ff8a6e Mark all virtual overrides in the hierarchy of Module as virtual and OVERRIDE.
This will make a subsequent change I intend to do safer, where I'll change the
return type of one of the base Module functions, by breaking the compile if I
miss any overrides.

This also highlighted a number of unused functions (in many cases apparently
virtual "overrides" of no-longer-existent base functions).  I've removed some of
these.

This also highlighted several cases where "virtual" was used unnecessarily to
mark a function that was only defined in one class.  Removed "virtual" in those
cases.

BUG=none
TEST=none
R=andrew@webrtc.org, henrik.lundin@webrtc.org, mallinath@webrtc.org, mflodman@webrtc.org, stefan@webrtc.org, turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7146 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-11 06:20:28 +00:00
47658f1269 Mark all virtual overrides in the hierarchy of AudioPacketizationCallback,
RTPStream, and NetEq as such.  Also mark all other virtual overrides in the same
files.

This will make further changes to these classes safer by ensuring that the
compile breaks if the base class changes and not all overrides are fixed.

This also deletes ACMTest.cc, which existed solely to define ~ACMTest(), which
was marked pure virtual in the header.  (Pure virtual destructors still need a
definition.)  Because there is another pure virtual method in this class, the
class is already abstract, so there's no benefit to making the desturctor pure.
Making it non-pure allows removing the separate source file.

BUG=none
TEST=none
R=henrik.lundin@webrtc.org, niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7144 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-10 22:14:59 +00:00
23a5e3c3b0 Remove DestructEncoderInst and its codec-specific implementations.
This method is seemingly never called.

BUG=none
TEST=none
R=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7131 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-10 08:52:26 +00:00
c64246f42c Set a default speech type in iSAC wrapper
If the decoder encounters an error, it may leave the speech type
unassigned, leading to a use-of-uninitialized-value in subsequent lines.

BUG=crbug/411162
R=bjornv@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7104 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-08 13:40:58 +00:00
ed8bcd3ac5 Starting to implement the new ACM API
The new implementation class is called AudioCodingImpl, and will in the
end replace AudioCodingModuleImpl.

This is work in progress.

BUG=3520
R=kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7103 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-08 13:13:19 +00:00
3c0aae17f0 Change gflags and gmock includes to be full paths.
This will fix PRESUBMIT warnings developers will get due to
r7014 and r7020.

Also some minor style cleanup in:
webrtc/modules/audio_coding/main/test/RTPFile.cc
webrtc/modules/audio_coding/neteq/test/RTPjitter.cc

BUG=
R=henrik.lundin@webrtc.org, niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7058 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-04 09:55:40 +00:00
51bb33cc18 ACMOpus: Remove useless member variable fec_enabled_
R=henrik.lundin@webrtc.org, minyue@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7057 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-04 08:42:44 +00:00
adee8f9242 Renaming SetOpusMaxBandwidth to SetOpusMaxPlaybackRate
This is to maintain the consistency with the Opus codec option "maxplaybackrate" defined in http://tools.ietf.org/html/draft-spittka-payload-rtp-opus-03

BUG=
R=tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7038 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-03 12:28:06 +00:00
8dbeb5b301 Adding more codecs to the AcmSenderBitExactness
New tests include iSAC-swb, PCM16b (8, 16, 32 kHz; mono and stereo),
PCM A/u (mono and stereo), iLBC, G.722 (mono and stereo), and Opus.

Also adding checks on number of output channels.

BUG=3521
R=kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7016 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-01 14:19:00 +00:00
a5b7869f3d Add CHECK and friends from Chromium.
Replace FATAL_ERROR_IF with the more familiar (to Chromium developers)
CHECK and DCHECK. The full Chromium implementation is fairly elaborate
but I copied enough to get us most of the benefits. I believe the main
missing component is a more advanced stack dump. For this bit I relied
on the V8 implementation.

There are a few minor modifications from the Chromium original:
- The FatalMessage class is specialized for logging fatal error
messages and aborting. Chromium uses the general LogMessage class,
which we could consider moving towards in the future.
- NOTIMPLEMENTED() and NOTREACHED() have been removed, partly because
I don't want to rely on our logging.h until base/ and system_wrappers/
are consolidated.
- FATAL() replaces LOG(FATAL).

Minor modifications from V8's stack dump:
- If parsing of a stack trace symbol fails, just print the unparsed
symbol. (I noticed this happened on Mac.)
- Use __GLIBCXX__ and __UCLIBC__. This is from examining the backtrace
use in Chromium.

UNREACHABLE() has been removed because its behavior is different than
Chromium's NOTREACHED(), which is bound to cause confusion. The few uses
were replaced with FATAL(), matching the previous behavior.

Add a NO_RETURN macro, allowing us to remove unreachable return
statements following a CHECK/FATAL.

TESTED=the addition of dummy CHECK, DCHECK, CHECK_EQ and FATAL did the
did the right things. Stack traces work on Mac, but I don't get symbols
on Linux.

R=henrik.lundin@webrtc.org, kwiberg@webrtc.org, tommi@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7003 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-28 16:28:26 +00:00
038cee2401 Add send-side bit-exactness test for AudioCoding Module
This test verifies bit exactness for the send-side of ACM. The test
setup is a chain of three different test classes:

test::AcmSendTest -> AcmSenderBitExactness -> test::AcmReceiveTest

The receiver side is driving the test by requesting new packets from
AcmSenderBitExactness::NextPacket(). This method, in turn, asks for the
packet from test::AcmSendTest::NextPacket, which inserts audio from the
input file until one packet is produced. (The input file loops
indefinitely.)  Before passing the packet to the receiver, the
AcmSenderBitExactness class verifies the packet header and updates a
payload checksum with the new payload. The decoded output from the
receiver is also verified with a (separate) checksum.

The current CL only adds tests for 30 ms and 60 ms iSAC. More codecs
will be added in coming changes.

BUG=3521
R=kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6949 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-21 08:59:14 +00:00
e9b493e763 Removing macro in acm_opus.cc
Remove it since macros are not recommended to use according to code style guide.

BUG=
R=tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6917 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-18 12:06:31 +00:00
e8018b0b24 Adding a 5% as packet loss level for Opus
This is a follow up of
https://webrtc-codereview.appspot.com/16979004/

The purpose of this CL is to add 5% as a level for optimizing the packet loss rate to report to Opus. Adding such a level makes the grid finer.

BUG=
R=tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6902 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-14 12:16:12 +00:00
5af76aedcd Removing TODOs related to AcmReceiverBitExactness checksums
Should have been part of r6883.

BUG=3519
R=tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6884 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-13 13:02:00 +00:00
388bd79a76 Update checksums for AcmReceiverBitExactness on android
This should have been a part of r6882.

BUG=3519
TBR=tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6883 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-13 10:38:15 +00:00
023f12fb6e NetEq background noise generation off by default
This CL turns the background noise generation in NetEq off by default. The noise generation used to kick in during long-duration packet losses, when there was no point in extrapolating the latest audio any longer. However, this sometimes produces annoying noise in situations where silence would have been preferable.

With this change, a long packet-loss concealment will be faded out to zeros instead of a low noise.

Reference files are updated where needed.

BUG=3519
R=tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6882 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-13 09:45:40 +00:00
6aac93bd9c Adding SetOpusMaxBandwidth in VoE and ACM
This is a step to solve
https://code.google.com/p/webrtc/issues/detail?id=1906

In particular, we add an API in VoE and ACM to call Opus's API of setting maximum bandwidth.

TEST = added a test in voe_cmd_test and listened to the result

BUG=
R=henrika@google.com, henrika@webrtc.org, turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6869 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-12 08:13:33 +00:00
1d956dd1a7 Since the packet loss rate cannot be estimated accurately, there is always a mismatch between the estimated packet loss rate and the true one. Such a mismatch will make Opus FEC suboptimal.
It is advisable to set the packet loss rate of FEC conservatively. Say, if the estimated loss rate is 5%, we can set it to 1%. The risk of degradation in quality is small and the overall performance is good.

BUG=
R=henrik.lundin@webrtc.org, turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6844 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-07 12:31:36 +00:00