86 Commits

Author SHA1 Message Date
nisse
25d0bdc1bc Delete support for receiving RTCP RPSI and SLI message.
This code has been unused for years, and at least the RTCP RSPI sending
logic appears broken.

This cl is part 3, following

  https://codereview.webrtc.org/2746413003 (delete sending)
  https://codereview.webrtc.org/2753783002 (delete vp8 feedback mode)

BUG=webrtc:7338

Review-Url: https://codereview.webrtc.org/2742383004
Cr-Commit-Position: refs/heads/master@{#17342}
2017-03-22 14:15:09 +00:00
danilchap
74e8df8feb Fix rtcp_sender to support sdes with 31 chunk
Previosly it supported up to only 15 chunks which is a limit for csrcs in an rtp packet.

BUG=None

Review-Url: https://codereview.webrtc.org/2758533002
Cr-Commit-Position: refs/heads/master@{#17274}
2017-03-16 15:04:08 +00:00
danilchap
609ab2b3dc Make ExtendedReports::target_bitrate() accessor const
as it supposed to be

BUG=None

Review-Url: https://codereview.webrtc.org/2726843007
Cr-Commit-Position: refs/heads/master@{#17059}
2017-03-06 11:12:12 +00:00
tommi
db23ea69b6 Add performance tracing for PlatformThread and parts of the video code.
BUG=webrtc:7219

Review-Url: https://codereview.webrtc.org/2729783004
Cr-Commit-Position: refs/heads/master@{#17009}
2017-03-03 15:21:18 +00:00
danilchap
4a9a595ab4 Make rtcp packets copyable
That would simplify their usage in tests where perfomance is not critical.

BUG=None

Review-Url: https://codereview.webrtc.org/2675713005
Cr-Commit-Position: refs/heads/master@{#16461}
2017-02-07 09:53:04 +00:00
danilchap
4a0c76402e Add rtcp::TransportFeedback::GetReceivedPackets()
It combines and simplify use of GetStatusVector and GetReceiveDeltas accesors.

Replace use of all GetStatusVector/GetReceiveDeltasUs

BUG=None

Review-Url: https://codereview.webrtc.org/2633923003
Cr-Commit-Position: refs/heads/master@{#16139}
2017-01-18 10:40:30 +00:00
danilchap
6deecb2a2f Refactor TransportFeedback ensuring it's consistency:
Removed const_cast while creating rtcp packet.
This way manually created packet is as good as parsed packet and can be used in tests directly.

To archive this, changed the way class stores deltas and their sizes:
encoded chunks are stored directly for all but last chunk simplifying rtcp packet creation.
deltas stored together with sequence_number that would allow to simplify reading them from the parsed packet.

Fixed test for maximum received packets.

BUG=None

Review-Url: https://codereview.webrtc.org/2616343003
Cr-Commit-Position: refs/heads/master@{#16091}
2017-01-16 12:25:19 +00:00
kwiberg
af476c737f RTC_[D]CHECK_op: Remove "u" suffix on integer constants
There's no longer any need to make the two arguments have the same
signedness, so we can drop the "u" suffix on literal integer
arguments.

NOPRESUBMIT=true
BUG=webrtc:6645

Review-Url: https://codereview.webrtc.org/2535593002
Cr-Commit-Position: refs/heads/master@{#15280}
2016-11-28 23:21:51 +00:00
sprang
b84ad63b0a Add RTCP packet class for signaling encoder target bitrate.
This is a proposal for a new RTCP message. Feel free to comment on the
message structure, selected type ids etc, as well as code for
serialization/deserialization. Once we agree on this, I'll continue
with wiring it up in the actual rtcp sender and receiver.

BUG=webrtc:6301

Review-Url: https://codereview.webrtc.org/2306873003
Cr-Commit-Position: refs/heads/master@{#14867}
2016-11-01 09:50:17 +00:00
danilchap
80ac24dd36 Allow max 1 block per type in RTCP Extended Reports
Design of individual block in ExtendedReports packet suggest there is
no point to have more than one block per type.
This CL reduce complexity of having several blocks of the same type in
same report.

BUG=webrtc:5260

Review-Url: https://codereview.webrtc.org/2378113002
Cr-Commit-Position: refs/heads/master@{#14855}
2016-10-31 15:40:55 +00:00
danilchap
2f255d8d67 Replace const -> constexpr for rtcp Packet Type
for consistency with other rtcp packet classes.

BUG=webrtc:5260

Review-Url: https://codereview.webrtc.org/2361853002
Cr-Commit-Position: refs/heads/master@{#14648}
2016-10-17 09:07:59 +00:00
kwiberg
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
kwiberg
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
danilchap
822a16f64c Reland of Unify rtcp packet setters (patchset #1 id:1 of https://codereview.webrtc.org/2372713005/ )
Reason for revert:
Fix backward compatibility support

Original issue's description:
> Revert of Unify rtcp packet setters (patchset #8 id:130001 of https://codereview.webrtc.org/2348623003/ )
>
> Reason for revert:
> Breaks compilation of internal downstream project.
>
> Original issue's description:
> > Unify rtcp packet setters
> > Renamed setters in rtcp classes
> > from WithField to SetField
> > from WithItem to AddItem or SetItems
> > from From to SetSenderSsrc
> > from To to SetMediaSsrc
> > Some redundant or unsued setters removed.
> > Pass-by-const& replaced with pass-by-value when appropriate.
> >
> > BUG=webrtc:5260
> >
> > Committed: https://crrev.com/20e77c7b8a9f19942ef3c3c4f1fa3888b2cd54ea
> > Cr-Commit-Position: refs/heads/master@{#14393}
>
> TBR=sprang@webrtc.org,stefan@webrtc.org,danilchap@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:5260
>
> Committed: https://crrev.com/efc6e41866662e0922858fbce1d9ee3bdd0637ed
> Cr-Commit-Position: refs/heads/master@{#14400}

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

Review-Url: https://codereview.webrtc.org/2370313002
Cr-Commit-Position: refs/heads/master@{#14402}
2016-09-27 16:27:52 +00:00
kjellander
efc6e41866 Revert of Unify rtcp packet setters (patchset #8 id:130001 of https://codereview.webrtc.org/2348623003/ )
Reason for revert:
Breaks compilation of internal downstream project.

Original issue's description:
> Unify rtcp packet setters
> Renamed setters in rtcp classes
> from WithField to SetField
> from WithItem to AddItem or SetItems
> from From to SetSenderSsrc
> from To to SetMediaSsrc
> Some redundant or unsued setters removed.
> Pass-by-const& replaced with pass-by-value when appropriate.
>
> BUG=webrtc:5260
>
> Committed: https://crrev.com/20e77c7b8a9f19942ef3c3c4f1fa3888b2cd54ea
> Cr-Commit-Position: refs/heads/master@{#14393}

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

Review-Url: https://codereview.webrtc.org/2372713005
Cr-Commit-Position: refs/heads/master@{#14400}
2016-09-27 15:39:39 +00:00
danilchap
20e77c7b8a Unify rtcp packet setters
Renamed setters in rtcp classes
from WithField to SetField
from WithItem to AddItem or SetItems
from From to SetSenderSsrc
from To to SetMediaSsrc
Some redundant or unsued setters removed.
Pass-by-const& replaced with pass-by-value when appropriate.

BUG=webrtc:5260

Review-Url: https://codereview.webrtc.org/2348623003
Cr-Commit-Position: refs/heads/master@{#14393}
2016-09-27 08:37:51 +00:00
danilchap
f292e31511 Relax too strict DCHECKs while parsing rtcp reports
BUG=chromium:649129

Review-Url: https://codereview.webrtc.org/2361493004
Cr-Commit-Position: refs/heads/master@{#14353}
2016-09-22 14:24:38 +00:00
danilchap
1b1863a11a Replace rtcp packet parsing in the RtcpReceiver.
BUG=webrtc:5260

Review-Url: https://codereview.webrtc.org/2316093002
Cr-Commit-Position: refs/heads/master@{#14301}
2016-09-20 08:40:00 +00:00
Danil Chapovalov
ba6f7be234 Test RtcpParser rewritten to use rtcp packet classes
instead of rtcp_utility

BUG=webrtc:5260
R=sprang@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#14050}
2016-09-02 16:29:24 +00:00
Danil Chapovalov
20fcbf15f0 Remove faulty DCHECK in rtcp::TransportFeedback DecodeSymbol
BUG=chromium:642745
R=sprang@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#14003}
2016-08-31 16:47:31 +00:00
danilchap
642e3bc75b [rtcp] TransportFeedback adjusted to match other rtcp packets:
Derived from rtcp::Rtpfb instead of directly from RtcpPacket
Does not depend on RTCPUtility.
Parse function takes CommonHeader.
TransportFeedback::BlockLength fixed to match size used by Create

BUG=webrtc:5260

Review-Url: https://codereview.webrtc.org/1847973003
Cr-Commit-Position: refs/heads/master@{#13846}
2016-08-22 14:37:00 +00:00
Danil Chapovalov
837a1707ae Remove faulty DCHECK in rtcp::TransportFeedback::ParseFrom
BUG=chromium:632585
R=sprang@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13622}
2016-08-03 11:40:12 +00:00
danilchap
95e756035e [rtcp] Nack::Parse updated not to use RTCPUtility
BUG=webrtc:5260
R=åsapersson

Review-Url: https://codereview.webrtc.org/2028543002
Cr-Commit-Position: refs/heads/master@{#13586}
2016-08-01 13:51:20 +00:00
danilchap
2874ed5709 [rtcp] App::Parse updated not to use RTCPUtility,
maximum allowed sized raised from limited by physical udp packet size to
limited by theoritical maximum rtcp packet size.

BUG=webrtc:5260
R=åsapersson

Review-Url: https://codereview.webrtc.org/1998633002
Cr-Commit-Position: refs/heads/master@{#13532}
2016-07-26 13:40:36 +00:00
Erik Språng
956ed71a11 TransportFeedback must be able to start with dropped packets.
A bug in the transpot feedback adapter causes new feedback message to
always start with a received packet. This makes it impossible for the
receiver to distinguish from actual dropped packets and dropped feedback
messages.

BUG=webrtc:6073
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13381}
2016-07-05 10:01:08 +00:00
danilchap
b684bd10be [rtcp] ExtendedJitterReports::Parse updated not to use RTCPUtility
BUG=webrtc:5260
R=åsapersson

Review-Url: https://codereview.webrtc.org/2025843002
Cr-Commit-Position: refs/heads/master@{#13016}
2016-06-02 12:07:00 +00:00
danilchap
938c5ddf0b [rtcp] RapidResyncRequest::Parse updated not to use RTCPUtility
BUG=webrtc:5260
R=åsapersson

Review-Url: https://codereview.webrtc.org/2020203002
Cr-Commit-Position: refs/heads/master@{#12972}
2016-05-31 11:30:59 +00:00
danilchap
0fc37d7dec [rtcp] Fir/Sli/Rpsi updated not to use RTCPUtility
BUG=webrtc:5260

Review-Url: https://codereview.webrtc.org/2023803002
Cr-Commit-Position: refs/heads/master@{#12965}
2016-05-31 08:36:44 +00:00
danilchap
2d3aae5a84 [rtcp] ExtendedReports::Parse updated not to use RTCPUtility
BUG=webrtc:5260

Review-Url: https://codereview.webrtc.org/2006313010
Cr-Commit-Position: refs/heads/master@{#12962}
2016-05-30 15:51:01 +00:00
danilchap
6ce1adc90b [rtcp] Tmmbn/Tmmbr Parse updated not to use RTCPUtility
BUG=webrtc:5260

Review-Url: https://codereview.webrtc.org/2010723002
Cr-Commit-Position: refs/heads/master@{#12916}
2016-05-26 12:29:22 +00:00
danilchap
6a1a8ce668 [rtcp] in Tmmbn/tmmbr packets bitrate updated to 64bit
to match packet format.

Review-Url: https://codereview.webrtc.org/1991223002
Cr-Commit-Position: refs/heads/master@{#12837}
2016-05-21 16:54:50 +00:00
Danil Chapovalov
d215ade504 [rtcp] Remb::Parse updated not to use RTCPUtility
bitrate field changed to 64bit to match Remb packet format

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

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

Cr-Commit-Position: refs/heads/master@{#12702}
2016-05-12 13:25:50 +00:00
nisse
ef8b61e110 Enable -Winconsistent-missing-override flag.
The problem with gmock is worked around by commenting out any other override declarations in classes using gmock.

NOPRESUBMIT=True
BUG=webrtc:3970

Review-Url: https://codereview.webrtc.org/1921653002
Cr-Commit-Position: refs/heads/master@{#12563}
2016-04-29 13:09:23 +00:00
kwiberg
84be511ac0 Replace the remaining scoped_ptr with unique_ptr in webrtc/modules/
(This is a re-land of https://codereview.webrtc.org/1921233002, which
got reverted for breaking Chromium.)

BUG=webrtc:5520

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

Cr-Commit-Position: refs/heads/master@{#12522}
2016-04-27 08:20:08 +00:00
terelius
52d4e6bf5e Revert of Replace the remaining scoped_ptr with unique_ptr in webrtc/modules/ (patchset #1 id:40001 of https://codereview.webrtc.org/1921233002/ )
Reason for revert:
Fails on Chromium FYI bots.

https://build.chromium.org/p/chromium.webrtc.fyi/builders/Linux%20Builder/builds/5392/

Original issue's description:
> Replace the remaining scoped_ptr with unique_ptr in webrtc/modules/
>
> BUG=webrtc:5520
>
> Committed: https://crrev.com/2c27a062ee46258abe9facc2cceee74f09bf6a99
> Cr-Commit-Position: refs/heads/master@{#12511}

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

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

Cr-Commit-Position: refs/heads/master@{#12513}
2016-04-26 16:32:09 +00:00
kwiberg
2c27a062ee Replace the remaining scoped_ptr with unique_ptr in webrtc/modules/
BUG=webrtc:5520

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

Cr-Commit-Position: refs/heads/master@{#12511}
2016-04-26 15:38:03 +00:00
kwiberg
4485ffb58d #include "webrtc/base/constructormagic.h" where appropriate
Any file that uses the RTC_DISALLOW_* macros should #include
"webrtc/base/constructormagic.h", but a shocking number of them don't.
This causes trouble when we try to wean files off of #including
scoped_ptr.h, since a bunch of files get their constructormagic macros
only from there.

Rather than fixing these errors one by one as they turn up, this CL
simply ensures that every file in the WebRTC tree that uses the
RTC_DISALLOW_* macros #includes "webrtc/base/constructormagic.h".

BUG=webrtc:5520

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

Cr-Commit-Position: refs/heads/master@{#12509}
2016-04-26 15:14:48 +00:00
danilchap
54a20696c2 [rtcp] Bye::Parse updated not to use RTCPUtility
BUG=webrtc:5260
R=åsapersson

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

Cr-Commit-Position: refs/heads/master@{#12244}
2016-04-05 15:48:18 +00:00
danilchap
4b9cad86ce [rtcp] Sdes::Parse updated not to use RTCPUtility
BUG=webrtc:5260
R=åsapersson

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

Cr-Commit-Position: refs/heads/master@{#12169}
2016-03-30 20:34:38 +00:00
danilchap
367bbbf76d [rtcp] ReceiverReport::Parse updated not to use RTCPUtility
BUG=webrtc:5260
R=åsapersson

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

Cr-Commit-Position: refs/heads/master@{#12164}
2016-03-30 16:43:09 +00:00
danilchap
2f36c2399e [rtcp] SenderReport::Parse updated not to use RTCPUtility
BUG=webrtc:5260
R=åsapersson

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

Cr-Commit-Position: refs/heads/master@{#12140}
2016-03-29 15:02:33 +00:00
danilchap
f752f85f3d [rtcp] Pli::Parse updated not to use RTCPUtility
BUG=webrtc:5260
R=åsapersson

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

Cr-Commit-Position: refs/heads/master@{#12104}
2016-03-23 15:25:30 +00:00
Danil Chapovalov
7021b92525 introduced rtcp::CommonHeader class
this class replace and extend RTCPUtility::RtcpCommonHeader structure and RTCPUtility::RtcpParseCommonHeader function.
In addition to header fields, payload pointer is stored because rtcp header without payload is rarely useful.
Sample usage can be checked in 'RTCP Parser sketched' CL: https://codereview.webrtc.org/1555683002/

BUG=webrtc:5260
R=asapersson@webrtc.org, sprang@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11999}
2016-03-15 16:39:45 +00:00
danilchap
7a4116aa54 [rtp_rtcp] Append functionality moved from base RtcpPacket class to CompoundPacket
BUG=webrtc:5260

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

Cr-Commit-Position: refs/heads/master@{#11981}
2016-03-14 15:19:31 +00:00
danilchap
69e59e619a [rtp_rtcp] rtc::scoped_ptr<rtcp::RawPacket> replaced with rtc::Buffer
rtcp::RawPacket is rtc::Buffer, it had no extra functionality.
rtc::Buffer is a movable class - no point to wrap it into rtc::scoped_ptr
change is large, but straightforward:
  rtc::scoped_ptr<rtcp::RawPacket> replaced with rtc::Buffer
  ->Buffer() replaced with .data()
  ->Length() replaced with .size()

BUG=webrtc:5260

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

Cr-Commit-Position: refs/heads/master@{#11649}
2016-02-17 11:11:50 +00:00
danilchap
9f35d55c58 Added accessor and Parse function.
Create function merged into one.

BUG=webrtc:5260

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

Cr-Commit-Position: refs/heads/master@{#11581}
2016-02-11 16:19:06 +00:00
danilchap
09fef9e6f7 [rtp_rtcp] Added Sender Report Request rtcp packet.
BUG=webrtc:5260
R=åsapersson

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

Cr-Commit-Position: refs/heads/master@{#11538}
2016-02-09 13:57:56 +00:00
danilchap
7336eeb690 [rtp_rtcp] rtcp::Tmmbn cleaned and got Parse function
Added accessor and Parse function
removed dependencies on structures from rtcp_utility.h (except RtcpCommonHeader)
removed limitation of 50 items per TMMBN.

BUG=webrtc:5260
R=åsapersson

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

Cr-Commit-Position: refs/heads/master@{#11524}
2016-02-08 11:35:20 +00:00
danilchap
f174e3a260 [rtp_rtcp] rtcp::Tmmbr cleaned and got Parse function
Added accessor and Parse function
removed dependencies on structures from rtcp_utility.h (except RtcpCommonHeader)

BUG=webrtc:5260
R=åsapersson

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

Cr-Commit-Position: refs/heads/master@{#11502}
2016-02-05 12:56:40 +00:00
danilchap
a92d6be411 rtcp::TmmbItem designed to replace RTCPUtility::RTCPPacketRTPFBTMMBRItem (for creating and parsing rtcp TMMBR/TMMBN packets)
std::vector<rtcp::TmmbItem> will replace TMMBRSet class for storage, processing and preparing TMBBR/TMMBN
(i.e. this TmmbItem replaces Timber structure introduced in https://codereview.webrtc.org/1474693002 )
Previous structures store bitrate in kbps. TmmbItem use bps removing need to regularly divide and multiply by 1000.

BUG=webrtc:5260
R=åsapersson

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

Cr-Commit-Position: refs/heads/master@{#11491}
2016-02-04 15:33:44 +00:00