Commit Graph

781 Commits

Author SHA1 Message Date
4cee419e07 Separating voice activity flag from audio level in RtpHeaderExtension.
VAD flag was embedded in RtpHeaderExtension.audioLevel, which is not easy to interpret. This CL tries to separate the flag with the actual audio level.

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

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

Cr-Commit-Position: refs/heads/master@{#9691}
2015-08-10 13:08:46 +00:00
d67a219bec Switch to base/logging.h in neteq_impl.cc
This change includes base/logging.h instead of the old and deprecated
system_wrappers/interface/logging.h. This requires some changes of the
actual logging invocations.

For reference the following regexps where used (in Eclipse) for a few
of the replacements:

find: LOG_FERR1\(\s*([^,]*),\s*([^,]*),\s*(.*)\);
replace: LOG($1) << "$2 " << $3;

find: LOG_FERR2\(\s*([^,]*),\s*([^,]*),\s*([^,]*),\s*(.*)\);
replace: LOG($1) << "$2 " << $3 << " " << $4;

BUG=4735
R=minyue@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9669}
2015-08-03 10:55:11 +00:00
364118518f Includes webrtc/build/protoc.gypi instead of build/protoc.gypi
Re-lands "Renamed the ACMDump to RtcEventLog and moved it to webrtc/video, since it is not specific to the audio coding module."

This reverts commit b933667a7f97697d6390d1eee5f378cedd9ca208.

R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9661}
2015-07-30 10:45:24 +00:00
b933667a7f Revert "Renamed the ACMDump to RtcEventLog and moved it to webrtc/video, since it is not specific to the audio coding module. Updated .gyp and .gn files accordingly."
This reverts commit c159b046d7a0086e45ae0f79c00a462f3fafd207.

BUG=
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9660}
2015-07-30 10:05:18 +00:00
9a6e74179c Move audio_coding_module.gypi from main/acm2 to main/.
Prevents presubmit failures when touching audio_coding_module.gypi due
to source files being included from outside the gypi directory.

BUG=
R=minyue@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9659}
2015-07-30 09:34:12 +00:00
c159b046d7 Renamed the ACMDump to RtcEventLog and moved it to webrtc/video, since it is not specific to the audio coding module. Updated .gyp and .gn files accordingly.
Placed the protobuf structures in the namespace webrtc::rtclog. Removed the message field from the DebugEvent structure, since it was not used.

Added an interface to set config information for VideoReceiveStream and VideoSendStream in the event log.

Added function to log full RTCP packets and changed RTP-logging to only log headers.

Significantly extended the unit tests for RtcEventLog.

R=ivoc@webrtc.org, minyue@webrtc.org, pbos@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9656}
2015-07-30 09:06:09 +00:00
b3cc77f4ba Re-enable WebRtcIsacfix_AllpassFilter2FixDec16Neon
WebRtcIsacfix_AllpassFilter2FixDec16Neon was disabled due to a Clang
bug. The bug is fixed in current Clang version, re-enable it in this patch.

BUG=4567
R=andrew@webrtc.org, kjellander@webrtc.org
TEST=buildbot build

Change-Id: I71e309cec6caf376181cf9c299c9e8967c9a328e

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

Patch from Zhongwei Yao <zhongwei.yao@arm.com>.

