27 Commits

Author SHA1 Message Date
henrike@webrtc.org
e6e139159f Android: cleanup gtest_target_type conditions.
Ever since crrev.com/133053 OS==android implies:
gtest_target_type=shared_library

Similar to Chromium's crrev.com/271222 where base.gyp's conditions are changed
(which the affected conditions in this cl comes from).

R=henrike@webrtc.org, wu@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/13539004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6332 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-04 20:46:50 +00:00
minyue@webrtc.org
c1a40a7b68 This CL is to adding feedback of packet loss rate to encoder in voice engine. A direct reason for doing it is to make use of Opus FEC, which can adapt itself to changes in the packet loss rate.
This CL is going to be combined with another CL in ACM, which is to be landed.

TEST=passed_try_bots
BUG=
R=stefan@webrtc.org, xians@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/13449004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6262 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-28 09:52:06 +00:00
solenberg@webrtc.org
57e060251a Fix flaky test SendRtpRtcpHeaderExtensionsTest.SentPackets*.
Flakiness was caused by a race condition between two atomic integers shared by two threads. Fixed by counting bad packets (those not containing the expected extension) instead of the good packets.

The CL also eliminates another possible flake by introducing a test fixture which doesn't automatically start sending audio packets when constructed.

BUG=3340,3356
R=tina.legrand@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/14499004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6182 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-16 11:27:09 +00:00
andresp@webrtc.org
a36ad6929d Add webrtc field trials API.
From now on it is expected that code linking system_wrappers.gyp:system_wrappers
provides an implementation for field_trial API or links with the default one in
system_wrappers.gyp:field_trial_default.

Note: Since there is no use of webrtc::field_trial API inside webrtc this CL on
itself does not forces the clients to actually define it. It however lays the
API and updates the gyp rules to link with so that it is ready to use.

Tested: Introduced a use of field trial in system wrappers and make sure all
bots were building successfully.

BUG=crbug/367114
R=tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/14489004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6147 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-14 12:24:04 +00:00
henrika@webrtc.org
7f3a041d23 Removed NetworkTest.CanSwitchToExternalTransport since it tests an unsupported case and we should not maintain such a test.
BUG=3289
R=pbos@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/16439004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6043 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-02 13:59:58 +00:00
henrika@webrtc.org
66803489f9 Removes parts of the VoEBase sub API as part of a clean-up operation where the goal is to remove unused APIs.
BUG=3206
R=henrik.lundin@webrtc.org, juberti@webrtc.org, niklas.enbom@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/12019005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5928 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-17 10:45:01 +00:00
henrik.lundin@webrtc.org
7c6e3d188a Moved voe_neteq_stats_unittest to audio_coding_module_unittest
The design of VoeNetEqStatsTest in voice_engine_unittests depended on
being able to inject a factory for the audio coding module into
voice engine. This functionality is now likely going away, which would
make this test fail to compile. Further, the functionality under test
is mostly ACM functionality, wherefore it makes better sense to test it
at ACM level.

BUG=2996
R=henrika@webrtc.org, turaj@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/12029004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5912 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-15 17:59:25 +00:00
henrika@webrtc.org
b9309beea4 Removes VoECallReport sub API as part of a clean-up operation where the goal is to remove unused APIs.
BUG=3206
R=niklas.enbom@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/11779004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5896 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-14 14:12:50 +00:00
andrew@webrtc.org
a78a41f985 Move output_mixer_unittest.cc to utility_unittest.cc.
This reflects a move of the tested code in:
https://webrtc-codereview.appspot.com/11019005/

TBR=xians

Review URL: https://webrtc-codereview.appspot.com/11449004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5866 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-08 23:09:28 +00:00
andrew@webrtc.org
40ee3d07ed Consolidate audio conversion from Channel and TransmitMixer.
Replace the two versions with a single DownConvertToCodecFormat. As
mentioned in comments, this could be further consolidated with
RemixAndResample but we should write a full audio converter class in
that case.

