Commit Graph

29 Commits

Author SHA1 Message Date
9874ee0d7a Add temporal-layers option to video_loopback.
BUG=
R=asapersson@webrtc.org, sprang@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9482}
2015-06-22 11:44:30 +00:00
d7da120b40 Disable reduced-size RTCP in default config.
Verifies that reduced-size isn't configured in WebRtcVideoEngine2
without explicit configuration (which doesn't exist). Also disables REMB
in the default config because it requires reconfiguration.

Adds default-config tests to make sure that they don't contain
parameters that need to be negotiated between clients.

BUG=chromium:497103, webrtc:4745
R=mflodman@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9384}
2015-06-05 12:09:48 +00:00
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
e590416722 Moving the pacer and the pacer thread to ChannelGroup.
This means all channels within the same group will share the same pacing queue and scheduler. It also means padding will be computed and sent by a single pacer. To accomplish this I also introduce a PacketRouter which finds the RTP module which owns the packet to be paced out.

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

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

Cr-Commit-Position: refs/heads/master@{#8864}
2015-03-26 10:11:22 +00:00
2b4ce3a501 Convert webrtc/video/ abort/assert to CHECK/DCHECK.
Also replaces NULL with nullptr. This gives nicer error messages and
keeps style consistent.

BUG=1756
R=magjed@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8831}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8831 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-23 13:13:15 +00:00
00b8f6b364 Use base/scoped_ptr.h; system_wrappers/interface/scoped_ptr.h is going away
BUG=
R=andrew@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8517}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8517 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-26 14:43:50 +00:00
131bea89d6 Offline screenshare quality test, plus loopback.
BUG=4171
R=mflodman@webrtc.org, pbos@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8408}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8408 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-18 12:46:44 +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
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
7c29e8c2f3 Add support for VP9 in webrtc::Call and video_loopback.
R=pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7622 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-04 19:41:15 +00:00
b3265accd9 Adds support for finch experiments to video_loopback.
Adds support for logging to stderr via -logs.

Enables abs-send-time by default.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7613 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-04 14:57:14 +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
a73a678e25 Remove -1 from Call::Config::start_bitrate_bps.
Instead initialize it to a good default value. The code does the same,
but we don't have to check explicitly for -1.

R=mflodman@webrtc.org
BUG=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7445 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-14 11:52:10 +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
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
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
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
bfe6e08195 Add simulation of network effects to video_loopback tool.
Also add support for uniform random packet loss to the fake network pipe.

R=pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6803 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-31 12:30:18 +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
b9f5453e29 Add boilerplate code for H.264.
R=mflodman@webrtc.org, niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6603 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-04 12:42:07 +00:00
eb16b811fb Implements start bitrate for new video API.
Added  a new rampup test.

BUG=2879
R=pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6443 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-16 08:57:39 +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
eae7924836 Adding back platform specific renderer to video loopback test.
BUG=3039
TEST=locally on Mac and Win, video_loopback test
R=pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6339 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-05 09:32:51 +00:00
023b101f4e Move gflags usage to video_loopback.
gflags aren't used by the test environment and is an unnecessary
dependency. They're only used by the video_loopback target, so moving
them there.

R=mflodman@webrtc.org
BUG=3113

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6120 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-13 11:26:40 +00:00
a5c8d2c9b3 Rename Start/Stop in Video{Send,Receive}Streams.
Rename {Start,Stop}{Sending,Receving} to Start/Stop. StartSending
provides no extra information in the context of a VideoSendStream, as
what it does is to send.

R=mflodman@webrtc.org
BUG=3227

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5970 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-24 11:13:21 +00:00
f577ae9eac Remove internal codecs from VideoSendStream.
Replaces VideoCodec in VideoSendStream::Config with an EncoderSettings
struct. The EncoderSettings struct uses an external encoder for all
codecs. This means that external users, such as libjingle, will provide
the encoders themselves, removing the previous distinction of internal
and external codecs.

For now VideoSendStream translates to VideoCodec internally. In the
interrim (before the corresponding change is implemented in
VideoReceiveStream) tests convert EncoderSettings to VideoCodecs.

Removes Call::GetVideoCodecs().

Disables RampUpTest.WithPacingAndRtx as its further exposed with changes
to bitrates used in tests.

BUG=2854,2992
R=mflodman@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5722 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-19 08:43:57 +00:00
bdc5ed2e7d Add configuration for cpu overuse detection to video send stream.
BUG=2422
R=mflodman@webrtc.org, pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5468 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-31 10:05:07 +00:00
c49d5b7df8 Move implementation files out of the webrtc/ root.
Leaves the root for public headers. Also fixes the issue of requiring
root OWNERS approval for changes in the Call implementation and adding
end-to-end tests.

BUG=
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5223 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-05 12:11:47 +00:00