170 Commits

Author SHA1 Message Date
andresp@webrtc.org
82775b1396 Refactor webrtcvideoengines to have the default list of supported codecs being generated in runtime.
This will allow to plugin VP9 based on a field trial.

R=pbos@webrtc.org, pbos, pthatcher

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7658 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-07 09:37:54 +00:00
andresp@webrtc.org
19b4741004 Removing unused method GetDefaultVideoEncoderConfig.
R=pbos@webrtc.org, tommi@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7649 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-06 11:16:32 +00:00
stefan@webrtc.org
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
pbos@webrtc.org
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
pbos@webrtc.org
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
pbos@webrtc.org
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
pbos@webrtc.org
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
pbos@webrtc.org
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
buildbot@webrtc.org
ae694effd8 (Auto)update libjingle 78642371-> 78680406
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7545 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-28 17:37:17 +00:00
pbos@webrtc.org
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
pbos@webrtc.org
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
buildbot@webrtc.org
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
pbos@webrtc.org
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
buildbot@webrtc.org
3c16d8bd1c (Auto)update libjingle 77414393-> 77554188
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7428 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-13 06:35:10 +00:00
buildbot@webrtc.org
97abeee282 (Auto)update libjingle 77263371-> 77296420
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7400 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-08 22:24:30 +00:00
pbos@webrtc.org
575d126a3d Protect send_/recv_streams_ in WebRtcVideoEngine2.
Important as OnLoadUpdate() won't be called on the worker thread and the
list of streams can't be concurrently modified while delivering this
callback to all send streams.

R=stefan@webrtc.org
BUG=1788

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7395 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-08 14:48:08 +00:00
pbos@webrtc.org
963b979510 Remove potential deadlock in WebRtcVideoEngine2.
Fixes lock-order inversions between capturer's SignalVideoFrame and
WebRtcVideoSendStream. Additionally also removes all deadlock
suppressions for WebRtcVideoEngine2.

R=stefan@webrtc.org
TBR=kjellander@webrtc.org
BUG=1788,2999

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7386 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-07 14:27:27 +00:00
pbos@webrtc.org
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
pbos@webrtc.org
d60d79a145 Thread annotation of rtc::CriticalSection.
Effectively re-lands r5516 which was reverted because talk/-only
checkouts existed. This now resides in webrtc/base/, so no talk/-only
checkouts should be possible.

This change also enables -Wthread-safety for talk/ and fixes a bug in
talk/media/webrtc/webrtcvideoengine2.cc where a guarded variable was
read without taking the corresponding lock.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7284 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-24 07:10:57 +00:00
pbos@webrtc.org
0a2087a711 Skeleton for registering external encoders/decoders.
R=pthatcher@webrtc.org
BUG=1788

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7270 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-23 09:40:22 +00:00
pbos@webrtc.org
83f95ba9a6 Remove engine-level SetOptions.
Already removed in WebRtcVideoEngine.

R=andresp@webrtc.org
BUG=1788

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7265 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-22 16:07:18 +00:00
pbos@webrtc.org
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
buildbot@webrtc.org
933d88af58 (Auto)update libjingle 75818332-> 75837294
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7227 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-18 20:23:05 +00:00
pbos@webrtc.org
6cd6ba8ae0 Expose VP8/H264 defaults through video_encoder.h.
Reduces code duplication quite a bit, these identical defaults were set
in quite a few different places.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7220 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-18 12:42:28 +00:00
pbos@webrtc.org
ab990ae43a Revert 7151 "Revert 7114 "Expose VideoEncoders with webrtc/video_encoder.h.""
Re-lands r7114 after landing r7204 to adress the compile error causing
the rollback in r7151.

BUG=3070
TBR=henrikg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7207 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-17 09:02:25 +00:00
pbos@webrtc.org
cddd17c0f8 Recreate VideoStreams when setting resolution.
Instead of just changing resolution on the last stream streams are
reallocated to make sure that all streams are updated to match the
new input resolution.

R=pthatcher@webrtc.org
BUG=1788

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7197 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-16 16:33:13 +00:00
henrikg@webrtc.org
307d3dbdee Revert 7114 "Expose VideoEncoders with webrtc/video_encoder.h."
Speculative revert, seems to be reason for flaky Win FYI bot compile break.

> Expose VideoEncoders with webrtc/video_encoder.h.
> 
> Exposes VideoEncoders as part of the public API and provides a factory
> method for creating them.
> 
> BUG=3070
> R=mflodman@webrtc.org, stefan@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/21929004

TBR=pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7151 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-11 09:48:30 +00:00
pbos@webrtc.org
b420191743 Expose VideoEncoders with webrtc/video_encoder.h.
Exposes VideoEncoders as part of the public API and provides a factory
method for creating them.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7114 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-09 10:40:56 +00:00
buildbot@webrtc.org
992febb997 (Auto)update libjingle 74873066-> 74873164
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7089 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-05 16:39:08 +00:00
buildbot@webrtc.org
818b7b3ac9 (Auto)update libjingle 74825084-> 74825992
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7074 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-05 00:14:03 +00:00
pbos@webrtc.org
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
pbos@webrtc.org
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
pbos@webrtc.org
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
buildbot@webrtc.org
3740d74106 (Auto)update libjingle 73927658-> 73927775
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6958 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-22 22:27:04 +00:00
pbos@webrtc.org
97fdeb8329 Remove static initializer in WebRtcVideoEngine2.
Blocks import into chromium.

R=tommi@webrtc.org
BUG=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6954 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-22 10:36:23 +00:00
pbos@webrtc.org
ef8bb8d9b0 Make sure that muting muted streams succeeds.
We don't want to report an error here, and PeerConnection relies on
being able to mute already-muted streams (I hit an assert when testing
manually).

BUG=1788
R=pthatcher@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6895 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-13 21:36:18 +00:00
pbos@webrtc.org
432893a100 Remove TODO saying to remove WebRtcVideoFrame.
Comment was added prematurely, there's no decision to get rid of this
type.

BUG=1788
R=pthatcher@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6894 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-13 21:17:22 +00:00
buildbot@webrtc.org
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
pbos@webrtc.org
afb554f404 Move default-recv-channels to a separate class.
BUG=1788,3099
R=pthatcher@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6879 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-12 23:17:13 +00:00
pbos@webrtc.org
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
buildbot@webrtc.org
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
pbos@webrtc.org
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
pbos@webrtc.org
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
pbos@webrtc.org
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
buildbot@webrtc.org
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
pbos@webrtc.org
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
pbos@webrtc.org
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
pbos@webrtc.org
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
pbos@webrtc.org
cadd078cf9 Remove unused config.h and math.h includes.
BUG=1788
R=wu@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6756 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-22 15:26:09 +00:00
pbos@webrtc.org
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