Commit Graph

81 Commits

Author SHA1 Message Date
98f53510b2 system_wrappers: rename interface -> include
BUG=webrtc:5095
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10438}
2015-10-28 17:17:50 +00:00
ebc0b4e993 Use webrtc/base/logging.h for rtp_rtcp.
BUG=webrtc:5118
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10437}
2015-10-28 15:39:43 +00:00
e4f96501fc Remove system_wrappers/interface/trace_event.h
BUG=

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

Cr-Commit-Position: refs/heads/master@{#10346}
2015-10-21 06:00:57 +00:00
da903eaabb Unify newapi::RtcpMode and RTCPMethod.
BUG=webrtc:1695
R=solenberg@webrtc.org, stefan@webrtc.org
TBR=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10143}
2015-10-02 09:37:18 +00:00
86fd9ed6f9 Set RtcpSender transport at construction.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#10106}
2015-09-29 11:45:51 +00:00
2d566686a2 Unify Transport and newapi::Transport interfaces.
BUG=webrtc:1695
R=stefan@webrtc.org
TBR=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10096}
2015-09-28 16:59:36 +00:00
ac547a6538 Remove channel ids from various interfaces.
Starts by removing channel/engine id from ViEChannel which propagates
down to the RTP/RTCP module as well as the transport class.

IncomingVideoStream::RenderFrame() is untouched for now but receives a
fake id instead of the previous channel id. Added a TODO to remove it
later but the RenderFrame call is implemented in a lot of
platform-dependent files and should probably remove the "manager" aspect
of renderers, so preferring to do it separately

BUG=webrtc:1695
R=henrika@webrtc.org, mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9978}
2015-09-17 21:06:02 +00:00
91d6edef35 Add RTC_ prefix to (D)CHECKs and related macros.
We must remove dependency on Chromium, i.e. we can't use Chromium's base/logging.h. That means we need to define these macros in WebRTC also when doing Chromium builds. And this causes redefinition.

Alternative solutions:
* Check if we already have defined e.g. CHECK, and don't define them in that case. This makes us depend on include order in Chromium, which is not acceptable.
* Don't allow using the macros in WebRTC headers. Error prone since if someone adds it there by mistake it may compile fine, but later break if a header in added or order is changed in Chromium. That will be confusing and hard to enforce.
* Ensure that headers that are included by an embedder don't include our macros. This would require some heavy refactoring to be maintainable and enforcable.
* Changes in Chromium for this is obviously not an option.

BUG=chromium:468375
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#9964}
2015-09-17 07:24:51 +00:00
233bd87d45 Add RemoteEstimatorProxy for capturing receive times
For use when send-side bandwidth estimation is enabled.

Receive times need to be captured, buffered and then sent using
TransportFeedback RTCP messaged back to the send side.

BUG=webrtc:4173

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

Cr-Commit-Position: refs/heads/master@{#9898}
2015-09-08 20:25:20 +00:00
521875a9a4 Use RtcpPacket to send APP in RtcpSender
BUG=webrtc:2450
R=asapersson@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9827}
2015-09-01 08:11:36 +00:00
ca28fdcf9f Use RtcpPacket to send XR (RTRR, DLRR, VOIP) in RtcpSender
BUG=webrtc:2450
R=asapersson@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9820}
2015-08-31 12:01:08 +00:00
d83df50e95 Use RtcpPacket to send TMMBN in RtcpSender
BUG=webrtc:2450

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