Cr-Commit-Position: refs/heads/master@{#9645}
2015-07-28 03:18:19 +00:00
b297c5a01f Miscellaneous changes split from https://codereview.webrtc.org/1230503003 .
These are mostly trivial changes and are separated out just to reduce the
diff on that change to the minimum possible.

Note explanatory comments on patch set 1.

BUG=none
TEST=none

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

Cr-Commit-Position: refs/heads/master@{#9617}
2015-07-22 22:17:26 +00:00
3258db26ed Split iSAC encoder/decoder: Test more cases (and make sure they work)
This patch tests separate iSAC encoder and decoder in more cases (32
kHz in addition to 16 kHz, and 30 ms adaptive and 60 ms nonadaptive).

In order to handle 32 kHz adaptive, the decoder needs to be told of
the encoder's sample rate (16 kHz worked already because that's the
default). And since we can't set the encoder's frame size without also
setting its bit rate, we need a way to set the decoder's bit rate as
well.

It turned out to be way too messy to continue verifying that the
bandwidth estimator does something reasonable in all these cases,
because it seems it doesn't. So the GetSetBandwidthInfo is now just
responsible for ensuring that split encoder/decoder behaves the same
as conjoined encoder/decoder; the job of verifying that the bandwidth
estimator does its job properly falls on some other test (that doesn't
exist yet).

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

Cr-Commit-Position: refs/heads/master@{#9583}
2015-07-15 01:54:43 +00:00
72a8cee425 Targets should not depend on protobuf when enable_protobuf=0.
BUG=webrtc:4741
R=henrik.lundin@webrtc.org, stefan@webrtc.org, ivoc@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9539}
2015-07-03 15:53:22 +00:00
2224294c52 iSAC: Functions for importing and exporting bandwidth est. info
They make it possible to send bandwidth estimation info from decoder
to encoder even if they are separate objects (which we want them to be
because multithreading).

R=henrik.lundin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9535}
2015-07-03 02:04:46 +00:00
f4eca64596 iSAC: Pad with zeros instead of random data, to make testing easier
Using random "garbage" bytes makes testing harder for no good reason.
Any deterministic sequence would do, but we choose all zeros because
it's simple.

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

Cr-Commit-Position: refs/heads/master@{#9532}
2015-07-02 09:10:11 +00:00
6e355af348 Added fields for configuration information to the protobuf format
in the ACMDump. The ACMDump interface itself is not updated, so there
is no way (yet) to actually write the configuration fields.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#9519}
2015-06-30 08:51:19 +00:00
c6891248b5 Simplify OWNERS structure in modules/audio_coding
All ownership is now handled by the top-level OWNERS file in
modules/audio_coding.

NOTRY=True

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

Cr-Commit-Position: refs/heads/master@{#9512}
2015-06-29 11:54:50 +00:00
9b9f338f44 Adding Minyue to audio_coding/OWNERS
Review URL: https://codereview.webrtc.org/1205313002

Cr-Commit-Position: refs/heads/master@{#9511}
2015-06-29 09:29:24 +00:00
241338eeb7 Added support for keeping a buffer of the previous X seconds, to add to an AcmDump.
In addition, timestamps are now absolute instead of relative to LOG_START.

BUG=webrtc:4741
R=henrik.lundin@webrtc.org, kwiberg@webrtc.org, stefan@webrtc.org, terelius@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9509}
2015-06-26 08:19:33 +00:00
93fb53acf5 Adding a new ChangeLogger class to handle UMA logging of bitrates
This change introduces the sub-class ChangeLogger in AudioCodingModuleImpl. The class writes values to the named UMA histogram, but only if the value has changed since the last time (and always for the first call). This is to avoid the problem with audio codecs being registered but never used. Before this change, these codecs' bitrate was also logged, even though they were never used.

BUG=chromium:488124
R=kwiberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9506}
2015-06-25 20:03:12 +00:00
ac4234ccfc Add a [rtc_]build_with_neon variable to unify conditions.
Also consolidate ARM options for gn in an arm_neon_config.

R=jridges@masque.com, kjellander@webrtc.org, zhongwei.yao@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#9501}
2015-06-25 01:25:59 +00:00
747d5f6268 Reland "Added ACM_dump protobuf, class for reading/writing and...", commit e9bdfd859c309991b4ea759587f39eecdbd42bd4.
Changed the BUILD.gn file that was lacking some necessary items which caused Chromium to break.
Original review: https://webrtc-codereview.appspot.com/52059005/

The revert of the original CL was commit 7a75415419cbd52d798f9226010e9190e1cbad53.

BUG=webrtc:4741
R=henrik.lundin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9489}
2015-06-23 08:08:17 +00:00
6b4a564d21 Add UMA logging for target audio bitrate
This CL logs the target audio bitrate to a UMA histogram called
WebRTC.Audio.TargetBitrateInKbps. It logs the rate when a codec is
created, and when the target is explicitly updated. Note that since
each codec implementation is free to change or ignore the target
value, there is no guarantee that the logged value will actually be
used as the target.

BUG=chromium:488124

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

