131 Commits

Author SHA1 Message Date
pbos@webrtc.org
af38f4e511 Extract RTP-header SSRC inline in Call.
Prevents unknown-RTP-header-extension warnings to be flooding from the
RTP-header parsing as there's no way to register RTP extensions for the
parser in Call as they're allowed to differ between RTP streams.

RTP-header parsing should instead be done separately in every
VideoReceiveStream.

BUG=
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6619 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-08 07:38:12 +00:00
pbos@webrtc.org
161f808500 Add test for VideoEncoder setup/teardown.
Verifies that InitEncode and RegisterEncodeCompleteCallback gets
called before Encode is called. Also verifies that teardown is correctly
done during DestroyVideoSendStream().

BUG=2339
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6613 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-07 14:22:35 +00:00
pbos@webrtc.org
2bb1bdab8d Preserve RTP states for restarted VideoSendStreams.
A restarted VideoSendStream would previously be completely reset,
causing gaps in sequence numbers and potentially RTP timestamps as well.
This broke SRTP which requires fairly sequential sequence numbers.
Presumably, were this sent without SRTP, we'd still have problems on the
receiving end as the corresponding receiver is unaware of this reset.

Also adding annotation to RTPSender and addressing some unlocked
access to ssrc_, ssrc_rtx_ and rtx_.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6612 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-07 13:06:48 +00:00
andresp@webrtc.org
b941fe8098 Fix data races related with traces in bitrate estimator test.
BUG=3549
R=pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6609 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-07 08:50:48 +00:00
pbos@webrtc.org
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
stefan@webrtc.org
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
pbos@webrtc.org
20c1f56992 Configure RTX send status on new modules.
Fixes bug where newly-allocated modules wouldn't send payload-based
padding (or probably not send over RTX at all).

As the newly-added test exposed lock-inversions shown on tsan in
VideoReceiver, VideoReceiver was thread-annotated and locks taken less.
BUG=chromium:391085
R=mflodman@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6601 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-04 10:58:12 +00:00
mflodman@webrtc.org
614000d638 Adding pbos as video/ owner and removing persons never working with this folder.
R=pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6599 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-04 08:50:14 +00:00
pbos@webrtc.org
be9d2a4549 Reserve RTP/RTCP modules in SetSSRC.
Allows setting SSRCs for future simulcast layers even though no set send
codec uses them.

Also re-enabling CanSwitchToUseAllSsrcs as an end-to-end test, required
for bitrate ramp-up, instead of send-side only (resolving issue 3078).
This test was used to verify reserved modules' SSRCs are preserved
correctly.

To enable a multiple-stream end-to-end test test::CallTest was modified
to work on a vector of receive streams instead of just one.

BUG=3078
R=kjellander@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6565 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-30 13:19:09 +00:00
pbos@webrtc.org
994d0b7229 Refactor Call-based tests.
Greatly reduces duplication of constants and setup code for tests based
on the new webrtc::Call APIs. It also makes it significantly easier to
convert sender-only to end-to-end tests as they share more code.

BUG=3035
R=kjellander@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6551 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-27 08:47:52 +00:00
kjellander@webrtc.org
1227ab89a7 GN: Add BUILD.gn files + kjellander to OWNERS
This should work as a foundation for all the work that is
left to do to make the parts of WebRTC that Chromium uses
to build with GN.