Along the way:
- Fix the bug present in Channel::Demultiplex with mono input and a
stereo codec.
- Remove the 32 kHz max from the OnDataAvailable path. This avoids a
48 -> 32 -> 48 conversion when VoE is passed 48 kHz audio; instead we
get a straight pass-through to ACM. The 32 kHz conversion is still
needed in the RecordedDataIsAvailable path until APM natively supports
48 kHz.
- Merge resampler improvements from ACM1 to ACM2. This allows ACM to
handle 44.1 kHz audio passed to VoE and was originally done here:
https://webrtc-codereview.appspot.com/1590004
- Reuse the RemixAndResample unit tests for DownConvertToCodecFormat.
- Remove unused functions from utility.cc.

BUG=3155,3000,b/12867572
TESTED=voe_cmd_test using both the OnDataAvailable and
RecordedDataIsAvailable paths, with a captured audio format of all
combinations of {44.1,48} kHz and {1,2} channels, running through all
codecs, and finally using both ACM1 and ACM2.

R=henrika@webrtc.org, turaj@webrtc.org, xians@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/11019005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5843 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-03 21:56:01 +00:00
wu@webrtc.org
ebdb0e3ad0 Help to land 7969005 on behalf of solenberg. The review and try is done in 7969005.
- Add ability to VoE to send Absolute Sender Time header extension.
- Refactor handling of RTP header extensions in VoE to work the same as in ViE.
- Add API to enable receiving Absolute Sender Time in VoE.

This is part of the work to include audio packets in bandwidth estimation, for
better accuracy in estimates.

BUG=
TBR=solenberg@webrtc.org,henrikg@webrtc.org,stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/9509004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5654 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-06 23:49:08 +00:00
solenberg@webrtc.org
00844d7bef Remove obsolete voe_unit_test.
BUG=
R=henrika@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/8839004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5570 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-18 18:50:50 +00:00
solenberg@webrtc.org
a07923339b Remove external encryption API for VoE.
BUG=
R=henrika@webrtc.org, henrikg@webrtc.org, phoglund@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/8459004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5564 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-18 11:27:22 +00:00
solenberg@webrtc.org
67e70442b5 Remove unused and not working voe_extended_test.
BUG=2913
R=henrikg@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/8439004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5533 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-12 09:58:49 +00:00
wu@webrtc.org
24301a67c6 Update talk to 58174641 together with http://review.webrtc.org/4319005/.
R=turaj@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/5809004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5287 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-13 19:17:43 +00:00
kjellander@webrtc.org
2a97317953 Fix include of isolate.gypi
Recent changes in GYP seem to have broken our previous
"hack" for getting the GYP rule for .isolate files
imported from the Chromium build/isolate.gypi.

The best solution for now is to remove the hack
and check in a copy of Chromium's src/build/isolate.gypi
in WebRTC's build/ dir instead. A similar approach is
used for our build/protoc.gypi file.

