Commit Graph

105 Commits

Author SHA1 Message Date
b28bfa7efc Adding FEC support in NetEq 4.
R=henrik.lundin@webrtc.org, turaj@webrtc.org

TEST=passes all trybots

BUG=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5748 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-21 12:07:40 +00:00
3ab57c514c Changing the buffer size (slots) to 1.5 seconds @ 30 ms packets
This is a relanding of r5725, now with a fix for the failing tests.

BUG=2935
R=turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5738 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-20 15:09:38 +00:00
1e98a15adb Revert "Changing the buffer size (in packets) to 1.5 seconds @ 30 ms packets"
Build bots turned red.

TBR=tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5726 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-19 14:16:52 +00:00
e5be877476 Changing the buffer size (in packets) to 1.5 seconds @ 30 ms packets
BUG=2935
R=tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5725 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-19 13:36:58 +00:00
dcc301be07 Adding thread annotations to NetEq4
R=pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5716 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-18 11:49:22 +00:00
cf6f46d716 References to includes in third_party should be relative, not absolute.
BUG=
R=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5704 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-14 16:22:18 +00:00
24779fe7cc Fix a bug where network freeze during CNG causes delay
Wrote a new NetEq unit test to test a network freeze during comfort
noise playout. The network freezes and resumes during the silence
period, and then resumes speech. It was verified that the delay
increased due to the freeze, and this CL contains a fix for that
problem.

BUG=2995
R=turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5701 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-14 12:40:05 +00:00
367000fa8d Remove legacy weirdness in Merge::Downsample
In practice, this will have only marginal effect. The length_limit
was increased from 6.7 ms to 10 ms. This is compared with the
input_length, which is equal to the decoded frame size. Thus,
this change will only affect encoded frame sizes in this range
(including 10 ms).

BUG=2696
R=tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5700 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-14 12:28:39 +00:00
ca8cb95364 Implement a test for an old corner-case in NetEq
This CL implements a unit test to cover an case where comfort noise
packets should be discarded. The situation arises when NetEq gets a
duplicate comfort noise packet. Without this check, the duplicate would
be decoded, and a the timing would shift.

As it turned out, the corner-case funcionality was not completely
accurate in NetEq4. This is because decision_logic_::cng_state_ is set
after the corner-case check. In the old NetEq3, the corresponding state
was changed before the check. This is now fixed.

R=turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5685 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-12 10:26:52 +00:00
04ea23234a Developing NetEqImpl unit tests
Adding option to use mock or real objects instead of mocks.
This will help future testing efforts, where each test case can
select whether a mock or a real object should be used.

Adding new test InsertPacketsUntilBufferIsFull.

Removing a few uniteresting mock call warning.

R=turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5684 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-12 05:55:10 +00:00
c3d13d38f4 Classes and tests for audio an classifier. The class can be used to classify whether a frame of audio contains speech or music. The classifier uses the music/speech classifier in Opus.
R=andrew@webrtc.org, henrik.lundin@webrtc.org, turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5677 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-10 22:50:19 +00:00
3ecc162d01 Remove std:: prefixes from C functions in webrtc/.
std::memcpy -> memcpy for instance. This change was motivated by a
compile report complaining that std::rand() was used instead of rand(),
probably with a stdlib.h include instead of cstdlib. Use of C functions
without the std:: prefix is a lot more common, so removing std:: to
address this.

BUG=
R=tommi@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5658 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-07 15:23:34 +00:00
ed865b5d46 NetEq4: Changing the behavior of playout_timestamp_ update
The variable playout_timestamp_ was not updated to the latest decoded
timestamp while comfort noise was played. Instead, it was upadted using
dead reckoning, which caused it to drift away from the timestamps of the
incoming CNG packets. Now it is updated also during comfort noise
playout.

Since the change is only in NetEq4, this change also makes the test
PlaysOutAudioAndVideoInSync use both ACM1/NetEq3 and ACM2/NetEq4.

Re-enabling one NetEq unit test that is no longer failing thanks to this CL.

BUG=2932
R=stefan@webrtc.org, turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5649 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-06 10:28:07 +00:00
be50ab645a Including algorithm header to avoid VS2013 breakage
The header file <algorithm> must be included when std::min and std::max
are used.

R=kjellander@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5638 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-04 15:10:03 +00:00
04a691adac Removing a variable that was never read
In NetEq4, the local variable discard_count in
PacketBuffer::DiscardOldPackets() was incremented but never read.
Removing it.

TBR=turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5584 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-20 15:27:00 +00:00
340746aa13 Misc small nits in NetEq
Fixing a few small things found recently. This is mostly cosmetics.

