6455 Commits

Author SHA1 Message Date
philipel
f472c5b672 Implement the NackModule as part of the new jitter buffer.
Things done/implemented in this CL:
  - An interface that can send Nack (VCMNackSender).
  - An interface that can request KeyFrames (VCMKeyFrameRequestSender).
  - The nack module (NackModule).
  - A set of convenience functions for modular numbers (mod_ops.h).

BUG=webrtc:5514

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

Cr-Commit-Position: refs/heads/master@{#11882}
2016-03-05 11:56:45 +00:00
peah
b624d8c852 Removed the inheritance from ProcessingComponent for EchoCancellerImpl.
BUG=webrtc:5352

Committed: https://crrev.com/3af0a009f8a7f2dfb630a4f4730044cbbd95bee8
Cr-Commit-Position: refs/heads/master@{#11876}

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

Cr-Commit-Position: refs/heads/master@{#11881}
2016-03-05 11:01:22 +00:00
Taylor Brandstetter
6ec641b0ee Fixing some issues with payload type mappings.
This fixes a couple major issues.

#1: If the payload type that an RTX codec refers to has been reassigned, and then the RTX codec is added in a subsequent offer, it refers to the wrong payload type.

#2: If we receive an offer with two payload types referring to the same codec (which we support), our answer contains both (instead of just one), which causes issues down the road since the video engine only supports one payload type per codec.

BUG=webrtc:5450,webrtc:5499
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11880}
2016-03-05 00:48:07 +00:00
kjellander
e26e78784b Roll chromium_revision ee31124..508edd3 (378158:379249)
This includes renaming back libvpx_new to libvpx in
https://codereview.chromium.org/1765703002

Add symlink to src/mojo as workaround while figuring out how to fix
this upstream in Chromium. See webrtc:5629.

Change log: ee31124..508edd3
Full diff: ee31124..508edd3

Changed dependencies:
* src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/6d49157..708db16
* src/third_party/libvpx_new/source/libvpx: https://chromium.googlesource.com/webm/libvpx.git/+log/89cc682..None
* src/tools/swarming_client: https://chromium.googlesource.com/external/swarming.client.git/+log/a72f46e..df6e95e
DEPS diff: https://chromium.googlesource.com/chromium/src/+/ee31124..508edd3/DEPS

No update to Clang.

BUG=webrtc:5629
TBR=marpan@webrtc.org, stefan@webrtc.org,
NOTRY=True

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

Cr-Commit-Position: refs/heads/master@{#11879}
2016-03-04 22:39:32 +00:00
Alex Glaznev
6a4a03c59c Add an option to soft reset HW decoder.
Soft reset can be used when input frame resolution changes
to avoid re creating MediaCodec instance.
Instead MediaCodec is flushed and some variables are reset.

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

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

Cr-Commit-Position: refs/heads/master@{#11878}
2016-03-04 22:11:02 +00:00
solenberg
92586f08e5 Revert of Removed the inheritance from ProcessingComponent for EchoCancellerImpl. (patchset #4 id:60001 of https://codereview.webrtc.org/1761813002/ )
Reason for revert:
Breaks all bots, e.g. https://uberchromegw.corp.google.com/i/client.webrtc/builders/Android32%20Builder/builds/6356/steps/compile/logs/stdio

Looks like a missing rebase before landing. Resolve and try again.

Original issue's description:
> Removed the inheritance from ProcessingComponent for EchoCancellerImpl.
>
> BUG=webrtc:5352
>
> Committed: https://crrev.com/3af0a009f8a7f2dfb630a4f4730044cbbd95bee8
> Cr-Commit-Position: refs/heads/master@{#11876}

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

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

Cr-Commit-Position: refs/heads/master@{#11877}
2016-03-04 20:29:08 +00:00
peah
3af0a009f8 Removed the inheritance from ProcessingComponent for EchoCancellerImpl.
BUG=webrtc:5352

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

Cr-Commit-Position: refs/heads/master@{#11876}
2016-03-04 20:13:38 +00:00
peah
20028c49c9 Removing the use of the soon-to-be-removed echo_cancellation_impl
api function that directly returns aec_core.

BUG=webrtc:5201

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

Cr-Commit-Position: refs/heads/master@{#11875}
2016-03-04 19:51:03 +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
mikescarlett
6459f84766 Create QuicTransportChannel
This new class allows usage of a QuicSession to establish a QUIC handshake.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#11873}
2016-03-04 17:55:09 +00:00
hjon
a2f7798ec2 Tweaks for new Objective-C API.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#11872}
2016-03-04 15:09:16 +00:00
perkj
78417cf7c0 Fix VideoTrack VideoSinkWants for renderers.
This temporarily fixes a probem where renderers causes VideoSinkWants.rotation_applied=true.
The problem was introduced by https://codereview.webrtc.org/1759473003/ where VideTrackRenderes are registered to the cricket::VideoCapturer with default VideoSinkWants.

BUG=webrtc:5621

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

Cr-Commit-Position: refs/heads/master@{#11871}
2016-03-04 11:09:17 +00:00
hta
a2a49d9d9c This CL provides interfaces that do not use constraints for
all interfaces that formerly took constraints parameters
in name=value form.

This is in preparation for making Chrome only use these
explicit interfaces.

BUG=webrtc:4906

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

Cr-Commit-Position: refs/heads/master@{#11870}
2016-03-04 10:51:44 +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
peah
88950cfbf9 Moved the file aec_resampler.c to be built using C++.
The steps involved were:
1) Change file name to .cc from .c.
2) Update the build files accordingly.
3) Remove the extern header file inclusion.
4) Change the casts in aec_resampler.cc to static_cast
   and reinterpret_cast.

The changes are bitexact.

The CL will be followed with another CL where a proper (webrtc) namespace is introduced. The reason for not having it in this CL is that this was missed in the corresponding
CL that did the above for aec_core.c, ..., and if the
namespaces in all the aec_core -related files can be changed
at the same time that will simplify things.

BUG=webrtc:5201

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

Cr-Commit-Position: refs/heads/master@{#11867}
2016-03-04 08:12:43 +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
tkchin
4f735d16ad Enable iOS AppRTCDemo send side BWE.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#11865}
2016-03-04 01:54:37 +00:00
peah
0197363d18 A bitexactness test for the highpass filter in the
audio processing module.

The test also adds a new helper class called
VectorBasedAudioFrame that is intended to be
reused for the bitexactness tests for the other
submodules.

BUG=webrtc:1091

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

Cr-Commit-Position: refs/heads/master@{#11864}
2016-03-03 19:21:55 +00:00
peah
fc4ff2d92c Fixed Aec handle index in EchoCancellationImpl
that was not updated as it should.

The bug caused no negative impact at all apart
from a missed check that the Aec handles above
index 0 were not null. That check is, however,
done elsewhere so there was no negative impact
of this bug.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#11863}
2016-03-03 19:20:32 +00:00
honghaiz
e2af9ef638 Keep on sending stun binding requests on zero-cost networks.
This is useful to keep the NAT binding alive on backup connections.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#11862}
2016-03-03 16:27:53 +00:00
henrika
ab12c47160 Modifies SDK and iOS detection for helper method that needs iOS 9+
BUG=NONE
R=tkchin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11861}
2016-03-03 16:00:00 +00:00
Peter Boström
a4c76882b9 Move encoder thread to VideoSendStream.
Makes VideoCaptureInput easier to test and enables running more things
outside VideoCaptureInput on the encoder thread in the future
(initializing encoders and reconfiguring them, for instance).

BUG=webrtc:5410, webrtc:5494
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11860}
2016-03-03 15:29:09 +00:00
jbauch
313afba2eb Lazily allocate input buffer for AsyncTCPSocket.
As a follow-up to https://codereview.webrtc.org/1737053006/ this CL further
improves memory usage by lazily allocating input buffers up to the passed
maximum size. This also changes the input buffer to a Buffer object.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#11859}
2016-03-03 11:41:14 +00:00
Peter Boström
79a5cf9ed1 Fix last commit error successfully.
I'm revoking my commit license.

BUG=
TBR=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11858}
2016-03-03 10:49:12 +00:00
Peter Boström
770012c93d Fix potentially-uninitialized compilation error.
BUG=
TBR=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11857}
2016-03-03 10:44:21 +00:00
Peter Boström
a03785e924 Move all calls after SetEncoder into SetEncoder.
Intended to make SetEncoder callable from another thread so that
ReconfigureVideoEncoder can post SetEncoder over and return earlier to
prevent blocking the calling thread.

BUG=webrtc:5494
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11856}
2016-03-03 10:36:26 +00:00
magjed
81e8e374ec Android SurfaceTextureHelper: Add stopListening() function
This CL replaces the function SurfaceTextureHelper.setListener() that
could only be called once with the functions startListening() and
stopListening() that can be called multiple times. This is necessary
when the SurfaceTextureHelper will be passed to the VideoCapturerAndroid
in startCapture(). startListening() will be called in startCapture() and
stopListening() in stopCapture().

BUG=webrtc:5519

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

Cr-Commit-Position: refs/heads/master@{#11855}
2016-03-03 10:18:44 +00:00
perkj
f2880a0e04 Change webrtc::VideoSourceInterface to inherit rtc::VideoSourceInterface.
Also introduce a typedef VideoTrackSourceInterface to be able to start changing clients such as Chrome to use the name VideoTrackSourceInterface.

Document: https://docs.google.com/a/google.com/document/d/1mEIw_0uDzyHjL3l8a82WKp6AvgR8Tlwn9JGvhbUjVpY/edit?usp=sharing

BUG=webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#11854}
2016-03-03 09:51:56 +00:00
peah
c8da45f329 Set prefer_fixed_point=1 for the MIPS architecture.
BUG=chromium:449603

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

Cr-Commit-Position: refs/heads/master@{#11853}
2016-03-03 09:28:56 +00:00
Per
0f13ec1265 Removed VideoSource dependency to ChannelManager.
Instead VideoSource directly access the cricket::VideoCapturer via the worker_thread.

Document: https://docs.google.com/a/google.com/document/d/1mEIw_0uDzyHjL3l8a82WKp6AvgR8Tlwn9JGvhbUjVpY/edit?usp=sharing

BUG=webrtc:5426
R=nisse@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11852}
2016-03-03 08:22:41 +00:00
aluebs
a2abdf2fbe Remove usage of fmaf in IntelligibilityEnhancer
This produces bit-exact output and doesn't have the performance sensitivity to vectorisation, giving a complexity decrease of the IntelligibilityEnhancer of about 30x in my local machine.
This performance issue was put in evidence by this CL: https://codereview.webrtc.org/1693823004/

BUG=590998

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

Cr-Commit-Position: refs/heads/master@{#11851}
2016-03-03 02:36:55 +00:00
guoweis
36f0137fd5 Implement Turn/Turn first logic for connection selection.
This feature is off by default and can be turned on by setting IceConfig. When turned on, we'll choose a Turn/Turn (UDP takes higher priroity) over the other types of connections while no any connection is writable. However, when there is best connection or there is pending triggered check, those will take higher priority.

BUG=webrtc:4591

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

Cr-Commit-Position: refs/heads/master@{#11850}
2016-03-03 02:02:58 +00:00
Alex Glaznev
4aee2a928f Add android specific audio mute function.
R=henrika@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11849}
2016-03-02 21:02:11 +00:00
kjellander
0e73934694 Remove webrtc/test/webrtc_test_common.gyp
Move the "webrtc_test_common" target to test.gyp and rename
it to "test_common".

Move all tests in "webrtc_test_common_unittests" (which
wasn't run on the bots) into "test_support_unittests".

NOTRY=True
NOPRESUBMIT=True

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

Cr-Commit-Position: refs/heads/master@{#11848}
2016-03-02 18:46:25 +00:00
Peter Boström
905f8e7e9d Make ReconfigureVideoEncoder void.
Also moves and simplifies SetSendCodec from VideoSendStream to mostly
inside ViEEncoder. This is necessary for making
ReconfigureVideoEncoder asynchronous as we don't post any result back.

BUG=webrtc:5494
R=stefan@webrtc.org
TBR=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11847}
2016-03-02 16:00:07 +00:00
hbos
25359e0cc2 DtlsIdentityStoreInterface::RequestIdentity gets optional expires param.
This is a preparation CL. The expires param will be used in
a follow-up CL. Initially it will only be used by the
chromium implementation. Then we will either update the
webrtc implementation (DtlsIdentityStoreImpl) to use it or
we will remove that store completely as part of clean-up
work.

There are currently two versions of RequestIdentity, one
that takes KeyType and one that takes KeyParams.

The KeyType version is removed in favor of the new
KeyParams + expires version. The KeyParams version without
expires is kept as to not break chromium which currently
implements that. This is the version that can be removed in
a follow-up CL.

BUG=webrtc:5092, chromium:544902

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

Cr-Commit-Position: refs/heads/master@{#11846}
2016-03-02 15:55:56 +00:00
Peter Boström
0a9fc05583 Move RTP module send status outside of ViEChannel.
Removes StartSend, StopSend and SetSendCodec from ViEChannel and into
VideoSendStream which uses the payload router to configure them
directly.

BUG=webrtc:5494
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11845}
2016-03-02 15:24:21 +00:00
minyue
7b19b08c18 Reland "Calculating ERLE in AEC more properly."
The original CL (https://codereview.webrtc.org/1644133002/) had an error in the unittest and did not get landed. This CL is to reland it,

BUG=

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

Cr-Commit-Position: refs/heads/master@{#11844}
2016-03-02 14:56:56 +00:00
Peter Boström
4fa7ecad12 Remove add/removal of ViEReceiver RTP modules.
Since all possible modules are known on Init we don't need to add/remove
them in runtime.

BUG=webrtc:5494
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11843}
2016-03-02 14:06:04 +00:00
kjellander
f475277547 Rename constants files in webrtc/{media,p2p}
Multiple sources with the same names forces ugly GYP hacks in
Chromium's libjingle.gyp. Rename the sources in WebRTC to
enable cleaning this up in Chromium.

To summarize:
webrtc/media/base/constants.{cc,h} -> mediaconstants.{cc,h}
webrtc/p2p/base/constants.{cc,h} -> p2pconstants.{cc,h}

This CL will require coordinating landing a roll in Chromium.

BUG=webrtc:4256
NOTRY=True

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

Cr-Commit-Position: refs/heads/master@{#11842}
2016-03-02 13:42:35 +00:00
perkj
91e1c15f8e Make sure rotation is not applied by the capturer if the CVO exenstion is set before the send stream is created.
BUG=webrtc:5621

TBR=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11841}
2016-03-02 13:34:08 +00:00
Peter Boström
7ecc163d42 Report all packets to bitrate probing.
Allows probing with audio packets to finish, preventing a busy loop for
high-bitrate audio-only calls.

BUG=chromium:589931, webrtc:5506
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11840}
2016-03-02 13:22:33 +00:00
Danil Chapovalov
b65f3e39d7 [cleanup] Remove unused fields/functions from rtcp module.
Removed fields are initialized but unused.
Removed functions are not called, sometimes are not defined.

BUG=webrtc:5565
R=asapersson@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11839}
2016-03-02 12:26:19 +00:00
kwiberg
c891eb479b Replace scoped_ptr with unique_ptr in webrtc/common_video/
BUG=webrtc:5520

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

Cr-Commit-Position: refs/heads/master@{#11838}
2016-03-02 11:41:40 +00:00
Niels Möller
60653ba3cc New flag is_screencast in VideoOptions.
This cl copies the value of cricket::VideoCapturer::IsScreencast into
a flag in VideoOptions. It is passed on via the chain

VideortpSender::SetVideoSend
WebRtcVideoChannel2::SetVideoSend
WebRtcVideoChannel2::SetOptions
WebRtcVideoChannel2::WebRtcVideoSendStream::SetOptions

Where it's used, in
WebRtcVideoChannel2::WebRtcVideoSendStream::OnFrame, we can look it up
in parameters_, instead of calling capturer_->IsScreencast().

Doesn't touch screencast logic related to cpu adaptation, since that
code is in flux in a different cl.

Also drop the is_screencast flag from the Dimensions struct, and drop separate options argument from ConfigureVideoEncoderSettings and SetCodecAndOptions, instead always using the options recorded in VideoSendStreamParameters::options.

In the tests, changed FakeVideoCapturer::is_screencast to be a construction time flag. Generally, unittests of screencast have to both use a capturer configured for screencast, and set the screencast flag using SetSendParameters. Since the automatic connection via VideoSource and VideoRtpSender isn't involved in the unit tests.

Note that using SetSendParameters to set the screencast flag doesn't make sense, since it's not per-stream. SetVideoSend would be more appropriate. That should be fixed if/when we drop VideoOptions from SetSendParameters.

BUG=webrtc:5426
R=pbos@webrtc.org, perkj@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11837}
2016-03-02 10:41:49 +00:00
kwiberg
e065fcf9a9 Replace scoped_ptr with unique_ptr in webrtc/modules/video_*/
BUG=webrtc:5520

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

Cr-Commit-Position: refs/heads/master@{#11836}
2016-03-02 09:01:16 +00:00
Taylor Brandstetter
4eb1ddd817 Fixing a possible crash in CopyCandidatesFromSessionDescription.
BUG=590972
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11835}
2016-03-02 00:21:15 +00:00
solenberg
03d6d57f41 Late initialize MediaController, for less resource i.e. ProcessThread, usage by PeerConnection.
BUG=chromium:582441

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

Cr-Commit-Position: refs/heads/master@{#11834}
2016-03-01 20:42:08 +00:00
kwiberg
27f982bbcb Replace scoped_ptr with unique_ptr in webrtc/video/
BUG=webrtc:5520

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

Cr-Commit-Position: refs/heads/master@{#11833}
2016-03-01 19:52:39 +00:00
terelius
d802b5b7c3 Fix some signed overflow errors causing undefined behavior (in theory).
BUG=webrtc:5491

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

Cr-Commit-Position: refs/heads/master@{#11832}
2016-03-01 19:07:40 +00:00