651 Commits

Author SHA1 Message Date
Minyue
2013aeced2 Propagating RTT from send-only channel to receive-only channel.
This is important for obtaining ntp time at receiver-only channel, which does not have RTT directly.

BUG=3978

TEST=chromium with hangout calls
R=henrika@webrtc.org, mflodman@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9186}
2015-05-13 12:14:36 +00:00
Peter Boström
300eeb68f5 Remove VideoEngine interfaces.
Removes ViE interfaces, _impl.cc files, managers (such as
ViEChannelManager and ViEInputManager) as well as ViESharedData.

Interfaces necessary to implement observers have been moved to a
corresponding header (such as vie_channel.h).

BUG=1695, 4491
R=mflodman@webrtc.org, solenberg@webrtc.org
TBR=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9179}
2015-05-12 14:51:08 +00:00
Peter Boström
67c9df7982 Base NACK on send codecs.
Addressing discrepancy where NACK used to be set from send codecs in
WebRtcVideoEngine(1), and before this change, from recv codecs in
WebRtcVideoEngine2. This should address that NACK might be sent even if
the remote side does not support it.

BUG=4626
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9171}
2015-05-11 12:34:53 +00:00
Peter Boström
126c03ea02 Base decision to send REMB on send codecs.
Fixes bug where Chromium would send REMB even though the remote party
doesn't announce support for it (because it was based on local codec
settings instead of remote ones).

BUG=4626
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9170}
2015-05-11 10:48:08 +00:00
Henrik Lundin
64dad838e6 Reland r9159 "Adding a new constraint to set NetEq buffer capacity ..."
The original change was reverted due to a breakage in the chrome build.
This change includes a fix for this.

TBR=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9169}
2015-05-11 10:44:20 +00:00
Henrik Lundin
1f629232d5 Revert r9164 "Adding a new constraint to set NetEq buffer capacity ..."
This reverts commit fd32f35aff8fc28ec084bddc274de284e0422a57.

TBR=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9165}
2015-05-10 09:06:20 +00:00
Henrik Lundin
fd32f35aff Reland r9159 "Adding a new constraint to set NetEq buffer capacity ..."
This reverts commit cdb47a4533b7b1e29e803ed6591a68bb1a4f1692.

Contains a tentative fix to the chrome build breakage caused by the
original change.

TBR=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9164}
2015-05-10 09:03:00 +00:00
Lally Singh
4c277bb938 Add basic SCTP packet logging.
Attempts to get wireshark to decode the DTLS were problematic (wireshark only does it for certain versions of some DTLS implementations), so just do what firefox does and dump a txt2pcap-compatible log when requested.

R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9162}
2015-05-08 18:39:04 +00:00
Henrik Lundin
cdb47a4533 Revert r9159 "Adding a new constraint to set NetEq buffer capacity ..."
This reverts commit 208a2294cde839025318f1b3d57559cb0611a4e7.
Breaks the Chrome build.

TBR=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9161}
2015-05-08 12:03:46 +00:00
Henrik Lundin
208a2294cd Adding a new constraint to set NetEq buffer capacity from peerconnection
This change makes it possible to set a custom value for the maximum
capacity of the packet buffer in NetEq (the audio jitter buffer). The
default value is 50 packets, but any value can be set with the new
functionality.

R=jmarusic@webrtc.org, mflodman@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9159}
2015-05-08 10:58:51 +00:00
Fredrik Solenberg
d3ddc1b69e Consistently use DCHECK, not ASSERT or assert in talk/media/webrtc/.
BUG=
R=pbos@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9156}
2015-05-07 15:07:36 +00:00
Fredrik Solenberg
e444a3dcd3 WebRtcVoiceEngine: Get rid of unnecessary template base class.
BUG=
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9155}
2015-05-07 14:42:12 +00:00
Fredrik Solenberg
aaf8ff2e45 WebRtcVoiceEngine: virtual to override + git cl format.
BUG=
R=kwiberg@webrtc.org, pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9154}
2015-05-07 14:05:57 +00:00
Fredrik Solenberg
6179b89e53 Remove unused API on WebRtcVoiceEngine.
BUG=1695
R=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9153}
2015-05-07 14:01:30 +00:00
Fredrik Solenberg
4b60c73e74 Hook up libjingle WebRtcVoiceEngine to Call API for combined A/V BWE.
BUG=4574,3109
R=pbos@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9150}
2015-05-07 12:07:46 +00:00
Peter Boström
81ea54eaac Remove WebRtcVideoEngine.
Leaves a stub file for talk/media/webrtc/webrtcvideoengine.cc until
build files in Chromium have been modified.