R=tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5558 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-17 11:37:16 +00:00
fcfc6a990e Small refactoring of NetEq unittest for CNG with clock drift
Converting the test to a method within the test fixture, and setting
up two tests that call this method. One for positive and one for
negative clock drift. The one with positive clock drift is disabled
for now since it does not pass, but will be re-enabled shortly.

This change is only made for NetEq4.

R=tlegrand@google.com

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5541 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-13 11:42:28 +00:00
75642fcd9a Implementing replacement audio support in neteq_rtpplay
This CL makes it possible to replace the payload in an RTP stream
with audio from another (PCM) file. The new payload will be encoded as
PCM16b. The RTP headers will be updated to reflect this change of
payload type.

BUG=2834
R=turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5490 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-05 08:49:13 +00:00
e6ab21b9ca Fixing a bug in DummyRTPpacket
This bug caused writing outside allocated memory when RTP header
extensions were used.

BUG=2834
TBR=turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5489 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-05 08:46:46 +00:00
f6a638e001 Trivial rename of non-compile time consts.
R=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5482 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-04 01:31:28 +00:00
83aee8f450 Fixing test name for NetEqPerformanceTest
The naming did not follow conventions.

BUG=2859
TBR=kjellander@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5469 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-31 11:46:34 +00:00
84eb0e952e Add clean test to NetEq perf test
Add another test to NetEqPerformanceTest with no packet losses or
clock drift. The purpose of this test would be to focus on the
"clean" code path, i.e., the path taken when there are no network
problems. The reason is that this code path is presumably much
lighter in complexity, and regressions could easily drown in the
heavier code involved when combating losses and drift.

BUG=2859
R=kjellander@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5452 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-28 21:50:35 +00:00
d9faa46d57 Changing to using factory methods for some classes in NetEq
In this CL, the Expand, Accelerate and PreemptiveExpand objects are
created using factory methods. The factory methods are injected into
NetEqImpl on creation. This is a step towards implementing a no-decode
operation.

BUG=2776
R=turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5382 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-14 10:18:45 +00:00
2c03bf1641 Increasing simulation time for NetEqPerformanceTest
This is to get better "signal-to-noise ratio" in the performance bots.
The neteq4-runtime metric is expected to increase by a factor of 10.

BUG=2397
TBR=minyue@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5369 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-13 09:04:23 +00:00
a366e810a9 Adding NetEq performance test to webrtc_perf_tests
The performance test is based on the neteq4_speed_test application. The
bulk of the test code is extracted into a test class, and included into
the neteq_unittest_tools target. The actual gtest that runs the
performance test is implemented in neteq_performance_unittest.cc, and
built as a part of webrtc_perf_tests.

The old stand-alone test application is now made dependent on the new
test class, to avoid code duplication.

BUG=2397
R=andrew@webrtc.org, kjellander@webrtc.org, turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5362 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-10 08:24:04 +00:00
e7ce437333 Fixing lint errors in NetEq4
Just taking care of a few old lint errors.

R=tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5359 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-09 14:01:55 +00:00
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
f9bdbe3619 Roll chromium_revision 232627:238260
This brings us the updated swarming_client
that has moved out from Chromium into a standalone
project.
Because of this, all .isolate files needed to be
updated as well, similar to the changes in
https://codereview.chromium.org/29993003

TEST=trybots passing
BUG=none
R=andrew@webrtc.org, perkj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5260 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-11 13:37:12 +00:00
eb7def234e Fix compilation errors on Fedora 20.
peerconnection_jni.cc: syscall() comes from <unistd.h>
RTPtimeshift.cc: char* being compared to 0 instead of the atoi() of it
rtp_payload_registry_unittest.cc: avoid narrowing int to uint32.

BUG=2700
R=andrew@webrtc.org, fischman@webrtc.org, henrik.lundin@webrtc.org, henrike@webrtc.org

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

Patch from Victor Costan <costan@gmail.com>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5248 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-09 21:34:30 +00:00
5ecdef11cc Do not use recursive calling in NetEq test tools
This CL removes recursive calling in:
- NETEQTEST_DummyRTPpacket::readFromFile,
- NETEQTEST_RTPpacket::readFromFile.

The files currently exist for both NetEq3 and NetEq4, and all are
changed with this CL.

R=turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5200 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-03 08:26:49 +00:00
8418e9696b Fixing NetEq tests for new Opus version
The new version of Opus doesn't generate the same number of bytes encoding the test vectors in audio_decoder_unittest. Therefore the test was updated not to check the length of the encoded packet, to prepare for the coming roll of Opus. Same change was applied to iSAC, which can also generate different number of bytes on different platforms.

BUG=1459
R=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5195 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-29 09:30:43 +00:00
5272eb8d83 Don't register iSAC-swb and iSAC-fb in NetEqDecodingTest.
Android bots break due to r5164. This CL patches that issue.

