Commit Graph

323 Commits

Author SHA1 Message Date
456f01441a Re-allowing RED in voice engine.
Path of audio RED packets was blocked in r4692 by accident. It ought be enabled again.

BUG=3619
R=henrika@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8137 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-23 11:58:42 +00:00
ff108fe508 Revert 8125 "Modify some tests to never use DTX disable mode"
Broke compile on the Chromium FYI bots:
http://build.chromium.org/p/chromium.webrtc.fyi/builders/Win%20Builder/builds/3483
http://build.chromium.org/p/chromium.webrtc.fyi/builders/Mac/builds/16028
http://build.chromium.org/p/chromium.webrtc.fyi/builders/Linux/builds/14293

Error:
In file included from ../../third_party/webrtc/voice_engine/channel.cc:13:
In file included from ../../third_party/webrtc/base/checks.h:22:
In file included from ../../third_party/webrtc/overrides/webrtc/base/logging.h:35:
../../base/logging.h:367:9:error: 'LOG' macro redefined [-Werror,-Wmacro-redefined]
#define LOG(severity) LAZY_STREAM(LOG_STREAM(severity), LOG_IS_ON(severity))
        ^
../../third_party/webrtc/system_wrappers/interface/logging.h:123:9: note: previous definition is here
#define LOG(sev) \
        ^
In file included from ../../third_party/webrtc/voice_engine/channel.cc:13:
In file included from ../../third_party/webrtc/base/checks.h:22:
../../third_party/webrtc/overrides/webrtc/base/logging.h:189:9:error: 'LOG_V' macro redefined [-Werror,-Wmacro-redefined]
#define LOG_V(sev) DIAGNOSTIC_LOG(sev, NONE, 0)
        ^
../../third_party/webrtc/system_wrappers/interface/logging.h:129:9: note: previous definition is here
#define LOG_V(sev) \
        ^
2 errors generated.

> Modify some tests to never use DTX disable mode
> 
> DTX disable mode will be removed as a part of the ACM redesign work.
> 
> COAUTHOR:kwiberg@webrtc.org
> 
> R=henrika@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/34769004

TBR=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8129 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-22 19:02:03 +00:00
043db24767 Modify some tests to never use DTX disable mode
DTX disable mode will be removed as a part of the ACM redesign work.

COAUTHOR:kwiberg@webrtc.org

R=henrika@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8125 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-22 13:30:58 +00:00
8315d7de85 Remove dual stream functionality in VoiceEngine
This is old code that is no longer in use. The clean-up is part of the
ACM redesign work. The corresponding code in ACM will be deleted in a
follow-up CL.

BUG=3520
R=henrika@webrtc.org, pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8060 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-14 16:07:26 +00:00
16825b1a82 Use int64_t more consistently for times, in particular for RTT values.
Existing code was inconsistent about whether to use uint16_t, int, unsigned int,
or uint32_t, and sometimes silently truncated one to another, or truncated
int64_t.  Because most core time-handling functions use int64_t, being
consistent about using int64_t unless otherwise necessary minimizes the number
of explicit or implicit casts.

BUG=chromium:81439
TEST=none
R=henrik.lundin@webrtc.org, holmer@google.com, tommi@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8045 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-12 21:51:21 +00:00
d16e839c6d Rtp-Rtcp sender cleanup.
Some setter functions from Rtp and Rtcp Sender never return negative values. Remove return results from those functions.

Also removed const on non-pointer/reference types for related files.

BUG=
R=henrika@webrtc.org, pbos@webrtc.org, stefan@webrtc.org

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

Patch from Changbin Shao <changbin.shao@intel.com>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7962 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-19 13:49:55 +00:00
ce4e9a3562 Refactor some receive-side stats.
Removes polling of CName as well as receive codec statistics in favor of
internal callbacks keeping a statistics struct up to date.

R=mflodman@webrtc.org, stefan@webrtc.org
BUG=1667

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7950 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-18 13:50:16 +00:00
6fd9308420 Suppressing warnings in GetRTT() in VoE.
GetRTT() was separated from GetRTPStatistics() but the warnings were not updated.

Now GetRTT() is only only used by GetRTPStatistics() and the warning pops up pointlessly and too often.

