Commit Graph

59 Commits

Author SHA1 Message Date
f3930e941c Small refactoring of AudioProcessing use in channel.cc.
- Apply consistent naming.
- Use a scoped_ptr for rx_audioproc_.
- Remove now unnecessary AudioProcessing::Destroy().

R=bjornv@webrtc.org, xians@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4784 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-18 22:37:32 +00:00
e509f943ed This issue is related to
https://chromereviews.googleplex.com/9908014/

I was thinking about shipping ACM2 from the signal repository. There seems to be too many changes in one CL.

BUG=
R=andrew@webrtc.org, turaj@webrtc.org, xians@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4733 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-12 17:03:00 +00:00
7bb8f02274 Adds support for combining RTX and FEC/RED.
This is accomplished by breaking out RTX and FEC/RED functionality from the RTP module and keeping track of the base payload type, that is the payload type received when not receiving RTX.

Enables retransmissions over RTX by default in the loopback test.

BUG=1811
TESTS=voe/vie_auto_test --automated and trybots.
R=mflodman@webrtc.org, pbos@webrtc.org, xians@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4692 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-06 13:40:11 +00:00
b295a3f592 Update SSRC in RtpRtcp for audio channel so that it can have NTP values for further AV sync.
Background:
Since we had http://review.webrtc.org/2048004, the SSRC value in
RtpRtcp for audio hasn't been updated. Because this prevents NTP update in RtpRtcp, the sync logic in ViESyncModule::Process() does not work.

BUG=b/10484087
TEST= pass 'git try' except tests already broken in http://build.chromium.org/p/tryserver.webrtc/console
R=henrika@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4638 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-29 07:34:12 +00:00
286fe0b04d Revert 4585 "Revert "Revert 4582 "Reverts a second set of reverts caused by a bug in ..."""
...and fixes the RTCP bug.

BUG=2277
TBR=pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4588 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-21 20:58:21 +00:00
a0218a84d1 Revert 4582 "Reverts a second set of reverts caused by a bug in ..."
> Reverts a second set of reverts caused by a bug in a dependency.
> 
> Revert "Revert r4328"
> 
> Revert "Revert r4322 "Support sending multiple report blocks and keeping track
> of statistics on"
> 
> BUG=1811
> R=henrika@webrtc.org, pbos@webrtc.org, tina.legrand@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/2072004

TBR=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4585 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-21 19:44:13 +00:00
1a65d6c36b Reverts a second set of reverts caused by a bug in a dependency.
Revert "Revert r4328"

Revert "Revert r4322 "Support sending multiple report blocks and keeping track
of statistics on"

BUG=1811
R=henrika@webrtc.org, pbos@webrtc.org, tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4582 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-21 16:22:21 +00:00
822fbd8b68 Update talk to 50918584.
Together with Stefan's http://review.webrtc.org/1960004/.

R=mallinath@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4556 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-15 23:38:54 +00:00
09e8c47ee5 Merge r4374 from stable to trunk.
r4374 was mistakenly committed to stable, so this is to re-merge back to trunk.

Store the sequence number in StopSend() and resume it in StartSend().

When restarting the microphone device, we call StopSend() first, then
StartSend() later. Since we reset sequence number in StopSend(), it sometimes
causes libSRTP to complain about packets being replayed. Libjingle work around
it by caching the sequence number in WebRtcVoiceEngine.cc, and call
SetInitSequenceNumber() to resume the sequence number before StartSend().Store the sequence number in StopSend() and resume it in StartSend().

When restarting the microphone device, we call StopSend() first, then
StartSend() later. Since we reset sequence number in StopSend(), it sometimes
causes libSRTP to complain about packets being replayed. Libjingle work around
it by caching the sequence number in WebRtcVoiceEngine.cc, and call
SetInitSequenceNumber() to resume the sequence number before StartSend().

This patch fixes this problem by storing the sequence number in StopSend(), and
resume it in StartSend(). So that we can remove the workaround in libjingle.

BUG=2102
R=tommi@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4451 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-31 16:30:19 +00:00
8fff1f065e Merge r4394 from stable to trunk.
r4326 was mistakenly committed to stable, so this is to re-merge back to trunk.

Fixed the AGC and interface problems on the new path.

In order to make the AGC work properly, we need to cache the volume value passed
by the callback, compare it with the value returned by
shared->transmit_mixer()->CaptureLevel(). If they are the same, we need to
return 0 to indicate no volume needs changing, otherwise return the new volume.
By doing this, we avoid setting the volume all the same, which allows the users
to change the volume manually.

This patch also fixes some minor issues with the interfaces too: make the int
channel[] const, and correct the order of the input params in
channel::Demultiplex.

R=tommi@webrtc.org