BUG=
TEST=modules_unittests on local device.
R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5166 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-23 00:11:32 +00:00
78b41a09bd Fix issues with sequence number wrap-around in jitter statistics.
Related CL for NetEq 3 is https://code.google.com/p/webrtc/source/detail?r=5150

Jitter statistics was not very sensitive to timestamp warp-around, and NetEqDecodingTest.TimestampWrap *DID NOT* fail before fixes applied. However, we still keep the test.

The criteria for the tests are not satisfied for first few packets, before any wrap-around happens. We could either relax the bound or ignore the first few packets. We chose the latter.

BUG=2662
TEST=modules_unittests,trybots
R=tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5164 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-22 20:27:07 +00:00
e8433eb115 Reimplementing NetEq4's AudioVector
The current implementation using std::vector is too slow.
This CL introduces a new implementation, using a regular
array as data container.

In AudioMultiVector::ReadInterleavedFromIndex, a special case for
1 channel was implemented, to further reduce runtime. Finally,
AudioMultiVector::Channels was reimplemented.

The changes in this CL reduces the runtime of neteq4_speed_test
by 33%.

BUG=1363
R=turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5115 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-12 13:15:02 +00:00
57eb858698 Remove ".." from include_dirs in build/common.
BUG=1662
TEST=compile on trybots
R=tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5107 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-11 10:20:27 +00:00
58cd31665c Address Clag Analyzer issues.
Following are the issues related to NetEq 4, discovered by Clang Analyzer.

https://x20web.corp.google.com/~pbos/scan-build-2013-10-10-1/report-b44b95.html#EndPath
Valid; perhaps unlikely, addressed.

https://x20web.corp.google.com/~pbos/scan-build-2013-10-10-1/report-6beef6.html#EndPath
Valid, addressed.

https://x20web.corp.google.com/~pbos/scan-build-2013-10-10-1/report-2e3883.html#EndPath
Valid; Addressed

https://x20web.corp.google.com/~pbos/scan-build-2013-10-10-1/report-293659.html#EndPath
Valid; Addressed.

https://x20web.corp.google.com/~pbos/scan-build-2013-10-10-1/report-b875cd.html#EndPath
Valid; Addressed.

https://x20web.corp.google.com/~pbos/scan-build-2013-10-10-1/index.html
Not valid;

https://x20web.corp.google.com/~pbos/scan-build-2013-10-10-1/report-86f2ed.html#EndPath
Not Valid; the assert statement will be short-circuited, however I also added a check of nullity of |packet|.

https://x20web.corp.google.com/~pbos/scan-build-2013-10-10-1/report-3a5669.html#EndPath
Not Valid: |energy_input| and |energy_expand| are both non-negative, therefore if-statement condition on line 226 is not satisfied unless |energy_input| >= 1. Therefore |energy_input| cannot be zero after normalization to 14-bits, i.e. operations on lines 228 & 229.

https://x20web.corp.google.com/~pbos/scan-build-2013-10-10-1/report-2f914f.html#EndPath
Valid; addressed.

https://x20web.corp.google.com/~pbos/scan-build-2013-10-10-1/report-2332b1.html#EndPath
Valid; addressed.

https://x20web.corp.google.com/~pbos/scan-build-2013-10-10-1/report-de8dea.html#EndPath
Not valid; |out_len| is set when Process() is called, however, it makes sense to initialize to zero when declaring |out_len|.

https://x20web.corp.google.com/~pbos/scan-build-2013-10-10-1/report-b671a3.html#EndPath
Valid; addressed.

BUG=
R=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5064 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-31 15:15:55 +00:00
fe5d36b6fe Move RtcpStatistics to webrtc/common_types.h, to be used by vie as well.
We will do some refactoring of video engine and would like to use the
same rtcp stats struct there. Both video and audio seem to use 8bit
fraction lost, so that is changed in the struct as well.

BUG=
R=henrik.lundin@webrtc.org, kjellander@webrtc.org, mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5039 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-28 09:21:07 +00:00
31628aae7e Upgrade scoped_ptr to Chromium's latest version.
Analogous to the recent libjingle change: http://cl/54929753-p10.
This supports scoped_ptr<T[]> and scoped_ptr<C, FreeDeleter> rather
than scoped_array and scoped_ptr_malloc respectively.

- Add Chromium's template-based COMPILE_ASSERT. We didn't have this
previously in order to support the macro in C. Instead, move the
existing macro to compile_assert_c.h.
- Additionally copy the move.h and template_util.h depedencies and add
the WARN_UNUSED_RESULT macro.
- Leave scoped_array and scoped_ptr_malloc for now, but mark as
deprecated.
- Remove scoped_ptr foo(NULL) use. The default constructor handles it.
- Remove the now redundant COMPILE_ASSERT from peerconnection_jni.cc.
- Add a CHECK_ARRAY_SIZE macro to rtp_format_vp8_unittest.cc to remove
some repeated code.

