Commit Graph

52 Commits

Author SHA1 Message Date
d819803d45 Wire up DSCP support in WebRtcVideoEngine2.
R=stefan@webrtc.org
BUG=1788

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7669 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-10 14:41:43 +00:00
0bae1fab4a Wire up bandwidth stats to the new API and webrtcvideoengine2.
Adds stats to verify bandwidth and pacer stats.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7634 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-05 14:05:29 +00:00
88ef632286 Falling back on single-stream on multiple SSRC.
Instead of failing, use one stream. Also clamp video min bitrate.

R=stefan@webrtc.org
BUG=1788

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7615 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-04 15:29:29 +00:00
96a93259b3 Implement external decoder support in WebRtcVideoEngine2.
R=stefan@webrtc.org
BUG=1788

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7594 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-03 14:46:44 +00:00
b7ed7799e7 Implement conference-mode temporal-layer screencast.
Renames VideoStream::temporal_layers to temporal_layer_thresholds_bps to
convey that it contains thresholds needed to ramp up between them (1
threshold -> 2 temporal layers, etc.).

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7578 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-31 13:08:10 +00:00
3bf3d238c8 Configure A/V sync in WebRtcVideoEngine2.
Sets up A/V sync for the first video receive channel with the default
voice channel. This is only done when conference mode is disabled to
preserve existing behavior. Ideally we'd know which voice channel to
sync with here.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7577 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-31 12:59:34 +00:00
776e6f289c Use external VideoDecoders in VideoReceiveStream.
Removes direct VideoCodec use from the new API, exposes VideoDecoders
through webrtc/video_decoder.h similar to VideoEncoders.

Also includes some preparation for wiring up external decoders in
WebRtcVideoEngine2 by adding AllocatedDecoders that specify whether they
were allocated internally or externally.

Additionally addresses a data race in VideoReceiver that was exposed with this change.

R=mflodman@webrtc.org, stefan@webrtc.org
TBR=pthatcher@webrtc.org
BUG=2854,1667

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7560 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-29 15:28:39 +00:00
efc82c2c73 Implement screencast settings for WebRtcVideoEngine2.
Adds support for screencast_min_bitrate and sets content type
corresponding to the capture type.

R=stefan@webrtc.org
BUG=1788

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7529 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-27 13:58:00 +00:00
eacc6e4657 Remove some disabled tests in WebRtcVideoEngine2.
Removes some tests that shouldn't have to be implemented or have already
been through other tests.

R=stefan@webrtc.org
BUG=1788

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7495 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-22 15:36:54 +00:00
fa553ef605 Set up start bitrate in WebRtcVideoEngine2.
R=stefan@webrtc.org
BUG=1788

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7476 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-20 11:07:07 +00:00
1ecbe45c7e (Auto)update libjingle 77689511-> 77696841
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7449 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-14 20:29:28 +00:00
7fe1e03dd6 Wire up external encoders.
R=pthatcher@webrtc.org
BUG=1788

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7440 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-14 04:25:33 +00:00
42684be21b Wire up CPU adaptation in WebRtcVideoEngine2.
Includes clean-up work to be able to use the webrtc::Call::Config that's
set up. This introduced a CallFactory to spawn a FakeCall with the
config used and allowed removal of FakeWebRtcVideoChannel2.

BUG=1788
R=mflodman@webrtc.org, pthatcher@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7370 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-03 11:25:45 +00:00
bbe0a8517d Config struct for VideoEncoder.
Used for config parameters in common between multiple codecs as well as
the encoder-specific pointer. In particular this contains content mode
(realtime video vs. screenshare).

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7239 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-19 12:30:25 +00:00
26c0c41a06 Network up/down signaling in Call.
BUG=2429
R=mflodman@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7044 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-03 16:17:12 +00:00
c4175b9fdf Set resolution based on incoming VideoFrames.
R=pthatcher@webrtc.org
BUG=1788

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7042 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-03 15:25:49 +00:00
b648b9d85c Remove test constructor in WebRtcVideoEngine2.
Removes the need for ::Construct().

