Commit Graph

28 Commits

Author SHA1 Message Date
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