TESTED=trybots
R=pbos@webrtc.org, tommi@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5015 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-22 12:50:00 +00:00
1871dd2fb7 NetEq4: Removing templatization for AudioVector
This is the last CL for removing templates in Audio(Multi)Vector.

BUG=1363
R=turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4960 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-14 20:33:25 +00:00
f31639612d Accounting for wrap-around of timestamps.
BUG=
R=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4932 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-06 02:21:24 +00:00
3f9288f987 Add APK and isolate target for video_engine_tests
Add .isolate file and _run target for video_engine_tests.

Move tools/swarm_client to be untracked in all .isolate file,
so refactorings in swarm_client doesn't require us updating
all our .isolate files (similar to the changes for the
Chromium tests done in:
https://src.chromium.org/viewvc/chrome?view=rev&revision=218844)

Update modules_unittests.isolate with new NetEq4 reference files
needed.

TEST=trybots passing
I also setup a Chromium workspace where I patched third_party/webrtc
with the changes in this CL, followed by compiling with the settings
described in
https://code.google.com/p/webrtc/issues/detail?id=1882#c11
I then verified that the video_engine_tests_apk dir was created
in the output folder.
BUG=1916,2462
R=andrew@webrtc.org, henrike@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4925 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-04 18:20:38 +00:00
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
4887114af7 Remove templatization of the AudioVector test
This CL converts the unit tests for AudioVector from typed tests to
regular tests. It is in preparation for removing templatization for
AudioVector in an upcoming CL.

BUG=1363
R=turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4903 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-02 15:07:28 +00:00
a6101d76f4 Update sampling rate and number of channels of NetEq4 if decoder is changed.
We encounter a sample-underrun if NetEq is initialized with a sampling rate fs =16000 and receive Opus packets with frame-size less than 5 ms. The reason is as follows.

Let say NetEq buffer has 4 packets of Opus each of size 2.5ms this means that internally timestamp of packets incremented by 80 (internally Opus treated as 32 kHz codec). Given the initial sampling rate of NetEq, at the first time that it wants to fetch packets, it targets to fetch 160 samples. Therefore, it will only extracts 2 packets. Decoding these packets give us exactly 160 samples (5 ms at 32 kHz), however, upon decoding the first packet the internal sampling rate will be updated to 32 kHz. So it is expected that sync buffer to deliver 320 samples while it does only have 160 samples (or maybe few more as it starts with some zeros). And we encounter and under-run.

Even if we ignore the under-run  "assert(sync_buffer_->FutureLength() >= expand_->overlap_length())" (neteq_impl.cc::811) is trigered. I'm not sure what happens if we remove this assert perhaps NetEq will work fine in subsequent calls. However the first under-run is blocking ACM2 test to pass.

Here I have a solution to update sample rate as soon as a packet is inserted, if required. It not a very efficient approach as we do the same reset in NetEqImpl::Decode().

It is a bit tricky to reproduce this because the TOT ACM tests do not run ACM2. In https://webrtc-codereview.appspot.com/2192005/ I have a patch to run both ACMs. To reproduce the problem, one can patch that CL and run

$ out/Debug/modules_tests --gtest_filter=AudioCodingModuleTest.TestOpus

Note that we would not encounter any problem if NetEq4 is initiated with 32000 Hz sampling rate. You can test this by setting |kNeteqInitSampleRateHz| to 32000 in webrtc/modules/audio_coding/main/acm2/acm_receiver.cc

BUG=
R=andrew@webrtc.org, henrik.lundin@webrtc.org, kjellander@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4896 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-01 22:01:09 +00:00
fd11bbfb56 NetEq4: Removing templatization for AudioMultiVector
This saves approx 6% runtime for neteq4_speed_test.
$ time out/Release/neteq4_speed_test --runtime_ms=50000000

BUG=1363
R=minyue@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4885 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-30 20:38:44 +00:00
6ad6a07fd3 Support for CELT in NetEq4.
BUG=1359
R=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4884 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-30 20:07:39 +00:00
4cd76221dc Revert 4876 "Support for CELT in NetEq4."
> Support for CELT in NetEq4.
> 
> BUG=1359
> R=henrik.lundin@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/2291004

TBR=turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4879 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-30 12:25:45 +00:00
a20a22a0bd Support for CELT in NetEq4.
BUG=1359
R=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4876 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-28 16:31:25 +00:00
7b75ac6756 Sync-packet insertion into NetEq4. This is related to r3883 & r4052 for NetEq 3.
BUG=
R=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4850 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-26 00:27:56 +00:00
3fdeddb59a Disable a NetEq unittest on Android. The test tries to register iSAC-swb as send codec and fails.
R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4845 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-25 22:19:22 +00:00