Cr-Commit-Position: refs/heads/master@{#9793}
2015-08-27 08:05:12 +00:00
d8ee4f9915 Use RtcpPacket to send BYE in RtcpSender
BUG=webrtc:2450

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

Cr-Commit-Position: refs/heads/master@{#9763}
2015-08-24 10:25:27 +00:00
81a3e60c63 Use RtcpPacket to send TMMBR in RtcpSender
BUG=webrtc:2450

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

Cr-Commit-Position: refs/heads/master@{#9755}
2015-08-21 12:30:17 +00:00
dd4edc5813 Reland of Use RtcpPacket to send REMB in RtcpSender (patchset #1 id:1 of https://codereview.webrtc.org/1300863002/ )
Reason for revert:
This wasn't the cause of the breakage. Re-reverting.
https://code.google.com/p/webrtc/issues/detail?id=4923

Original issue's description:
> Revert of Use RtcpPacket to send REMB in RtcpSender (patchset #1 id:1 of https://codereview.webrtc.org/1290573004/ )
>
> Reason for revert:
> A few bots started failing rtc_unittests after this was commited. Ex https://build.chromium.org/p/client.webrtc/builders/Linux64%20Debug/builds/5048
>
> Original issue's description:
> > Use RtcpPacket to send REMB in RtcpSender
> >
> > BUG=webrtc:2450
> > R=asapersson@webrtc.org
> >
> > Committed: 35ab4baa20
>
> TBR=asapersson@webrtc.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:2450
>
> Committed: https://crrev.com/141c5951f4beda868797c2746002a4b1b267ab2a
> Cr-Commit-Position: refs/heads/master@{#9723}

TBR=asapersson@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:2450

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

Cr-Commit-Position: refs/heads/master@{#9754}
2015-08-21 11:21:56 +00:00
141c5951f4 Revert of Use RtcpPacket to send REMB in RtcpSender (patchset #1 id:1 of https://codereview.webrtc.org/1290573004/ )
Reason for revert:
A few bots started failing rtc_unittests after this was commited. Ex https://build.chromium.org/p/client.webrtc/builders/Linux64%20Debug/builds/5048

Original issue's description:
> Use RtcpPacket to send REMB in RtcpSender
>
> BUG=webrtc:2450
> R=asapersson@webrtc.org
>
> Committed: 35ab4baa20

TBR=asapersson@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:2450

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

Cr-Commit-Position: refs/heads/master@{#9723}
2015-08-18 11:37:39 +00:00
35ab4baa20 Use RtcpPacket to send REMB in RtcpSender
BUG=webrtc:2450
R=asapersson@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9722}
2015-08-18 09:54:18 +00:00
cf7f54d6f4 Use RtcpPacket to send RPSI in RtcpSender
BUG=webrtc:2450

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

Cr-Commit-Position: refs/heads/master@{#9704}
2015-08-13 11:37:48 +00:00
0365a27f56 Use RtcpPacket to send SLI in RtcpSender
BUG=webrtc:2450

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

Cr-Commit-Position: refs/heads/master@{#9695}
2015-08-11 08:02:44 +00:00
62dae19098 Use RtcpPacket to send FIR in RtcpSender
BUG=webrtc:2450

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

Cr-Commit-Position: refs/heads/master@{#9677}
2015-08-05 09:37:21 +00:00
72aa9a6c6e Use RtcpPacket to send PLI in RtcpSender
BUG=webrtc:2450
R=asapersson@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9666}
2015-07-31 14:16:12 +00:00
a38233a586 Removed extended jitter report from RtcpSender.
This was never used (value always 0, when sent)

BUG=2450
R=asapersson@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9631}
2015-07-24 07:58:29 +00:00
0ea42d319e Send Sdes using RtcpPacket
BUG=2450
R=asapersson@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9504}
2015-06-25 12:46:23 +00:00
bdc0b0d869 Use RtcpPacket classes for SenderReport/ReceiveReport in RTCPSender
BUG=2450
R=asapersson@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9483}
2015-06-22 13:21:40 +00:00
9ba52f89ac Remove intermediate RTCP CNAME buffers.
Sets CNAME using a pointer to only perform a copy inside the RTCP
sender.

BUG=
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9346}
2015-06-01 12:12:40 +00:00
11beccd712 Remove external report blocks from RtcpSender and rtp_rtcp interface.
Feature does not seem to be used and complicates other refactoring of
the rtcp module.

BUG=
R=asapersson@webrtc.org, henrik.lundin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9304}
2015-05-28 09:10:34 +00:00
242e22b055 Refactor RTCP sender
The main purpose of this CL is to clean up RTCPSender::PrepareRTCP, but
it has quite a few ramifications. Notable changes:

* Removed the rtcpPacketTypeFlags bit vector and don't assume
  RTCPPacketType values have a single unique bit set. This will allow
  making this an enum class once rtcp_receiver has been overhauled.

* Flags are now stored in a map that is a member of the class. This
  meant we could remove some bool flags (eg send_remb_) which was
  previously masked into rtcpPacketTypeFlags and then masked out again
  when testing if a remb packet should be sent.

* Make all build methods, eg. BuildREMB(), have the same signature.
  An RtcpContext struct was introduced for this purpose. This allowed
  the use of a map from RTCPPacketType to method pointer. Instead of
  18 consecutive if-statements, there is now a single loop.
  The context class also allowed some simplifications in the build
  methods themselves.

* A few minor simplifications and cleanups.

The next step is to gradually replace the builder methods with the
builders from the new RtcpPacket classes.

BUG=2450
R=asapersson@webrtc.org, pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9166}
2015-05-11 08:17:46 +00:00
61be2a4016 Clean up RTCPSender.
Reformat to current code style, remove non-const references, use
scoped_ptr, remove empty comments and dead code, etc..

BUG=
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9086}
2015-04-27 11:32:31 +00:00
779c3d16b9 Use ByteReader/ByteWriter instead of rtputility and manual shift/add.
BUG=
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8761}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8761 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-17 16:44:54 +00:00
1d0fa5d352 Add RtcpPacketTypeCounter stats to new API.
R=mflodman@webrtc.org, stefan@webrtc.org
BUG=1667,1788

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

Cr-Commit-Position: refs/heads/master@{#8429}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8429 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-19 12:47:45 +00:00
0abc6011b9 Remove SetCaptureDelay from the RTP module.
This is a small step in getting rid of the default module, but also to
eventually delete FrameProviderBase completely.

BUG=769
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8396}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8396 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-17 16:36:48 +00:00
0200f70792 Set webrtc_rtp category to be disabled by default.
Should not affect webrtc standalone. For chromium, disabling helps
mitigate viewing performance problems.

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

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

Cr-Commit-Position: refs/heads/master@{#8375}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8375 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-16 12:06:48 +00:00
16825b1a82 Use int64_t more consistently for times, in particular for RTT values.
Existing code was inconsistent about whether to use uint16_t, int, unsigned int,
or uint32_t, and sometimes silently truncated one to another, or truncated
int64_t.  Because most core time-handling functions use int64_t, being
consistent about using int64_t unless otherwise necessary minimizes the number
of explicit or implicit casts.

BUG=chromium:81439
TEST=none
R=henrik.lundin@webrtc.org, holmer@google.com, tommi@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8045 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-12 21:51:21 +00:00
d16e839c6d Rtp-Rtcp sender cleanup.
Some setter functions from Rtp and Rtcp Sender never return negative values. Remove return results from those functions.

Also removed const on non-pointer/reference types for related files.

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

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

Patch from Changbin Shao <changbin.shao@intel.com>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7962 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-19 13:49:55 +00:00
d08d389ce8 Add field to counters for when first rtp/rtcp packet is sent/received.
Use this time for histogram statistics (send/receive bitrates, sent/received rtcp fir/nack packets/min).

BUG=crbug/419657
R=mflodman@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7910 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-16 12:03:11 +00:00
9334ac2d78 Use vector of CSRCs for DeliverFrame & SetCSRCs.
BUG=
R=pbos@webrtc.org, stefan@webrtc.org

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

Patch from Changbin Shao <changbin.shao@intel.com>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7734 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-24 08:25:50 +00:00
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
49ff40e32e Make SetREMBData accept vector of SSRCs.
BUG=
R=pbos@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7697 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-13 14:42:37 +00:00
2dd3134e50 Add stats for duplicate sent and received NACK requests.
R=mflodman@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7559 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-29 12:42:30 +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
180e516bef Thread annotate RTCPSender.
Also fixes data races in RTCPSender::SetCSRCStatus() and
RTCPSender::SetStartTimestamp().

BUG=
R=tommi@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6666 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-11 15:36:26 +00:00
4ef438e2de Remove the send-side cname getter APIs from voice and video engine.
These APIs aren't being used, and introduces deadlocks when using GetStats() in the new Call api. Having getters for cname at the send-side is pointless, as it's always the user who sets the cname.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6659 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-11 09:55:30 +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
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
9d4762e8b6 Have changes to REMB trigger RTCP to be sent immediately.
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5763 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-24 17:13:00 +00:00
8098e07478 Add RTCP packet type counter (for getting statistics such as sent/received NACK and FIR).
Add counter to RTCP sender and RTCP receiver.
Add video api GetRtcpPacketTypes().

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5575 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-19 11:59:02 +00:00
efaeda0c76 Add configuration and test for extended RTCP reference time reports to new video api.
R=mflodman@webrtc.org, pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5401 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-20 08:34:49 +00:00
54ae4ffb9e Add callbacks for receive channel RTCP statistics.
This allows a listener to receive new statistics as it is generated - avoiding the need to poll. This also makes handling stats from multiple RTP streams more tractable.
The change is primarily targeted at the new video engine API.

TEST=Unit test in ReceiveStatisticsTest. Integration tests to follow as call tests when fully wired up.

BUG=2235
R=henrika@webrtc.org, pbos@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5323 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-19 13:26:02 +00:00
8d02f5dc71 Added API for enabling/disabling RTCP Receiver Reference Time extension.
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5147 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-21 08:57:04 +00:00
042e91c2b2 Fix for incorrect RTT estimation. A too low RTT value could be estimated.
R=andrew@webrtc.org, holmer@google.com, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5023 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-23 13:58:31 +00:00