450 Commits

Author SHA1 Message Date
kwiberg
84f6a3fc6b Move optional.h to webrtc/api/
We use Optional in our public API, so its header should be in
webrtc/api/.

BUG=webrtc:8205

Review-Url: https://codereview.webrtc.org/3011943002
Cr-Commit-Position: refs/heads/master@{#19693}
2017-09-05 15:43:13 +00:00
ilnik
2e1b40bdf6 Implement googContentType GetStats metric reported on receive side.
Reported per video stream as a string.

BUG=webrtc:8174

Review-Url: https://codereview.webrtc.org/3009793002
Cr-Commit-Position: refs/heads/master@{#19667}
2017-09-04 14:57:17 +00:00
kwiberg
529662a44c Move array_view.h to webrtc/api/
We use ArrayView in our public API, so its header should be in
webrtc/api/.

BUG=none

Review-Url: https://codereview.webrtc.org/3007763002
Cr-Commit-Position: refs/heads/master@{#19658}
2017-09-04 12:43:17 +00:00
mbonadei
334f9e6a8d Tracking mock_paced_sender.h with a GN target
Untracked headers fly under the 'gn check' radar and in the long term
this can cause problems like unnoticed cyclic dependencies.

This cl creates a synthetic target for this header since no other
targets in webrtc/modules/pacing/BUILD.gn seem to be related to it.

BUG=webrtc:7649
NOTRY=True

Review-Url: https://codereview.webrtc.org/2887593003
Cr-Commit-Position: refs/heads/master@{#19656}
2017-09-04 11:57:11 +00:00
nisse
3c39c0137a Revert of Use RtxReceiveStream. (patchset #5 id:80001 of https://codereview.webrtc.org/3008773002/ )
Reason for revert:
A few perf tests broken, including

RampUpTest.UpDownUpAbsSendTimeSimulcastRedRtx
RampUpTest.UpDownUpTransportSequenceNumberRtx
RampUpTest.UpDownUpTransportSequenceNumberPacketLoss

Original issue's description:
> Use RtxReceiveStream.
>
> This also has the beneficial side-effect that when a media stream
> which is protected by FlexFEC receives an RTX retransmission, the
> retransmitted media packet is passed into the FlexFEC machinery,
> which should improve its ability to recover packets via FEC.
>
> BUG=webrtc:7135
>
> Review-Url: https://codereview.webrtc.org/3008773002
> Cr-Commit-Position: refs/heads/master@{#19649}
> Committed: 5c0f6c62ea

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

Review-Url: https://codereview.webrtc.org/3010983002
Cr-Commit-Position: refs/heads/master@{#19653}
2017-09-04 11:22:15 +00:00
ilnik
75204c5ccd Change reporting of timing frames conditions in GetStats on receive side
Instead of the longest frame since the last GetStats call, the longest
frame received during last 10 seconds should be returned in GetStats().

Previous way is not a good idea because there are maybe several
consumers of GetStats calls. If not all of them parse timing frame
reports, some of them may be lost.

Also, streamline reporting of TimingFrames via GetStats (remove separate
methods and use VideoReceiveStream::Stats struct instead).

BUG=webrtc:7594

Review-Url: https://codereview.webrtc.org/3008983002
Cr-Commit-Position: refs/heads/master@{#19650}
2017-09-04 10:35:40 +00:00
nisse
5c0f6c62ea Use RtxReceiveStream.
This also has the beneficial side-effect that when a media stream
which is protected by FlexFEC receives an RTX retransmission, the
retransmitted media packet is passed into the FlexFEC machinery,
which should improve its ability to recover packets via FEC.

BUG=webrtc:7135

Review-Url: https://codereview.webrtc.org/3008773002
Cr-Commit-Position: refs/heads/master@{#19649}
2017-09-04 10:14:40 +00:00
Stefan Holmer
1acbd68718 Move RtpExtension to api/ directory and config.h/.cc to call/.
BUG=webrtc:5876
R=deadbeef@webrtc.org, solenberg@webrtc.org

Review-Url: https://codereview.webrtc.org/3004723002 .
Cr-Commit-Position: refs/heads/master@{#19639}
2017-09-01 13:29:30 +00:00
mbonadei
16adf03d25 Recently we moved webrtc/base to webrtc/rtc_base, so these
directives in our DEPS files are not needed anymore.

Includes from webrtc/rtc_base are also whitelisted in webrtc/DEPS
so we don't have to whitelist it in all the others DEPS files.

BUG=webrtc:7634
NOTRY=True

Review-Url: https://codereview.webrtc.org/3006583002
Cr-Commit-Position: refs/heads/master@{#19601}
2017-08-30 11:45:58 +00:00
nisse
386449971a Fix setting of recovered flag in RtxReceiveStream.
BUG=webrtc:7135

Review-Url: https://codereview.webrtc.org/3005793002
Cr-Commit-Position: refs/heads/master@{#19599}
2017-08-30 11:16:40 +00:00
minyue-webrtc
0e320ec5ba Wiring discard rate of audio FEC/RED packets up to StatsReport.
BUG=webrtc:7903

Change-Id: I0325725be354ab89cfce1d3564936fe5ff93d303
Reviewed-on: https://chromium-review.googlesource.com/559339
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19560}
2017-08-28 13:17:55 +00:00
mbonadei
95c8f65382 Now that https://codereview.webrtc.org/3003643002 is landed we can
remove rtc_base_approved from the public_deps list of rtc_task_queue.

BUG=webrtc:8160
NOTRY=True

Review-Url: https://codereview.webrtc.org/3008553002
Cr-Commit-Position: refs/heads/master@{#19551}
2017-08-28 06:40:10 +00:00
nisse
26e3abbb40 Reverse |rtx_payload_types| map, and rename.
New name is |rtx_associated_payload_types|.

BUG=webrtc:7135

Review-Url: https://codereview.webrtc.org/3000273002
Cr-Commit-Position: refs/heads/master@{#19514}
2017-08-25 11:44:25 +00:00
eladalon
d1dd2f79e5 Uncomment commented-out sequence-checks in call.cc
Two of the three commented-out checks should have been fixed by https://codereview.webrtc.org/2998923002/. The last will be fixed in a separate CL.

BUG=webrtc:8116

Review-Url: https://codereview.webrtc.org/2999253002
Cr-Commit-Position: refs/heads/master@{#19511}
2017-08-25 09:55:57 +00:00
Steve Anton
2dbc69fa64 Add stats totalSamplesReceived and concealedSamples
Adds two new stats to RTCMediaStreamTrackStats:
* totalSamplesReceived is the total number of samples received on
      the audio channel and includes real and synthetic samples.
* concealedSamples is the total number of synthetic samples
      received on the audio channel used to conceal packet loss.

Bug: webrtc:8076
Change-Id: I36e9828525ec341490cf3310a972b56a8b443667
Reviewed-on: https://chromium-review.googlesource.com/615902
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19506}
2017-08-25 00:50:42 +00:00
Niels Möller
23bdb6773e New accessor function VideoReceiveStream::Config::Rtp::AddRtxBinding
Needed temporarily, to enable landing of
https://codereview.webrtc.org/3000273002/ without breaking downstream
applications.

Bug: webrtc:7135
Change-Id: Ib0783d2e97cc62bb0a6e6fb394a29a5373938054
Reviewed-on: https://chromium-review.googlesource.com/631679
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19490}
2017-08-24 12:47:16 +00:00
ilnik
a79cc28de1 Report max interframe delay over window insdead of interframe delay sum
Maximum of interframe delay is calculated over moving window in
ReceiveStatistics proxy now and reported via GetStats. Name of a metric
is also changed.

BUG=none

Review-Url: https://codereview.webrtc.org/2995143002
Cr-Commit-Position: refs/heads/master@{#19463}
2017-08-23 12:24:10 +00:00
brandtr
caea68f31e Let Call::OnRecoveredPacket parse RTP header extensions.
Packets recovered by ULPFEC enter through
RtpVideoStreamReceiver::OnRecoveredPacket, which does RTP
header extension parsing. Packets recovered by FlexFEC, however,
enter through Call::OnRecoveredPacket, which prior to this
CL did not do RTP header extension parsing.

The lack of RTP header extension parsing for FlexFEC packets is a
regression since https://codereview.webrtc.org/2886993005/.

TESTED=Using Android app with FlexFEC field trial enabled.
BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/3002023002
Cr-Commit-Position: refs/heads/master@{#19460}
2017-08-23 07:55:17 +00:00
oprypin
0826fb2b35 Fix an implicit narrowing conversion found by MSVC
Followup to https://codereview.webrtc.org/2999363002/

BUG=None

Review-Url: https://codereview.webrtc.org/3003133002
Cr-Commit-Position: refs/heads/master@{#19456}
2017-08-22 20:57:48 +00:00
Stefan Holmer
5c8942aee1 Move PacedSender ownership to RtpTransportControllerSend.
BUG=webrtc:8089
R=nisse@webrtc.org, terelius@webrtc.org

Review-Url: https://codereview.webrtc.org/3000773002 .
Cr-Commit-Position: refs/heads/master@{#19451}
2017-08-22 14:16:49 +00:00
aleloi
440b6d9a0f Move video send/receive stream headers to webrtc/call.
Moved the headers video_receive_stream.h and video_send_stream.h from
webrtc/ into webrtc/call/ as part of the Slim and Modular work.

The GN target webrtc:video_stream_api has moved to
webrtc/call:video_stream_api.

There are headers left in webrtc/ with the same name including the
moved headers in webrtc/call/ for not breaking external projects
depending on WebRTC.

At the same time, some minor cleanup is done: Non-pure-virtual functions declared in the two affected headers now have definitions in the same target. After making this change, our 'chromium-style' plugin detected some style violations that have now been fixed: non-inlined constructors and destructors have been added to a number of classes, both inside the GN target of the two affected headers, and in other targets.

BUG=webrtc:8107

Review-Url: https://codereview.webrtc.org/3000253002
Cr-Commit-Position: refs/heads/master@{#19448}
2017-08-22 12:43:23 +00:00
eladalon
413ee9a010 Use SingleThreadedTaskQueue in DirectTransport
DirectTransport has so far used its own thread, which led to a different threading-model for in the unit-tests than is used in actual WebRTC. Because of that, some critical-sections that weren't truly necessary in WebRTC could not be replaced with thread-checks, because those checks failed in unit-tests.

This CL introduces SingleThreadedTaskQueue - a TaskQueue which guarantees to run all of its tasks on the same thread (rtc::TaskQueue doesn't guarantee that on Mac) - and uses that for DirectTransport. CLs based on top of this will uncomment thread-checks which had to be commented out before, and remove unnecessary critical-sections.

Future work would probably replace the thread-checkers by more sophisticated serialized-access checks, allowing us to move from the SingleThreadedTaskQueue to a normal TaskQueue.

Related implementation notes:
* This CL has made DirectTransport::StopSending() superfluous, and so it was deleted.

BUG=webrtc:8113, webrtc:7405, webrtc:8056, webrtc:8116

Review-Url: https://codereview.webrtc.org/2998923002
Cr-Commit-Position: refs/heads/master@{#19445}
2017-08-22 11:02:52 +00:00
Steve Anton
c0cde560f2 Fix size_t to int in RtpDemuxer.
Addresses build failures in Chrome.

Bug: 756840
Change-Id: Icfb3b230f05a99d7f29d913180ed6d2601c26f4d
Reviewed-on: https://chromium-review.googlesource.com/623949
Commit-Queue: Niklas Enbom <niklas.enbom@webrtc.org>
Reviewed-by: Niklas Enbom <niklas.enbom@webrtc.org>
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19435}
2017-08-21 20:22:54 +00:00
Steve Anton
801830691a Reduce code repetition in RtcpDemuxerTest.
Converts RtcpDemuxerTest to use a test fixture which creates the
RtcpDemuxer under test and wraps sink adding functions to
automatically remove added sinks at the end of the test case.

Also adds domain-specific expectation macros to improve readability
of test cases.

Bug: None
Change-Id: I2416ce67c4fc8edc9ecc2cc98d191562c3bf81e4
Reviewed-on: https://chromium-review.googlesource.com/601049
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19417}
2017-08-18 18:41:39 +00:00
Steve Anton
53c7ba632d Add BUNDLE processing to RtpDemuxer.
Extends the RtpDemuxer to do demuxing according to the BUNDLE spec,
using MID and payload types in addition to RSID and SSRC. Also extends
SsrcBindingObserver to receive notification for all types of SSRC
binding that can occur with the new algorithm.

Bug: webrtc:4050
Change-Id: Ie2f347f90d5074ab537fa1162fa7314dd292b68b
Reviewed-on: https://chromium-review.googlesource.com/578628
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19415}
2017-08-18 17:33:08 +00:00
eladalon
f3f5c0e031 Change ThreadChecker to SequencedTaskChecker in internal::Call
In preparation of running DirectTransport on a TaskQueue in unit-tests, change the thread-checkers to sequence-checkers. This is necessary for Mac and iOS, where the TaskQueue is guaranteed to run sequentially, but not guaranteed to do so on only one thread.

TODO: Add the relevant BUGs.

BUG=None

Review-Url: https://codereview.webrtc.org/2999973002
Cr-Commit-Position: refs/heads/master@{#19404}
2017-08-18 09:47:08 +00:00
Steve Anton
9e0c742f1b Reduce code repetition in RtpDemuxerTest.
Converts RtpDemuxerTest to use a test fixture which creates the
RtpDemuxer under test and wraps sink adding/observer adding
functions to automatically remove them at the end of the test case.

Bug: None
Change-Id: I7e40223f6837caa5443d9850477198c1f7a8d14a
Reviewed-on: https://chromium-review.googlesource.com/608906
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19400}
2017-08-18 02:28:22 +00:00
Steve Anton
b3329179a7 Rename RsidResolutionObserver to SsrcBindingObserver.
This rename prepares SsrcBindingObserver to be used for observing all
the ways a sink can be bound to SSRCs (e.g., MID, payload types).

Bug: webrtc:4050
Change-Id: I16b68481d01f921c326a33f5f2baf79d8b3f12e2
Reviewed-on: https://chromium-review.googlesource.com/590762
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19396}
2017-08-17 23:01:59 +00:00
stefan
9e117c5e1b Reland of Add functionality which limits the number of bytes on the network. (patchset #1 id:1 of https://codereview.webrtc.org/3001653002/ )
Reason for revert:
Reland

Original issue's description:
> Revert of Add functionality which limits the number of bytes on the network. (patchset #26 id:500001 of https://codereview.webrtc.org/2918323002/ )
>
> Reason for revert:
> Speculative revert to see if this caused regressions in android perf tests.
>
> Original issue's description:
> > Add functionality which limits the number of bytes on the network.
> >
> > The limit is based on the bandwidth delay product, but also adds some additional slack to compensate for the sawtooth-like BWE pattern and the slowness of the encoder rate control. The delay is estimated based on the time from sending a packet until an ack is received. Since acks are received in bursts (feedback is only sent periodically), a min filter is used to estimate the rtt.
> >
> > Whenever the in flight bytes reaches the congestion window, the pacer is paused, which in turn will result in send-side queues growing. Eventually the encoders will be paused as the pacer queue grows large (currently 2 seconds).
> >
> > BUG=webrtc:7926
> >
> > Review-Url: https://codereview.webrtc.org/2918323002
> > Cr-Commit-Position: refs/heads/master@{#19289}
> > Committed: 8497fdde43
>
> TBR=terelius@webrtc.org,philipel@webrtc.org,tschumim@webrtc.org,gnish@webrtc.org
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=webrtc:7926
>
> Review-Url: https://codereview.webrtc.org/3001653002
> Cr-Commit-Position: refs/heads/master@{#19339}
> Committed: 64136af364

TBR=terelius@webrtc.org,philipel@webrtc.org,tschumim@webrtc.org,gnish@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:7926

Review-Url: https://codereview.webrtc.org/2994343002
Cr-Commit-Position: refs/heads/master@{#19373}
2017-08-16 15:16:25 +00:00
Niels Möller
2bf9e73e6b Delete unneeded Start and Stop methods on FlexfecReceiveStream.
Bug: None
Change-Id: I3013cfc54ed357901f175dd408127eda75e5ba99
Reviewed-on: https://chromium-review.googlesource.com/542735
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19363}
2017-08-16 09:41:27 +00:00
stefan
64136af364 Revert of Add functionality which limits the number of bytes on the network. (patchset #26 id:500001 of https://codereview.webrtc.org/2918323002/ )
Reason for revert:
Speculative revert to see if this caused regressions in android perf tests.

Original issue's description:
> Add functionality which limits the number of bytes on the network.
>
> The limit is based on the bandwidth delay product, but also adds some additional slack to compensate for the sawtooth-like BWE pattern and the slowness of the encoder rate control. The delay is estimated based on the time from sending a packet until an ack is received. Since acks are received in bursts (feedback is only sent periodically), a min filter is used to estimate the rtt.
>
> Whenever the in flight bytes reaches the congestion window, the pacer is paused, which in turn will result in send-side queues growing. Eventually the encoders will be paused as the pacer queue grows large (currently 2 seconds).
>
> BUG=webrtc:7926
>
> Review-Url: https://codereview.webrtc.org/2918323002
> Cr-Commit-Position: refs/heads/master@{#19289}
> Committed: 8497fdde43

TBR=terelius@webrtc.org,philipel@webrtc.org,tschumim@webrtc.org,gnish@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:7926

Review-Url: https://codereview.webrtc.org/3001653002
Cr-Commit-Position: refs/heads/master@{#19339}
2017-08-14 15:03:17 +00:00
eladalon
d9827b554e Removed an unused variable from CallPerfTest::TestAudioVideoSync()
fake_decoder (of type test::FakeDecoder) was not used.

BUG=None

Review-Url: https://codereview.webrtc.org/3001543002
Cr-Commit-Position: refs/heads/master@{#19322}
2017-08-11 09:08:33 +00:00
stefan
8497fdde43 Add functionality which limits the number of bytes on the network.
The limit is based on the bandwidth delay product, but also adds some additional slack to compensate for the sawtooth-like BWE pattern and the slowness of the encoder rate control. The delay is estimated based on the time from sending a packet until an ack is received. Since acks are received in bursts (feedback is only sent periodically), a min filter is used to estimate the rtt.

Whenever the in flight bytes reaches the congestion window, the pacer is paused, which in turn will result in send-side queues growing. Eventually the encoders will be paused as the pacer queue grows large (currently 2 seconds).

BUG=webrtc:7926

Review-Url: https://codereview.webrtc.org/2918323002
Cr-Commit-Position: refs/heads/master@{#19289}
2017-08-09 14:17:33 +00:00
sprang
db2a9fc6ec Wire up RTP keep-alive in ortc api.
[This CL is work in progress.]

Wire up the rtp keep-alive in webrtc::Call::Config using new
SetRtpTransportParameters() method on RtpTransportInterface.

BUG=webrtc:7907

Review-Url: https://codereview.webrtc.org/2981513002
Cr-Commit-Position: refs/heads/master@{#19287}
2017-08-09 13:42:32 +00:00
eladalon
5daecca41b Reland of SSRC and RSID may only refer to one sink each in RtpDemuxer (patchset #1 id:1 of https://codereview.webrtc.org/2993633002/ )
Reason for revert:
Relanding

Original issue's description:
> Revert of SSRC and RSID may only refer to one sink each in RtpDemuxer (patchset #15 id:280001 of https://codereview.webrtc.org/2968693002/ )
>
> Reason for revert:
> Some internal tests keep failing after this change. Try to fix it by reverting it. Will reland it if this isn't the root cause.
>
> Original issue's description:
> > SSRC and RSID may only refer to one sink each in RtpDemuxer
> >
> > RTP demuxing should only match RTP packets with one sink.
> >
> > BUG=webrtc:7135
> >
> > Review-Url: https://codereview.webrtc.org/2968693002
> > Cr-Commit-Position: refs/heads/master@{#19233}
> > Committed: 7b7e06fd23
>
> TBR=nisse@webrtc.org,danilchap@webrtc.org,perkj@webrtc.org,stefan@webrtc.org,holmer@google.com,deadbeef@webrtc.org,pthatcher@webrtc.org,steveanton@webrtc.org,eladalon@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:7135
>
> Review-Url: https://codereview.webrtc.org/2993633002
> Cr-Commit-Position: refs/heads/master@{#19239}
> Committed: 59b603fbed

TBR=nisse@webrtc.org,danilchap@webrtc.org,perkj@webrtc.org,stefan@webrtc.org,holmer@google.com,deadbeef@webrtc.org,pthatcher@webrtc.org,steveanton@webrtc.org,zhihuang@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:7135

Review-Url: https://codereview.webrtc.org/2993053002
Cr-Commit-Position: refs/heads/master@{#19248}
2017-08-04 13:34:54 +00:00
zhihuang
59b603fbed Revert of SSRC and RSID may only refer to one sink each in RtpDemuxer (patchset #15 id:280001 of https://codereview.webrtc.org/2968693002/ )
Reason for revert:
Some internal tests keep failing after this change. Try to fix it by reverting it. Will reland it if this isn't the root cause.

Original issue's description:
> SSRC and RSID may only refer to one sink each in RtpDemuxer
>
> RTP demuxing should only match RTP packets with one sink.
>
> BUG=webrtc:7135
>
> Review-Url: https://codereview.webrtc.org/2968693002
> Cr-Commit-Position: refs/heads/master@{#19233}
> Committed: 7b7e06fd23

TBR=nisse@webrtc.org,danilchap@webrtc.org,perkj@webrtc.org,stefan@webrtc.org,holmer@google.com,deadbeef@webrtc.org,pthatcher@webrtc.org,steveanton@webrtc.org,eladalon@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:7135

Review-Url: https://codereview.webrtc.org/2993633002
Cr-Commit-Position: refs/heads/master@{#19239}
2017-08-03 17:09:44 +00:00
mflodman
cc3d442469 Rename ViEEncoder to VideoStreamEncoder
This CL:
- Renames the ViEEncoder class to VideoStreamEncoder, according to discussions.
- Renames variables 'vie_encode' to 'video_stream_encoder'.
- Formatting to match style guide.
- No other changes.

BUG=webrtc:8064

Review-Url: https://codereview.webrtc.org/2995433002
Cr-Commit-Position: refs/heads/master@{#19237}
2017-08-03 15:27:51 +00:00
mbonadei
5166e54a3d Tracking mock_process_thread with a GN target
include/mock/mock_process_thread.h was not tracked by GN.

This cl creates a target for it. The target is testonly because it
depends on "webrtc/test:rtp_test_utils".

This means that dependencies to this header cannot fly under the
GN radar anymore. :)

BUG=webrtc:7652
NOTRY=True

Review-Url: https://codereview.webrtc.org/2881343003
Cr-Commit-Position: refs/heads/master@{#19234}
2017-08-03 12:57:11 +00:00
eladalon
7b7e06fd23 SSRC and RSID may only refer to one sink each in RtpDemuxer
RTP demuxing should only match RTP packets with one sink.

BUG=webrtc:7135

Review-Url: https://codereview.webrtc.org/2968693002
Cr-Commit-Position: refs/heads/master@{#19233}
2017-08-03 12:13:48 +00:00
eladalon
c0d481a4a6 Protected streams report RTP messages directly to the FlexFec streams
In preparation of making RTP packet demuxing many-to-one (one SSRC goes to one sink, but one sink may have multiple SSRCs), we need to remove FlexFEC's dependence on being able to register itself with the demuxer. Instead, we register FlexFEC streams with the streams they protect; when those streams get packets, they'll forward them to their associated FlexFEC streams, too.

BUG=webrtc:7135

Review-Url: https://codereview.webrtc.org/2974453002
Cr-Commit-Position: refs/heads/master@{#19219}
2017-08-02 14:39:07 +00:00
eladalon
3d4c28778e Make FlexfecReceiveStreamImpl::started_ into std::atomic<bool>
FlexfecReceiveStreamImpl::crit_ was only protecting one boolean, so it's probably better to just make sure that boolean is atomic.

BUG=None

Review-Url: https://codereview.webrtc.org/2991533002
Cr-Commit-Position: refs/heads/master@{#19217}
2017-08-02 14:17:04 +00:00
eladalon
e2173d9f0d Only one implementation of MockRtpPacketSink once
MockRtpPacketSink has three identical implementations now, so time to move it to its own file.

BUG=None

Review-Url: https://codereview.webrtc.org/2988853002
Cr-Commit-Position: refs/heads/master@{#19183}
2017-07-28 17:05:45 +00:00
eladalon
eaec118240 Remove DCHECK from Call's ctor that could never fail
I don't think this line could never conceivably fail - if the ctor has reached that point, the object fit in memory, and its members have all been allocated legal memory addresses, none of which may be 0x00.

BUG=None

Review-Url: https://codereview.webrtc.org/2989813002
Cr-Commit-Position: refs/heads/master@{#19176}
2017-07-28 09:25:09 +00:00
eladalon
abbc430ea0 Make ~webrtc::AudioSendStream public, and s/config()/GetConfig(), as well as make public.
BUG=None

Review-Url: https://codereview.webrtc.org/2987763003
Cr-Commit-Position: refs/heads/master@{#19149}
2017-07-26 09:09:44 +00:00
eladalon
42f44f9cf6 Get rid of unnecessary cast of FlexfecReceiveStreamImpl to FlexfecReceiveStream
BUG=None

Review-Url: https://codereview.webrtc.org/2967913002
Cr-Commit-Position: refs/heads/master@{#19131}
2017-07-25 13:40:06 +00:00
ehmaldonado
f6a861ab6c Remove remains of webrtc/base
All downstream code have been updated to the new location.

In PRESUBMIT.py:
* Remove webrtc/rtc_base from CPP_BLACKLIST
* Add webrtc/rtc_base to LEGACY_API_DIRS

Fix some duplicated paths in
webrtc/modules/audio_processing/test/conversational_speech/BUILD.gn

BUG=webrtc:7634
TBR=kwiberg@webrtc.org

Review-Url: https://codereview.webrtc.org/2976293002
Cr-Commit-Position: refs/heads/master@{#19094}
2017-07-19 17:40:47 +00:00
saza
c58f8c0962 Adds a histogram metric tracking for how long audio RTP packets are sent
through streams related to a call object.

The Call object does not know directly when packets pass through it, only which
AudioSendStreams are used. Each AudioSendStream has a pointer to the Transport
object through which its packets are send.

This CL:
By registering an internal wrapper class, TimedTransport, the AudioSendStream
can stay up-to-date on when packets have passed through its Transport. This
lifetime (as an interval) is then queried by the Call when the AudioSendStream
is destroyed. When Call is destroyed, all streams are guaranteed to have been
destroyed and hence Call is up-to-date on packet activity.

The class TimeInterval keeps the code in Call and AudioSendStream smaller, with
fewer get methods in their APIs and less code for updating values.

Also modifies the unit test for AudioSendStream: it previously enforced that
the stream registers (with its channel proxy) the same transport that it was
constructed with.

BUG=webrtc:7882

Review-Url: https://codereview.webrtc.org/2979833002
Cr-Commit-Position: refs/heads/master@{#19087}
2017-07-19 07:39:19 +00:00
zstein
e76bd3aa43 Adding stats that can be used to compute output audio levels as described here https://w3c.github.io/webrtc-stats/#dom-rtcmediastreamtrackstats-totalaudioenergy.
BUG=webrtc:7982

Review-Url: https://codereview.webrtc.org/2964593002
Cr-Commit-Position: refs/heads/master@{#19027}
2017-07-14 19:17:49 +00:00
jianjun.zhu
c024740b5e Use relative paths in GN files.
BUG=webrtc:7952
TBR=kjellander@webrtc.org
NOTRY=True

Review-Url: https://codereview.webrtc.org/2974863003
Cr-Commit-Position: refs/heads/master@{#18970}
2017-07-11 13:20:45 +00:00
sprang
c1abde7e8e Call should allow pass through of keep-alive packets.
Don't force requirement of media type for those packets.

BUG=webrtc:7964

Review-Url: https://codereview.webrtc.org/2973323002
Cr-Commit-Position: refs/heads/master@{#18966}
2017-07-11 10:56:21 +00:00