This CL is to suppress these warnings and maintain a proper warning for GetRTPStatistics().

BUG=
R=henrika@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7899 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-15 14:56:44 +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
ece3890d3a Report total bitrate for all streams in GetStats.
This regression wasn't caught because I accidentally disabled multiple
streams for EndToEndTest.GetStats in a refactoring.

R=stefan@webrtc.org, xians@webrtc.org
BUG=1667

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7701 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-14 11:52:04 +00:00
3cefbc99f4 Mark all virtual overrides in the hierarchy of Transport as virtual + OVERRIDE.
This also marks all virtual overrides of other classes in the same files. 

This will make a subsequent change I intend to do safer, where I'll change the 
argument types of the base Transport functions, by breaking the compile if I 
miss any overrides. 

This also highlighted a number of unused functions. I've removed some of these. 

TBR=mflodman@webrtc.org, pkasting@chromium.org
BUG=none 
TEST=none

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7421 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-10 09:42:53 +00:00
2c0cdbce22 Estimating NTP time with a given RTT.
RemoteNtpTimeEstimator needed user to give a remote SSRC and it intended to call RtpRtcp module to obtain RTT, to be able to calculate Ntp time.

When RTT cannot be directly obtained from the RtpRtcp module with the specified SSRC, RemoteNtpTimeEstimator would fail.

This change allows RemoteNtpTimeEstimator to calculate NTP with an external RTT estimate.

An immediate benefit is that capture_start_ntp_time_ms_ can be obtained in a Google hangout call.

BUG=

TEST=chromium + hangout call
R=stefan@webrtc.org, xians@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7407 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-09 10:52:43 +00:00
4cebd84c79 Reland "Remove DTMF status methods from Voice Engine" r7276
This reverts r7277.

TBR=henrika@webrtc.org,pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7353 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-01 08:23:21 +00:00
3987f10c11 Revert "Remove DTMF status methods from Voice Engine" r7276
This change caused some trouble.

TBR=henrika@webrtc.org,pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7277 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-23 13:15:14 +00:00
bf7b9e0081 Remove DTMF status methods from Voice Engine
These methods are not used.

R=henrika@webrtc.org, pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7276 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-23 12:54:04 +00:00
64a2f10f4b Remove Get/SetNetEQPlayoutMode APIs
These are not used anymore.

R=henrika@webrtc.org, pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7262 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-22 14:30:10 +00:00
2b58a4433f Calculating round-trip-time in send-only channel in VoE.
TESTS=built chromium and tested with 1:1 hangout call

BUG=
R=stefan@webrtc.org, xians@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7147 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-11 07:51:53 +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
8e24d87778 Fix race in Voice Engine's Channel where it accesses RemoteNtpTimeEstimator from both the audio playback thread and the network thread without locking.
BUG=3681
R=pbos@webrtc.org, xians@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7030 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-02 18:58:24 +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
2a8df7c375 Fixing two bugs in voe_cmd_test.
I am trying to add a new functionality to voe_cmd_test, and I found two bugs:

1. in r5928, a functionality was removed but the item in the menu was not. Functionalities after it are offset.

r5928: https://code.google.com/p/webrtc/source/detail?r=5928&path=/trunk/webrtc/voice_engine/test/cmd_test/voe_cmd_test.cc

2. in r6736, opus are set to output 48 kHz audio. When mixing Opus output with an audio file, channel.cc may go wrong.

r6736: https://code.google.com/p/webrtc/source/detail?r=6736

BUG=
R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6836 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-06 10:05:19 +00:00
1ebd2e96df Remove timestamp retreival warning/error.
An error reported while retreiving playout timestamp if no RTP packet received, yet. This causes an overflow of errors/warnings in applications where few channel are created but only one is actively engaged in a conversation. Therefore, we don't find such logging informative (there is no check upon correctness of timestamp computaion only if a packet already received).

BUG=3545
TEST=manual with voe_cmd_test,try bots
R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6781 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-25 17:50:10 +00:00
74aaf29a0f Raw packet loss rate reported by RTP_RTCP module may vary too drastically over time. This CL is to add a filter to the value in VoE before lending it to audio coding module.
The filter is an exponential filter borrowed from video coding module.