Cr-Commit-Position: refs/heads/master@{#9484}
2015-06-22 13:35:22 +00:00
7a75415419 Revert "Added ACM_dump protobuf, class for reading/writing and unittest."
This reverts commit e9bdfd859c309991b4ea759587f39eecdbd42bd4.

This CL makes the GN chrome bot fail, not really sure why...

FAILED: /mnt/data/b/build/goma/gomacc
../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF
obj/third_party/webrtc/modules/audio_coding/main/acm2/acm_dump.acm_dump.o.d
-DRTC_AUDIOCODING_DEBUG_DUMP -DV8_DEPRECATION_WARNINGS -DCLD_VERSION=2
-DENABLE_MDNS=1 -DENABLE_NOTIFICATIONS -DENABLE_PEPPER_CDMS -DENABLE_PLUGINS=1
-DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 -DENABLE_PRINT_PREVIEW=1
-DENABLE_SPELLCHECK=1 -DDONT_EMBED_BUILD_METADATA -DUSE_UDEV
-DUI_COMPOSITOR_IMAGE_TRANSPORT -DUSE_ASH=1 -DUSE_AURA=1 -DUSE_PANGO=1
-DUSE_CAIRO=1 -DUSE_CLIPBOARD_AURAX11=1 -DUSE_DEFAULT_RENDER_THEME=1
-DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DENABLE_WEBRTC=1
-DENABLE_EXTENSIONS=1 -DENABLE_CONFIGURATION_POLICY -DENABLE_TASK_MANAGER=1
-DENABLE_THEMES=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_SESSION_SERVICE=1
-DENABLE_APP_LIST=1 -DENABLE_SETTINGS_APP=1 -DENABLE_SUPERVISED_USERS=1
-DENABLE_SERVICE_DISCOVERY=1 -DENABLE_AUTOFILL_DIALOG=1 -DENABLE_REMOTING=1
-DENABLE_GOOGLE_NOW=1 -DENABLE_ONE_CLICK_SIGNIN -DENABLE_HIDPI=1
-DV8_USE_EXTERNAL_STARTUP_DATA -DENABLE_BACKGROUND=1 -DENABLE_PRE_SYNC_BACKUP
-DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL
-DSAFE_BROWSING_SERVICE -DCHROMIUM_BUILD -DENABLE_MEDIA_ROUTER=1
-DCR_CLANG_REVISION=239765-1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
-D_LARGEFILE64_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DNDEBUG
-DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGOOGLE_PROTOBUF_NO_RTTI
-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -I../.. -Igen
-I../../third_party/protobuf/src -Igen/protoc_out
-I../../third_party/protobuf/src -I../../third_party/protobuf
-fno-strict-aliasing -fstack-protector --param=ssp-buffer-size=4 -m64
-march=x86-64 -funwind-tables -fPIC -pipe -pthread
-B../../third_party/binutils/Linux_x64/Release/bin -fcolor-diagnostics -Wall
-Wsign-compare -Wendif-labels -Werror -Wno-missing-field-initializers
-Wno-unused-parameter -Wno-c++11-narrowing -Wno-char-subscripts
-Wno-covered-switch-default -Wno-deprecated-register
-Wno-unneeded-internal-declaration -Wno-reserved-user-defined-literal
-Wno-inconsistent-missing-override -fvisibility=hidden -Xclang -load -Xclang
../../third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so -Xclang
-plugin-arg-find-bad-constructs -Xclang check-templates -Xclang -add-plugin
-Xclang find-bad-constructs -Wheader-hygiene -Wstring-conversion -O2 -fno-ident
-fdata-sections -ffunction-sections -g1 -gsplit-dwarf -fno-threadsafe-statics
-fvisibility-inlines-hidden -std=gnu++11 -fno-rtti -fno-exceptions -c
../../third_party/webrtc/modules/audio_coding/main/acm2/acm_dump.cc -o
obj/third_party/webrtc/modules/audio_coding/main/acm2/acm_dump.acm_dump.o
../../third_party/webrtc/modules/audio_coding/main/acm2/acm_dump.cc:11:10: fatal
error: 'webrtc/modules/audio_coding/main/acm2/acm_dump.h' file not found
#include "webrtc/modules/audio_coding/main/acm2/acm_dump.h"
         ^
1 error generated.
ninja: build stopped: subcommand failed.

TBR=ivoc@webrtc.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#9474}
2015-06-19 21:30:27 +00:00
76eea37ed0 Workaround a (Windows) linker bug when doing a PGO build.
It looks like having a function that ends with "FATAL()" but doesn't also have a return value (even if it's useless).