TEST=On Linux, I successfully ran:
gclient runhooks
ninja -C out/Release
and verified a bunch of .isolated files were created in
out/Release (which didn't happen before this patch).

I also renamed the build/isolate.gypi from Chromium to
ensure that our own is used and not that one (in case any
paths would be incorrect).

I also ran build/gyp_chromium in a Chromium checkout
with WebRTC in third_party/webrtc having this patch applied
to ensure GYP processing was still working.

Finally, I verified that the same project generation and
compilation from a Chromium checkout worked the way we build
our Android native tests, using:
. build/android/envsetup.sh
GYP_DEFINES="$GYP_DEFINES include_tests=1 enable_tracing=1" gclient runhooks
ninja -C out/Release android_builder_webrtc

BUG=1916
R=andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2338004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4907 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-02 19:31:16 +00:00
minyue@webrtc.org
cc92e000f3 1. adding request of ACM version in the manual mode of voe_auto_test
2. adding command line flag for automated mode of voe_auto_test to choose between ACMs

3. adding request of ACM version in voe_cmd_test

R=phoglund@webrtc.org, xians@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2281004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4877 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-30 08:43:50 +00:00
pbos@webrtc.org
182d025d94 Remove include_dirs from voice_engine.gyp.
BUG=1662
R=xians@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2193004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4716 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-10 15:01:26 +00:00
kjellander@webrtc.org
3365422c41 Isolate GYP target and .isolate files for tests
This is a re-land attempt of http://review.webrtc.org/1673004/
It now includes a build/isolate.gypi in WebRTC that includes the same
file as the one that would be included when WebRTC is used in a Chromium
checkout. It is needed since it is not possible to use variables in GYP's
includes sections.

Implemented according to the instructions at
http://www.chromium.org/developers/testing/isolated-testing

Workflow has been like this:
1. create _run GYP target
2. create a stripped down .isolate file
3. export GYP_DEFINES="$GYP_DEFINES test_isolation_mode=check"
4. runhooks
5. compile
6. test if the test would run (i.e. find it's dependencies) without
   actually executing it:
   tools/swarm_client/isolate.py run --isolated out/Release/testname.isolated
7. If failing, run the fix_test_cases.py script like this:
   tools/swarm_client/googletest/fix_test_cases.py --isolated out/Release/testname.isolated

All tests that run on the bots for WebRTC has got _run target
and .isolate file created.

"Normal tests" that run fine on any machine:
* audio_decoder_unittests
* common_audio_unittests
* common_video_unittests
* metrics_unittests
* modules_tests
* modules_unittests
* neteq_unittests
* system_wrappers_unittests
* test_support_unittests
* tools_unittests
* video_engine_core_unittests
* voice_engine_unittests

Tests that requires bare-metal and audio/video devices:
* audio_device_tests
* video_capture_tests

I also added the isolate boilerplate code for the following
tests that are not yet pure gtest binaries (which means they
cannot run isolated yet):
* video_render_tests
* vie_auto_test
* voe_auto_test

TEST=running isolate.py as described above. WebRTC trybots passing. Created a Chromium checkout with third_party/webrtc ToT and this patch applied, passing the runhooks step.
BUG=1916
R=henrike@webrtc.org, tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2056004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4590 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-22 07:57:00 +00:00
fischman@webrtc.org
dde7d4c6ed Roll chromium_revision 214260:217707 and gflags 45:84
gflags roll is needed mostly to pick up fixes for warnings triggered by newer
compiler/settings pulled in by the chromium roll.  Had to switch from the old
google-gflags project the current gflags project to pick up this fix (see
https://code.google.com/p/gflags/source/detail?r=74 for details).

Update android build.xml file to reflect tools moves in new SDK pulled in by the chromium_revision roll.

R=niklas.enbom@webrtc.org, wu@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2043004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4555 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-15 23:31:30 +00:00
kjellander@webrtc.org
4298f73031 Revert 4547 "Isolate GYP target and .isolate files for tests"
As this breaks the FYI bots in 
http://build.chromium.org/p/chromium.webrtc.fyi/waterfall
due to different path to isolate.gypi (which cannot easily
be resolved due to limitations in GYP)

> Isolate GYP target and .isolate files for tests
> 
> Implemented according to the instructions at
> http://www.chromium.org/developers/testing/isolated-testing
> 
> Workflow has been like this:
> 1. create _run GYP target
> 2. create a stripped down .isolate file
> 3. export GYP_DEFINES="$GYP_DEFINES test_isolation_mode=check"
> 4. runhooks
> 5. compile
> 6. test if the test would run (i.e. find it's dependencies) without
>    actually executing it:
>    tools/swarm_client/isolate.py run --isolated out/Release/testname.isolated
> 7. If failing, run the fix_test_cases.py script like this:
>    tools/swarm_client/fix_test_cases.py --isolated out/Release/testname.isolated
> 
> All tests that run on the bots for WebRTC has got _run target
> and .isolate file created.
> 
> "Normal tests" that run fine on any machine:
> * audio_decoder_unittests
> * common_audio_unittests
> * common_video_unittests
> * metrics_unittests
> * modules_integrationtests
> * modules_unittests
> * neteq_unittests
> * system_wrappers_unittests
> * test_support_unittests
> * tools_unittests
> * video_engine_core_unittests
> * voice_engine_unittests
> 
> Tests that requires bare-metal and audio/video devices:
> * audio_device_integrationtests
> * video_capture_integrationtests
> 
> I also added the isolate boilerplate code for the following
> tests that are not yet pure gtest binaries (which means they
> cannot run isolated yet):
> * video_render_integrationtests
> * vie_auto_test
> * voe_auto_test
> 
> TEST=running isolate.py as described above.
> BUG=1916
> R=tommi@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/1673004

TBR=kjellander@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2040004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4548 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-15 11:29:58 +00:00
kjellander@webrtc.org
d7a4d235d2 Isolate GYP target and .isolate files for tests
Implemented according to the instructions at
http://www.chromium.org/developers/testing/isolated-testing

Workflow has been like this:
1. create _run GYP target
2. create a stripped down .isolate file
3. export GYP_DEFINES="$GYP_DEFINES test_isolation_mode=check"
4. runhooks
5. compile
6. test if the test would run (i.e. find it's dependencies) without
   actually executing it:
   tools/swarm_client/isolate.py run --isolated out/Release/testname.isolated
7. If failing, run the fix_test_cases.py script like this:
   tools/swarm_client/fix_test_cases.py --isolated out/Release/testname.isolated

All tests that run on the bots for WebRTC has got _run target
and .isolate file created.

"Normal tests" that run fine on any machine:
* audio_decoder_unittests
* common_audio_unittests
* common_video_unittests
* metrics_unittests
* modules_integrationtests
* modules_unittests
* neteq_unittests
* system_wrappers_unittests
* test_support_unittests
* tools_unittests
* video_engine_core_unittests
* voice_engine_unittests

Tests that requires bare-metal and audio/video devices:
* audio_device_integrationtests
* video_capture_integrationtests

I also added the isolate boilerplate code for the following
tests that are not yet pure gtest binaries (which means they
cannot run isolated yet):
* video_render_integrationtests
* vie_auto_test
* voe_auto_test

TEST=running isolate.py as described above.
BUG=1916
R=tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1673004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4547 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-15 10:02:06 +00:00
pbos@webrtc.org
676ff1ed89 Ref-counted rewrite of ChannelManager.
The complexity of the last ChannelManager and potentially usage of it as well caused race conditions and deadlocks in loopback voe_auto_test. This ref-counted solution takes no long-term locks, uses less locks overall and is significantly easier to understand.

ScopedChannel has been split up into a ChannelOwner with a reference to a channel and an Iterator over ChannelManager. Previous code was really used for both things. ChannelOwner is used as a shared pointer to a channel object, while an Iterator should work as expected.

BUG=2081
R=tommi@webrtc.org, xians@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1802004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4502 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-07 17:57:36 +00:00
henrike@webrtc.org
89c674053e Adds all unittests to android NDK-APK framework.
BUG=N/A
R=andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1872004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4474 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-02 16:53:47 +00:00
kjellander@webrtc.org
6c35e0b0f7 Reorganize test targets in WebRTC
This CL will lower the number of test targets in WebRTC by:

Add common_audio_unittests and merge the following targets into it (copied from http://review.webrtc.org/1584006):
* resampler_unittests
* signal_processing_unittests
* vad_unittests

Merge into modules_unittests:
* bitrate_controller_unittests
* desktop_capture_unittests
* media_file_unittests
* remote_bitrate_estimator_unittests
* rtp_rtcp_unittests
* paced_sender_unittests

Merge into test_support_unittests:
* channel_transport_unittests

channel_transport.gyp was also removed in favor for test.gyp.

I had to remove a main method from rtcp_format_remb_unittest.cc
since it caused the fileutils.h code to not be able to find the
right project root path in ordrer to provide correct paths
to test files.

Buildbot configuration update will be synced with the commit of this CL.

TEST=trybots
BUG=1843
R=andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1639004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4213 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-11 08:29:17 +00:00
andrew@webrtc.org
f791b1cebf Rename voice_engine_core -> voice_engine and move targets to voice_engine.gyp.
R=kjellander@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1574004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4126 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-29 00:38:02 +00:00
andrew@webrtc.org
14b43beb7c Move src/ -> webrtc/
TBR=niklas.enbom@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/915006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2963 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-10-22 18:19:23 +00:00