The method is written in a new class called PacketLossProtector (not sure if the name is nice), which can be used in the future for more sophisticated logic.

BUG=
R=henrika@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6709 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-16 21:28:26 +00:00
eec6ecdb1e Landing pkasting's webrtc fixes for MSVC level 4 warnings in WebRTC.
---

Fixes for re-enabling more MSVC level 4 warnings: webrtc/ edition

This contains fixes for the following sorts of issues:
* Possibly-uninitialized local variable
* Signedness mismatch
* Assignment inside conditional

This also contains a small number of other cleanups to nearby code. In
particular several warning-disables for MSVC are removed because they don't seem
to be necessary (either that warning is not enabled or the code does not trigger
it).

BUG=crbug.com/81439
TEST=none
R=henrika@webrtc.org, pkasting@chromium.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6667 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-11 19:09:59 +00:00
4ef438e2de Remove the send-side cname getter APIs from voice and video engine.
These APIs aren't being used, and introduces deadlocks when using GetStats() in the new Call api. Having getters for cname at the send-side is pointless, as it's always the user who sets the cname.

R=henrika@webrtc.org, pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6659 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-11 09:55:30 +00:00
94454b71ad Fix the chain that propagates the audio frame's rtp and ntp timestamp including:
* In AudioCodingModuleImpl::PlayoutData10Ms, don't reset the timestamp got from GetAudio.
* When there're more than one participant, set AudioFrame's RTP timestamp to 0.
* Copy ntp_time_ms_ in AudioFrame::CopyFrom method.
* In RemixAndResample, pass src frame's timestamp_ and ntp_time_ms_ to the dst frame.
* Fix how |elapsed_time_ms| is computed in channel.cc by adding GetPlayoutFrequency.

Tweaks on ntp_time_ms_:
* Init ntp_time_ms_ to -1 in AudioFrame ctor.
* When there're more than one participant, set AudioFrame's ntp_time_ms_ to an invalid value. I.e. we don't support ntp_time_ms_ in multiple participants case before the mixing is moved to chrome.

Added elapsed_time_ms to AudioFrame and pass it to chrome, where we don't have the information about the rtp timestmp's sample rate, i.e. can't convert rtp timestamp to ms.

BUG=3111
R=henrik.lundin@webrtc.org, turaj@webrtc.org, xians@webrtc.org
TBR=andrew
andrew to take another look on audio_conference_mixer_impl.cc

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6346 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-05 20:34:08 +00:00
ef92755780 Have RTX be enabled by setting an RTX payload type instead of by setting an RTX SSRC.
This makes it easier to disable RTX by filtering out the RTX codec during call setup/signaling, and won't require that also the SSRCs are filtered out.

BUG=1811
R=mflodman@webrtc.org, pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6335 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-05 08:25:29 +00:00
c1a40a7b68 This CL is to adding feedback of packet loss rate to encoder in voice engine. A direct reason for doing it is to make use of Opus FEC, which can adapt itself to changes in the packet loss rate.
This CL is going to be combined with another CL in ACM, which is to be landed.

TEST=passed_try_bots
BUG=
R=stefan@webrtc.org, xians@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6262 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-28 09:52:06 +00:00
aa5ea1c0f9 1. Make a clear distinction between codec internal FEC and RED, confusing mentioning of FEC in the old codes is replaced by RED
2. Add two new APIs to configure codec internal FEC

3. Add a test and listened to results. This is based modifying EncodeDecodeTest and deriving a new class from it.

New ACM gives good result.
Old ACM does not use NetEq 4, so FEC won't be decoded.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6233 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-23 15:16:51 +00:00
82c4b8531c Calculate capture ntp timestamp in local timebase for decoded audio frame.
BUG=3111
R=stefan@webrtc.org, xians@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6205 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-20 22:55:01 +00:00
cb711f77d2 Add interface to propagate audio capture timestamp to the renderer.
BUG=3111
R=andrew@webrtc.org, turaj@webrtc.org, xians@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6189 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-19 17:39:11 +00:00
21299d4e00 Remove the use of AudioFrame::energy_ from AudioProcessing and VoE.
We want to remove energy_ entirely as we've seen that carrying around
this potentially invalid value is dangerous.