This is causing a hang in link.exe when doing a PGO build (this has been blocking us from doing PGO builds for more than a month now). See https://connect.microsoft.com/VisualStudio/feedback/details/996802/link-exe-hang-during-the-pgo-optimization-step for more details.
BUG=chromium:491914
R=turaj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9469}
2015-06-19 16:11:10 +00:00
3e89dbf458 Add AudioEncoder::GetTargetBitrate
The GetTargetBitrate implementation will return the
target bitrate of the codec. This may differ from the
desired target bitrate, as set by SetTargetBitrate, depending on implementation.

Tests are updated to exercise the new functionality.

R=kwiberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9461}
2015-06-18 12:58:46 +00:00
e9bdfd859c Added ACM_dump protobuf, class for reading/writing and unittest.
This adds a class to read and write ACM_dump protobuf files. In this CL
it is not hooked up to actually store any packets or debug events.
The unittest writes two dummy RTP packets to disk and reads them to see
if they contain the expected data.

BUG=webrtc:4741
R=andrew@webrtc.org, henrik.lundin@webrtc.org, kjellander@webrtc.org, kwiberg@webrtc.org, tina.legrand@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9460}
2015-06-18 11:04:35 +00:00
1d34fe979c Adds support for webrtc::test::ResourcePath on iOS
BUG=webrtc:4752
R=tkchin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9445}
2015-06-16 08:04:24 +00:00
ac81163011 iSAC: Move global trig tables into the codec instance
These tables are constant, so it makes sense for all encoders to share
one copy---but it was initialized in a racy way, and there's no
appealing way to fix that without adding dependencies on locking
functions. So we simply give each codec instance its own copy, which
costs 8 * (240 + 240 + 120 + 120) = 5760 bytes apiece.

As noted in the TODO comment, the size of the tables could be reduced,
and they could be filled in at compile-time, but that would make the
encoder output slightly different, which would mess with our tests.

R=henrik.lundin@webrtc.org, solenberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9442}
2015-06-15 22:02:45 +00:00
d10cd97ad3 Make global constants 'const'
R=henrik.lundin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9438}
2015-06-15 13:07:11 +00:00
a6aa6d96f8 Fix a data race in AudioEncoderMutableImpl and derived classes
Before this change, it could happen that a caller would get a pointer
to the encoder_ but not use it before another thread called the
Reconstruct method, changing the pointer. This of course resulted in
bad access crashes. With this change, each use of the pointer acquired
from the encoder() method is protected by the same lock that is
required to update the pointer. Note that this fix is probably too
aggressive, since it also affects the Opus implementation; the crash
has so far only been seen for iSAC.

Also adding a test to trigger the problem. The test did not trigger
the problem deterministically, but out would typically find it in less
than 1000 runs.

BUG=chromium:499468
R=jmarusic@webrtc.org, kwiberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9436}
2015-06-15 11:46:24 +00:00
01bbe3eb8c Fix AppRTCDemo crash under iOS armv7 devices
Fix AppRTCDemo crash under iOS due to the unaligned access in vld1
instruction in iSACFix codec, which is not allowed in iOS build.

BUG=4717
R=andrew@webrtc.org, jridges@masque.com
TEST=Run the AppRTCDemo

Change-Id: Ie5fbc9b8ae88cd00b243a8e65cab95b00362a9da

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