BUG=1788
R=pthatcher@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6977 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-26 11:08:06 +00:00
a09a99950e (Auto)update libjingle 73222930-> 73226398
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6891 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-13 17:26:08 +00:00
c3d2bd28a3 Fix GetStats() crash.
GetStats() can be called before codecs are set and the underlying
webrtc::VideoSendStream is created, leading to a null-pointer
dereference.

BUG=1788
R=pthatcher@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6876 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-12 20:55:10 +00:00
d4e598d57a (Auto)update libjingle 72097588-> 72159069
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6799 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-29 17:36:52 +00:00
8aed945842 Remove a disabled test.
ConstrainsSetCodecsAccordingToEncoderConfig has been removed from
webrtcvideoengine_unittest.cc, removing this one as well.

BUG=1788
R=wu@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6789 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-26 10:16:49 +00:00
257e130a16 Set NACK/REMB when setting receive codecs.
Enabling an additional test to ensure that REMB can be both enabled and
disabled by setting VideoCodecs.

BUG=1788
R=wu@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6785 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-25 19:01:32 +00:00
9359cb3e75 Enable SendAndReceive tests.
Also fixes a crash in ::SetCapturer which wasn't exposed by tests
before.

BUG=1788
R=wu@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6765 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-23 15:44:48 +00:00
5ff71ab4b3 Revert "(Auto)update libjingle 71675033-> 71726409"
This reverts commit r6761 which looks like an accidental auto-revert of
r6760.

BUG=1788
TBR=wu@webrtc.org, henrike@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6763 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-23 07:28:56 +00:00
f67f6aa741 (Auto)update libjingle 71675033-> 71726409
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6761 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-23 07:04:22 +00:00
8120353342 Implement suspend-below-min-bitrate option.
BUG=1788
R=wu@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6760 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-23 07:04:08 +00:00
543e589205 Wire up VideoOptions for payload-based padding.
BUG=1788
R=wu@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6759 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-23 07:01:31 +00:00
6f48f1bf68 Implement encoder options in WebRtcVideoEngine2.
Implementing default options to enable denoising by default and wiring
up encoder settings to propagate VP8 settings.

BUG=1788
R=wu@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6757 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-22 16:29:54 +00:00
85f42949d6 Enable ReceiveStreamReceivingByDefault test.
BUG=1788
R=wu@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6754 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-22 09:14:58 +00:00
3c10758b3b Check before send/receive rtp header extensions.
BUG=1788
R=pbos@webrtc.org, tommi@webrtc.org, wu@webrtc.org

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6744 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-20 15:27:35 +00:00
8fdeee6abf Implement Base::ConstrainNewCodec2.
BUG=1788
R=wu@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6743 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-20 14:40:23 +00:00
e6f84ae8a6 Initial WebRtcVideoEngine2::GetStats().
Also forward-declaring and moving WebRtcVideoRenderer out of header.

BUG=1788
R=pthatcher@webrtc.org, wu@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6729 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-18 11:11:55 +00:00
d1ea06b3d5 Restart VideoReceiveStreams in WebRtcVideoEngine2.
Puts VideoReceiveStreams in a wrapper, WebRtcVideoReceiveStream that
contain their state (configs). WebRtcVideoRenderer (the wrapper between
webrtc::VideoRenderer and cricket::VideoRenderer) has also been merged
into WebRtcVideoReceiveStream.

Implements and tests setting codecs with new FEC settings as well as RTP
header extensions on already existing receive streams.

BUG=1788
R=pthatcher@webrtc.org, wu@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6727 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-18 09:35:58 +00:00
5301b0f1fc Move additional state into WebRtcVideoSendStream.
Prevents having two places where codecs etc. are set up and allows us to
avoid creating the underlying VideoSendStream before send codecs are
set up.

