Commit Graph

69 Commits

Author SHA1 Message Date
77e11bbe83 Wire up preferred/nominal_bitrate to stats.
Also adds a test that shows that actual_enc_bitrate was not summed
correctly plus fixing it.

Additionally reducing locking when grabbing stats.

BUG=1778
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8464}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8464 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-23 16:39:58 +00:00
1d0fa5d352 Add RtcpPacketTypeCounter stats to new API.
R=mflodman@webrtc.org, stefan@webrtc.org
BUG=1667,1788

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

Cr-Commit-Position: refs/heads/master@{#8429}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8429 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-19 12:47:45 +00:00
86196c4f48 Setup encoders inexpensively before first frame.
Modifies WebRtcVideoSendStream to use a default width/height of 16px.
This significantly reduces SetRemoteDescription time under
WebRtcVideoEngine2. Also preventing (expensive) reconfigurations due to
incoming frames when the channel is not sending yet.

Tests have been modified to generate a frame before expecting a certain
encoder size to have been configured.

Also adding tracing to WebRtcVideoSendStream::InputFrame as it can lead
to reconfigurations of the encoder which is expensive and it should show
up in chrome://tracing.

BUG=1788
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8381}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8381 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-16 21:02:20 +00:00
e7a4a12f83 Add arraysize() macro from Chromium, and make use of it in a few places.
This not only shortens some test code, it makes it more robust against changing
the lengths of the arrays later and forgetting to update the length constants
(which bit me).

BUG=none
TEST=none
R=hta@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8191}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8191 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-28 21:37:13 +00:00
fc5ad95fec Reland of: "Implement elapsed time and capture start NTP time estimation." revision @8139
Link to original CL: https://review.webrtc.org/36909004/

R=pbos@webrtc.org
TBR=pthatcher@webrtc.org
BUG=4227

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8162 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-27 09:57:01 +00:00
0f98844749 Revert 8139 "Implement elapsed time and capture start NTP time e..."
> Implement elapsed time and capture start NTP time estimation.
> 
> These two elements are required for end-to-end delay estimation.
> 
> BUG=1788
> R=stefan@webrtc.org
> TBR=pthatcher@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/36909004

TBR=pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8143 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-23 21:17:38 +00:00
ad3ee2c46b Implement elapsed time and capture start NTP time estimation.
These two elements are required for end-to-end delay estimation.

BUG=1788
R=stefan@webrtc.org
TBR=pthatcher@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8139 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-23 14:55:00 +00:00
f18fba2f7b Implement SimulcastEncoderAdapter support.
R=stefan@webrtc.org
BUG=1788

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8061 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-14 16:26:23 +00:00
8f27fcce79 Revert 8028 "Support associated payload type when registering Rt..."
Reasons for revert:
1. glaznev discovered potentially related problems using the Android AppRTCDemo.
2. We're trying to do an M41 webrtc roll in Chromium, and this CL is risky.

> Support associated payload type when registering Rtx payload type.
> 
> Major changes include,
> - Add associated payload type for SetRtxSendPayloadType & SetRtxReceivePayloadType.
> - Receiver: Restore RTP packets by the new RTX-APT map.
> - Sender: Send RTP packets by checking RTX-APT map.
> - Add RTX payload type for RED in the default codec list.
> 
> BUG=4024
> R=pbos@webrtc.org, stefan@webrtc.org
> TBR=mflodman@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/26259004
> 
> Patch from Changbin Shao <changbin.shao@intel.com>.

TBR=pbos@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8033 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-09 20:22:46 +00:00
2a169640a3 Support associated payload type when registering Rtx payload type.
Major changes include,
- Add associated payload type for SetRtxSendPayloadType & SetRtxReceivePayloadType.
- Receiver: Restore RTP packets by the new RTX-APT map.
- Sender: Send RTP packets by checking RTX-APT map.
- Add RTX payload type for RED in the default codec list.

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

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8028 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-09 15:16:10 +00:00
c37e72e890 Make setting identical RTP extensions a no-op.
Setting extensions are responsible for a lot of stream tear-downs
causing substantial slowdowns in SetRemoteDescription.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7998 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-05 18:51:13 +00:00
896888b7e4 Remove min bitrate from simulcast streams.
Bitrates are still set using SetBitrateConfig() either way, and this
code causes assertion failures in
VideoSendStream::ReconfigureVideoEncoder: Assertion
`streams[i].target_bitrate_bps >= streams[i].min_bitrate_bps' failed.

R=pthatcher@webrtc.org
BUG=1788

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7990 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-02 15:40:56 +00:00
742386a136 Enable payload-based padding by default and remove the API.
BUG=1812
R=mflodman@webrtc.org, pbos@webrtc.org, perkj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7964 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-19 15:33:17 +00:00
2b19f06312 Wire up RTT statistics to webrtc::Call.
R=mflodman@webrtc.org, stefan@webrtc.org
BUG=1667,1788

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7876 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-11 13:26:09 +00:00
a85307737c (Auto)update libjingle 81702493-> 81755413
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7860 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-10 09:01:18 +00:00
273a414b0e Report encoded frame size in VideoSendStream.
Implements reporting transmitted frame size in WebRtcVideoEngine2.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7772 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-01 15:23:21 +00:00
008731868a Implement settable min/start/max bitrates in Call.
These parameters are set by the x-google-*-bitrate SDP parameters. This
is implemented on a Call level instead of per-stream like the currently
underlying VideoEngine implementation to allow this refactoring to not
reconfigure the VideoCodec at all but rather adjust bandwidth-estimator
parameters.
Also implements SetMaxSendBandwidth in WebRtcVideoEngine2 as it's a SDP
parameter and allowing it to be dynamically readjusted in Call.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7746 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-25 14:03:34 +00:00
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