BUG=1695,4566
R=mflodman@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9148}
2015-05-07 09:41:10 +00:00
Bjorn Volcker
ccfc93913c Reinterpret AudioOption delay_agnostic_aec to override HW-AEC
This CL will change the behavior when enabling Delay Agnostic AEC through the media constraint (and AudioOption delay_agnostic_aec)

FROM
 Use DA-AEC instead of AECM if there is no HW-AEC
TO
 Use DA-AEC even if there is a HW-AEC

Before this change the user will not really know if the Delay Agnostic AEC is running or not, so it is more intuitive if the option overrides the built-in one if the user has asked for it.

BUG=4472
TESTED=locally with a modified AppRTCDemo app
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9147}
2015-05-07 05:43:23 +00:00
Alex Glaznev
e433c0ef31 Restore back verbosity logging for camera captured frame.
Helps to debug camera freezes.

R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9127}
2015-05-01 20:54:27 +00:00
Peter Boström
f16fcbec73 Remove ViECapture usage in VideoSendStream.
Instead a ViECapturer object is allocated and directly operated on. This
additionally exposes ViESharedData to Call to access the module
ProcessThread, moving towards Call ownership of shared resources.

BUG=1695
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9119}
2015-04-30 10:16:11 +00:00
Erik Språng
efbde3775b Don't use CPU adaptation for screen content in the new API.
BUG=4605
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9116}
2015-04-29 14:21:32 +00:00
Ivo Creusen
adf89b7e33 Added SetBitRate function to VoE API to allow changing the audio bitrate.
If the requested bitrate is not valid for the codec, the codec will decide on
an appropriate value.
Updated VoE command line tool to use new SetBitRate function.
Includes unittests for SetBitRate function.

BUG=
R=henrik.lundin@webrtc.org, henrika@webrtc.org, kwiberg@webrtc.org, pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9115}
2015-04-29 14:03:45 +00:00
Fredrik Solenberg
23fba1ffa0 Add AudioReceiveStream to Call API.
BUG=4574
R=kwiberg@webrtc.org, mflodman@webrtc.org, pbos@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9114}
2015-04-29 13:24:10 +00:00
Peter Boström
94cc1fe4af Remove ViEImageProcess usage in VideoSendStream.
Replaces interface usage with direct calls on ViEEncoder removing a
layer of indirection. Also removing some methods from ViEImageProcess
that were only added for Video{Send,Receive}Stream usage.

BUG=1695
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9111}
2015-04-29 12:08:49 +00:00
Alex Glaznev
faa6d076b7 Remove a few verbose log messages from webrtcvideoengine2.
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9105}
2015-04-28 16:40:51 +00:00
Erik Språng
143cec1cc6 Set correct encoder-specific settings for vpx in the new API.
Also, make VideoEncoderConfig::ContentType an enum class.

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

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

Cr-Commit-Position: refs/heads/master@{#9093}
2015-04-28 08:01:14 +00:00
Peter Boström
c4188fd3c7 Use IncomingVideoStream in VideoReceiveStream.
Decouples VideoReceiveStream further from webrtc/video_engine/ as well
as most of webrtc/modules/video_render/ resulting in a simpler setup.

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

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

Cr-Commit-Position: refs/heads/master@{#9080}
2015-04-24 13:15:40 +00:00
Henrik Kjellander
24d4485614 Enable -Wunused-private-field warning for talk/
BUG=4242
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9069}
2015-04-23 12:50:59 +00:00
Peter Boström
ee0b00e8a9 Prevent recv-stream reconfig on identical codecs.
Receive streams seem to be reconfigured with identical codecs when
another stream is removed. Preventing this reconfiguration makes sure
that existing streams don't report stats during teardown when the stream
is still supposed to be running.

BUG=1788
R=asapersson@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9059}
2015-04-22 16:40:58 +00:00
Fredrik Solenberg
b67288283a Move cricket::FakeCall and associates to a separate file.
BUG=4574
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9057}
2015-04-22 13:34:57 +00:00
Peter Boström
393347ff98 Report receive-side packet loss.
BUG=4558
R=asapersson@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9054}
2015-04-22 12:52:31 +00:00
Henrik Kjellander
7c027b64ae Enable more Clang warnings for talk/
BUG=4242
R=andresp@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9053}
2015-04-22 11:21:10 +00:00
Shao Changbin
e62202fedf Support handling multiple RTX but only generate SDP with RTX associated with VP8.
This implementation registers RTX-APT map inside RTP sender and receiver.
While it only generates SDP with RTX associated with VP8 to make it
compatible with previous Chrome versions.

