4673 Commits

Author SHA1 Message Date
andrew@webrtc.org
621df678c8 WEBRTC_{BIG, LITTLE}_ENDIAN -> WEBRTC_ARCH_{BIG, LITTLE}_ENDIAN.
Mostly to remove a long-standing TODO...

TESTED=trybots
R=turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5013 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-22 10:27:23 +00:00
marpan@webrtc.org
943e3b95a6 Add CurrentLayerId() to temporal layers.
same patch as: https://webrtc-codereview.appspot.com/2427004/

TBR=holmer@google.com

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5012 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-22 01:55:07 +00:00
solenberg@webrtc.org
8215106371 Framework for testing bandwidth estimation.
BUG=
R=mflodman@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5008 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-21 14:23:26 +00:00
henrik.lundin@webrtc.org
29dd0de5b3 Changing the bitrate clamping in BitrateControllerImpl
This CL implements an alternative to the bitrate clamping that is done
in BitrateControllerImpl. The default behavior is unchanged, but if
the new algorithm is enabled the behavior is as follows:
When the new bitrate is lower than the sum of min bitrates, the
algorithm will give each observer up to its min bitrate, one
observer at a time, until the bitrate budget is depleted. Thus,
with this change, some observers may get less than their min bitrate,
or even zero.

Unit tests are implemented.

Also fixing two old lint warnings in the affected files.

This change is related to the auto-muter feature.

BUG=2436
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5007 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-21 14:00:01 +00:00
pbos@webrtc.org
e05362916c Make sure the first frame isn't dropped.
If frames were delivered within the same millisecond as VideoCaptureImpl
was created, or the timestamp weren't granular enough then the first
frame would be mistakenly dropped because of having the same timestamp
as a previous one, even though there was no previous one.

BUG=
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5004 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-21 09:02:30 +00:00
andrew@webrtc.org
89b1e688ca Minor comment fix after clang reformat.
TBR=bjornv@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4996 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-18 14:23:29 +00:00
sergeyu@chromium.org
2df89c0c8b MouseCursorMonitor implementation for OSX and Windows.
BUG=crbug.com/173265
R=wez@chromium.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4994 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-17 19:47:18 +00:00
wu@webrtc.org
d030972139 Remove unused kPowTableFrac which causes anroid clang build failure.
http://build.chromium.org/p/tryserver.chromium/builders/android_clang_dbg/builds/84322/steps/compile/logs/stdio

R=niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4981 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-16 20:32:09 +00:00
sergeyu@chromium.org
e6e749da38 Add MouseCursorRenderer.
The new class acts as a wrapper for DesktopCapturer interface. It takes
mouse shape and position from MouseCursorCapturer and renders it on the
frames produced by underlying DesktopCapturer.

BUG=crbug.com/173265
R=wez@chromium.org
TBR=andrew@webrtc.org (modules.gyp)

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4968 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-16 02:48:41 +00:00
sergeyu@chromium.org
2767b53f66 Add MouseCursorCapturer interface with implementation for X11.
The new interface will be used to capture cursor shape and position and
blend it into the image captured with desktop capturers.

BUG=crbug.com/173265
R=wez@chromium.org
TBR=andrew@webrtc.org (modules.gyp)

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4967 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-16 02:42:38 +00:00
kjellander@webrtc.org
3555303cb0 Roll chromium_revision 226126:228675 and fix clang warnings
By request from thakis@chromium.org, I disabled the
-Wno-unused-const-variable setting that is set in Chromium's
common.gypi so we can prepare our code for it's removal.

This required some cleanup in order to get the code to compile
with Clang having the -Wunused-const-variable warning enabled.

TEST=all trybots passing
BUG=none
R=niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4966 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-15 20:10:17 +00:00
stefan@webrtc.org
e5021fe590 Make RtpData and RtpFeedback destructors public.
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4965 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-15 10:38:40 +00:00
andrew@webrtc.org
c2e471d8b3 Compile out unused kMinTrustedDelayMs.
TBR=niklas.enbom@webrtc.org
TESTED=trybots

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4963 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-15 02:11:21 +00:00
henrik.lundin@webrtc.org
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
sergeyu@chromium.org
30792987b8 Remove empty line in SharedXDisplay::RemoveEventHandler.
TBR=wez@chromium.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4958 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-14 17:58:46 +00:00
henrike@webrtc.org
05773e5a70 Android OpenSlDemo: remove some usages of deprecated APIs that is breaking the bots.
TBR=fischman@webrtc.org

