110 Commits

Author SHA1 Message Date
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
kjellander
f1685c771d Disable RampUpTest.UpDownUp* in webrtc_perf_tests on Mac
NOTRY=True
BUG=5407
TBR=stefan@webrtc.org,pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11188}
2016-01-08 18:43:45 +00:00
stefan
e74eef19bd Add CreateSend/ReceiveTransport() methods to CallTest.
This allows the test to create its own transports if it, for instance, needs to do demuxing.

BUG=webrtc:5416

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

Cr-Commit-Position: refs/heads/master@{#11187}
2016-01-08 14:47:21 +00:00
Stefan Holmer
9fea80f50d Add audio streams to CallTest and a first A/V call test.
Add audio send and receive streams to CallTest and call the necessary voice engine APIs for the streams to be usable. Verifies the implementation by adding a simple test which monitors outgoing packets and checks that both audio and video is being sent with transport sequence numbers.

Audio streams are using a fake audio device with file input.

The CallTest implementation is to a big degree based on call_perf_tests.cc and should in the future replace a lot of that code.

R=pbos@webrtc.org
TBR=kjellander@webrtc.org

BUG=webrtc:5263

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

Cr-Commit-Position: refs/heads/master@{#11171}
2016-01-07 16:43:31 +00:00
Peter Boström
e2976c87f7 Remove DISABLED_ON_ macros.
Macro incorrectly displays DISABLED_ON_ANDROID in test names for
parameterized tests under --gtest_list_tests, causing tests to be
disabled on all platforms since they contain the DISABLED_ prefix rather
than their expanded variants.

This expands the macro variants to inline if they're disabled or not,
and removes building some tests under configurations where they should
fail, instead of building them but disabling them by default.

The change also removes gtest_disable.h as an unused include from many
other files.

BUG=webrtc:5387, webrtc:5400
R=kjellander@webrtc.org, phoglund@webrtc.org
TBR=henrik.lundin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11150}
2016-01-04 21:44:16 +00:00
stefan
ff483617a4 Step 1 to prepare call_test.* for combined audio/video tests.
Also move (and clean up includes) rampup_tests.* to webrtc/call in preparation for combined audio/video ramp-up tests.

No functional changes.

BUG=webrtc:5263

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

Cr-Commit-Position: refs/heads/master@{#11101}
2015-12-21 11:14:05 +00:00
asapersson
53805324c0 Rename RTC_HISTOGRAM_* macros to RTC_HISTOGRAM_*_SPARSE_* to indicate that these are for infrequent updates.
This implementation will be replaced by a faster one and sparse will be removed.

BUG=webrtc:5283

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

Cr-Commit-Position: refs/heads/master@{#11099}
2015-12-21 09:46:25 +00:00
Peter Boström
5811a39f14 Replace EventWrapper in video/, test/ and call/.
Makes use of rtc::Event which is simpler and can be used without
allocating additional objects on the heap.

Does not modify test/channel_transport/.

BUG=
R=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10968}
2015-12-10 12:03:00 +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
Peter Boström
7623ce4aeb Reland of Merge webrtc/video_engine/ into webrtc/video/ (patchset #2 id:300001 of https://codereview.webrtc.org/1507903005/ )
Reason for revert:
Bot breakage caused by TickTime::UseFakeClock has been removed.

Original issue's description:
> Revert of Merge webrtc/video_engine/ into webrtc/video/ (patchset #2 id:20001 of https://codereview.webrtc.org/1506773002/ )
>
> Reason for revert:
> Breaks Dr Memory Light https://build.chromium.org/p/client.webrtc/builders/Win%20DrMemory%20Light/builds/4643 and all the Android Tests bots.
>
> Original issue's description:
> > Merge webrtc/video_engine/ into webrtc/video/
> >
> > BUG=webrtc:1695
> > R=mflodman@webrtc.org
> >
> > Committed: https://crrev.com/03ef053202bc5d5ab43460eebf5403232f157646
> > Cr-Commit-Position: refs/heads/master@{#10926}
>
> TBR=mflodman@webrtc.org,pbos@webrtc.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:1695
>
> Committed: https://crrev.com/8237abf563bf4782ee104408b53cc8e55ce44518
> Cr-Commit-Position: refs/heads/master@{#10937}

BUG=webrtc:1695
TBR=mflodman@webrtc.org,kjellander@webrtc.org
NOPRESUBMIT=true

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

Cr-Commit-Position: refs/heads/master@{#10948}
2015-12-09 11:13:40 +00:00
Peter Boström
d3c944755e Nuke TickTime::UseFakeClock.
Removes the global simulated time that affects (or breaks) following
tests in the same binary and replaces it with SimulatedClock.

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

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

Cr-Commit-Position: refs/heads/master@{#10947}
2015-12-09 10:21:09 +00:00
kjellander
8237abf563 Revert of Merge webrtc/video_engine/ into webrtc/video/ (patchset #2 id:20001 of https://codereview.webrtc.org/1506773002/ )
Reason for revert:
Breaks Dr Memory Light https://build.chromium.org/p/client.webrtc/builders/Win%20DrMemory%20Light/builds/4643 and all the Android Tests bots.

Original issue's description:
> Merge webrtc/video_engine/ into webrtc/video/
>
> BUG=webrtc:1695
> R=mflodman@webrtc.org
>
> Committed: https://crrev.com/03ef053202bc5d5ab43460eebf5403232f157646
> Cr-Commit-Position: refs/heads/master@{#10926}

TBR=mflodman@webrtc.org,pbos@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:1695

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

Cr-Commit-Position: refs/heads/master@{#10937}
2015-12-08 15:12:11 +00:00
Peter Boström
03ef053202 Merge webrtc/video_engine/ into webrtc/video/
BUG=webrtc:1695
R=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10926}
2015-12-08 08:09:07 +00:00
Peter Boström
6f28cf0b95 Implement standalone event tracing in AppRTCDemo.
Logs tracing events (TRACE_EVENT0 and friends) to storage in a format
compatible with chrome://tracing which can be used for performance
evaluation, finding lock contention and other sweet things). Tracing is
still basic and doesn't contain thread metadata or logging of tracing
arguments.

BUG=webrtc:5158
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10921}
2015-12-07 22:17:26 +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
Peter Boström
7c704b8289 Use webrtc/base/logging.h in stefan@'s ownership.
Replaces system_wrappers' logging in call/, bitrate_controller/, pacing/
and remote_bitrate_estimator/.

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

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

Cr-Commit-Position: refs/heads/master@{#10896}
2015-12-04 15:13:12 +00:00
Fredrik Solenberg
ea07373a2e Enable cpplint for webrtc/audio and webrtc/call, and fix all uncovered cpplint errors.
BUG=webrtc:5268,webrtc:5273
TESTED=Fixed issues reported by:
find webrtc/audio -type f -name *.cc -o -name *.h | xargs cpplint.py
find webrtc/call -type f -name *.cc -o -name *.h | xargs cpplint.py
followed by 'git cl presubmit'.

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

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

Cr-Commit-Position: refs/heads/master@{#10853}
2015-12-01 10:26:46 +00:00
Peter Boström
521af4e344 Remove duplicate decoders in BitrateEstimatorTest.
Multiple decoders were used for the same payload type in this test case,
causing CHECK failures when configuring.

BUG=webrtc:5249
TBR=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10825}
2015-11-27 15:35:14 +00:00
Stefan Holmer
226befecfb Rewrote pacer and bandwidth UMA stats.
The new version measures receive bitrates from time of first packet to
time of last packet, and send/pacer BWE as the average BWE reported
while we have send streams.

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

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

Cr-Commit-Position: refs/heads/master@{#10810}
2015-11-26 14:36:55 +00:00
kjellander
3e6db2321c audio_coding: remove "main" directory
This is the last piece of the old directory layout of the modules.

Duplicated header files are left in audio_coding/main/include until
downstream code is updated to the new location. They have pragma
warnings added to them and identical header guards as the new headers to avoid breaking things.

BUG=webrtc:5095
TESTED=Passing compile-trybots with --clobber flag:
git cl try --clobber --bot=win_compile_rel --bot=linux_compile_rel --bot=android_compile_rel --bot=mac_compile_rel --bot=ios_rel --bot=linux_gn_rel --bot=win_x64_gn_rel --bot=mac_x64_gn_rel --bot=android_gn_rel -m tryserver.webrtc
NOTRY=True
NOPRESUBMIT=True

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

Cr-Commit-Position: refs/heads/master@{#10803}
2015-11-26 12:45:01 +00:00
stefan
18adf0a79d Add UMA for send bwe and pacer bitrate.
Review URL: https://codereview.webrtc.org/1434403004

Cr-Commit-Position: refs/heads/master@{#10675}
2015-11-17 14:25:02 +00:00
solenberg
3a94154035 Move some send stream configuration into webrtc::AudioSendStream.
BUG=webrtc:4690

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

Cr-Commit-Position: refs/heads/master@{#10652}
2015-11-16 15:34:59 +00:00
Henrik Kjellander
0b9e29c87d Remove include dirs from modules/{media_file,pacing}
Also move files out of media_file/source.

BUG=webrtc:5095
TESTED=git cl try -c --bot=android_compile_rel --bot=linux_compile_rel --bot=win_compile_rel --bot=mac_compile_rel --bot=ios_rel --bot=linux_gn_rel --bot=win_x64_gn_rel --bot=mac_x64_gn_rel --bot=android_gn_rel -m tryserver.webrtc
R=asapersson@webrtc.org, perkj@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10647}
2015-11-16 10:12:32 +00:00
mflodman
0e7e259ebd Move BitrateAllocator from BitrateController logic to Call.
This is a step on the way to have variable bitrate for audio and is
intended to be as much of a no-op as possible.

BUG=webrtc:5079

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

Cr-Commit-Position: refs/heads/master@{#10630}
2015-11-13 05:02:46 +00:00
solenberg
56a34df928 Re-add a thread check in Call::Call that was removed by mistake in a rebase.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#10623}
2015-11-12 16:24:50 +00:00
stefan
91d926038f Add receive bitrate UMA stats.
Review URL: https://codereview.webrtc.org/1440603002

Cr-Commit-Position: refs/heads/master@{#10605}
2015-11-11 18:13:07 +00:00
solenberg
566ef247b9 Move VoiceEngineObserver into AudioSendStream so that we detect typing noises and return properly in GetStats().
BUG=webrtc:4690

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

Cr-Commit-Position: refs/heads/master@{#10548}
2015-11-06 23:34:58 +00:00
terelius
d66daa2d2f Removed cname and receiver_reference_time_report from proto and logging code. Changed logging of RTCP to omit messages of type SDES and APP.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#10542}
2015-11-06 17:00:21 +00:00
terelius
56b1128c8f Change to use local Random object instead of global rand() in the RtcEventLog unit test.
Removed Rand(int low, int high) since that function outputs results that are non-random and/or outside the interval if low is negative.

Added new Uniform(uint32_t, uint32_t) function to replace Rand(int low, int high).

Changed various unit tests to use the new functions.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#10541}
2015-11-06 13:14:01 +00:00
terelius
006d93d3c6 Added protobuf message for loss-based BWE events, and wired it up to the send side bandwidth estimator.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#10531}
2015-11-05 20:02:19 +00:00
sprang
2f48d94124 Set pacer target bitrate to max of bwe and bitrate allocation.
ChannelGroup::OnNetWorkChanged() should not configure the pacer to send
a lower bitrate than what bitrate_allocator has actually allocated (may
be the case if min_bitrate is enforced, for instance).

BUG=

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

Cr-Commit-Position: refs/heads/master@{#10519}
2015-11-05 12:25:58 +00:00
Henrik Kjellander
ff761fba82 modules: more interface -> include renames
This changes the following module directories:
* webrtc/modules/audio_conference_mixer/interface
* webrtc/modules/interface
* webrtc/modules/media_file/interface
* webrtc/modules/rtp_rtcp/interface
* webrtc/modules/utility/interface

To avoid breaking downstream, I followed this recipe:
1. Copy the interface dir to a new sibling directory: include
2. Update the header guards in the include directory to match the style guide.
3. Update the header guards in the interface directory to match the ones in include. This is required to avoid getting redefinitions in the not-yet-updated downstream code.
4. Add a pragma warning in the header files in the interface dir. Example:
#pragma message("WARNING: webrtc/modules/interface is DEPRECATED; "
                "use webrtc/modules/include")
5. Search for all source references to webrtc/modules/interface and update them to webrtc/modules/include (*.c*,*.h,*.mm,*.S)
6. Update all GYP+GN files. This required manual inspection since many subdirectories of webrtc/modules referenced the interface dir using ../interface etc(*.gyp*,*.gn*)

BUG=5095
TESTED=Passing compile-trybots with --clobber flag:
git cl try --clobber --bot=win_compile_rel --bot=linux_compile_rel --bot=android_compile_rel --bot=mac_compile_rel --bot=ios_rel -m tryserver.webrtc

R=stefan@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10500}
2015-11-04 07:32:04 +00:00
Fredrik Solenberg
0ccae13556 Changed FakeVoiceEngine into a MockVoiceEngine.
BUG=webrtc:4690
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10491}
2015-11-03 09:15:59 +00:00
Henrik Kjellander
74640895fa audio_coding: rename interface -> include
BUG=webrtc:5095
R=henrik.lundin@webrtc.org
TBR=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10444}
2015-10-29 10:31:11 +00:00
Henrik Kjellander
98f53510b2 system_wrappers: rename interface -> include
BUG=webrtc:5095
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10438}
2015-10-28 17:17:50 +00:00
stefan
f116bd0d7a Call OnSentPacket for all packets sent in the test framework.
Required a bit of refactoring to make it possible to pass a Call to DirectTransport on construction. This also lead to me having to remove the shared lock between PacketTransport and RtpRtcpObserver. Now RtpRtcpObserver has a SetTransports method instead of a SetReceivers method.

BUG=webrtc:4173

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

Cr-Commit-Position: refs/heads/master@{#10430}
2015-10-27 15:29:47 +00:00
solenberg
85a0496b8c Implement AudioSendStream::GetStats().
BUG=webrtc:4690

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

Cr-Commit-Position: refs/heads/master@{#10424}
2015-10-27 10:35:30 +00:00
mflodman
717432f130 Remove network_enabled_crit_ in call.cc.
After #10321 (5a289393928c18af580c6339ba77600fb67006e2) I don't see that
we still need this lock.

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

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

Cr-Commit-Position: refs/heads/master@{#10410}
2015-10-26 15:34:58 +00:00
stefan
bbe876f0d3 Set send times in send time history via OnSentPacket.
BUG=webrtc:4173

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

Cr-Commit-Position: refs/heads/master@{#10384}
2015-10-23 09:05:43 +00:00
Fredrik Solenberg
4f4ec0a927 Re-Land: Implement AudioReceiveStream::GetStats().
R=tommi@webrtc.org
BUG=webrtc:4690

Committed: a457752f4a

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

Cr-Commit-Position: refs/heads/master@{#10369}
2015-10-22 08:49:39 +00:00
mflodman
0c478b3d75 Rename ChannelGroup to CongestionController and move to webrtc/call/.
BUG=webrtc:5079
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10358}
2015-10-21 13:52:33 +00:00
mflodman
e37870297f ChannelGroup cleanup.
Move CallStats to Call, EncoderStateFeedback to VideoSendStream and
remove last ViEChannel dependency from ChannelGroup.

BUG=webrtc:5079
R=pbos@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10355}
2015-10-21 11:24:37 +00:00
tommi
e4f96501fc Remove system_wrappers/interface/trace_event.h
BUG=

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

Cr-Commit-Position: refs/heads/master@{#10346}
2015-10-21 06:00:57 +00:00
solenberg
43e83d44f0 Revert of Implement AudioReceiveStream::GetStats(). (patchset #19 id:360001 of https://codereview.webrtc.org/1390753002/ )
Reason for revert:
webrtc_perf_tests started failing on Win32 Release, Mac32 Release and Linux64 Release (all running large tests). These were not caught by try bots.

Original issue's description:
> Implement AudioReceiveStream::GetStats().
>
> R=tommi@webrtc.org
> TBR=hta@webrtc.org
> BUG=webrtc:4690
>
> Committed: a457752f4a

TBR=tommi@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:4690

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

Cr-Commit-Position: refs/heads/master@{#10340}
2015-10-20 13:41:06 +00:00
Fredrik Solenberg
a457752f4a Implement AudioReceiveStream::GetStats().
R=tommi@webrtc.org
TBR=hta@webrtc.org
BUG=webrtc:4690

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

Cr-Commit-Position: refs/heads/master@{#10338}
2015-10-20 13:01:55 +00:00
mflodman
0dbf0090a9 Remove the video channel id completely.
BUG=webrtc:5079

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

Cr-Commit-Position: refs/heads/master@{#10324}
2015-10-19 15:12:19 +00:00
solenberg
5a28939392 Added thread checker to webrtc::Call.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#10321}
2015-10-19 10:39:27 +00:00
mflodman
a20de2030f Move ownership of receive ViEChannel to VideoReceiveStream.
This CL changes as little as possible and I'll follow up later with
ownership of the other members in ChannelGroup.

The next step is to remove the id used for channels.

BUG=webrtc:5079

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

Cr-Commit-Position: refs/heads/master@{#10318}
2015-10-19 05:08:29 +00:00
solenberg
c7a8b08a7c Add webrtc::AudioSendStream and methods on webrtc::Call to create and delete AudioSendStreams.
AudioSendStream will be replacing the send side of VoiceEngine channels and associated APIs. Hence, they will be used transform recorded audio into RTP/RTCP packets that can be transmitted to another party, according to given parameters.

BUG=webrtc:4690

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

Cr-Commit-Position: refs/heads/master@{#10307}
2015-10-16 21:35:11 +00:00
terelius
1adce14c87 Old config events are no longer removed from RtcEventLog.
Time to keep old events in buffer is now changeable at runtime.
Added unit test for removing old events from buffer.

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

Cr-Commit-Position: refs/heads/master@{#10302}
2015-10-16 15:51:15 +00:00