BUG=[2134]
TEST=compile && manual AGC test

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4450 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-31 16:27:42 +00:00
2f84afad30 Merge r4326 from stable to trunk.
r4326 was mistakenly committed to stable, so this is to re-merge back to trunk.

Add new interface to support multiple sources in webrtc.
CaptureData() will be called by chrome with a flag |need_audio_processing| to
indicate if the data needs to be processed by APM or not. Different from the old
interface that will send the data to all voe channels, the new interface will
specify a list of voe channels that the data is demultiplexing to.

R=tommi@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4449 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-31 16:23:37 +00:00
64e2cbf184 clean up incomplete revert in r4357
Also revert r4319, will follow up with pbos

Reason for recent series of reverts: video freezes when testing with packet loss

R=mikhal@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4359 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-16 21:52:59 +00:00
aa4d96a134 Revert r4301
R=mikhal@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4357 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-16 19:25:04 +00:00
4888fd4827 Revert r4321 "Fix uninitialized value warning in rtp_payload_registry and make sure we return an error if the payload type isn't registered"
R=pwestin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4345 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-15 21:21:48 +00:00
b7eda43810 Revert r4322 "Support sending multiple report blocks and keeping track of statistics on
several SSRCs"

R=pwestin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4344 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-15 21:08:27 +00:00
5b10d8fb18 Fix some voe_auto_test uninitialised-value errors.
BUG=
R=tommi@webrtc.org, xians@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4332 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-11 15:50:07 +00:00
717d147ebb Support sending multiple report blocks and keeping track of statistics on several SSRCs.
BUG=1811
TEST=vie_auto_test --automated, voe_auto_test --automated, trybots
R=andresp@webrtc.org, tommi@webrtc.org, xians@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4322 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-10 13:39:27 +00:00
9de89a6f6b Fix uninitialized value warning in rtp_payload_registry and make sure we return an error if the payload type isn't registered.
R=pbos@webrtc.org, xians@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4321 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-10 12:42:15 +00:00
08933a5dfb Initialize payload-type frequency in channel.cc.
Uninitialized values triggered divide-by-zero crashes in voe_auto_test.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4319 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-10 10:06:29 +00:00
66b2e5c05a Breaking out receive-stats, rtp-payload-registry and rtp-receiver from the
rtp_rtcp implementation.

This refactoring significantly reduces the receive-side RTP parser and receiver
complexity, and makes it possible to implement RTX correctly by having two
instances of receive-statistics.

With this change the dead-or-alive and packet timeout APIs are removed.

TEST=trybots, vie_auto_test, voe_auto_test
BUG=1811
R=mflodman@webrtc.org, pbos@webrtc.org, xians@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4301 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-05 14:30:48 +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
da710448b2 Fix size_t to int conversion error on Win64.
TBR=pwestin

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4192 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-07 01:43:12 +00:00
8d80fa83fc Fix for STL vector function data not available.
R=niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4190 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-06 21:33:06 +00:00
d30859e58e Connect ACM with RTP module for audio NACK.
Depends on http://review.webrtc.org/1507004/

R=henrika@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4189 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-06 21:09:01 +00:00
db24995680 Wire up Nack for Voe
R=henrika@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4184 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-05 15:33:20 +00:00
a5cb98cbbd Breaking out RTP header parsing from the RTP module.
This is the first step in order to move bandwidth estimation closer to the network. The goal is to have RTP header parsing and bandwidth estimation before voice and video engine, and have a joint estimate for audio and video.

Moving bandwidth estimation before the RTP module is also required for RTX.

TEST=vie_auto_test, voe_auto_test, trybots.
BUG=1811
R=andresp@webrtc.org, henrika@webrtc.org, mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4129 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-29 12:12:51 +00:00
e46c8d3875 API to control target delay in NetEq jitter buffer. NetEq maintains the given delay unless channel conditions require a higher delay.
TEST=unit-test, manual, trybots.
R=henrik.lundin@webrtc.org, henrika@webrtc.org, mflodman@webrtc.org, mikhal@webrtc.org, stefan@webrtc.org, tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4087 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-22 20:39:43 +00:00
9213521ea9 Remove const for plain data types in voice_engine/
BUG=1644
R=henrikg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4018 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-14 08:31:39 +00:00
4392d5f9f8 Fix for "RTP dynamic payload type 100 is reserved"
TBR=perkj
BUG=227036 (in crbug.com)

TEST=out\Debug\voe_auto_test.exe --automated --gtest_filter=Dtmf* where I
manually modified the test and used 100 as new PT (which I first verified was
already used by CN, 48000).