Cr-Commit-Position: refs/heads/master@{#9432}
2015-06-15 06:57:00 +00:00
36b7cc3264 Reland "Upconvert various types to int.", neteq portion.
This reverts portions of commit cb180976dd0e9672cde4523d87b5f4857478b5e9, which
reverted commit 83ad33a8aed1fb00e422b6abd33c3e8942821c24.  Specifically, the
files in webrtc/modules/audio_coding/neteq/ are relanded.

The original commit message is below:

Upconvert various types to int.

Per comments from HL/kwiberg on https://webrtc-codereview.appspot.com/42569004 , when there is existing usage of mixed types (int16_t, int, etc.), we'd prefer to standardize on larger types like int and phase out use of int16_t.

Specifically, "Using int16 just because we're sure all reasonable values will fit in 16 bits isn't usually meaningful in C."

This converts some existing uses of int16_t (and, in a few cases, other types such as uint16_t) to int (or, in a few places, int32_t).  Other locations will be converted to size_t in a separate change.

BUG=none
TBR=kwiberg

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

Cr-Commit-Position: refs/heads/master@{#9427}
2015-06-12 02:57:28 +00:00
bba7807078 Reland "Upconvert various types to int.", misc. codecs portion.
This reverts portions of commit cb180976dd0e9672cde4523d87b5f4857478b5e9, which
reverted commit 83ad33a8aed1fb00e422b6abd33c3e8942821c24.  Specifically, the
files in webrtc/modules/audio_coding/codecs/ that are not in ilbc/ or isac/, as
well as webrtc/modules/audio_coding/main/test/opus_test.cc, are relanded.

The original commit message is below:

Upconvert various types to int.

Per comments from HL/kwiberg on https://webrtc-codereview.appspot.com/42569004 , when there is existing usage of mixed types (int16_t, int, etc.), we'd prefer to standardize on larger types like int and phase out use of int16_t.

Specifically, "Using int16 just because we're sure all reasonable values will fit in 16 bits isn't usually meaningful in C."

This converts some existing uses of int16_t (and, in a few cases, other types such as uint16_t) to int (or, in a few places, int32_t).  Other locations will be converted to size_t in a separate change.

BUG=none
TBR=kwiberg

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

Cr-Commit-Position: refs/heads/master@{#9424}
2015-06-12 02:02:58 +00:00
a8b335c709 Reland "Upconvert various types to int.", ilbc portion.
This reverts portions of commit cb180976dd0e9672cde4523d87b5f4857478b5e9, which
reverted commit 83ad33a8aed1fb00e422b6abd33c3e8942821c24.  Specifically, the
files in webrtc/modules/audio_coding/codecs/ilbc/ are relanded.

The original commit message is below:

Upconvert various types to int.

Per comments from HL/kwiberg on https://webrtc-codereview.appspot.com/42569004 , when there is existing usage of mixed types (int16_t, int, etc.), we'd prefer to standardize on larger types like int and phase out use of int16_t.

Specifically, "Using int16 just because we're sure all reasonable values will fit in 16 bits isn't usually meaningful in C."

This converts some existing uses of int16_t (and, in a few cases, other types such as uint16_t) to int (or, in a few places, int32_t).  Other locations will be converted to size_t in a separate change.

BUG=none
TBR=kwiberg

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

Cr-Commit-Position: refs/heads/master@{#9423}
2015-06-12 01:51:33 +00:00
aba07ef6d9 Reland "Upconvert various types to int.", isac portion.
This reverts portions of commit cb180976dd0e9672cde4523d87b5f4857478b5e9, which
reverted commit 83ad33a8aed1fb00e422b6abd33c3e8942821c24.  Specifically, the
files in webrtc/modules/audio_coding/codecs/isac/ are relanded.

The original commit message is below:

Upconvert various types to int.

Per comments from HL/kwiberg on https://webrtc-codereview.appspot.com/42569004 , when there is existing usage of mixed types (int16_t, int, etc.), we'd prefer to standardize on larger types like int and phase out use of int16_t.

Specifically, "Using int16 just because we're sure all reasonable values will fit in 16 bits isn't usually meaningful in C."

This converts some existing uses of int16_t (and, in a few cases, other types such as uint16_t) to int (or, in a few places, int32_t).  Other locations will be converted to size_t in a separate change.

BUG=none
TBR=kwiberg

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

Cr-Commit-Position: refs/heads/master@{#9422}
2015-06-12 01:19:37 +00:00
728d9037c0 Reformat existing code. There should be no functional effects.
This includes changes like:
* Attempt to break lines at better positions
* Use "override" in more places, don't use "virtual" with it
* Use {} where the body is more than one line
* Make declaration and definition arg names match
* Eliminate unused code
* EXPECT_EQ(expected, actual) (but use (actual, expected) for e.g. _GT)
* Correct #include order
* Use anonymous namespaces in preference to "static" for file-scoping
* Eliminate unnecessary casts
* Update reference code in comments of ARM assembly sources to match actual current C code
* Fix indenting to be more style-guide compliant
* Use arraysize() in more places
* Use bool instead of int for "boolean" values (0/1)
* Shorten and simplify code
* Spaces around operators
* 80 column limit
* Use const more consistently
* Space goes after '*' in type name, not before
* Remove unnecessary return values
* Use "(var == const)", not "(const == var)"
* Spelling
* Prefer true, typed constants to "enum hack" constants
* Avoid "virtual" on non-overridden functions
* ASSERT(x == y) -> ASSERT_EQ(y, x)

BUG=none
R=andrew@webrtc.org, asapersson@webrtc.org, henrika@webrtc.org, juberti@webrtc.org, kjellander@webrtc.org, kwiberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9420}
2015-06-11 21:31:48 +00:00
b7e5054414 Match existing type usage better.
This makes a variety of small changes to synchronize bits of code using different types, remove useless code or casts, and add explicit casts in some places previously doing implicit ones.  For example:

* Change a few type declarations to better match how the majority of code uses those objects.
* Eliminate "< 0" check for unsigned values.
* Replace "(float)sin(x)", where |x| is also a float, with "sinf(x)", and similar.
* Add casts to uint32_t in many places timestamps were used and the existing code stored signed values into the unsigned objects.
* Remove downcasts when the results would be passed to a larger type, e.g. calling "foo((int16_t)x)" with an int |x| when foo() takes an int instead of an int16_t.
* Similarly, add casts when passing a larger type to a function taking a smaller one.
* Add casts to int16_t when doing something like "int16_t = int16_t + int16_t" as the "+" operation would implicitly upconvert to int, and similar.
* Use "false" instead of "0" for setting a bool.
* Shift a few temp types when doing a multi-stage calculation involving typecasts, so as to put the most logical/semantically correct type possible into the temps.  For example, when doing "int foo = int + int; size_t bar = (size_t)foo + size_t;", we might change |foo| to a size_t and move the cast if it makes more sense for |foo| to be represented as a size_t.

BUG=none
R=andrew@webrtc.org, asapersson@webrtc.org, henrika@webrtc.org, juberti@webrtc.org, kwiberg@webrtc.org
TBR=andrew, asapersson, henrika

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

Cr-Commit-Position: refs/heads/master@{#9419}
2015-06-11 19:56:03 +00:00
cb180976dd Revert "Upconvert various types to int."
This reverts commit 83ad33a8aed1fb00e422b6abd33c3e8942821c24.

BUG=499241
TBR=hlundin

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

Cr-Commit-Position: refs/heads/master@{#9418}
2015-06-11 19:42:42 +00:00
f045e4da43 Prepare to convert various types to size_t.
This makes some behaviorally-invariant changes to make certain code that
currently only works correctly with signed types work safely regardless of the
signedness of the types in question.  This is preparation for a future change
that will convert a variety of types to size_t.

There are also some formatting changes (e.g. converting "enum hack" usage to real consts) to make it simpler to just change "int" to "size_t" in the future to change the types of those constants.

BUG=none
R=andrew@webrtc.org, juberti@webrtc.org, kwiberg@webrtc.org
TBR=ajm

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

Cr-Commit-Position: refs/heads/master@{#9413}
2015-06-11 04:15:51 +00:00
786dbdcc38 Rename targets to use lower case format.
It makes writing a build script for merging libraries
across architectures easier. See talk/build/build_ios_libs.sh.

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

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

Cr-Commit-Position: refs/heads/master@{#9412}
2015-06-10 20:45:12 +00:00
a2c79405b4 Ensures that modules_unittests runs on iOS
BUG=4752
R=tkchin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#9408}
2015-06-10 11:24:58 +00:00
2a10087d5e Manual cleanups following clang-formatting.
This primarily addresses two things:
* Tab characters still present, mostly in comments
* printfs split across multiple lines in a suboptimal way

Along the way this fixes a few spelling errors and other minor changes.

BUG=none
R=kwiberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9406}
2015-06-10 00:26:48 +00:00
83ad33a8ae Upconvert various types to int.
Per comments from HL/kwiberg on https://webrtc-codereview.appspot.com/42569004 , when there is existing usage of mixed types (int16_t, int, etc.), we'd prefer to standardize on larger types like int and phase out use of int16_t.

Specifically, "Using int16 just because we're sure all reasonable values will fit in 16 bits isn't usually meaningful in C."

This converts some existing uses of int16_t (and, in a few cases, other types such as uint16_t) to int (or, in a few places, int32_t).  Other locations will be converted to size_t in a separate change.

BUG=none
R=andrew@webrtc.org, kwiberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9405}
2015-06-10 00:20:09 +00:00
248b0b0790 Run clang-format --style=Chromium on four files I'm otherwise touching.
The existing style in these files is pretty inconsistent and wildly divergent
from most of WebRTC/Chromium; clang-formatting them not only makes them easier
to read, it makes me see fewer presubmit errors when I try to touch the files to
make other changes.

BUG=none
R=kwiberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9364}
2015-06-03 19:32:55 +00:00
5abd3e1f98 Revert r9359 "Implement NetEq's CurrentDelay function"
This reverts commit d8a03facf6986a011c8f889c63d87f9216a1e912, since it
broke the Chrome build. Will have to swap to using base/logging.h in
neteq_impl.cc before re-landing this change.

TBR=kwiberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9360}
2015-06-03 10:58:52 +00:00
d8a03facf6 Implement NetEq's CurrentDelay function
This was not implemented before. It returns the current total delay (packet buffer and sync buffer) of NetEq. This is the same information that was already available in NetEqNetworkStatistics::current_buffer_size_ms, that can be obtained through NetEq::NetworkStatistics(). But, since the current delay is a key metric of NetEq, it is convenient to have it available in a simpler way.

R=kwiberg@webrtc.org, minyue@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9359}
2015-06-03 09:55:53 +00:00
f69f1fbc98 Testing and improving NADA algorithm.
A modified operation mode was added, holding:
--- Stricter conditions for AcceleratedRampUp.
--- Smoother GradualRateUpdate adjustments.
--- New AcceleratedRampDown update mode.
This mode reduces significantly the delay for bitrates around its minimum bound.

Several NADA unittests and a few simulations were added.

Fixed LinkedSet bug.
Fixed IsNewerSequenceNumber/IsNewerTimestamp bug.

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

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

Cr-Commit-Position: refs/heads/master@{#9340}
2015-05-30 15:49:32 +00:00
8bb6ea3da9 Reset speech encoder before hooking it up to RED or CNG
Commit 7e0c7d49 ("Add support for external encoders in ACM") changed
things around so that we no longer recreate the speech encoder when
adding CNG or RED to an existing encoder. This isn't correct, since
those two expect to be in sync with the speech encoder they work with.
Solve the problem by resetting the speech encoder before hooking in
RED or CNG.

BUG=crbug/490368
R=jmarusic@webrtc.org
TBR=henrik.lundin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9307}
2015-05-28 11:37:27 +00:00
92fbbb21f8 Switch acm_receiver over to using base/logging.h
BUG=
R=henrik.lundin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9298}
2015-05-27 20:07:46 +00:00
cf808d2366 Add new fast mode for NetEq's Accelerate operation
This change instroduces a mode where the Accelerate operation will be
more aggressive. When enabled, it will allow acceleration at lower
correlation levels, and possibly remove multiple pitch periods at
once.

The feature is enabled through NetEq::Config, and is off by
default. This means that bit-exactness tests are currently not
affected.

A unit test was added for the Accelerate class, with and without fast
mode enabled.

BUG=4691
R=minyue@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9295}
2015-05-27 12:33:39 +00:00
c065cc797d Clarify boolean flags in neteq_opus_quality_test.
Note that the use of boolean flags in gflags is a bit unnatural. For setting a boolean flag to false: putting "no" in front of its name (see http://gflags.github.io/gflags/)

We make this clearer by defaulting boolean flags to false, and clarifying it in the description.

BUG=
R=tina.legrand@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9293}
2015-05-27 08:01:18 +00:00
c13cacbb39 Remove an unused method in NetEq::Expand
TBR=ivoc@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9292}
2015-05-27 07:23:53 +00:00