BUG=1788
R=pthatcher@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6716 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-17 08:51:46 +00:00
38ce7d03d8 Implement unittest for SetSendCodecsChangesExistingStreams.
BUG=1788
R=pbos@webrtc.org, wu@webrtc.org

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6699 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-16 08:01:38 +00:00
cb859ecd3b Replace strcpy with talk_base::strcpyn.
Cpplint reports error 'Almost always, snprintf is better than strcpy'
when checking code styles. The function talk_base::strcpyn() is a better
option than strcpy().

BUG=1788
R=pbos@webrtc.org, wu@webrtc.org

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6686 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-15 08:28:20 +00:00
ccbed3b3c4 Implement unittest SetRecvCodecsAcceptDefaultCodecs.
BUG=1788
R=pbos@webrtc.org, wu@webrtc.org

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6663 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-11 13:02:54 +00:00
bd249bc711 Remove GetDefaultConfigs() from Call.
Defaults for configs are instead placed in the Config constructors.

BUG=
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6608 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-07 04:45:15 +00:00
269605ce45 Implement SetSendCodecs() unit tests for WebRtcVideoChannel2.
BUG=
R=pbos@webrtc.org, wu@webrtc.org

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6543 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-26 08:49:03 +00:00
587ef60056 Implement RTP extension support in WebRtcVideoEngine2.
BUG=1788
R=pthatcher@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6453 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-16 17:32:02 +00:00
f99c2f2dbc Add NACK feedback parameter to WebRtcVideoEngine2.
Also fixing enabling/disabling of NACK. Previous implementation was made
under the assumption that NACK should always be enabled which caused
both missing NACK settings in SDP as well as broken interop between old
and new WebRtcVideoEngines.

BUG=1788
R=pthatcher@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6431 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-13 12:27:38 +00:00
e322a175f6 Implement RTX tests+fixes in WebRtcVideoEngine2.
BUG=1788
R=pthatcher@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6430 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-13 11:47:28 +00:00
9fbb717aca Remove engine_codecs_ cache from unittests.
Used interchangably with engine_.codecs() becomes confusing and it's not
really used that much.

BUG=1788
R=pthatcher@google.com, pthatcher@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6429 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-13 09:34:13 +00:00
86f613d6b8 Move WebRtcVideoEngine2 fakes to unittest header.
BUG=1788
R=wu@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6382 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-10 08:53:05 +00:00
6ae48c6609 Make VideoSendStream/VideoReceiveStream configs const.
Benefits of this is that the send config previously had unclear locking
requirements, a lock was used to lock parts parts of it while
reconfiguring the VideoEncoder. Primary work was splitting out video
streams from config as well as encoder_settings as these change on
ReconfigureVideoEncoder. Now threading requirements for both member
configs are clear (as they are read-only), and encoder_settings doesn't
stay in the config as a stale pointer.

CreateVideoSendStream now takes video streams separately as well as the
encoder_settings pointer, analogous to ReconfigureVideoEncoder.

This change required changing so that pacing is silently enabled when
using suspend_below_min_bitrate rather than silently setting it.

R=henrik.lundin@webrtc.org, mflodman@webrtc.org, pthatcher@webrtc.org, stefan@webrtc.org
BUG=3260

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6349 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-06 10:49:19 +00:00
0d523eea83 Remove static initializer from WebRtcVideoEngine2.
BUG=
R=pliard@google.com, pthatcher@webrtc.org, pliard@chromium.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6338 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-05 09:10:55 +00:00
540a2251aa (Auto)update libjingle 68230011-> 68230113
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6281 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-30 07:40:35 +00:00
35efb839ed Implement new-API test RecvStreamWithoutRtx.
R=pthatcher@google.com, pthatcher@webrtc.org
BUG=1788

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6280 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-30 07:40:04 +00:00
198647473b Implement and fix new-API NackIsEnabled test.
Required enabling NACK on receiver side which was apparently missed.

BUG=1788
R=pthatcher@google.com, pthatcher@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6278 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-30 07:35:47 +00:00
b5a22b1464 Revert r6110 and r6109.
Effectively re-landing r6104 as well as r6108 which includes a fix to a
compile error that caused r6104 to be reverted in r6110.

BUG=
TBR=henrike@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6119 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-13 11:07:01 +00:00