Results in the removal of AudioBuffer::is_muted(). This wasn't used in
practice any longer, after the level calculation moved directly to
channel.cc

Instead, now use ProcessMuted() in channel.cc, to shortcut the level
computation when the signal is muted.

BUG=3315
TESTED=Muting the channel in voe_cmd_test results in rms=127.
R=bjornv@webrtc.org, kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6159 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-14 19:00:59 +00:00
6b02eea6ac Removes parts of the webrtc::VoEFile sub API as part of a clean-up operation where the goal is to remove unused APIs.
BUG=3206
R=niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6103 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-12 12:24:10 +00:00
66021e0fa2 Removes parts of the webrtc::VoERTP_RTCP sub API as part of a clean-up operation where the goal is to remove unused APIs.
BUG=3206
R=niklas.enbom@webrtc.org, solenberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6100 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-12 08:53:27 +00:00
382c0c209d Allow the RTP level indicator computation to work at any sample rate.
Break out the computation to a separate class, and call directly into
this from channel.cc rather than going through AudioProcessing. This
circumvents AudioProcessing's sample rate limitations.

We now compute the RMS over all samples rather than downmixing to a
single channel. This makes the call point in channel.cc easier, is
more "correct" and should have similar (negligible) complexity.

This caused slight changes in the RMS output, so the ApmTest.Process
reference has been updated. Snippet of the failing output:

[ RUN      ] ApmTest.Process
Running test 4 of 12...
Value of: rms_level
  Actual: 27
Expected: test->rms_level()
Which is: 28
Running test 5 of 12...
Value of: rms_level
  Actual: 26
Expected: test->rms_level()
Which is: 27
Running test 6 of 12...
Value of: rms_level
  Actual: 26
Expected: test->rms_level()
Which is: 27
Running test 10 of 12...
Value of: rms_level
  Actual: 27
Expected: test->rms_level()
Which is: 28
Running test 11 of 12...
Value of: rms_level
  Actual: 26
Expected: test->rms_level()
Which is: 27
Running test 12 of 12...
Value of: rms_level
  Actual: 26
Expected: test->rms_level()
Which is: 27

BUG=3290
TESTED=Chrome assert is avoided and both voe_cmd_test and apprtc
produce reasonable printed out results from RMS().

R=bjornv@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6056 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-05 18:22:21 +00:00
8f69330310 Replace scoped_array<T> with scoped_ptr<T[]>.
scoped_array is deprecated. This was done using a Chromium clang tool:
http://src.chromium.org/viewvc/chrome/trunk/src/tools/clang/rewrite_scoped_ar...

except for the few not-built-on-Linux files which were updated manually.

TESTED=trybots
BUG=2515
R=niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5985 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-25 23:10:28 +00:00
93fd25c20c * Add webrtc::VoERTP_RTCP::SetReceiveAudioLevelIndicationStatus.
* Cast rtp header extension to int in log in rtp_utility.cc.

BUG=3237
TEST=try bots
R=stefan@webrtc.org, xians@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5975 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-24 20:33:08 +00:00
34fe0153b9 Reland "Stop using ACM factory in VoiceEngine"
This change was originally landed as r5954, but had to be reverted in
r5955 due to bots failing. The failures should be fixed in r5956,
so the original change is now relanded.

BUG=2996
TBR=henrika@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5958 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-22 19:04:34 +00:00
0c108d0b4d Revert "Stop using ACM factory in VoiceEngine"
Some of the bots where breaking.

TBR=henrika@webrtc.org
BUG=2996

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5955 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-22 09:44:00 +00:00
139706ec0b Stop using ACM factory in VoiceEngine
The factory injection was introduces in order to facilitate switching
between ACM1 and ACM2. Now, ACM1 is being deprecated, and this switching
mechanism is no longer needed.

