4591fbd09f
Use size_t more consistently for packet/payload lengths.
...
See design doc at https://docs.google.com/a/chromium.org/document/d/1I6nmE9D_BmCY-IoV6MDPY2V6WYpEI-dg2apWXTfZyUI/edit?usp=sharing for more information.
This CL was reviewed and approved in pieces in the following CLs:
https://webrtc-codereview.appspot.com/24209004/
https://webrtc-codereview.appspot.com/24229004/
https://webrtc-codereview.appspot.com/24259004/
https://webrtc-codereview.appspot.com/25109004/
https://webrtc-codereview.appspot.com/26099004/
https://webrtc-codereview.appspot.com/27069004/
https://webrtc-codereview.appspot.com/27969004/
https://webrtc-codereview.appspot.com/27989004/
https://webrtc-codereview.appspot.com/29009004/
https://webrtc-codereview.appspot.com/30929004/
https://webrtc-codereview.appspot.com/30939004/
https://webrtc-codereview.appspot.com/31999004/
Committing as TBR to the original reviewers.
BUG=chromium:81439
TEST=none
TBR=pthatcher,henrik.lundin,tina.legrand,stefan,tkchin,glaznev,kjellander,perkj,mflodman,henrika,asapersson,niklas.enbom
Review URL: https://webrtc-codereview.appspot.com/23129004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7726 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-20 22:28:14 +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
3cefbc99f4
Mark all virtual overrides in the hierarchy of Transport as virtual + OVERRIDE.
...
This also marks all virtual overrides of other classes in the same files.
This will make a subsequent change I intend to do safer, where I'll change the
argument types of the base Transport functions, by breaking the compile if I
miss any overrides.
This also highlighted a number of unused functions. I've removed some of these.
TBR=mflodman@webrtc.org , pkasting@chromium.org
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/28709004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7421 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-10 09:42:53 +00:00
0a214ffa8a
Setting marker bit on DTMF correctly
...
BUG=1157
R=braveyao@webrtc.org , pbos@webrtc.org , stefan@webrtc.org , tina.legrand@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/22469004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7037 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-03 11:46:54 +00:00
2f4b14e3f3
Make RTCP sender report send media bytes.
...
r6654 changed RtpSender::Bytes() to return the number of bytes sent
instead of number of media bytes. This is used by VideoEngine for stats.
This change broke RTCP which sends this same count as the number of
payload bytes sent (excluding headers and padding).
BUG=
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/14959004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6691 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-15 15:25:39 +00:00
168f23faa5
Move pacer to fully use webrtc::Clock instead of webrtc::TickTime.
...
This required rewriting the send-side delay stats api to be callback based, as otherwise the SuspendBelowMinBitrate test started flaking much more frequently since it had lock order inversion problems.
R=pbos@webrtc.org , tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/21869005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6664 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-11 13:44:02 +00:00
72491b9a90
Count total bytes sent in RTPSender::Bytes().
...
Previously only media bytes were included, this adds header bytes and
padding bytes to the calculation.
BUG=
R=stefan@webrtc.org , tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/19939004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6654 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-10 16:24:54 +00:00
8f1512140e
Refactor registerable callbacks for FrameCountObserver from rtp_rtcp module into vie_channel.
...
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/16839004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6649 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-10 09:39:23 +00:00
d11bec40b2
Refactor registerable callbacks for VideoBitrateObserver from rtp_rtcp module into vie_channel.
...
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/20879004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6626 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-08 14:32:58 +00:00
62bafae661
Some refactoring inside rtp_rtcp/.
...
Renaming ModuleRTPUtility -> RtpUtility.
Renaming RTPHeaderParser -> RtpHeaderParser.
Making RtpHeaderParser accept size_t instead of int for packet length.
Making RtpUtility::RtpHeaderParser accept size_t for packet length.
BUG=
R=stefan@webrtc.org , tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/19899004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6623 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-08 12:10:51 +00:00
a15fbfdcde
Add round-robin selection of send stream to pad on.
...
BUG=1812
R=pbos@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/21669004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6472 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-17 17:32:05 +00:00
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
ebdb0e3ad0
Help to land 7969005 on behalf of solenberg. The review and try is done in 7969005.
...
- Add ability to VoE to send Absolute Sender Time header extension.
- Refactor handling of RTP header extensions in VoE to work the same as in ViE.
- Add API to enable receiving Absolute Sender Time in VoE.
This is part of the work to include audio packets in bandwidth estimation, for
better accuracy in estimates.
BUG=
TBR=solenberg@webrtc.org ,henrikg@webrtc.org ,stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/9509004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5654 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-06 23:49:08 +00:00
6811b6e308
Callback for send bitrate estimates - new roll
...
Issue https://webrtc-codereview.appspot.com/4459004/ was commited as
r5259, after which flakiness was detected and a rollback was performed
at r5261.
Patch Set 1 of this issue is the code submitted in r5259. Subsequent
patch sets fixes a race condition which caused the seen problems.
The root cause was a dead lock between a thread sending rtp packets and
and a timed module processing thread:
webrtc::RTPSender::BitrateUpdated() // Get RTPSender stats lock
webrtc::Bitrate::Process() // Get Bitrate lock
webrtc::RTPSender::ProcessBitrate()
webrtc::ModuleRtpRtcpImpl::Process()
...
webrtc::Bitrate::Update() // Get Bitrate lock
webrtc::RTPSender::UpdateRtpStats() // Get RTPSender stats lock
webrtc::RTPSender::SendToNetwork()
...
This is fixed in Bitrate::Process() by releasing the lock before
calling the callback.
BUG=2235
R=mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/5619004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5281 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-13 09:46:59 +00:00
096e8d9f94
Revert 5259 "Callback for send bitrate estimates"
...
CL is causing flakiness in RampUpTest.WithoutPacing.
> Callback for send bitrate estimates
>
> BUG=2235
> R=mflodman@webrtc.org , pbos@webrtc.org , stefan@webrtc.org
>
> Review URL: https://webrtc-codereview.appspot.com/4459004
R=mflodman@webrtc.org , pbos@webrtc.org
TBR=mflodman
Review URL: https://webrtc-codereview.appspot.com/5579005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5261 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-11 14:07:33 +00:00
2656cf9f4c
Callback for send bitrate estimates
...
BUG=2235
R=mflodman@webrtc.org , pbos@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/4459004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5259 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-11 12:53:03 +00:00
88615f0659
Fix use of uninitialized memory in RtpSenderTest::StreamDataCountersCallbacks
...
BUG=
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/5229004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5236 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-06 13:16:44 +00:00
ebad765ee0
Add callbacks for send channel rtp statistics
...
BUG=2235
R=mflodman@webrtc.org , pbos@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/4449004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5227 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-05 14:29:02 +00:00
71f055fb41
Add send frame rate statistics callback
...
BUG=2235
R=mflodman@webrtc.org , pbos@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/4479005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5213 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-04 15:09:27 +00:00
7e9315b42e
Adds support for sending redundant payloads over RTX.
...
TEST=trybots
BUG=1812
R=mflodman@webrtc.org , pbos@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/4169004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5209 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-04 10:24:26 +00:00
6e95d7afab
Increment RTP timestamps for padding packets
...
This CL makes the padding packets get their own RTP timestamps,
rather than having the same timestamp as the last sent video
packet. The purpose is to solve Issue 2611, where the overuse-
detector does not react to padding packets.
A test was implemented to verify that the padding packets do
get their own timestamps.
BUG=2611
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/3869004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5125 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-15 08:59:19 +00:00
9b82f5a6ed
Fix for RTX in combination with pacing.
...
Retransmissions didn't get sent over RTX when pacing was enabled since
the pacer didn't keep track of whether a packet was a retransmit or not.
BUG=1811
TEST=trybots
R=pbos@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/3779004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5117 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-13 15:29:21 +00:00
7bb8f02274
Adds support for combining RTX and FEC/RED.
...
This is accomplished by breaking out RTX and FEC/RED functionality from the RTP module and keeping track of the base payload type, that is the payload type received when not receiving RTX.
Enables retransmissions over RTX by default in the loopback test.
BUG=1811
TESTS=voe/vie_auto_test --automated and trybots.
R=mflodman@webrtc.org , pbos@webrtc.org , xians@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/2154004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4692 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-06 13:40:11 +00:00
8ccb9f9716
Fixes some pacer/padding issues found while testing.
...
- A bug was introduced in r4234 causing no paced packets to be sent.
- Only update the sequence number counter if a padding packet is actually going to be sent, to avoid packet loss.
- Have all packets go through the pacer if pacing is enabled to avoid reordering.
- Fix race condition on reading capture_time_ms_/timestamp_ in rtp_sender.cc.
BUG=1837
TEST=trybots and vie_auto_test --automated
R=mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1682004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4246 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-19 14:13:42 +00:00
508a84b255
Wire up pacer-based padding.
...
This connects the pacer-based padding with the RTP modules, which will
generate padding packets roughly according to what the pacer suggests.
It will only generate padding packets of maximum size to keep the number
off padding packets as small as possible. This also sets a limit of how much
padding + media bitrate which the pacer is allowed to "request" from the
RTP modules.
Padding will for now only be generated by the first sending RTP module.
BUG=1837
R=mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1612005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4234 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-17 12:53:37 +00:00
fa64a595ad
Change SetRTPAudioLevelIndicationStatus to ignore the id in the case of disabling.
...
This makes it easier for the users of the interface, i.e. doesn't need to remember the id in order to disable audio level indication later.
BUG=1828
TEST=unit tests
R=henrika@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1598005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4157 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-03 21:27:57 +00:00
a048d7cb0a
Include files from webrtc/.. paths in rtp_rtcp/
...
BUG=1662
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1557004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4135 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-29 14:27:38 +00:00
a5cb98cbbd
Breaking out RTP header parsing from the RTP module.
...
This is the first step in order to move bandwidth estimation closer to the network. The goal is to have RTP header parsing and bandwidth estimation before voice and video engine, and have a joint estimate for audio and video.
Moving bandwidth estimation before the RTP module is also required for RTX.
TEST=vie_auto_test, voe_auto_test, trybots.
BUG=1811
R=andresp@webrtc.org , henrika@webrtc.org , mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1545004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4129 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-29 12:12:51 +00:00
5c58f63d3f
Fix regression where retransmission bitrate is no longer estimated.
...
BUG=1813
R=mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1530004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4095 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-23 13:36:55 +00:00
c0352d566a
Fix assertions in rtp_header_extension.h caused by not handling the AudioLevel extension. Added unit tests to do basic checks of the AudioLevel extension.
...
BUG=
R=asapersson@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1510004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4069 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-20 20:55:07 +00:00
7ebbea14a9
Add handling of the absolute send time header extension to the rtp_rtcp module.
...
BUG=
R=asapersson@webrtc.org , stefan@webrtc.org , tina.legrand@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1480004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4041 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-16 11:10:31 +00:00
3004c79c6a
Fix clang errors in non-GYP_DEFINES=clang=1 build
...
BUG=1623
R=stefan@webrtc.org , tina.legrand@webrtc.org , tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1368004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3968 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-07 12:36:21 +00:00
b0061f94b2
Enable Nack pacing.
...
Review URL: https://webrtc-codereview.appspot.com/1357004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3912 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-27 00:41:08 +00:00
2f44673d66
WebRtc_Word32 => int32_t for rtp_rtcp/
...
BUG=314
Review URL: https://webrtc-codereview.appspot.com/1279007
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3777 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-08 11:08:41 +00:00
8911ce46a4
Generic video-codec support.
...
Labels frames as key/delta, also marks the first RTP packet of a frame as such,
to allow proper reconstruction even if packets are received out of order.
BUG=1442
TBR=ajm@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1207004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3680 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-03-18 16:39:03 +00:00
a678a3baee
Move video_coding to new Clock interface and remove fake clock implementations from RTP module tests.
...
TEST=video_coding_unittests, video_coding_integrationtests, rtp_rtcp_unittests, trybots
Review URL: https://webrtc-codereview.appspot.com/1044004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3393 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-21 07:42:11 +00:00
20ed36dada
Break out RtpClock to system_wrappers and make it more generic.
...
The goal with this new clock interface is to have something which is used all
over WebRTC to make it easier to switch clock implementation depending on where
the components are used. This is a first step in that direction.
Next steps will be to, step by step, move all modules, video engine and voice
engine over to the new interface, effectively deprecating the old clock
interfaces. Long-term my vision is that we should be able to deprecate the clock
of WebRTC and rely on the user providing the implementation.
TEST=vie_auto_test, rtp_rtcp_unittests, trybots
Review URL: https://webrtc-codereview.appspot.com/1041004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3381 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-17 14:01:20 +00:00
571a1c035b
Enable paced sender.
...
Review URL: https://webrtc-codereview.appspot.com/965016
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3089 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-11-13 21:12:39 +00:00
c66e8b3f31
pre-factor cleanup pre-work.
...
Review URL: https://webrtc-codereview.appspot.com/938010
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3054 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-11-07 17:01:04 +00:00
14b43beb7c
Move src/ -> webrtc/
...
TBR=niklas.enbom@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/915006
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2963 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-10-22 18:19:23 +00:00