Should add following changes after reaches stable,
* Use RTX-APT map for building and restoring RTP packets.
* Add RTX support for RED or VP9 in Video engine.
* Set RTX payload type for RED inside FecConfig in EndToEndTest.

BUG=4024
R=mflodman@webrtc.org, pbos@webrtc.org, pthatcher@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9040}
2015-04-21 12:25:42 +00:00
Karl Wiberg
9478437fde rtc::Buffer improvements
1. Constructors, SetData(), and AppendData() now accept uint8_t*,
     int8_t*, and char*. Previously, they accepted void*, meaning that
     any kind of pointer was accepted. I think requiring an explicit
     cast in cases where the input array isn't already of a byte-sized
     type is a better compromise between convenience and safety.

  2. data() can now return a uint8_t* instead of a char*, which seems
     more appropriate for a byte array, and is harder to mix up with
     zero-terminated C strings. data<int8_t>() is also available so
     that callers that want that type instead won't have to cast, as
     is data<char>() (which remains the default until all existing
     callers have been fixed).

  3. Constructors, SetData(), and AppendData() now accept arrays
     natively, not just decayed to pointers. The advantage of this is
     that callers don't have to pass the size separately.

  4. There are new constructors that allow setting size and capacity
     without initializing the array. Previously, this had to be done
     separately after construction.

  5. Instead of TransferTo(), Buffer now supports swap(), and move
     construction and assignment, and has a Pass() method that works
     just like std::move(). (The Pass method is modeled after
     scoped_ptr::Pass().)

R=jmarusic@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9033}
2015-04-20 12:03:00 +00:00
Åsa Persson
352b2d7a19 Fix for sent/received RTCP packet counters returned by GetRtcpPacketTypeCounters. The returned counters are incorrect: sent_packets returns stats from a sent stream (and received_packets returns stats from a receive stream).
Add separate functions for returning stats from send/receive stream and updated how functions are used.

Add test implementation for histogram methods in system_wrappers/interface/metrics.h.

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

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

Cr-Commit-Position: refs/heads/master@{#9009}
2015-04-15 16:00:37 +00:00
Magnus Jedvert
4b76c02362 Roll chromium_revision 8af41b3..dcb0929 (324854:325030)
This is a major libyuv update (almost 200 revisions):
d204db6..32ad6e0

Relevant changes:
* src/third_party/libyuv: d204db6..32ad6e0
* src/third_party/nss: d1edb68..9506806
Details: 8af41b3..dcb0929/DEPS

Since bayer and Q420 format support have been removed from libyuv, all tests related to those format are removed.

Clang version was not updated in this roll.

R=kjellander@webrtc.org
TBR=tommi

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

Cr-Commit-Position: refs/heads/master@{#9008}
2015-04-15 15:22:19 +00:00
Peter Boström
3c3f646064 Prevent null-stream reconfigs on RTP extensions.
If a codec fails to set (e.g. there's no codec configured), this
prevents a stream reconfigure with an invalid config. Reconfiguring a
stream without correct codec settings causes a CHECK failure.

BUG=chromium:475116
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9007}
2015-04-15 14:27:39 +00:00
Peter Boström
e432800aeb Enable CPU adaptation by default.
WebRtcVideoEngine2 doesn't support CPU-monitor-based adaptation and as
such requires encoder-time-based CPU adaptation to perform any
adaptation at all.

BUG=4536
R=asapersson@webrtc.org, mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9001}
2015-04-14 20:45:23 +00:00
Peter Thatcher
56d50288e0 Remove SignalCaptureStateChange from MediaEngine.
It's no longer used by anything.

R=juberti@google.com

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

Cr-Commit-Position: refs/heads/master@{#8994}
2015-04-14 00:17:36 +00:00
Peter Thatcher
77f0e3f7b6 Remove GetStartCaptureFormat and some related code.
It is no longer used by anything.

R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8990}
2015-04-13 17:44:56 +00:00
Peter Boström
e7b221f476 Remove deadlock in WebRtcVideoEngine2.
Acquiring stream_lock_ in WebRtcVideoChannel2 in a callback from Call
forms a lock-order inversion between process-thread locks and libjingle
locks, manifesting as CPU adaptation requests blocking on stream
creation that is blocked on the CPU adaptation request finishing.

R=asapersson@webrtc.org, mflodman@webrtc.org
BUG=4535,chromium:475065

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

Cr-Commit-Position: refs/heads/master@{#8985}
2015-04-13 13:34:32 +00:00
Noah Richards
99c2fe5d2b Fix NullVideoEngine's CreateChannel implementation.
BUG=
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8980}
2015-04-10 21:32:42 +00:00
Thiago Farina
9bfe3daf73 Cleanup: Remove i420_video_frame.h header.
It is just a pass through to webrtc/video_frame.h. Updated the callers
to include webrtc/video_frame.h instead and removed i420_video_frame.h.

This should fix pbos' TODO in i420_video_frame.h.

Tested on Linux with the following command lines:

$ rm -rf out/
$ ./webrtc/build/gyp_webrtc
$ ninja -C out/Debug

BUG=None
TEST=see above
R=magjed@webrtc.org, pbos@webrtc.org, tommi@webrtc.org
TBR=tommi@webrtc.org

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

Patch from Thiago Farina <tfarina@chromium.org>.

Cr-Commit-Position: refs/heads/master@{#8973}
2015-04-10 10:52:15 +00:00
Magnus Jedvert
f6c003eda5 cricket::VideoFrameFactory: Handle if created frame is null
R=perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8972}
2015-04-10 10:44:51 +00:00
Magnus Jedvert
0184057d54 VideoAdapterTest: Replace FileVideoCapturer with FakeVideoCapturer
The unittests are currently flaky due to the use of FileVideoCapturer.

BUG=4317
R=pbos@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8969}
2015-04-10 09:18:39 +00:00
Peter Boström
76c53d36bc Remove ViE interface usage from VideoReceiveStream.
References channels and underlying objects directly instead of using
interfaces referenced with channel id. Channel creation is still done as
before for now.

