Commit Graph

817 Commits

Author SHA1 Message Date
2cb155aa8a Remove deprected functions from EncodedImageCallback and RtpRtcp
Removed EncodedImageCallback::Encoded() and RtpRtcp::SendOutgoingData().
These methods should no longer be used anywhere and it's safe to remove
them.

BUG=chromium:621691

Committed: https://crrev.com/c681250aaa2025836db7669694e323898e5c2ca7
Review-Url: https://codereview.webrtc.org/2405173006
Cr-Original-Commit-Position: refs/heads/master@{#14923}
Cr-Commit-Position: refs/heads/master@{#14935}
2016-11-04 18:39:37 +00:00
91b957d3e4 Revert of Remove deprected functions from EncodedImageCallback and RtpRtcp (patchset #4 id:100001 of https://codereview.webrtc.org/2405173006/ )
Reason for revert:
Still breaks internal downstream project.
Sergey: Please update internal project before relanding this.

Original issue's description:
> Remove deprected functions from EncodedImageCallback and RtpRtcp
>
> Removed EncodedImageCallback::Encoded() and RtpRtcp::SendOutgoingData().
> These methods should no longer be used anywhere and it's safe to remove
> them.
>
> BUG=chromium:621691
>
> Committed: https://crrev.com/c681250aaa2025836db7669694e323898e5c2ca7
> Cr-Commit-Position: refs/heads/master@{#14923}

TBR=mflodman@webrtc.org,stefan@webrtc.org,sergeyu@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:621691

Review-Url: https://codereview.webrtc.org/2479643002
Cr-Commit-Position: refs/heads/master@{#14925}
2016-11-03 18:53:50 +00:00
c681250aaa Remove deprected functions from EncodedImageCallback and RtpRtcp
Removed EncodedImageCallback::Encoded() and RtpRtcp::SendOutgoingData().
These methods should no longer be used anywhere and it's safe to remove
them.

BUG=chromium:621691

Review-Url: https://codereview.webrtc.org/2405173006
Cr-Commit-Position: refs/heads/master@{#14923}
2016-11-03 18:06:42 +00:00
c295e00fa0 Add FlexfecSender.
This class will interface RTPSenderVideo with the underlying
erasure code. It is functionally similar to ProducerFec
(to be renamed UlpfecGenerator). In fact, the FlexfecSender is a
friend of ProducerFec, and reuses most of its implementation.
Besides the fact that FlexfecSender outputs FlexFEC packets,
the main difference with ProducerFec is that FlexfecSender
allocates RTP sequence numbers, whereas ProducerFec does not
do this for the RED-encapsulated ULPFEC packets.

This class is split as interface/implementation, since it will
be owned by VideoSendStream initially. Further along, it may be
owned by PacedSender.

BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2441613002
Cr-Commit-Position: refs/heads/master@{#14922}
2016-11-03 16:22:41 +00:00
0a4c1616bf Make FlexfecReceiver a concrete class.
There is no need for it to be an interface.

In this CL, I also took the opportunity to make two small fixes:
- remove the 'flexfec_' prefix from some member variables
- remove unnecessary use of a stringstream object

BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2471073003
Cr-Commit-Position: refs/heads/master@{#14919}
2016-11-03 15:18:33 +00:00
43a9dc0f93 Revert of move deprected functions from EncodedImageCallback and RtpRtcp (patchset #1 id:1 of https://codereview.webrtc.org/2467373003/ )
Reason for revert:
Made a mistake while reverting.

Original issue's description:
> Reland of move deprected functions from EncodedImageCallback and RtpRtcp (patchset #2 id:240001 of https://codereview.webrtc.org/2474433008/ )
>
> Reason for revert:
> Breaks everything
>
> Original issue's description:
> > Revert of Remove deprected functions from EncodedImageCallback and RtpRtcp (patchset #4 id:100001 of https://codereview.webrtc.org/2405173006/ )
> >
> > Reason for revert:
> > This might be breaking projects downstream.
> >
> > Original issue's description:
> > > Remove deprected functions from EncodedImageCallback and RtpRtcp
> > >
> > > Removed EncodedImageCallback::Encoded() and RtpRtcp::SendOutgoingData().
> > > These methods should no longer be used anywhere and it's safe to remove
> > > them.
> > >
> > > BUG=chromium:621691
> > >
> > > Committed: https://crrev.com/fa565842718ad178a7562721b25d916fbabc2b92
> > > Cr-Commit-Position: refs/heads/master@{#14902}
> >
> > TBR=mflodman@webrtc.org,stefan@webrtc.org,sergeyu@chromium.org
> > # Skipping CQ checks because original CL landed less than 1 days ago.
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=chromium:621691
> >
> > Committed: https://crrev.com/6c78307a21252c2dbd704f6d5e92a220fb722ed4
> > Cr-Commit-Position: refs/heads/master@{#14914}
>
> TBR=mflodman@webrtc.org,stefan@webrtc.org,sergeyu@chromium.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=chromium:621691
>
> Committed: https://crrev.com/a1d6cd64083a3c0173aeefe38425a56de8942745
> Cr-Commit-Position: refs/heads/master@{#14915}

TBR=mflodman@webrtc.org,stefan@webrtc.org,sergeyu@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:621691

Review-Url: https://codereview.webrtc.org/2477773002
Cr-Commit-Position: refs/heads/master@{#14916}
2016-11-03 14:52:42 +00:00
a1d6cd6408 Reland of move deprected functions from EncodedImageCallback and RtpRtcp (patchset #2 id:240001 of https://codereview.webrtc.org/2474433008/ )
Reason for revert:
Breaks everything

Original issue's description:
> Revert of Remove deprected functions from EncodedImageCallback and RtpRtcp (patchset #4 id:100001 of https://codereview.webrtc.org/2405173006/ )
>
> Reason for revert:
> This might be breaking projects downstream.
>
> Original issue's description:
> > Remove deprected functions from EncodedImageCallback and RtpRtcp
> >
> > Removed EncodedImageCallback::Encoded() and RtpRtcp::SendOutgoingData().
> > These methods should no longer be used anywhere and it's safe to remove
> > them.
> >
> > BUG=chromium:621691
> >
> > Committed: https://crrev.com/fa565842718ad178a7562721b25d916fbabc2b92
> > Cr-Commit-Position: refs/heads/master@{#14902}
>
> TBR=mflodman@webrtc.org,stefan@webrtc.org,sergeyu@chromium.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=chromium:621691
>
> Committed: https://crrev.com/6c78307a21252c2dbd704f6d5e92a220fb722ed4
> Cr-Commit-Position: refs/heads/master@{#14914}

TBR=mflodman@webrtc.org,stefan@webrtc.org,sergeyu@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:621691

Review-Url: https://codereview.webrtc.org/2467373003
Cr-Commit-Position: refs/heads/master@{#14915}
2016-11-03 14:39:04 +00:00
6c78307a21 Revert of Remove deprected functions from EncodedImageCallback and RtpRtcp (patchset #4 id:100001 of https://codereview.webrtc.org/2405173006/ )
Reason for revert:
This might be breaking projects downstream.

Original issue's description:
> Remove deprected functions from EncodedImageCallback and RtpRtcp
>
> Removed EncodedImageCallback::Encoded() and RtpRtcp::SendOutgoingData().
> These methods should no longer be used anywhere and it's safe to remove
> them.
>
> BUG=chromium:621691
>
> Committed: https://crrev.com/fa565842718ad178a7562721b25d916fbabc2b92
> Cr-Commit-Position: refs/heads/master@{#14902}

TBR=mflodman@webrtc.org,stefan@webrtc.org,sergeyu@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:621691

Review-Url: https://codereview.webrtc.org/2474433008
Cr-Commit-Position: refs/heads/master@{#14914}
2016-11-03 14:33:25 +00:00
34852cf707 H264SpsPpsTracker class which keep tracks of SPS/PPS.
The H264SpsPpsTracker class:
 - Keeps track of all received SPS/PPS.
 - Decides whether a packet should be inserted into the PacketBuffer or not.
   - Don't insert if this packet only contains SPS and/or PPS.
   - Don't insert if this is the first packet of and IDR and we have not
     received the required SPS/PPS.
 - Insert start codes, and in the case of the first packet of an IDR prepend
   the bitstream with the given SPS/PPS for this IDR.

BUG=webrtc:5514

Review-Url: https://codereview.webrtc.org/2466993003
Cr-Commit-Position: refs/heads/master@{#14906}
2016-11-03 11:03:06 +00:00
fa56584271 Remove deprected functions from EncodedImageCallback and RtpRtcp
Removed EncodedImageCallback::Encoded() and RtpRtcp::SendOutgoingData().
These methods should no longer be used anywhere and it's safe to remove
them.

BUG=chromium:621691

Review-Url: https://codereview.webrtc.org/2405173006
Cr-Commit-Position: refs/heads/master@{#14902}
2016-11-02 20:14:24 +00:00
de9e5fffa2 Add stats for frequency offset when converting RTP timestamp to NTP time.
- Add histogram: "WebRTC.Video.RtpToNtpFreqOffsetInKhz"

  The absolute value of the difference between the estimated frequency during RTP timestamp to NTP time conversion and the actual value (i.e. 90 kHz) is measured per received video frame. The max offset during 40 second intervals is stored. The average of these stored offsets per received video stream is recorded when a stream is removed.

Updated rtp_to_ntp.cc:
- Add validation for only inserting newer RTCP sender reports to the rtcp list.

- Move calculation of frequency/offset (from RTP/NTP timestamp pairs) to UpdateRtcpList. Calculated when a new RTCP SR in inserted (and not in RtpToNtpMs per packet).

BUG=webrtc:6579

Review-Url: https://codereview.webrtc.org/2385763002
Cr-Commit-Position: refs/heads/master@{#14891}
2016-11-02 14:14:10 +00:00
b1ed609901 Use rtcp::Bye instead of RTCPUtility parser for rtcp_sender_unittest
BUG=webrtc:5565

Review-Url: https://codereview.webrtc.org/2463343002
Cr-Commit-Position: refs/heads/master@{#14876}
2016-11-01 13:38:43 +00:00
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
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
869e7cd8e7 Rename ProducerFec to UlpfecGenerator.
BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2449783002
Cr-Commit-Position: refs/heads/master@{#14847}
2016-10-31 12:27:10 +00:00
d55c3f68c8 Rename FecReceiver to UlpfecReceiver.
BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2451643002
Cr-Commit-Position: refs/heads/master@{#14846}
2016-10-31 11:51:38 +00:00
42ca68ab72 Ensure one does not register same rtp header extension with different id
Added assert to RtpHeaderExtensionMap
Altered tests that did.

BUG=webrtc:1994

Review-Url: https://codereview.webrtc.org/2462663002
Cr-Commit-Position: refs/heads/master@{#14840}
2016-10-31 10:34:45 +00:00
e2a0177255 Style cleanups in rtp header extension traits:
renamed kName to kUri and make it more const.
remove IsSupportedBy to reduce header dependency.

BUG=webrtc:1994

Review-Url: https://codereview.webrtc.org/2457783005
Cr-Commit-Position: refs/heads/master@{#14825}
2016-10-28 14:09:04 +00:00
c1600c5695 Follow standard sending CVO rtp header extension
Include CVO in key frame.
Include CVO in delta frame when rotation changes.
Include CVO when it is non zero to support current receiver implementation.

BUG=webrtc:6600

Review-Url: https://codereview.webrtc.org/2452583002
Cr-Commit-Position: refs/heads/master@{#14784}
2016-10-26 10:33:17 +00:00
12ba1867a2 Move parsing from tests to Transport helper in RTPSenderTests
making tests cleaner

BUG=webrtc:5565

Review-Url: https://codereview.webrtc.org/2447103002
Cr-Commit-Position: refs/heads/master@{#14782}
2016-10-26 09:42:00 +00:00
2d81eb33f5 Fix BWE simulations so that it uses the delay based BWE.
Rename kFullSendSideEstimator -> kSendSideEstimator and add new class SendSideBweSender (controlled by kSendSideEstimator) that actually uses the send side BWE.

Move the mock to logging/rtc_event_log/mock.
Allow congestion_controller, remote_bitrate_estimator and audio to depend on loggging/rtc_event_log

BUG=webrtc:6526
NOPRESUBMIT=True

Review-Url: https://codereview.webrtc.org/2431093003
Cr-Commit-Position: refs/heads/master@{#14772}
2016-10-25 14:04:44 +00:00
cc34833809 Remove now unused code in RtpHeaderExtensionMap
Remove functions to enumerate all extensions,
Remove concept of the inactive extension.
Decision if extension should be included into rtp header is done by rtp_sender
GetTotalLengthInBytes now calculates all extension, included or not.
That is used only for calculating how much space to reserve for fec.
Since extension might suddenly be included in the next packet (which still might belong to same fec group), it is safer to calculate all registered extension.

BUG=webrtc:5565, webrtc:1994

Review-Url: https://codereview.webrtc.org/2431253003
Cr-Commit-Position: refs/heads/master@{#14763}
2016-10-25 10:12:34 +00:00
838cdb3db6 Revert of Fix chromium-style warnings. (patchset #1 id:1 of https://codereview.webrtc.org/2400993002/ )
Reason for revert:
Broke internal project

Original issue's description:
> Fix chromium-style warnings.
>
> Separate the null implementation from rtp_rtcp_defines.h, and follow chromium style guide for virtual functions.
>
> BUG=webrtc:163
>
> Committed: https://crrev.com/509eadd554de6bf938da08071c5d2c2541703134
> Cr-Commit-Position: refs/heads/master@{#14738}

TBR=danilchap@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:163

Review-Url: https://codereview.webrtc.org/2449523002
Cr-Commit-Position: refs/heads/master@{#14750}
2016-10-24 16:38:26 +00:00
509eadd554 Fix chromium-style warnings.
Separate the null implementation from rtp_rtcp_defines.h, and follow chromium style guide for virtual functions.

BUG=webrtc:163

Review-Url: https://codereview.webrtc.org/2400993002
Cr-Commit-Position: refs/heads/master@{#14738}
2016-10-24 10:24:22 +00:00
142f019d87 Append second nack list in same compound rtcp packet
instead of replace

BUG=webrtc:6483

Review-Url: https://codereview.webrtc.org/2426543002
Cr-Commit-Position: refs/heads/master@{#14708}
2016-10-20 15:22:45 +00:00
b6f1fb5337 Delete RTPSender::BuildRtpHeader function
and all dependencies

BUG=webrtc:5565

Review-Url: https://codereview.webrtc.org/2399463009
Cr-Commit-Position: refs/heads/master@{#14682}
2016-10-19 13:11:44 +00:00
4e52386339 Reland of Add path for recovered packets from internal::Call to RtpStreamReceiver. (patchset #1 id:1 of https://codereview.webrtc.org/2427733002/ )
Reason for revert:
Flaky test has been fixed.

Original issue's description:
> Revert of Add path for recovered packets from internal::Call to RtpStreamReceiver. (patchset #2 id:60001 of https://codereview.webrtc.org/2390823009/ )
>
> Reason for revert:
> Speculative revert as it may be the cause of the DrMemory test failure:
> https://build.chromium.org/p/client.webrtc/builders/Win%20DrMemory%20Full/builds/5115
>
> Original issue's description:
> > Add path for recovered packets from internal::Call to RtpStreamReceiver.
> >
> > When the FlexfecReceiver recovers media packets, it inserts these into
> > internal::Call, which then distributes them to the appropriate
> > VideoReceiveStream/RtpStreamReceiver.
> >
> > BUG=webrtc:5654
> >
> > Committed: https://crrev.com/9c4b4b47f4325b48e1856566a30983f9e4e30dd0
> > Cr-Commit-Position: refs/heads/master@{#14642}
>
> TBR=stefan@webrtc.org,brandtr@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:5654
>
> Committed: https://crrev.com/862d74d0176fa762b3c96cf20bd36f27e7001a47
> Cr-Commit-Position: refs/heads/master@{#14652}

TBR=stefan@webrtc.org,honghaiz@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2428303004
Cr-Commit-Position: refs/heads/master@{#14677}
2016-10-19 06:50:53 +00:00
862d74d017 Revert of Add path for recovered packets from internal::Call to RtpStreamReceiver. (patchset #2 id:60001 of https://codereview.webrtc.org/2390823009/ )
Reason for revert:
Speculative revert as it may be the cause of the DrMemory test failure:
https://build.chromium.org/p/client.webrtc/builders/Win%20DrMemory%20Full/builds/5115

Original issue's description:
> Add path for recovered packets from internal::Call to RtpStreamReceiver.
>
> When the FlexfecReceiver recovers media packets, it inserts these into
> internal::Call, which then distributes them to the appropriate
> VideoReceiveStream/RtpStreamReceiver.
>
> BUG=webrtc:5654
>
> Committed: https://crrev.com/9c4b4b47f4325b48e1856566a30983f9e4e30dd0
> Cr-Commit-Position: refs/heads/master@{#14642}

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

Review-Url: https://codereview.webrtc.org/2427733002
Cr-Commit-Position: refs/heads/master@{#14652}
2016-10-17 16:42:38 +00:00
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
c1f40b7bae Remove RtcpPacket dependency on rtcp_utility
and thus IP_PACKET_SIZE constant:
Build() use BlockLength() instead of constant IP_PACKET_SIZE for packet
capacity, adding extra checks about packet generation in tests.
Build(callback) removed as unused.
definitions reordered to follow style.

BUG=webrtc:5260

Review-Url: https://codereview.webrtc.org/2270753002
Cr-Commit-Position: refs/heads/master@{#14647}
2016-10-17 08:44:49 +00:00
e40a7ee007 GN: Exclude suppressions of Chromium Clang warnings for Chromium builds.
These suppressions are causing GN errors when Chromium targets are depending
directly on WebRTC targets (needed for https://codereview.chromium.org/2413103004)

BUG=webrtc:4256
NOTRY=True

Review-Url: https://codereview.webrtc.org/2408133008
Cr-Commit-Position: refs/heads/master@{#14644}
2016-10-17 06:56:20 +00:00
9c4b4b47f4 Add path for recovered packets from internal::Call to RtpStreamReceiver.
When the FlexfecReceiver recovers media packets, it inserts these into
internal::Call, which then distributes them to the appropriate
VideoReceiveStream/RtpStreamReceiver.

BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2390823009
Cr-Commit-Position: refs/heads/master@{#14642}
2016-10-16 21:11:00 +00:00
982bf89444 Revert of Add RtcpRttStats to AudioStream (patchset #1 id:1 of https://codereview.webrtc.org/2402333002/ )
Reason for revert:
Speculative revert.
Intermittent memory access errors suspected to be caused by this cl.

See for instance https://build.chromium.org/p/client.webrtc/builders/Win%20DrMemory%20Light/builds/8018

UNADDRESSABLE ACCESS of freed memory: reading 0x0331d330-0x0331d334 4 byte(s)
# 0 webrtc::voe::RtcpRttStatsProxy::LastProcessedRtt
# 1 webrtc::ModuleRtpRtcpImpl::Process

Original issue's description:
> Add RtcpRttStats to AudioStream
>
> BUG=webrtc:6508
>
> Committed: https://crrev.com/e0729c56d35acfaf9738fdb32c6508cd78eaf089
> Cr-Commit-Position: refs/heads/master@{#14595}

TBR=stefan@webrtc.org,minyue@webrtc.org,solenberg@webrtc.org,michaelt@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:6508

Review-Url: https://codereview.webrtc.org/2415943002
Cr-Commit-Position: refs/heads/master@{#14631}
2016-10-13 13:23:18 +00:00
12a39f4100 Don't crash on unexpected stap-a or fu-a.
BUG=chromium:655091

Review-Url: https://codereview.webrtc.org/2406363004
Cr-Commit-Position: refs/heads/master@{#14618}
2016-10-12 22:30:18 +00:00
e0729c56d3 Add RtcpRttStats to AudioStream
BUG=webrtc:6508

Review-Url: https://codereview.webrtc.org/2402333002
Cr-Commit-Position: refs/heads/master@{#14595}
2016-10-11 07:29:34 +00:00
a8b38559a5 Add a FlexfecReceiver class.
This class is split in interface/implementation classes, since it
will be referenced from the Call level. Its purpose is to interface
the erasure code decoder with a new class FlexfecReceiveStream
(for received packets), as well as with the main RTP pipeline (for
recovered packets).

BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2392663006
Cr-Commit-Position: refs/heads/master@{#14594}
2016-10-10 23:45:04 +00:00
0b4b72797e Use NtpTime in RtcpReceiver instead of pair of uints
BUG=webrtc:5565

Review-Url: https://codereview.webrtc.org/2389703007
Cr-Commit-Position: refs/heads/master@{#14557}
2016-10-06 16:24:51 +00:00
15d8357bab Remove OnLocalSsrcChanged and rename EncoderStateFeedback.
The renaming is to reflect this class is only used for RTCP interaction
and not for other transports.

This Cl will be followed by multiple CLs moving all send-side RTP
functionality to a separate class, rtp module ownership away from
VideoSendStream and use TaskQueue instead of ProcessThread for RTP.

BUG=webrtc:6456

Review-Url: https://codereview.webrtc.org/2390463002
Cr-Commit-Position: refs/heads/master@{#14556}
2016-10-06 15:35:19 +00:00
a669a3a0dc Revert "Revert of Use sps and pps to determine decodability of H.264 frames. (patchset #4 id:60001 of https://codereview.webrtc.org/2341713002/ )"
This reverts commit 3cdfcd88a14449a9b116cb6149e1348d3a1e4cb2.

NOPRESUBMIT=true
BUG=webrtc:6208

Review-Url: https://codereview.webrtc.org/2385143002
Cr-Commit-Position: refs/heads/master@{#14551}
2016-10-06 12:04:59 +00:00
425a6ccac3 RTPReceiverAudio: Removed frequency from CNGPayloadType and cleaned up
CheckPayloadChanged.

Removed last_received_frequency_, cng_payload_type_,
g722_payload_type_ and last_received_g722_ from RTPReceiverAudio and
cleaned up most of the related, now dead code.

Since g722_payload_type_ was never set, neither was
last_received_g722_, which means the frequency change in
CNGPayloadType was never done. Setting the frequency to the standard
values also proved unnecessary, since they were already set before the
call. Even if frequency would have been changed by RTPReceiverAudio, I
was not able to find a place where that would actually have
mattered. The ACM and NetEq, for example, which eventually gets these
packages, don't care about that value.

Also, GetPayloadTypeFrequency was never called, so keeping track of
last_received_frequency_ proved unnecessary.

cng_payload_type_ was stored to be able to check in CNGPayloadType if
cng_payload_type_has_changed. This flag was also never read, so these
all disappear.

The main reason for starting this change was to root out any G722
specific code we have sprinkled around the code base (specifically
dealing with the fact that for G722 clock rate != sample rate). In
this case, once I started pulling at one end of the string, the whole
thing came unraveled.

BUG=webrtc:5805

Review-Url: https://codereview.webrtc.org/2383103002
Cr-Commit-Position: refs/heads/master@{#14530}
2016-10-05 15:44:30 +00:00
b2d1e0d1da Resurrected test_api_audio.cc
I'll be doing some changes to code it tests (rtp_receiver_audio,
specifically) and want to make sure there are tests in place before I
touch anything.

Fixed test_api_audio not properly checking payload data. Required a
fix to LoopBackTransport in test_api to as to act like the regular
audio and video parts of WebRTC and separate payload from header data.

Also added a test for CNG and cleaned up constants.

BUG=webrtc:5805

Review-Url: https://codereview.webrtc.org/2378403004
Cr-Commit-Position: refs/heads/master@{#14529}
2016-10-05 14:51:50 +00:00
28b03eb449 Move RTCPHelp::RTCPReportBlockInformation into RTCPReceiver
removing RTCPHelp namespace and rtcp_receiver_help files,
cleaning style of the ReportBlockInformation usage.

BUG=webrtc:5565

Review-Url: https://codereview.webrtc.org/2390643002
Cr-Commit-Position: refs/heads/master@{#14527}
2016-10-05 13:59:51 +00:00
3821399075 Centralize deactivation of Unequal Protection.
This CL introduces changes that clearly demarcate
where we disable Unequal Protection in the FEC.

No functional changes are expected.

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

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

Cr-Commit-Position: refs/heads/master@{#14496}
2016-10-04 12:28:05 +00:00
c07ebb30c5 Simplify public interface of ProducerFec.
- Change some member functions to be private. These were only
  called by other private member functions.
- Replace DeleteMediaPackets() with direct calls to
  media_packets_.clear()
- Rename GetFecPacketsAsRed to GetUlpfecPacketsAsRed.

No functional changes are intended by this CL.

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

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

Cr-Commit-Position: refs/heads/master@{#14491}
2016-10-04 08:57:47 +00:00
a2ece731bf Reorder member functions in FecReceiver unit test file.
- Place all member function definitions between test fixture
  declaration and unit tests.
- Rename GenerateFrame -> PacketizeFrame.

No functional changes are intended by this CL.

BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2275303003
Cr-Commit-Position: refs/heads/master@{#14488}
2016-10-04 07:00:12 +00:00
8d02ea73c0 Add FlexfecPacketGenerator.
Helper class for FlexFEC unit tests to come.

BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2282473002
Cr-Commit-Position: refs/heads/master@{#14487}
2016-10-04 06:47:11 +00:00
cc91d284e4 Moved RtcEventLog files from call/ to logging/
The RtcEventLog headers need to be accessible from any place which needs
logging, and the implementation needs access to data structures that are
logged.

After a discussion in the code review, we all agreed to move the RtcEventLog implementation into its own top level directory - which I called "logging/" in expectation that other types of logging may have similar requirements. The directory contains two main build targets - "rtc_event_log_api", which is just rtc_event_log.h, that has no external dependencies and can be used from anywhere, and "rtc_event_log_impl" which contains the rest of the implementation and has many dependencies (more in the future).

The "api" target can be referenced from anywhere, while the "impl" target is only needed at the place of instantiation (currently Call, soon to be moved to PeerConnection by https://codereview.webrtc.org/2353033005/).

This change allows using RtcEventLog in the p2p/ directory, so that we
can log STUN pings and ICE state transitions.

BUG=webrtc:6393
R=kjellander@webrtc.org, kwiberg@webrtc.org, solenberg@webrtc.org, stefan@webrtc.org, terelius@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#14485}
2016-10-04 01:31:32 +00:00
0aabdac743 Generalize UlpfecPacketGenerator into AugmentedPacketGenerator.
Main changes:
- Split out general functionality from UlpfecPacketGenerator
  into a new class AugmentedPacketGenerator. This will allow
  for the addition of a FlexfecPacketGenerator that inherits
  from AugmentedPacketGenerator.
- Rename RawRtpPacket to AugmentedPacket. This name is more
  reflective of its purpose, i.e., an FEC packet with an
  additional WebRtcRTPHeader.
- Return std::unique_ptr's instead of raw pointers.

Minor changes:
- Update names, based on RawRtpPacket -> AugmentedPacket name
  change, in FEC unit tests.
- Rename |generator_| to |packet_generator_|, in FEC unit tests.
- Change some int's to size_t's in the packet generator classes.
- Use std::unique_ptr in ProducerFec unittest.

No functionality or performance changes are expected
due to this CL.

BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2271273004
Cr-Commit-Position: refs/heads/master@{#14477}
2016-10-03 13:36:49 +00:00
b19d288c94 Remove chain of methods in RtpRtcp module to get current payload frequency for RTCP SRs, which anyway was stuck to defaults for video/audio.
BUG=webrtc:2795,webrtc:6458

Review-Url: https://codereview.webrtc.org/2362373002
Cr-Commit-Position: refs/heads/master@{#14476}
2016-10-03 13:22:32 +00:00
71ca74798a Style fixes in FecReceiver and ProducerFec unit tests.
- Change some types to size_t.
- Update parameter ordering.
- Run 'git cl format'
- Moved 'using declarations' into unnamed namespaces.
- Removed "::webrtc::" prefix from some using declarations.

BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2273353002
Cr-Commit-Position: refs/heads/master@{#14475}
2016-10-03 12:11:31 +00:00