Commit Graph

144 Commits

Author SHA1 Message Date
43c5a974b4 Delete stl_util.h. Unused since cl https://codereview.webrtc.org/2447103002
BUG=None

Review-Url: https://codereview.webrtc.org/2570833002
Cr-Commit-Position: refs/heads/master@{#15590}
2016-12-14 08:07:44 +00:00
668eb3b71c Add overhead to transport feedback observer.
BUG=webrtc:6762

Review-Url: https://codereview.webrtc.org/2525283002
Cr-Commit-Position: refs/heads/master@{#15291}
2016-11-29 10:24:23 +00:00
e441bdb744 Cleanup RtpSender hiding RtpHeaderExtensionLength function.
This function has no public use,
removed tests calling it: effect of registering extension is better
tested in AllocatePacket and SendPacket tests.

BUG=webrtc:5565

Review-Url: https://codereview.webrtc.org/2530363002
Cr-Commit-Position: refs/heads/master@{#15258}
2016-11-28 10:55:01 +00:00
96c1587551 RtpPacket::payload() return rtc::ArrayView instead of raw pointer
BUG=webrtc:5261

Review-Url: https://codereview.webrtc.org/2506373004
Cr-Commit-Position: refs/heads/master@{#15162}
2016-11-21 09:35:33 +00:00
ffbbcac4c6 Support multiple timestamp rates for sending DTMF.
We support multiple payload types, and one which matches the audio codec the closest, is picked (or the one with lowest clock rate, if no perfect match is found).

The exact clock rate is then ignored and DTMF packets are time stamped with the rate of the current audio codec. This is exactly the way the code has worked up to this point, but until now we have been under the impression that we were in fact sending 8k DTMF.

In other words, this is an improvement over the current situation, since we will most likely find a payload type which matches the codec clock rate.

This CL also does a little cleaning of the DTMFQueue and RTPSenderAudio classes.
BUG=webrtc:2795

Review-Url: https://codereview.webrtc.org/2392883002
Cr-Commit-Position: refs/heads/master@{#15129}
2016-11-17 13:25:45 +00:00
4da304407c Add overhead per packet observer to the rtp_sender.
BUG=webrtc:6638

Review-Url: https://codereview.webrtc.org/2495553002
Cr-Commit-Position: refs/heads/master@{#15124}
2016-11-17 09:38:48 +00:00
9dfff29bc4 Make FlexFEC packets paceable through RTPSender.
Prior to this change, FlexFEC packets that were paced would be lost in
the RTPSender, since they were not stored in a packet history. This CL
introduces such a packet history, as well as the needed wireup for
higher layers to be aware that the particular RTPSender is able to
send FlexFEC packets with a particular SSRC.

Updated RTPSender unit test to reflect the fact that paced packets
are now actually sent.

BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2491293002
Cr-Commit-Position: refs/heads/master@{#15066}
2016-11-14 13:14:54 +00:00
dbdb3f1e63 Wire up FlexfecSender in RTPSender and add unit tests.
BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2484143002
Cr-Commit-Position: refs/heads/master@{#15017}
2016-11-10 13:04:54 +00:00
1743a19183 Simplify SetFecParameters signature.
- Change const ptr to const ref in parameter list.
  Using nullptr as argument was invalid, so no need to send
  pointer instead of reference.
- Change return type to void or bool, where appropriate

BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2455963003
Cr-Commit-Position: refs/heads/master@{#14945}
2016-11-07 11:36:14 +00:00
f1bb476050 Simplify {,Set}UlpfecConfig interface.
Prior to this change, we signalled that ULPFEC was disabled
through a bool, but that RED was disabled by setting its
payload type to -1. The latter is consistent with how we
disable RED/ULPFEC in the config, so this CL removes the
ULPFEC bool from the {,Set}UlpfecConfig chain of member
functions.

BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2460533002
Cr-Commit-Position: refs/heads/master@{#14944}
2016-11-07 11:05:09 +00:00
d8048955fb Rename {,Set}GenericFECStatus to {,Set}UlpfecConfig.
At the same time, change to using int's instead of uint8_t's for the payload type.
This allows us to signal disabled FEC or RED using the sentinel value -1, which
is commonplace in other parts of the code.

These APIs will be deprecated when ULPFEC is deprecated.

BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2448463003
Cr-Commit-Position: refs/heads/master@{#14942}
2016-11-07 10:08:58 +00:00
c1600c5695 Follow standard sending CVO rtp header extension
Include CVO in key frame.
Include CVO in delta frame when rotation changes.
Include CVO when it is non zero to support current receiver implementation.

BUG=webrtc:6600

Review-Url: https://codereview.webrtc.org/2452583002
Cr-Commit-Position: refs/heads/master@{#14784}
2016-10-26 10:33:17 +00:00
12ba1867a2 Move parsing from tests to Transport helper in RTPSenderTests
making tests cleaner

BUG=webrtc:5565

Review-Url: https://codereview.webrtc.org/2447103002
Cr-Commit-Position: refs/heads/master@{#14782}
2016-10-26 09:42:00 +00:00
2d81eb33f5 Fix BWE simulations so that it uses the delay based BWE.
Rename kFullSendSideEstimator -> kSendSideEstimator and add new class SendSideBweSender (controlled by kSendSideEstimator) that actually uses the send side BWE.

Move the mock to logging/rtc_event_log/mock.
Allow congestion_controller, remote_bitrate_estimator and audio to depend on loggging/rtc_event_log

BUG=webrtc:6526
NOPRESUBMIT=True

Review-Url: https://codereview.webrtc.org/2431093003
Cr-Commit-Position: refs/heads/master@{#14772}
2016-10-25 14:04:44 +00:00
cc34833809 Remove now unused code in RtpHeaderExtensionMap
Remove functions to enumerate all extensions,
Remove concept of the inactive extension.
Decision if extension should be included into rtp header is done by rtp_sender
GetTotalLengthInBytes now calculates all extension, included or not.
That is used only for calculating how much space to reserve for fec.
Since extension might suddenly be included in the next packet (which still might belong to same fec group), it is safer to calculate all registered extension.

BUG=webrtc:5565, webrtc:1994

Review-Url: https://codereview.webrtc.org/2431253003
Cr-Commit-Position: refs/heads/master@{#14763}
2016-10-25 10:12:34 +00:00
b6f1fb5337 Delete RTPSender::BuildRtpHeader function
and all dependencies

BUG=webrtc:5565

Review-Url: https://codereview.webrtc.org/2399463009
Cr-Commit-Position: refs/heads/master@{#14682}
2016-10-19 13:11:44 +00:00
ac9f876bc0 Sort #includes that got unsorted when gmock.h and gtest.h moved to webrtc/test/
gmock.h and gtest.h were moved (or rather, got wrappers so that we
could put some icky compatibility hacks in one place instead of 500)
in this CL: https://codereview.webrtc.org/2358993004/

NOPRESUBMIT=true
BUG=webrtc:6398

Review-Url: https://codereview.webrtc.org/2381013002
Cr-Commit-Position: refs/heads/master@{#14464}
2016-10-01 05:29:53 +00:00
77eab70470 Enable the -Wundef warning for clang
NOPRESUBMIT=true
BUG=webrtc:6398

Review-Url: https://codereview.webrtc.org/2358993004
Cr-Commit-Position: refs/heads/master@{#14425}
2016-09-29 00:42:08 +00:00
7bfe3a27b6 Deprecate RtpSender::SendPadData with provided timestamps.
Review-Url: https://codereview.webrtc.org/2339363002
Cr-Commit-Position: refs/heads/master@{#14287}
2016-09-19 12:38:05 +00:00
71eb61cf37 Reland of Ignore Camera and Flip bits in CVO when parsing video rotation (patchset #1 id:1 of https://codereview.webrtc.org/2300323002/ )
Reason for revert:
Downstream build is fixed.

Original issue's description:
> Revert of Ignore Camera and Flip bits in CVO when parsing video rotation (patchset #3 id:80001 of https://codereview.webrtc.org/2280703002/ )
>
> Reason for revert:
> Breaks downstream build.
>
> Original issue's description:
> > Ignore Camera and Flip bits in CVO when parsing video rotation
> >
> > Currently, if WebRTC receives a CVO byte where the Camera or Flip bit is
> > set, then rotation is incorrectly parsed as 0. This CL fixes that issue.
> > The Camera and Flip bit is still unimplemented and will just be ignored
> > though.
> >
> > BUG=webrtc:6120
> > R=danilchap@webrtc.org, pthatcher@webrtc.org, tommi@webrtc.org
> >
> > Committed: f9e1b922ef
>
> TBR=pthatcher@webrtc.org,danilchap@webrtc.org,tommi@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:6120
>
> Committed: https://crrev.com/97667c7746282704acccd896e26175decee349c0
> Cr-Commit-Position: refs/heads/master@{#14035}

TBR=pthatcher@webrtc.org,danilchap@webrtc.org,tommi@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:6120

Review-Url: https://codereview.webrtc.org/2320913003
Cr-Commit-Position: refs/heads/master@{#14124}
2016-09-08 10:25:05 +00:00
60e4346955 Add time line for acked bitrate.
R=philipel@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#14098}
2016-09-07 07:58:31 +00:00
5e57b17283 Introduce helpers to RtpSender to propagate RtpPacketToSend.
The helpers intended to replace and deprecate BuildRtpHeader when
RtpSenderAudio/RtpSenderVideo will be updated to pass RtpPacket class
instead of raw buffer for sending.

BUG=webrtc:5261
R=sprang@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#14051}
2016-09-02 17:16:08 +00:00
97667c7746 Revert of Ignore Camera and Flip bits in CVO when parsing video rotation (patchset #3 id:80001 of https://codereview.webrtc.org/2280703002/ )
Reason for revert:
Breaks downstream build.

Original issue's description:
> Ignore Camera and Flip bits in CVO when parsing video rotation
>
> Currently, if WebRTC receives a CVO byte where the Camera or Flip bit is
> set, then rotation is incorrectly parsed as 0. This CL fixes that issue.
> The Camera and Flip bit is still unimplemented and will just be ignored
> though.
>
> BUG=webrtc:6120
> R=danilchap@webrtc.org, pthatcher@webrtc.org, tommi@webrtc.org
>
> Committed: f9e1b922ef

TBR=pthatcher@webrtc.org,danilchap@webrtc.org,tommi@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6120

Review-Url: https://codereview.webrtc.org/2300323002
Cr-Commit-Position: refs/heads/master@{#14035}
2016-09-02 08:03:28 +00:00
f9e1b922ef Ignore Camera and Flip bits in CVO when parsing video rotation
Currently, if WebRTC receives a CVO byte where the Camera or Flip bit is
set, then rotation is incorrectly parsed as 0. This CL fixes that issue.
The Camera and Flip bit is still unimplemented and will just be ignored
though.

BUG=webrtc:6120
R=danilchap@webrtc.org, pthatcher@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#14027}
2016-09-01 17:58:28 +00:00
2800d74fcf Change RtpSender::OnReceiveNACK name and signature
Name changed to follow style.
list replaced with vector to decrease number of included headers.

R=philipel@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13938}
2016-08-26 16:49:05 +00:00
a246cfb8b5 Don't include RTP headers in send-side BWE.
When they are included there will be a mismatch between what the BWE says and
what the encoder is allowed to use, causing us to send more than the network
can handle.

BUG=webrtc:6247
R=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13866}
2016-08-23 15:51:57 +00:00
71fead2146 Reland of StartTimestamp generated randomly in RtpSender constructor (patchset #1 id:1 of https://codereview.webrtc.org/2248413002/ )
Reason for revert:
Reland: downstream code expectation about rtp_sender timestamp adjusted.

Original issue's description:
> Revert of StartTimestamp generated randomly in RtpSender constructor (patchset #4 id:60001 of https://codereview.webrtc.org/2241193002/ )
>
> Reason for revert:
> Breaks downstream code.
>
> Original issue's description:
> > StartTimestamp generated randomly in RtpSender constructor
> > instead of not-randomly at SetSendingState(true)
> > Renamed to timestamp_offset_ to better match meaning of the variable.
> >
> > R=asapersson@webrtc.org, terelius@webrtc.org
> >
> > Committed: https://crrev.com/4466782ae43e1b1125a55ee7e18abd10dd37cede
> > Cr-Commit-Position: refs/heads/master@{#13796}
>
> TBR=asapersson@webrtc.org,terelius@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://crrev.com/86c96948e340cf8b879bddb0c7293f3b5ad4dad4
> Cr-Commit-Position: refs/heads/master@{#13798}

TBR=asapersson@webrtc.org,terelius@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.webrtc.org/2257083002
Cr-Commit-Position: refs/heads/master@{#13811}
2016-08-18 09:02:16 +00:00
86c96948e3 Revert of StartTimestamp generated randomly in RtpSender constructor (patchset #4 id:60001 of https://codereview.webrtc.org/2241193002/ )
Reason for revert:
Breaks downstream code.

Original issue's description:
> StartTimestamp generated randomly in RtpSender constructor
> instead of not-randomly at SetSendingState(true)
> Renamed to timestamp_offset_ to better match meaning of the variable.
>
> R=asapersson@webrtc.org, terelius@webrtc.org
>
> Committed: https://crrev.com/4466782ae43e1b1125a55ee7e18abd10dd37cede
> Cr-Commit-Position: refs/heads/master@{#13796}

TBR=asapersson@webrtc.org,terelius@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.webrtc.org/2248413002
Cr-Commit-Position: refs/heads/master@{#13798}
2016-08-17 15:12:27 +00:00
4466782ae4 StartTimestamp generated randomly in RtpSender constructor
instead of not-randomly at SetSendingState(true)
Renamed to timestamp_offset_ to better match meaning of the variable.

R=asapersson@webrtc.org, terelius@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13796}
2016-08-17 13:07:49 +00:00
31e4e806b1 RtpPacketHistory rewritten to use RtpPacket class.
RtpSender updated to use new version of RtpPacketHistory.

BUG=webrtc:5261
R=asapersson@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13626}
2016-08-03 16:27:50 +00:00
525df3ffd1 Add EncodedImageCallback::OnEncodedImage().
OnEncodedImage() is going to replace Encoded(), which is deprecated now.
The new OnEncodedImage() returns Result struct that contains frame_id,
which tells the encoder RTP timestamp for the frame.

BUG=chromium:621691
R=niklas.enbom@webrtc.org, sprang@webrtc.org, stefan@webrtc.org

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

Committed: https://crrev.com/4c7f4cd2ef76821edca6d773d733a924b0bedd25
Committed: https://crrev.com/ad34dbe934d47f88011045671b4aea00dbd5a795
Cr-Original-Original-Commit-Position: refs/heads/master@{#13613}
Cr-Original-Commit-Position: refs/heads/master@{#13615}
Cr-Commit-Position: refs/heads/master@{#13617}
2016-08-03 00:46:47 +00:00
51db4dd1bd Revert of Add EncodedImageCallback::OnEncodedImage(). (patchset #14 id:300001 of https://codereview.chromium.org/2089773002/ )
Reason for revert:
broke browser_tests

Original issue's description:
> Add EncodedImageCallback::OnEncodedImage().
>
> OnEncodedImage() is going to replace Encoded(), which is deprecated now.
> The new OnEncodedImage() returns Result struct that contains frame_id,
> which tells the encoder RTP timestamp for the frame.
>
> BUG=chromium:621691
> R=niklas.enbom@webrtc.org, sprang@webrtc.org, stefan@webrtc.org
>
> Committed: https://crrev.com/4c7f4cd2ef76821edca6d773d733a924b0bedd25
> Committed: https://crrev.com/ad34dbe934d47f88011045671b4aea00dbd5a795
> Cr-Original-Commit-Position: refs/heads/master@{#13613}
> Cr-Commit-Position: refs/heads/master@{#13615}

TBR=pbos@webrtc.org,mflodman@webrtc.org,sprang@webrtc.org,stefan@webrtc.org,niklas.enbom@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:621691

Review-Url: https://codereview.webrtc.org/2203233002
Cr-Commit-Position: refs/heads/master@{#13616}
2016-08-03 00:33:47 +00:00
4c7f4cd2ef Add EncodedImageCallback::OnEncodedImage().
OnEncodedImage() is going to replace Encoded(), which is deprecated now.
The new OnEncodedImage() returns Result struct that contains frame_id,
which tells the encoder RTP timestamp for the frame.

BUG=chromium:621691
R=niklas.enbom@webrtc.org, sprang@webrtc.org, stefan@webrtc.org

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

Committed: https://crrev.com/ad34dbe934d47f88011045671b4aea00dbd5a795
Cr-Original-Commit-Position: refs/heads/master@{#13613}
Cr-Commit-Position: refs/heads/master@{#13615}
2016-08-02 22:14:51 +00:00
ac4dc2cefe Revert of Add EncodedImageCallback::OnEncodedImage(). (patchset #13 id:280001 of https://codereview.webrtc.org/2089773002/ )
Reason for revert:
broke internal tests

Original issue's description:
> Add EncodedImageCallback::OnEncodedImage().
>
> OnEncodedImage() is going to replace Encoded(), which is deprecated now.
> The new OnEncodedImage() returns Result struct that contains frame_id,
> which tells the encoder RTP timestamp for the frame.
>
> BUG=chromium:621691
> R=niklas.enbom@webrtc.org, sprang@webrtc.org, stefan@webrtc.org
>
> Committed: https://crrev.com/ad34dbe934d47f88011045671b4aea00dbd5a795
> Cr-Commit-Position: refs/heads/master@{#13613}

TBR=pbos@webrtc.org,mflodman@webrtc.org,sprang@webrtc.org,stefan@webrtc.org,niklas.enbom@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:621691

Review-Url: https://codereview.webrtc.org/2206743002
Cr-Commit-Position: refs/heads/master@{#13614}
2016-08-02 21:33:21 +00:00
ad34dbe934 Add EncodedImageCallback::OnEncodedImage().
OnEncodedImage() is going to replace Encoded(), which is deprecated now.
The new OnEncodedImage() returns Result struct that contains frame_id,
which tells the encoder RTP timestamp for the frame.

BUG=chromium:621691
R=niklas.enbom@webrtc.org, sprang@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13613}
2016-08-02 20:44:25 +00:00
737336d37a Add NACK rate throttling for audio channels.
Not really used for audio today (already in place for video), but should
still function anyway.

BUG=
R=henrika@webrtc.org, minyue@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13571}
2016-07-29 10:59:49 +00:00
ec4f068bcd Style cleanups in RtpSender.
- Renamed variables and some function to comply with style guide.
- Removed default argument values.
- Removed some dead code.
- Cleaned up comments formatting in rtp_rtcp.h

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

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

Cr-Commit-Position: refs/heads/master@{#13565}
2016-07-28 22:19:18 +00:00
a23fc626a2 Fix bug where transport sequence numbers are allocated for packets without the header extension registered.
This is an issue if the sequence numbers are to be used to compute packet loss statistics since it introduces gaps which are not related to loss.

Also making sure that the header extensions are properly guarded by the send crit sect.

Review-Url: https://codereview.webrtc.org/2190913002
Cr-Commit-Position: refs/heads/master@{#13557}
2016-07-28 14:56:45 +00:00
cd349d9743 Reland of actor NACK bitrate allocation (patchset #1 id:1 of https://codereview.webrtc.org/2131913003/ )
Reason for revert:
Upstream fixes in place, should be OK now.

Original issue's description:
> Revert of Refactor NACK bitrate allocation (patchset #16 id:300001 of https://codereview.webrtc.org/2061423003/ )
>
> Reason for revert:
> Breaks upstream code.
>
> Original issue's description:
> > Refactor NACK bitrate allocation
> >
> > Nack bitrate allocation should not be done on a per-rtp-module basis,
> > but rather shared bitrate pool per call. This CL moves allocation to the
> > pacer and cleans up a bunch if bitrate stats handling.
> >
> > BUG=
> > R=danilchap@webrtc.org, stefan@webrtc.org, tommi@webrtc.org
> >
> > Committed: 5fc59e810b
>
> TBR=tommi@webrtc.org,danilchap@webrtc.org,stefan@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=
>
> Committed: https://crrev.com/e5dd44101eca485f5ad12e5f7ce6f6b0d204116b
> Cr-Commit-Position: refs/heads/master@{#13417}

TBR=tommi@webrtc.org,danilchap@webrtc.org,stefan@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=

Review-Url: https://codereview.webrtc.org/2146013002
Cr-Commit-Position: refs/heads/master@{#13465}
2016-07-13 16:11:38 +00:00
a49f1105eb Revert of Reland Issue 2061423003: Refactor NACK bitrate allocation (patchset #1 id:1 of https://codereview.webrtc.org/2131313002/ )
Reason for revert:
It keeps breaking upstream.

Original issue's description:
> Reland Issue 2061423003: Refactor NACK bitrate allocation
>
> This is a reland of https://codereview.webrtc.org/2061423003/
> Which was reverted in https://codereview.webrtc.org/2131913003/
>
> The reason for the revert was that some upstream code used
> RtpSender::SetTargetBitrate(). I've added that back as a no-op until we
> it's been brought up to date.
>
> TBR=tommi@webrtc.org
>
> Committed: 05ce4ae31f

TBR=tommi@webrtc.org,sprang@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.webrtc.org/2130423002
Cr-Commit-Position: refs/heads/master@{#13419}
2016-07-08 18:02:02 +00:00
05ce4ae31f Reland Issue 2061423003: Refactor NACK bitrate allocation
This is a reland of https://codereview.webrtc.org/2061423003/
Which was reverted in https://codereview.webrtc.org/2131913003/

The reason for the revert was that some upstream code used
RtpSender::SetTargetBitrate(). I've added that back as a no-op until we
it's been brought up to date.

TBR=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13418}
2016-07-08 17:11:23 +00:00
e5dd44101e Revert of Refactor NACK bitrate allocation (patchset #16 id:300001 of https://codereview.webrtc.org/2061423003/ )
Reason for revert:
Breaks upstream code.

Original issue's description:
> Refactor NACK bitrate allocation
>
> Nack bitrate allocation should not be done on a per-rtp-module basis,
> but rather shared bitrate pool per call. This CL moves allocation to the
> pacer and cleans up a bunch if bitrate stats handling.
>
> BUG=
> R=danilchap@webrtc.org, stefan@webrtc.org, tommi@webrtc.org
>
> Committed: 5fc59e810b

TBR=tommi@webrtc.org,danilchap@webrtc.org,stefan@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Review-Url: https://codereview.webrtc.org/2131913003
Cr-Commit-Position: refs/heads/master@{#13417}
2016-07-08 16:39:02 +00:00
5fc59e810b Refactor NACK bitrate allocation
Nack bitrate allocation should not be done on a per-rtp-module basis,
but rather shared bitrate pool per call. This CL moves allocation to the
pacer and cleans up a bunch if bitrate stats handling.

BUG=
R=danilchap@webrtc.org, stefan@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13416}
2016-07-08 16:15:29 +00:00
6b4b5f3770 Add sender controlled playout delay limits
This CL adds support for an extension on RTP frames to allow the sender
to specify the minimum and maximum playout delay limits.

The receiver makes a best-effort attempt to keep the capture-to-render delay
within this range. This allows different types of application to specify
different end-to-end delay goals. For example gaming can support rendering
of frames as soon as received on receiver to minimize delay. A movie playback
application can specify a minimum playout delay to allow fixed buffering
in presence of network jitter.

There are no tests at this time and most of testing is done with chromium
webrtc prototype.

On chromoting performance tests, this extension helps bring down end-to-end
delay by about 150 ms on small frames.

BUG=webrtc:5895

Review-Url: https://codereview.webrtc.org/2007743003
Cr-Commit-Position: refs/heads/master@{#13059}
2016-06-08 07:24:30 +00:00
a1ed0b3241 Revert "Revert of Propagate probing cluster id to SendTimeHistory. (patchset #5 id:80001 of https://codereview.webrtc.org/2005313003/ )"
This reverts commit 46948c17fd09e4957bebc8ea61f0a8e77ff84b48.
TBR=mflodman@webrtc.org
BUG=webrtc:5859

Review-Url: https://codereview.webrtc.org/2032473002
Cr-Commit-Position: refs/heads/master@{#12992}
2016-06-01 13:31:22 +00:00
46948c17fd Revert of Propagate probing cluster id to SendTimeHistory. (patchset #5 id:80001 of https://codereview.webrtc.org/2005313003/ )
Reason for revert:
Breaks google3 buildbot:  http://webrtc-buildbot-master.mtv.corp.google.com:21000/builders/WebRTC%20google3%20Importer/builds/8640

Original issue's description:
> Propagate probing cluster id to SendTimeHistory, both for packets and padding.
>
> BUG=webrtc:5859
>
> Committed: https://crrev.com/5be28c848b91bc6e4800eac07a3f5ac09a32ad70
> Cr-Commit-Position: refs/heads/master@{#12985}

TBR=danilchap@webrtc.org,stefan@webrtc.org,mflodman@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5859

Review-Url: https://codereview.webrtc.org/2032463003
Cr-Commit-Position: refs/heads/master@{#12987}
2016-06-01 11:04:49 +00:00
5be28c848b Propagate probing cluster id to SendTimeHistory, both for packets and padding.
BUG=webrtc:5859

Review-Url: https://codereview.webrtc.org/2005313003
Cr-Commit-Position: refs/heads/master@{#12985}
2016-06-01 09:49:29 +00:00
35151f35ec Add histogram stats for average send delay of sent packets for a sent video stream. The delay is measured from a packet is sent to the transport until leaving the socket.
- "WebRTC.Video.SendDelayInMs"

Change so that PacketOption packet id is always set in RtpSender (if having a TransportSequenceNumberAllocator).
Add SendDelayStats class for computing delays.
Add SendPacketObserver to RtpRtcp config and register SendDelayStats as observer.
Wire up OnSentPacket to SendDelayStats.

BUG=webrtc:5215

Review-Url: https://codereview.webrtc.org/1478253002
Cr-Commit-Position: refs/heads/master@{#12600}
2016-05-03 06:44:11 +00:00
c04305200e Reland of move VCMQmRobustness. (patchset #1 id:1 of https://codereview.webrtc.org/1935753002/ )
Reason for revert:
Not root cause for perf regression (regression still ongoing).

Original issue's description:
> Revert of Remove VCMQmRobustness. (patchset #1 id:1 of https://codereview.webrtc.org/1917083003/ )
>
> Reason for revert:
> Speculative revert for perf regression.
>
> Original issue's description:
> > Remove VCMQmRobustness.
> >
> > Class contained a lot of not-really-wired-up functionality that ended up
> > being complicated ways of saying return 1; or return false;. This
> > removes this dependency that complicates code readability significantly.
> >
> > BUG=webrtc:5066
> > R=marpan@google.com, marpan@webrtc.org
> > TBR=stefan@webrtc.org
> >
> > Committed: https://crrev.com/73894369791cb5eedc8788baf918ec07d11d351d
> > Cr-Commit-Position: refs/heads/master@{#12516}
>
> TBR=marpan@webrtc.org,stefan@webrtc.org,marpan@google.com
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=webrtc:5066, chromium:607838
>
> Committed: https://crrev.com/602316c3cd8556cc78d44f3ea4cd5fc8e70d9417
> Cr-Commit-Position: refs/heads/master@{#12572}

TBR=marpan@webrtc.org,stefan@webrtc.org,marpan@google.com
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:5066, chromium:607838

Review-Url: https://codereview.webrtc.org/1941643002
Cr-Commit-Position: refs/heads/master@{#12583}
2016-05-02 00:19:13 +00:00
602316c3cd Revert of Remove VCMQmRobustness. (patchset #1 id:1 of https://codereview.webrtc.org/1917083003/ )
Reason for revert:
Speculative revert for perf regression.

Original issue's description:
> Remove VCMQmRobustness.
>
> Class contained a lot of not-really-wired-up functionality that ended up
> being complicated ways of saying return 1; or return false;. This
> removes this dependency that complicates code readability significantly.
>
> BUG=webrtc:5066
> R=marpan@google.com, marpan@webrtc.org
> TBR=stefan@webrtc.org
>
> Committed: https://crrev.com/73894369791cb5eedc8788baf918ec07d11d351d
> Cr-Commit-Position: refs/heads/master@{#12516}

TBR=marpan@webrtc.org,stefan@webrtc.org,marpan@google.com
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:5066, chromium:607838

Review-Url: https://codereview.webrtc.org/1935753002
Cr-Commit-Position: refs/heads/master@{#12572}
2016-04-29 23:10:36 +00:00