I implemented some the smaller modules myself in this CL.
The remaining work (TODO's in the .gn files) will be distributed
to various team members.

I'm adding myself to OWNERS files for BUILD.gn files in all the
directories where I'm adding a BUILD.gn file.

BUG=3441
TEST=
Successful compilation of WebRTC as standalone:
gn gen out/Default --args="build_with_chromium=false" && ninja -C out/Default
gn gen out/Default --args="build_with_chromium=false is_clang=true clang_use_chrome_plugins=false" && ninja -C out/Default

I built successfully from a Chromium checkout (with
https://codereview.chromium.org/321313006/ applied) using:
gn gen out/Default && ninja -C out/Default webrtc

R=brettw@chromium.org, niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6523 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-23 19:21:07 +00:00
wuchengli@chromium.org
f425b55eeb Add tests of texture frames in video_send_stream_test.
Also fix a bug in ViEFrameProviderBase::DeliverFrame that
a texture frame was only delivered to the first callback.

BUG=chromium:362437
TEST=Run video engine test and webrtc call on CrOS.
R=kjellander@webrtc.org, pbos@webrtc.org, stefan@webrtc.org, wuchengli@google.com

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6506 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-20 12:04:05 +00:00
mflodman@webrtc.org
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
stefan@webrtc.org
cb254aac3b Enable pacing by default and remove the option to disable it from the new API.
BUG=1672
R=mflodman@webrtc.org, pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6416 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-12 15:12:25 +00:00
stefan@webrtc.org
fbb567dacd Add APIs to enable padding with redundant payloads.
Also makes a small change to the tests to remove flakiness. We can't do
BWE only based on rtp timestamps if we preemptively resend packets instead
of sending padding packets.

BUG=1812,2992
R=mflodman@webrtc.org, pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6400 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-11 13:41:36 +00:00
pbos@webrtc.org
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
mflodman@webrtc.org
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
stefan@webrtc.org
ef92755780 Have RTX be enabled by setting an RTX payload type instead of by setting an RTX SSRC.
This makes it easier to disable RTX by filtering out the RTX codec during call setup/signaling, and won't require that also the SSRCs are filtered out.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6335 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-05 08:25:29 +00:00
wu@webrtc.org
9aa7d8df95 Increase the threshold for CallPerfTest.CaptureNtpTimeWithNetworkDelay to avoid flaky.
BUG=3374
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6267 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-29 05:03:52 +00:00
asapersson@webrtc.org
1457b4737a First incoming packet was not accounted for in receive stats. Changed call order for incoming packet to receive statistics class.
Receive stats is reset if the payload type changes. Update stats after a possible reset.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6247 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-26 13:06:04 +00:00
pbos@webrtc.org
1566ee2893 Revert "Revert "Remove VideoSendStreamInput::PutFrame.""
This reverts commit r6230 to re-land r6229.

ViECapturer::SwapFrame now resets timestamps.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6231 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-23 13:03:45 +00:00
pbos@webrtc.org
2cdd433edf Revert "Remove VideoSendStreamInput::PutFrame."
This reverts r6229.

Test WebRtcVideoChannel2BaseTest.MuteStream fails after r6229.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6230 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-23 10:43:26 +00:00
pbos@webrtc.org
f3085e43ab Remove VideoSendStreamInput::PutFrame.
PutFrame just copies the frame before swapping it, if it's required that
can easily be done outside this API before swapping the frame.

BUG=
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6229 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-23 09:41:45 +00:00
stefan@webrtc.org
4059c2f579 Disable CallPerfTest.CaptureNtpTimeWithNetworkDelay due to being flaky.
TBR=wu@webrtc.org
BUG=3374

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6201 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-20 15:12:29 +00:00
pbos@webrtc.org
024e4d5c6e Fix Win VideoSendStream::...::ToString() compiles.
Removed an extra ::VideoSendStream in the method declarations.

BUG=3171
TBR=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6171 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-15 10:03:24 +00:00
pbos@webrtc.org
1e92b0a93d Add ToString() to VideoSendStream::Config.
Adds ToString() to subsequent parts as well as a common.gyp to define
ToString() methods for config.h. VideoStream is also moved to config.h.

BUG=3171
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6170 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-15 09:35:06 +00:00
pbos@webrtc.org
caba2d2a37 Add DeliveryStatus enum to DeliverPacket().
Allows signalling why packet delivery failed. Especially enables
signaling that delivery fails because the incoming packet had an unknown
SSRC. This allows an application to react and create receivers for the
new streams.

R=mflodman@webrtc.org
BUG=3228

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6150 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-14 13:57:12 +00:00
solenberg@webrtc.org
db60434b31 Re-enable the BitrateEstimatorTest cases for the Call API.
BUG=
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6141 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-14 09:15:19 +00:00
pbos@webrtc.org
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
wu@webrtc.org
66773a032a Move timestamp_extrapolator and rtp_to_ntp to system wrapper so that it can be shared by both audio and video engine.
BUG=3111
TEST=try bots
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6074 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-07 17:09:44 +00:00
wu@webrtc.org
0224c20fa6 * Add 100ms network delay to test CaptureNtpTimeWithNetworkJitter.
* Re-enable test CaptureNtpTimeWithNetworkJitter.
* Use 100ms as the threadhold as a FYI since this is a performance test.

BUG=3271
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6054 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-05 17:42:43 +00:00
pbos@webrtc.org
de1429e9ad Add thread annotations to Call API.
Also constified a lot of pointers and reordered members to make
protected members more grouped together.

R=kjellander@webrtc.org, stefan@webrtc.org
BUG=2770

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5998 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-28 13:00:21 +00:00
pbos@webrtc.org
c891577e6d Disable flaky CaptureNtpTimeWithNetworkJitter.
TBR=wu@webrtc.org
BUG=3271

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5996 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-28 11:57:32 +00:00
pbos@webrtc.org
f043f79711 Disabling flaky CanReceiveFec.
CanReceiveFec is flaky, likely to the test expecting the first FEC
packet to always be decoded and rendered.

R=stefan@webrtc.org
BUG=3269

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5992 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-28 09:00:50 +00:00
wu@webrtc.org
cd70119a10 Calculate local/remote clock delta and capture ntp timestamp in receiver's timebase.
BUG=3111
TEST=new performance tests
R=niklas.enbom@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5976 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-24 22:10:24 +00:00
pbos@webrtc.org
5ca6a5387e Remove TraceCallback use from Call.
Non-global logging isn't supported, and having a per-call logging
dispatch seems over-eager and adds more complexity than it's worth. The
current implementation is racy on initialization due to missing atomics
support. Besides, logging support should be separate from use of Call.

R=mflodman@webrtc.org
BUG=3250,3157

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5971 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-24 11:35:33 +00:00
pbos@webrtc.org
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
henrik.lundin@webrtc.org
d144bb6812 Let A/V sync test use default AudioCoding module
This test used to run with both ACM1 and ACM2, to verify sync with both
versions of the module. ACM1 (and NetEq3) is now being deprecated,
wherefore this test should now use the default one (i.e., ACM2).

BUG=2996
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5953 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-22 08:36:33 +00:00
fischman@webrtc.org
2c89b5cb27 Make everyone an OWNER for .gyp/.gypi add/delete purposes, non-talk/ edition.
This CL brought to you by:
$ for d in $(for f in $(git ls-files '*gyp' '*gypi'); do dirname $f; done|sort|uniq|grep -v '^\.$'); do echo -e "\n# These are for the common case of adding or renaming files. If you're doing\n# structural changes, please get a review from a reviewer in this file.\nper-file *.gyp=*\nper-file *.gypi=*" >> $d/OWNERS; done
$ for d in $(for f in $(git ls-files '*gyp' '*gypi'); do dirname $f; done|sort|uniq|grep -v '^\.$'); do git add $d/OWNERS; done

(and then removed the talk/ impact)

R=niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5903 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-14 20:08:03 +00:00
pbos@webrtc.org
22cf7472a0 Disable UsesTraceCallback
Ongoing removal of trace code is causing UsesTraceCallback to fail,
disabling it for now.

BUG=3157
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5882 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-10 14:39:22 +00:00
pbos@webrtc.org
2a03498825 Implement FEC support in VideoReceiveStream.
Added an FEC end-to-end test. NACK+FEC is probably working but not yet tested
as the test for it must introduce packet delays as the underlying API prefers
NACK over FEC if RTT is low.

BUG=3174
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5862 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-08 11:21:45 +00:00
andresp@webrtc.org
dc80bae2a6 Convert logs in rtp rtcp module from WEBRTC_TRACE into LOG.
Clean some logs and add asserts in the way.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5861 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-08 11:06:12 +00:00
stefan@webrtc.org
b08db28958 Clean up traces and logs in RemoteBitrateEstimator.
BUG=3153
R=andresp@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5854 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-07 12:53:28 +00:00
andresp@webrtc.org
44caf01c34 Re-submit: rev5775
Modify bitrate controller to update bitrate based on process call and not
only whenever a RTCP receiver block is received.

Additionally:
 Add condition to only start rampup after a receiver block is received. This was same as old behaviour but now an explicit check is needed to verify process does not ramps up before the first block.

 Fix logic around capping max bitrate increase at 8% per second. Before it was only increasing once every 1 second and each increase would be as high as 8%. If receiver blocks had a different interval before it would lose an update or waste an update slot and not ramp up as much as a 8% (e.g. if RTCP received < 1 second).

 Did not touch decrease logic, however since it can be triggered more often it
 may decrease much faster and closer to the original written cap of once every
 300ms + rtt.

Note:
 rampup_tests.cc don't seem to be affected by this since there is no packet loss or REMB that go higher than expected cap.
 bitrate_controller_unittests.cc are don't really simulate a clock and the process thread, but trigger update by inserting an rtcp block.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5794 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-26 21:00:21 +00:00
andrew@webrtc.org
6cd201cf31 Revert 5775 "Modify bitrate controller to update bitrate based o..."
This triggered an occasional TSAN failure in
CallTest.ReceivesPliAndRecoversWithNack e.g.:
http://build.chromium.org/p/client.webrtc/builders/Linux%20Tsan/builds/1444/steps/memory%20test%3A%20video_engine_tests/logs/stdio

I managed to reproduce this locally and verified that reverting this CL
corrected it.

> Modify bitrate controller to update bitrate based on process call and not
> only whenever a RTCP receiver block is received.
> 
> Additionally:
>  Add condition to only start rampup after a receiver block is received. This was same as old behaviour but now an explicit check is needed to verify process does not ramps up before the first block.
> 
>  Fix logic around capping max bitrate increase at 8% per second. Before it was only increasing once every 1 second and each increase would be as high as 8%. If receiver blocks had a different interval before it would lose an update or waste an update slot and not ramp up as much as a 8% (e.g. if RTCP received < 1 second).
> 
>  Did not touch decrease logic, however since it can be triggered more often it
>  may decrease much faster and closer to the original written cap of once every
>  300ms + rtt.
> 
> Note:
>  rampup_tests.cc don't seem to be affected by this since there is no packet loss or REMB that go higher than expected cap.
>  bitrate_controller_unittests.cc are don't really simulate a clock and the process thread, but trigger update by inserting an rtcp block.
> 
> BUG=3065
> R=stefan@webrtc.org, mflodman@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/10529004

TBR=andresp@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5785 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-25 19:42:39 +00:00
henrik.lundin@webrtc.org
02e749f848 Change sprintf format string from %zu to %i
The resulting string became wrong on Windows. Instead of printing
the numerical value in number_of_streams_, the string "zu" got
printed. (Linux and Mac worked fine already.)

This will result in a change of statistics name in the performance
graphs.

R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5776 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-25 13:39:11 +00:00
andresp@webrtc.org
da07737e68 Modify bitrate controller to update bitrate based on process call and not
only whenever a RTCP receiver block is received.

Additionally:
 Add condition to only start rampup after a receiver block is received. This was same as old behaviour but now an explicit check is needed to verify process does not ramps up before the first block.

 Fix logic around capping max bitrate increase at 8% per second. Before it was only increasing once every 1 second and each increase would be as high as 8%. If receiver blocks had a different interval before it would lose an update or waste an update slot and not ramp up as much as a 8% (e.g. if RTCP received < 1 second).

 Did not touch decrease logic, however since it can be triggered more often it
 may decrease much faster and closer to the original written cap of once every
 300ms + rtt.

Note:
 rampup_tests.cc don't seem to be affected by this since there is no packet loss or REMB that go higher than expected cap.
 bitrate_controller_unittests.cc are don't really simulate a clock and the process thread, but trigger update by inserting an rtcp block.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5775 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-25 12:48:42 +00:00
solenberg@webrtc.org
b1f5010075 VoE changes to allow forwarding of packets from VoE to ViE BWE.
BUG=
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5757 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-24 10:38:25 +00:00
stefan@webrtc.org
af839b28b0 Add AIMD option to BWE API.
TEST=trybots
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5755 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-24 09:42:08 +00:00
andresp@webrtc.org
c14807959b Extend perf tests to perform rampup on single stream.
R=kjellander@webrtc.org, stefan@webrtc.org
BUG=3065

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5733 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-20 03:23:55 +00:00