BUG=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3859 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-17 07:34:25 +00:00
1de01354e6 Adding playout buffer status to the voe video sync
Review URL: https://webrtc-codereview.appspot.com/1311004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3835 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-11 20:23:35 +00:00
6141e13873 WebRtc_Word32 -> int32_t in voice_engine/
BUG=314

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3792 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-09 10:09:10 +00:00
19da719a5f Resolves TSan v2 reports data races in voe_auto_test.
--- Note that I will add more fixes to this CL ---

BUG=1590

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3770 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-05 14:34:57 +00:00
0c45957e3a Remove UDP transport API from VoE
Review URL: https://webrtc-codereview.appspot.com/1236004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3757 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-03 15:43:57 +00:00
a442d4d983 Removed all code enclosed in WEBRTC_SRTP #ifdefs, and the unsupported VoE SRTP APIs. Test stubs are left in place as we still have the (De)RegisterExternalEncryption() APIs, although they are currently untested.
Today I had to figure out this code was legacy. Now next person doesn't have to.

BUG=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3738 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-03-28 09:14:36 +00:00
684f0577fb Revert r3667 and r3665
Review URL: https://webrtc-codereview.appspot.com/1199004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3668 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-03-13 23:20:57 +00:00
361bac7a4f Removed the engine API:s related to transport such as SetSendDestination, the functionality is now provided via the test frame work.
Review URL: https://webrtc-codereview.appspot.com/1029004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3665 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-03-13 17:52:42 +00:00
b7edd06530 Remove DTMF detection. Talk team has been in the loop and there is no need for
DTMF detection at the receiver side.

test=voe_auto_test, VoE extended test DTMF
Review URL: https://webrtc-codereview.appspot.com/1168004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3663 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-03-12 22:27:27 +00:00
24045c5a02 None of the clients of VoE use SetNetEQBGNMode(), furthermore, NetEq 4 does not provide an API to change the mode of the background noise.
bug=issue1370
test=trybots
Review URL: https://webrtc-codereview.appspot.com/1121007

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3607 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-03-05 03:14:22 +00:00
7a7a008031 Changing non-const reference arguments to pointers, ACM
Part of refactoring of ACM, and recent lint-warnings.
This CL changes non-const references in the ACM API to pointers.

BUG=issue1372

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3555 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-21 10:27:48 +00:00
eb7ebf20ed Revert 3543
> Changing non-const reference arguments to pointers, ACM
> 
> Part of refactoring of ACM, and recent lint-warnings.
> This CL changes non-const references in the ACM API to pointers.
> 
> BUG=issue1372
> 
> Review URL: https://webrtc-codereview.appspot.com/1103012

TBR=tina.legrand@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1116004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3544 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-20 15:57:31 +00:00
374aa49e1a Changing non-const reference arguments to pointers, ACM
Part of refactoring of ACM, and recent lint-warnings.
This CL changes non-const references in the ACM API to pointers.

BUG=issue1372

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3543 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-20 15:22:23 +00:00
6388c3e2fd Implement initial delay. This CL allows clients of VoE to set an initial delay. Playout of audio is delayed and the extra playout delay is maintained during the call. While packets are buffered (in NetEq) to acheive the desired delay. ACM will playout silence (zeros). Initial delay has to be set before any packet is pushed into ACM.
TEST=ACM unit test is added, also a manual integration test is writen. 
Review URL: https://webrtc-codereview.appspot.com/1097009

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3506 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-12 21:42:18 +00:00
9d532fd275 Fix propagating RED paylaod-type to ACM.
BUG=issue1322
TBR=henrika@google.com
Review URL: https://webrtc-codereview.appspot.com/1086005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3449 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-31 18:34:19 +00:00
8c8ad85c5d fix issue 1322, accept -1 as default payload-type for redundant coding (FEC).
issue=1322 
test=trybot, voe auto-tes
Review URL: https://webrtc-codereview.appspot.com/1043007

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3446 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-31 18:20:17 +00:00
09738616de Fixes payload spelling error.
BUG=N/A

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3398 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-22 16:43:45 +00:00
ae1a58bba4 Replace AudioFrame's operator= with CopyFrom().
Enforce DISALLOW_COPY_AND_ASSIGN to catch offenders.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3395 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-22 04:44:30 +00:00
218c542c0b Make VoE handle longer delays
Review URL: https://webrtc-codereview.appspot.com/1047004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3385 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-17 22:25:49 +00:00
1b60ceb499 Add GetAudioFrame API to VoiceEngine.
Allows the caller to pull frames from a channel instead of sending them to the output mixer.

BUG=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3273 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-12-12 23:00:29 +00:00
b718619f0a Expose NetEq playout mode off through VoiceEngine.
BUG=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3272 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-12-12 21:59:14 +00:00
0870f02cdb Add API to retreive last received RTP timestamp to VoiceEngine.
BUG=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3271 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-12-12 21:31:41 +00:00