BUG=1695
R=stefan@webrtc.org
TBR=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8958}
2015-04-09 12:35:46 +00:00
Peter Boström
15cf019a00 Add field-trial flag to disable WebRtcVideoEngine2.
BUG=chromium:475164
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8957}
2015-04-09 11:55:47 +00:00
Per
9b3f56ea05 Reland "Remove usage of webrtc::NativeHandle since is just adds an extra level of indirection.""
This reverts commit e41d774c4d0a60066866fc2d0ae48dd0e839ff23.

Original code review: https://webrtc-codereview.appspot.com/43999004/
Reason for reland: There was nothing wrong with this cl as is, but it breaks chrome compatibility. We will now reland this and fix Chrome during roll.

Patset 1: Original cl.
Patchset 2: Removed more code that is no longer needed.

R=magjed@webrtc.org, pbos@webrtc.org
TBR=mflodman@webrtc.org

BUG=1128

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

Cr-Commit-Position: refs/heads/master@{#8956}
2015-04-09 11:44:19 +00:00
Peter Boström
ad1f9b61a3 Remove warning on input frames before config.
Removes log spam for AppRTC when only one client is connected.

BUG=4512
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8947}
2015-04-08 12:04:06 +00:00
Per
e41d774c4d Revert "Remove usage of webrtc::NativeHandle since is just adds an extra level of indirection."
This reverts commit 75db8612588b4fabdf1b05f4ab145f7737093b45.

Revert "Fix build breakage in WrappedI420Buffer::native_handle()"

This reverts commit 3211934ebf7cac3e6df2cb4aacb6e47cc1cffe2b.

Reason for revert: Breaks chrome build and tests on clank, See https://codereview.chromium.org/1067803002/

BUG=1128
TBR=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8940}
2015-04-07 15:20:56 +00:00
Bjorn Volcker
1d83f1e89f talk/media/webrtc/webrtcvoiceengine: Delay Agnostic AEC should not override HW-AEC
In https://webrtc-codereview.appspot.com/48699004/ I made the audio option delay_agnostic_aec override HW-AEC if such exists. That is not an expected behavior and is fixed in this CL.

In addition we now check if EnableBuiltInAEC() was successful before disabling the SW-AEC. This revealed a bug in that return value, also fixed here.

BUG=4472
R=henrika@webrtc.org, perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8936}
2015-04-07 13:25:52 +00:00