485 Commits

Author SHA1 Message Date
danilchap
d9e62f5837 Fixed sending Rtp packets with non zero csrcs and certain extensions.
Added test that fails because of given issue.

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

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

Cr-Commit-Position: refs/heads/master@{#11258}
2016-01-14 22:55:23 +00:00
terelius
5d332ac8ff Fix expectation bug in the RTPSender unit test.
The current expectation for InsertPacket(...) uses WillRepeatedly, which accepts if the function is called zero or more times. This CL changes this to either a fixed number of calls, or at least a positive number of calls.

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

Cr-Commit-Position: refs/heads/master@{#11256}
2016-01-14 22:37:43 +00:00
danilchap
2f7dea164d [rtp_rtcp] rtcp::Empty moved into own file and renamed to CompoundPacket on the way
Class renamed to indicated use of the rtcp::Empty class: it can only be used as container for other rtcp packets.
All tests that use Append function moved from rtcp_packet_unittest, even if they did not use Empty class.
This is because there is plan to make RtcpPacket class lighter by moving Append functionality to CompoundPacket class.

BUG=webrtc:5260
R=åsapersson

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

Cr-Commit-Position: refs/heads/master@{#11234}
2016-01-13 10:03:09 +00:00
Peter Kasting
6955870806 Convert channel counts to size_t.
IIRC, this was originally requested by ajm during review of the other size_t conversions I did over the past year, and I agreed it made sense, but wanted to do it separately since those changes were already gargantuan.

BUG=chromium:81439
TEST=none
R=henrik.lundin@webrtc.org, henrika@webrtc.org, kjellander@webrtc.org, minyue@webrtc.org, perkj@webrtc.org, solenberg@webrtc.org, stefan@webrtc.org, tina.legrand@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11229}
2016-01-13 00:26:55 +00:00
danilchap
92e677a1f8 [rtp_rtcp] rtcp::Sli packet moved into own file and got Parse function
BUG=webrtc:5260
R=åsapersson

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

Cr-Commit-Position: refs/heads/master@{#11228}
2016-01-12 18:05:00 +00:00
Stefan Holmer
3842c5c7f7 Wire-up BWE feedback for audio receive streams.
Also wires up receiving transport sequence numbers.

BUG=webrtc:5263
R=mflodman@webrtc.org, pbos@webrtc.org, solenberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11220}
2016-01-12 12:55:11 +00:00
danilchap
7e8145f05d [rtp_rtcp] rtcp::Tmmbr moved into own file
BUG=webrtc:5260
R=åsapersson

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

Cr-Commit-Position: refs/heads/master@{#11206}
2016-01-11 19:49:24 +00:00
danilchap
ef3d805f6e [rtp_rtcp] rtcp::Tmmbn moved into own file
explicetly unchanged.

BUG=webrtc:5260
R=åsapersson

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

Cr-Commit-Position: refs/heads/master@{#11201}
2016-01-11 11:31:17 +00:00
Peter Boström
3886fc8f57 Use pointer to generated FEC packet.
Removes multiple index lookups to generated_fec_packets_ speeding up
FecTest.FecTest with >2x in both Debug and Release, improving
performance but also readability.

On Debug this means that the slowest test in modules_tests now takes
~15-20 seconds instead of 50+ seconds, reducing the overall bottleneck.

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

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

Cr-Commit-Position: refs/heads/master@{#11166}
2016-01-07 14:33:57 +00:00
danilchap
2df2ba7ae1 [rtp_rtcp] Fix CL#1539423003
public function RtpHeaderParser::Parse with old signature restored as deprecated.

BUG=webrtc:5277
TBR=åsapersson
NOTRY=True

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

Cr-Commit-Position: refs/heads/master@{#11135}
2015-12-29 09:12:15 +00:00
danilchap
f6975f4613 [rtp_rtcp] Lint errors cleaned from rtp_utility
R=åsapersson
BUG=webrtc:5277

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

Cr-Commit-Position: refs/heads/master@{#11131}
2015-12-28 18:18:52 +00:00
danilchap
a72e7349d5 [rtp_rtcp] cleanup in RTCPSender class internals.
PrepareReportBlock and AddReportBlock private functions merged:
  PrepareReportBlock moved report block from statistic to temporary structure
  AddReportBlock copied that temporary structure into temporary map right after.
  Thanks to rtcp packet classes that temporary structure is now unneccesary.

BUG=webrtc:5260
R=åsapersson

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

Cr-Commit-Position: refs/heads/master@{#11112}
2015-12-22 16:07:48 +00:00
danilchap
a8890a57a5 rtcp::Nack packet moved into own file and got Parse function
Review URL: https://codereview.webrtc.org/1461623003

Cr-Commit-Position: refs/heads/master@{#11111}
2015-12-22 11:43:10 +00:00
danilchap
1227e8b345 [rtp_rtcp] time helper functions
RTP timestams helper functions moved from rtp_utility
  added functions to deal with CompactNtp timestamps

R=åsapersson
BUG=webrtc:5260

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

Cr-Commit-Position: refs/heads/master@{#11106}
2015-12-21 19:06:56 +00:00
kwiberg
0eb15ed7b8 Don't call the Pass methods of rtc::Buffer, rtc::scoped_ptr, and rtc::ScopedVector
We can now use std::move instead!

This CL leaves the Pass methods in place; a follow-up CL will add deprecation annotations to them.

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

Cr-Commit-Position: refs/heads/master@{#11064}
2015-12-17 11:04:24 +00:00
danilchap
54999d411b rtcp::Dlrr block moved into own file and got Parse function
BUG=webrtc:5260

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

Cr-Commit-Position: refs/heads/master@{#11044}
2015-12-16 09:56:22 +00:00
danilchap
91941ae493 rtcp::VoipMetric block moved into own file and got Parse function
Review URL: https://codereview.webrtc.org/1452733002

Cr-Commit-Position: refs/heads/master@{#11030}
2015-12-15 15:06:44 +00:00
danilchap
6db6cdc604 [rtp_rtcp] fixed lint errors in rtp_rtcp module that are not fixed in other CLs
BUG=webrtc:5277
R=mflodman

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

Cr-Commit-Position: refs/heads/master@{#11025}
2015-12-15 10:54:50 +00:00
danilchap
e005cf2c93 [rtp_rtcp] SSRCDatabase class cleaned (including all lint errors)
BUG=webrtc:5277
R=mflodman

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

Cr-Commit-Position: refs/heads/master@{#11023}
2015-12-15 09:59:50 +00:00
danilchap
47a740bc5e [rtp_rtcp] lint errors about rand() usage fixed.
rand() usage replaced with new Random class, which also makes it clearer what interval random number is in.

BUG=webrtc:5277
R=mflodman

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

Cr-Commit-Position: refs/heads/master@{#11019}
2015-12-15 08:30:12 +00:00
Stefan Holmer
4c1093b86f Add FEC producer fuzzing and a unittest for one of the issues found.
BUG=webrtc:4800
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10990}
2015-12-11 17:25:56 +00:00
danilchap
6a6f0893dd in rtp_rtcp module:
fixed build/namespaces lint errors
  fixed readability/namespace lint errors

BUG=webrtc:5277
R=mflodman,stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10978}
2015-12-10 20:39:16 +00:00
danilchap
5c1def8892 modules/rtp_rtcp/include folder cleared of lint warnings
Functions that do not follow lint are marked deprecated, including function in the interface.

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

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

Cr-Commit-Position: refs/heads/master@{#10975}
2015-12-10 17:52:01 +00:00
danilchap
b8b6fbb7a5 lint build/include errors fixed in rtp_rtcp module
BUG=webrtc:5277
R=mflodman

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

Cr-Commit-Position: refs/heads/master@{#10971}
2015-12-10 13:05:35 +00:00
danilchap
162abd3562 lint whitespace warning removed from most rtp_rtcp/source/ files
rtcp_utility, rtp_utility, tmmbr_help, rtcp_receiver, rtcp_receiver_help are explicetly excluded from the cleanup becaues there are short plans (or cls) to do a deeper cleaning there.

BUG=webrtc:5277
R=pbos@webrtc.org, mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10966}
2015-12-10 10:39:45 +00:00
terelius
84e78f9102 Rewrote the PRNG using an xorshift* algorithm and moved the files from test/ to base/.
Created a simple unit test for the new random number generator. (It mostly tests
that the generated numbers are consistent with the intended distribution, e.g. uniform.
It is not a comprehensive test of the quality of the random numbers.)

Several assertions in OveruseDetectorTest seem to depend on the exact sequence of random numbers. I updated those numbers to work with the new PRNG.

Compute the standard deviation of the expected result in TestReorderFilter instead of passing an uncertainty parameter.

BUG=webrtc:5177

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

Cr-Commit-Position: refs/heads/master@{#10965}
2015-12-10 09:51:02 +00:00
mflodman
0b3d7eec07 Prevent RTCP SR to be sent with bogus timestamp.
This CL makes sure no RTCP SR is sent before there is a valid timestamp
to set in the SR, based on the first sent media packet.

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

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

Cr-Commit-Position: refs/heads/master@{#10964}
2015-12-10 09:10:54 +00:00
danilchap
5eb4988c0a [rtp_rtcp] Lint build/header_guard errors fixed
BUG=webrtc:5277
R=mflodman

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

Cr-Commit-Position: refs/heads/master@{#10949}
2015-12-09 11:32:45 +00:00
Stefan Holmer
4654d204e4 Add test which verifies that the RTP header extensions are set correctly for FEC packets.
Also taking the opportunity to do a little bit of clean up.

BUG=webrtc:705
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10927}
2015-12-08 08:10:58 +00:00
Danil Chapovalov
fc47ed6c05 rtcp::Rrtr block moved into own file and got Parse function
BUG=webrtc:5260
R=asapersson@webrtc.org, åsapersson

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

Cr-Commit-Position: refs/heads/master@{#10912}
2015-12-07 13:46:42 +00:00
Stefan Holmer
b86d4e4a8d Prepare the AudioSendStream to be hooked up to send-side BWE.
This CL contains three changes as a preparation for adding audio send streams
to the send-side BWE:
1. Audio packets are passed through the pacer with high priority. This
is needed to be able to set transport sequence numbers on the packets.
2. A feedback observer is passed to the audio stream's rtcp receiver so
that the BWE can get notified of any BWE feedback being received on the
audio feedback channel.
3. Support for the transport sequence number header extension is added
to audio send streams.

BUG=webrtc:5263,webrtc:5307
R=mflodman@webrtc.org, solenberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10909}
2015-12-07 09:26:32 +00:00
Danil Chapovalov
97f7e13c23 rtcp::ReceiverReport moved into own file and got Parse function
BUG=webrtc:5260
R=asapersson@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10897}
2015-12-04 15:13:40 +00:00
Erik Språng
f7c5776d42 Refactorings to send RTCP packets directly via the RtcpPacket callback, with some simplifications enabled by this. NACK now also sent via RtcpPacket.
BUG=webrtc:2450
R=asapersson@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10888}
2015-12-04 09:40:54 +00:00
danilchap
f8385aded0 rtcp::Pli moved into own file and got a Parse function
Created rtcp::Psfb abstract class between rtcp::Pli and rtcp::RtcpPacket to hold common data for Feedback Message.

BUG=webrtc:5260

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

Cr-Commit-Position: refs/heads/master@{#10823}
2015-11-27 13:36:17 +00:00
stefan
64c0a0a111 Revert of Make overuse estimator one dimensional. (patchset #5 id:80001 of https://codereview.webrtc.org/1376423002/ )
Reason for revert:
Broke webrtc_perf_tests on bots.

Original issue's description:
> Make overuse estimator one dimensional.
>
> This drops the payload size difference dimension of the Kalman filter,
> which doesn't improve the quality of the estimation when pacing packets
> on the send-side.
>
> R=gaetano.carlucci@gmail.com, mflodman@webrtc.org, terelius@webrtc.org
>
> Committed: https://crrev.com/06e05a85b9e4def75ed5e6b582c4df842616f25f
> Cr-Commit-Position: refs/heads/master@{#10809}

TBR=terelius@webrtc.org,mflodman@webrtc.org,gaetano.carlucci@gmail.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#10816}
2015-11-27 09:02:35 +00:00
Stefan Holmer
06e05a85b9 Make overuse estimator one dimensional.
This drops the payload size difference dimension of the Kalman filter,
which doesn't improve the quality of the estimation when pacing packets
on the send-side.

R=gaetano.carlucci@gmail.com, mflodman@webrtc.org, terelius@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10809}
2015-11-26 14:35:10 +00:00
danilchap
50c5136cb2 RTCP Bye packet moved to own file
Bye class got support for Parsing
 Reason field implemented

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

Cr-Commit-Position: refs/heads/master@{#10741}
2015-11-22 17:03:16 +00:00
danilchap
0219c9b4bf rtcp::App moved into own file and got Parse function
Review URL: https://codereview.webrtc.org/1437353003

Cr-Commit-Position: refs/heads/master@{#10688}
2015-11-18 13:56:57 +00:00
pbos
740c4f11e0 Remove packet initializer in RtpRtcpRtxNackTest.
Fixes RtpRtcpRtxNackTest to not use uninitialized data when not sending
RTX.

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

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

Cr-Commit-Position: refs/heads/master@{#10665}
2015-11-17 01:19:39 +00:00
danilchap
f8506cbdd8 rtcp::Ij renamed to rtcp::ExtendedJitterReport
to match name given in the RFC5450
  private member renamed to inter_arrival_jitters_ for the same reason.
rtcp::ExtendedJitterReport moved into own file
accessors and Parse function added
  to make class usable for parsing packet

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

Cr-Commit-Position: refs/heads/master@{#10636}
2015-11-13 15:33:26 +00:00
danilchap
df948f03b3 rtcp::ReportBlock refactored to contain parsing
Review URL: https://codereview.webrtc.org/1420283022

Cr-Commit-Position: refs/heads/master@{#10633}
2015-11-13 11:03:18 +00:00
tfarina
5237aaf243 Convert usage of ARRAY_SIZE to arraysize.
ARRAY_SIZE is the old version of arraysize and does not cover
all the cases in C++, arraysize is a copy of Chromium's
version and thus have wider coverage.

BUG=None
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10594}
2015-11-11 07:44:39 +00:00
philipel
cfc319be1d Reland of Work on flexible mode and screen sharing. (patchset #1 id:1 of https://codereview.webrtc.org/1438543002/ )
Reason for revert:
Failed test not related to this CL (test fails on
master at an earlier date), re-landing original CL..

(This time from my @webrtc account.)

Original issue's description:
> Revert of Work on flexible mode and screen sharing. (patchset #28 id:520001 of https://codereview.webrtc.org/1328113004/ )
>
> Reason for revert:
> Seems to break VideoSendStreamTest.ReconfigureBitratesSetsEncoderBitratesCorrectly on Linux Memcheck buildbot.
>
> Original issue's description:
> > Work on flexible mode and screen sharing.
> >
> > Implement VP8 style screensharing but with spatial layers.
> > Implement flexible mode.
> >
> > Files from other patches:
> > generic_encoder.cc
> > layer_filtering_transport.cc
> >
> > BUG=webrtc:4914
> >
> > Committed: https://crrev.com/77ccfb4d16c148e61a316746bb5d9705e8b39f4a
> > Cr-Commit-Position: refs/heads/master@{#10572}
>
> TBR=sprang@webrtc.org,stefan@webrtc.org,philipel@google.com,asapersson@webrtc.org,mflodman@webrtc.org,philipel@webrtc.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:4914
>
> Committed: https://crrev.com/0be8f1d347bdb171462df89c2a4c69b3f3eb7519
> Cr-Commit-Position: refs/heads/master@{#10578}

TBR=sprang@webrtc.org,stefan@webrtc.org,philipel@google.com,asapersson@webrtc.org,mflodman@webrtc.org,terelius@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:4914

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

Cr-Commit-Position: refs/heads/master@{#10581}
2015-11-10 15:17:26 +00:00
terelius
0be8f1d347 Revert of Work on flexible mode and screen sharing. (patchset #28 id:520001 of https://codereview.webrtc.org/1328113004/ )
Reason for revert:
Seems to break VideoSendStreamTest.ReconfigureBitratesSetsEncoderBitratesCorrectly on Linux Memcheck buildbot.

Original issue's description:
> Work on flexible mode and screen sharing.
>
> Implement VP8 style screensharing but with spatial layers.
> Implement flexible mode.
>
> Files from other patches:
> generic_encoder.cc
> layer_filtering_transport.cc
>
> BUG=webrtc:4914
>
> Committed: https://crrev.com/77ccfb4d16c148e61a316746bb5d9705e8b39f4a
> Cr-Commit-Position: refs/heads/master@{#10572}

TBR=sprang@webrtc.org,stefan@webrtc.org,philipel@google.com,asapersson@webrtc.org,mflodman@webrtc.org,philipel@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:4914

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

Cr-Commit-Position: refs/heads/master@{#10578}
2015-11-10 13:31:22 +00:00
philipel
77ccfb4d16 Work on flexible mode and screen sharing.
Implement VP8 style screensharing but with spatial layers.
Implement flexible mode.

Files from other patches:
generic_encoder.cc
layer_filtering_transport.cc

BUG=webrtc:4914

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

Cr-Commit-Position: refs/heads/master@{#10572}
2015-11-10 10:19:20 +00:00
mflodman
c4a1c370aa Removed vie_defines.h
The defines still in use was only used in single files, so they were
moved to these specific cc-files.

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

Cr-Commit-Position: refs/heads/master@{#10539}
2015-11-06 12:33:56 +00:00
asapersson
c253a1c00e Reland of "Change type of pid_diff (int16_t -> uint8_t) according to updates in RTP payload profile."
BUG=webrtc:5144
TBR=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10533}
2015-11-06 08:12:09 +00:00
asapersson
394c537b21 Update layer indices for non-flexible mode according to updates in the RTP payload profile.
https://tools.ietf.org/id/draft-ietf-payload-vp9-01.txt

BUG=chromium:500602
TBR=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10522}
2015-11-05 14:07:09 +00:00
asapersson
5d4e944391 Revert of Change type of pid_diff (int16_t -> uint8_t) according to updates in RTP payload profile. (patchset #3 id:40001 of https://codereview.webrtc.org/1427253002/ )
Reason for revert:
Breaks bot.

Original issue's description:
> Change type of pid_diff (int16_t -> uint8_t) according to updates in RTP payload profile. Max p_diff is 8 bits.
>
> Change type of number of reference pictures (size_t -> uint8_t). Max is 2 bits.
>
> Size of WebRtcRTPHeader: 4352 -> 1784 bytes.
>
> BUG=webrtc:5144, chromium:500602
>
> Committed: https://crrev.com/81c5c7f8157f767747bd97419eb0a589207354cf
> Cr-Commit-Position: refs/heads/master@{#10504}

TBR=stefan@webrtc.org,mflodman@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5144, chromium:500602

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

Cr-Commit-Position: refs/heads/master@{#10508}
2015-11-04 15:40:44 +00:00
asapersson
81c5c7f815 Change type of pid_diff (int16_t -> uint8_t) according to updates in RTP payload profile. Max p_diff is 8 bits.
Change type of number of reference pictures (size_t -> uint8_t). Max is 2 bits.

Size of WebRtcRTPHeader: 4352 -> 1784 bytes.

BUG=webrtc:5144, chromium:500602

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

Cr-Commit-Position: refs/heads/master@{#10504}
2015-11-04 10:19:45 +00:00