BUG=N/A

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4956 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-14 16:25:11 +00:00
sergeyu@chromium.org
7419a72383 Add event handling in SharedXDisplay.
SharedXDisplay has to handle X events because the events may belong to
different clients of that class.

R=wez@chromium.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4953 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-13 00:44:09 +00:00
sergeyu@chromium.org
894e6fe9ea Add DesktopCaptureOptions class.
The new class is used to pass configuration parameters to screen/window
capturers. It also allows to share X Window connection between multiple
objects.

R=wez@chromium.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4952 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-12 22:40:05 +00:00
henrike@webrtc.org
f53622d42e WebRTCDemo: Fixes warning for devices with pre-17 API level. Also fixes broken build build.xml and project.properties.
BUG=2083
R=fischman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4951 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-11 21:28:26 +00:00
andrew@webrtc.org
13b2d46593 clang-format audio_processing/aec/*
TBR=bjornv
TESTED=trybots

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4944 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-08 23:41:42 +00:00
andrew@webrtc.org
ca764ab22d Add a parameter to audioproc for overriding the delay.
Rename the parameter for adding to the input delay to "add_delay".

R=bjornv@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4939 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-07 16:44:32 +00:00
stefan@webrtc.org
f5d7c5891c Revert r4934 "Add a tool for parsing an RTP file and outputting the BWE relevant fields."
Revert r4935 "Fix build error in r4934."

TBR=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4936 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-07 08:42:46 +00:00
stefan@webrtc.org
611e5141cb Fix build error in r4934.
TBR=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4935 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-07 08:35:36 +00:00
stefan@webrtc.org
bc99bcfa6f Add a tool for parsing an RTP file and outputting the BWE relevant fields.
R=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4934 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-07 08:21:24 +00:00
turaj@webrtc.org
6d5d248075 Wrap ACM2 code inside acm2 namespace. This gurantees that one ACM would not use components of others by accident.
BUG=
R=minyue@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4933 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-06 04:47:28 +00:00
turaj@webrtc.org
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
mikhal@webrtc.org
35e4dd3067 VPM: Fixing namespace
R=marpan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4930 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-04 20:21:30 +00:00
fischman@webrtc.org
4598380860 Android: enable camera video stabilization when available.
R=henrike@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4929 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-04 20:14:19 +00:00
kjellander@webrtc.org
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
andrew@webrtc.org
acb00505b6 Only declare kDelayDiffOffset when used.
And remove the redundant Windows block.

R=hans@chromium.org, niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4922 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-04 16:59:17 +00:00
henrike@webrtc.org
ad2eb6f67d Unbreaks Android build after r4915.
TBR=ajm@webrtc.org

BUG=Not filed

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4921 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-04 14:21:23 +00:00
andresp@webrtc.org
be9c560aab Revert r4913 that reverts r4911. Original CL description:
"Adding temporal layer strategy that keeps base layer framerate at an acceptable value."

R=holmer@google.com, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4920 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-04 13:11:31 +00:00
fischman@webrtc.org
6c82e04cee Android standalone: remove some usages of deprecated APIs and prevent further regressions.
Also:
- Fixed WebRTCDemo UI to say "SwitchToBack" at startup since default camera is front
- Rebuild WebRTCDemo APK when resources/layout/strings change

R=henrike@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4916 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-03 18:57:48 +00:00
fischman@webrtc.org
4e65e07e41 VideoCaptureAndroid: rewrote the (standalone) implementation of video capture on Android.
Besides being ~40% the size of the previous implementation, this makes it so
that VideoCaptureAndroid can stop and restart capture, which is necessary to
support onPause/onResume reasonably on Android.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4915 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-03 18:23:13 +00:00
turaj@webrtc.org
44db9d1a57 Revert 4911 "Adding temporal layer strategy that keeps base laye..."
> Adding temporal layer strategy that keeps base layer framerate at an acceptable value.
> 
> R=stefan@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/2272005

TBR=andresp@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4913 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-03 17:42:07 +00:00
mikhal@webrtc.org
b43d8078a1 Reformatting VPM: First step - No functional changes.
R=marpan@google.com, marpan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4912 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-03 16:42:41 +00:00
andresp@webrtc.org
26f78f7ecb Adding temporal layer strategy that keeps base layer framerate at an acceptable value.
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4911 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-03 14:06:14 +00:00
turaj@webrtc.org
7ee3efb0d8 Disable Receiver unittests on Android.
BUG=
TBR=minyue@google.com

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4909 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-03 00:05:15 +00:00
turaj@webrtc.org
6ea3d1cc9e ACM test are modified to run with both ACM1 and ACM2.
Beside the changes in test files. acm2/acm_generic_codec.cc and acm2/audio_coding_module_impl.cc are modified to fix a bug.

Also, nack{.cc, .h, _unittest.cc} are removed form main/sourc as nack files in both ACM1 and ACM2 are essentially identical.

R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4908 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-02 21:44:33 +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
henrike@webrtc.org
f8f78b1316 Android OpenSL: Fixes faulty assertion in jni-code.
BUG=2452
R=fischman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4906 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-02 18:41:06 +00:00
henrik.lundin@webrtc.org
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
henrike@webrtc.org
1fdc51ae2a APK for opensl loopback.
BUG=N/A
R=andrew@webrtc.org, fischman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4901 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-02 14:58:19 +00:00
asapersson@webrtc.org
8469f7b328 Added support for sending and receiving RTCP XR packets:
- Receiver reference time report block
- DLRR report block (RFC3611).

BUG=1613
R=mflodman@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4898 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-02 13:15:34 +00:00
turaj@webrtc.org
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
pbos@webrtc.org
e546f02c84 Remove include_dirs from utility.
BUG=1662
TEST=compile on trybots
R=asapersson@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4890 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-01 09:29:09 +00:00
turaj@webrtc.org
522227012d Reset audio bufer if codec changes, b/10835525.
If there is audio in a codec's audio buffer and sample-rate or number of channels change the audio buffer has to reset. Otherwise, the amount of audio in the buffer is misinterpreted any syncronization between 10ms audio blocks and their associated timestamps is lost.

For instance, assume changing from stereo to mono when there is 10ms stereo in the buffer. The "new" codec will interpret this as 20 ms audio, therefore, 2 blocks of 10 ms, but there is only one timestamp. This will results in  ACMGenericCodec::in_timestamp_ix_write_ updated to a negative number after an encode is performed.

The drawback with this solution is that if packet-size of the codec is changed then audio buffer is reset wich is not necessary. We accept this as it is a rare case in practice that clients of ACM re-register send codecs to change packet-size.

R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4887 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-01 01:17:37 +00:00
andrew@webrtc.org
8e2f9bce71 Ensure adjusted "known delay" doesn't drop below zero.
The untrusted delay mode provides an option to reduce the "known delay"
parameter passed down to the core AEC. This is necessary to handle the
very low latencies observed with the Chromium audio backend on Mac.

Prior to this change, it was possible to pass a negative value. The AEC
produced good output in practice, but it turned out this tripped a
heretofore unnoticed assert in ProcessBlock().

This change avoids the assert, and maintains the good output across a
set of Mac recordings. Bit-exact in some cases, and in the remaining,
quickly converging to identical output.

The assert was hit on the last webrtc roll in Chromium in
content_browsertests on Mac.

Corresponds to:
https://chromereviews.googleplex.com/9960013

TBR=bjornv
TESTED=Verified locally that "content_browsertests
--gtest_filter=WebrtcBrowserTest.*"" passes.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4886 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-01 01:12:25 +00:00
henrik.lundin@webrtc.org
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
turaj@webrtc.org
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