BUG=2996
R=henrika@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5954 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-22 08:51:21 +00:00
66803489f9 Removes parts of the VoEBase sub API as part of a clean-up operation where the goal is to remove unused APIs.
BUG=3206
R=henrik.lundin@webrtc.org, juberti@webrtc.org, niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5928 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-17 10:45:01 +00:00
0f7375504a Removes VoECodec sub API as part of a clean-up operation where the goal is to remove unused APIs.
BUG=3206
R=juberti@webrtc.org, niklas.enbom@webrtc.org, tina.legrand@webrtc.org, turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5927 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-17 10:38:08 +00:00
f927fd6481 Re-enable AGC tests:
* AgcConfigTest.HasCorrectDefaultConfiguration
* AgcConfigTest.DealsWithInvalidParameters
* AgcConfigTest.CanGetAndSetAgcStatus
* AgcConfigTest.HasCorrectDefaultRxConfiguration
* AgcConfigTest.DealsWithInvalidRxParameters
* AgcConfigTest.CanGetAndSetRxAgcStatus
* AudioProcessingTest.AgcIsOnByDefault
* AudioProcessingTest.CanEnableAgcWithAllModes
* AudioProcessingTest.RxAgcShouldBeOffByDefault
* AudioProcessingTest.CanTurnOnDigitalRxAcg
* AudioProcessingTest.CannotTurnOnAdaptiveAnalogRxAgc

BUG=webrtc:2784
R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5918 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-16 11:58:18 +00:00
b9309beea4 Removes VoECallReport sub API as part of a clean-up operation where the goal is to remove unused APIs.
BUG=3206
R=niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5896 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-14 14:12:50 +00:00
dc80bae2a6 Convert logs in rtp rtcp module from WEBRTC_TRACE into LOG.
Clean some logs and add asserts in the way.

BUG=3153
R=mflodman@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5861 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-08 11:06:12 +00:00
40ee3d07ed Consolidate audio conversion from Channel and TransmitMixer.
Replace the two versions with a single DownConvertToCodecFormat. As
mentioned in comments, this could be further consolidated with
RemixAndResample but we should write a full audio converter class in
that case.

Along the way:
- Fix the bug present in Channel::Demultiplex with mono input and a
stereo codec.
- Remove the 32 kHz max from the OnDataAvailable path. This avoids a
48 -> 32 -> 48 conversion when VoE is passed 48 kHz audio; instead we
get a straight pass-through to ACM. The 32 kHz conversion is still
needed in the RecordedDataIsAvailable path until APM natively supports
48 kHz.
- Merge resampler improvements from ACM1 to ACM2. This allows ACM to
handle 44.1 kHz audio passed to VoE and was originally done here:
https://webrtc-codereview.appspot.com/1590004
- Reuse the RemixAndResample unit tests for DownConvertToCodecFormat.
- Remove unused functions from utility.cc.

BUG=3155,3000,b/12867572
TESTED=voe_cmd_test using both the OnDataAvailable and
RecordedDataIsAvailable paths, with a captured audio format of all
combinations of {44.1,48} kHz and {1,2} channels, running through all
codecs, and finally using both ACM1 and ACM2.

R=henrika@webrtc.org, turaj@webrtc.org, xians@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5843 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-03 21:56:01 +00:00
d0a81d91ff VoE Channel: Don't register codecs when stopping receiver
VoiceEngine's Channel::StopReceiving() would call
RegisterReceiveCodecsToRTPModule(), which caused some errors
with RED and ULP-FEC. In particular, an error message would be
printed when hanging up a call in voe_cmd_test application.

BUG=3085
R=henrika@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5811 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-31 07:31:53 +00:00
b1f5010075 VoE changes to allow forwarding of packets from VoE to ViE BWE.
BUG=
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5757 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-24 10:38:25 +00:00
d66929995f Prevent playout delay wrap-around in VoiceEngine
In the case where a network glitch causes a packet to arrive so late
that the jitter buffer has gone into expand mode, the playout timestamp
could have been increased to a value that is larger than the RTP
timestamp of the late packet when it finally arrives. This causes
the difference to be negative, and would make the value wrap (unsigned).

With this fix, the difference is set to zero when the playout
timestamp is ahead of the incoming RTP timestamp. Further down in the
method, a zero-value will lead to the averaging filter not being updated.

BUG=3080
R=henrika@webrtc.org, tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5735 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-20 12:04:09 +00:00
944cbeb292 Resolves TSan v2 warnings in voe_auto_test.
See bug report for details.

BUG=1590
R=tommi@webrtc.org, xians@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5714 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-18 10:32:33 +00:00