Commit Graph

3111 Commits

Author SHA1 Message Date
1227e8b345 [rtp_rtcp] time helper functions
RTP timestams helper functions moved from rtp_utility
  added functions to deal with CompactNtp timestamps

R=åsapersson
BUG=webrtc:5260

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

Cr-Commit-Position: refs/heads/master@{#11106}
2015-12-21 19:06:56 +00:00
5908c71128 Lint fix for webrtc/modules/video_coding PART 3!
Trying to submit all changes at once proved impossible since there were
too many changes in too many files. The changes to PRESUBMIT.py
will be uploaded in the last CL.
(original CL: https://codereview.webrtc.org/1528503003/)

BUG=webrtc:5309
TBR=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11105}
2015-12-21 16:23:29 +00:00
9d3ab61325 Lint fix for webrtc/modules/video_coding PART 2!
Trying to submit all changes at once proved impossible since there were
too many changes in too many files. The changes to PRESUBMIT.py
will be uploaded in the last CL.
(original CL: https://codereview.webrtc.org/1528503003/)

BUG=webrtc:5309
TBR=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11102}
2015-12-21 12:12:45 +00:00
cce46fc108 Lint fix for webrtc/modules/video_coding PART 1!
Trying to submit all changes at once proved impossible since there were
too many changes in too many files. The changes to PRESUBMIT.py
will be uploaded in the last CL.
(original CL: https://codereview.webrtc.org/1528503003/)

BUG=webrtc:5309
TBR=mflodman@webrtc.org

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

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

BUG=webrtc:5283

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

Cr-Commit-Position: refs/heads/master@{#11099}
2015-12-21 09:46:25 +00:00
9fca7e18c3 A unittest that reports the statistics for the duration of an APM stream processing API call.
BUG=webrtc:5099

Committed: https://crrev.com/880896ab0976bbf86a6753d0c900c70e51f421cb
Cr-Commit-Position: refs/heads/master@{#10786}

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

Cr-Commit-Position: refs/heads/master@{#11098}
2015-12-21 07:13:46 +00:00
a4df27b671 Revert of Reland "Added option to specify a maximum file size when recording an AEC dump." (patchset #2 id:20001 of https://codereview.webrtc.org/1541633002/ )
Reason for revert:
Compile error on Android needs to be fixed before relanding.

Original issue's description:
> Reland "Added option to specify a maximum file size when recording an AEC dump.", commit ae2c5ad12afc8cc29fe9c59dea432b697b871a87.
>
> The revert of the original CL was commit 36d4c545007129446e551c45c17b25377dce89a4.
> Original review: https://codereview.webrtc.org/1413483003/
>
> The original CL changes a function on audio_processing.h that is used by Chrome, this CL adds back the old function.
>
> NOTRY=true
> TBR=glaznev@webrtc.org, henrik.lundin@webrtc.org, solenberg@google.com, henrikg@webrtc.org, perkj@webrtc.org
> BUG=webrtc:4741
>
> Committed: https://crrev.com/f4f5cb09277d5ef6aeac8341e5f54a055867803a
> Cr-Commit-Position: refs/heads/master@{#11093}

TBR=glaznev@webrtc.org,henrik.lundin@webrtc.org,solenberg@google.com,henrikg@webrtc.org,perkj@webrtc.org,kwiberg@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:4741

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

Cr-Commit-Position: refs/heads/master@{#11094}
2015-12-19 18:14:18 +00:00
f4f5cb0927 Reland "Added option to specify a maximum file size when recording an AEC dump.", commit ae2c5ad12afc8cc29fe9c59dea432b697b871a87.
The revert of the original CL was commit 36d4c545007129446e551c45c17b25377dce89a4.
Original review: https://codereview.webrtc.org/1413483003/

The original CL changes a function on audio_processing.h that is used by Chrome, this CL adds back the old function.

NOTRY=true
TBR=glaznev@webrtc.org, henrik.lundin@webrtc.org, solenberg@google.com, henrikg@webrtc.org, perkj@webrtc.org
BUG=webrtc:4741

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

Cr-Commit-Position: refs/heads/master@{#11093}
2015-12-19 18:02:39 +00:00
92594a30ce Moving FFT on farend signal to where it is used in AEC (bit exact).
Currently, FFT is performance when AEC buffers farend signal. This has some drawbacks
1. memory inefficiency: two ring buffers are needed;
2. computation inefficiency: if ringbuffer gets wrapped around, some FFT computation will be wasted;
3. accessibility: the main AEC function looses accessibility to the time-domain signal.

Therefore, this CL tries to buffer time domain data, which is buffered any way if a debugging macro is defined, and calculate the FFTs where they are actually used.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#11091}
2015-12-18 23:31:19 +00:00
740c367af3 iSAC: Remove unnecessary WEBRTC_LINUX define.
I can only find one use in iSAC codebase:
https://code.google.com/p/chromium/codesearch#chromium/src/third_party/webrtc/modules/audio_coding/test/iSACTest.cc&l=19

It's the prime suspect for causing a compilation error for iOS failing to
include linux/net.h which is being included in
webrtc/voice_engine/voice_engine_defines.h

NOTRY=True

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

Cr-Commit-Position: refs/heads/master@{#11089}
2015-12-18 20:28:28 +00:00
36d4c54500 Revert of Added option to specify a maximum file size when recording an AEC dump. (patchset #5 id:120001 of https://codereview.webrtc.org/1413483003/ )
Reason for revert:
Breaks Chrome-FYI bots because of a change in the StartDebugRecording function in audio_processing.h, that is called from Chrome.

Original issue's description:
> Added option to specify a maximum file size when recording an AEC dump.
>
> For applications with a strict filesize limit for debug files,
> I added an option to specify a maximum filesize for AEC dumps. An
> existing unit test is extended to check that the feature works as
> advertised.
>
> BUG=webrtc:4741
> TBR=glaznev@webrtc.org
>
> Committed: https://crrev.com/ae2c5ad12afc8cc29fe9c59dea432b697b871a87
> Cr-Commit-Position: refs/heads/master@{#11081}

TBR=pthatcher@webrtc.org,henrik.lundin@webrtc.org,henrikg@webrtc.org,solenberg@webrtc.org,andrew@webrtc.org,kwiberg@webrtc.org,perkj@webrtc.org,glaznev@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:4741

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

Cr-Commit-Position: refs/heads/master@{#11087}
2015-12-18 16:05:21 +00:00
b7d9a97ce4 Expose codec implementation names in stats.
Used to distinguish between software/hardware encoders/decoders and
other implementation differences. Useful for tracking quality
regressions related to specific implementations.

BUG=webrtc:4897
R=hta@webrtc.org, mflodman@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11084}
2015-12-18 15:01:23 +00:00
6c6510afad audio_device: Move sources into platform-conditions.
This should solve a problem discovered when converting from GYP to
other project formats, where the source files weren't included correctly
for each platform.

Two other targets in WebRTC have similar source files, which are correctly
generated for each platform:
* video_render_module_internal_impl
* video_capture_module_internal_impl
They both list the sources as it's changed to in this CL.

NOTRY=True

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

Cr-Commit-Position: refs/heads/master@{#11083}
2015-12-18 12:33:34 +00:00
9b7fc7f25d Defines for ARM and MIPS CPU types.
This removes a dependency on Chromium's build/build_config.h
(which is not allowed).
The added defines are identical to the ones in build/build_config.h.

NOTRY=True

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

Cr-Commit-Position: refs/heads/master@{#11082}
2015-12-18 12:28:49 +00:00
ae2c5ad12a Added option to specify a maximum file size when recording an AEC dump.
For applications with a strict filesize limit for debug files,
I added an option to specify a maximum filesize for AEC dumps. An
existing unit test is extended to check that the feature works as
advertised.

BUG=webrtc:4741
TBR=glaznev@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11081}
2015-12-18 11:53:42 +00:00
002f0d09c9 VP9: Set speed setting to 8 for ARM.
At speed 8, vp9 on ARM is currently ~2x times slower than vp8 on ARM (speed -12).

Update some parameters in videoprocessor_integrationtest.cc
to make tests pass on android (which uses the new speed setting).

TBR=stefan@webrtc.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#11072}
2015-12-17 17:49:39 +00:00
369f828bfe Adding trace events for the APM render and capture stream processing functions.
BUG=webrtc:5099

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

Cr-Commit-Position: refs/heads/master@{#11069}
2015-12-17 14:42:42 +00:00
a689b44c17 Add tracing to NetEqImpl::InsertPacket
BUG=webrtc:5167
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11065}
2015-12-17 11:50:11 +00:00
0eb15ed7b8 Don't call the Pass methods of rtc::Buffer, rtc::scoped_ptr, and rtc::ScopedVector
We can now use std::move instead!

This CL leaves the Pass methods in place; a follow-up CL will add deprecation annotations to them.

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

Cr-Commit-Position: refs/heads/master@{#11064}
2015-12-17 11:04:24 +00:00
a08925791c Cleanup use of "do { ... } while (0)".
BUG=

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

Cr-Commit-Position: refs/heads/master@{#11061}
2015-12-17 02:38:34 +00:00
7cae30cbe1 Disable warnings failing when using Clang on Windows.
This makes it possible to build WebRTC using Clang on Windows.
Depends on https://codereview.webrtc.org/1524703006/

BUG=webrtc:5360, webrtc:5366
NOTRY=True

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

Cr-Commit-Position: refs/heads/master@{#11058}
2015-12-16 22:05:36 +00:00
361888c324 OWNERS: Add * to .gyp{i,} everywhere.
Also convert DOS->Unix line endings in two of the OWNERS files.

NOTRY=True
NOPRESUBMIT=True
R=niklas.enbom@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11056}
2015-12-16 19:44:39 +00:00
0bc176b99b Further refactored the echo suppressor code:
-Extended the InverseFft function to be more generally
 applicable.
-Included the previous external extra scaling into the
 preexisting InverseFft call.
-Moved the updating of aec->delayEstCtr to where it is
 actually used.
-Refactored the output production and comfort noise
 addition using the InverseFft function.
-Removed the if-statements checking the value of the
 constant flagHbandCn as any value different from 1 would
 crash the program. Also removed the constant

The changes have been tested for bitexactness.

BUG=webrtc:5201

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

Cr-Commit-Position: refs/heads/master@{#11054}
2015-12-16 16:11:24 +00:00
c482eb3c84 Don't account for audio in the pacer budget.
We should only account for audio packets in the pacer budget if we also
are allocating bandwidth for the audio streams.

BUG=chromium:567659,webrtc:5263
R=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11053}
2015-12-16 15:55:09 +00:00
5f026d03af Update NetEq network statistics in neteq_unittest.
NetEqNetworkStatistics has been updated some time ago. A bit exactness test in neteq unittests is still using the old NetEqNetworkStatistics.

New neteq4_network_stats.dat generated by running TestBitExactness with flag "genref"

BUG=

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

Cr-Commit-Position: refs/heads/master@{#11052}
2015-12-16 15:36:10 +00:00
44307630d3 AudioCodingModuleImpl: Stop failing artificially for non-Opus encoders
All encoders already handle the "Opus-specific" requests sanely (by
failing nicely), so we don't need extra checks to protect them.

BUG=webrtc:5028

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

Cr-Commit-Position: refs/heads/master@{#11051}
2015-12-16 14:24:09 +00:00
99b1a32146 Retyped the frequency estimate of the comfort noise for the higher band to harmonize the AEC code.
-Changed the type for the frequency estimate of the comfort noise for the
 higher band to be a two dimensional float array instead of a complex_t array.
 This makes sense since all the other frequency estimate (apart from the
 coherence) use this format and doing this change allows bundling the
 IFFT operations into using the InverseFFT method.
-Moved the memset of the frequency estimate of the comfort noise to where it is used and made it conditional so that it is only performed when used.
-Harmonized the if-statements for when the frequency estimate of the comfort noise is computed in the different optimized ComfortNoise computation methods.

The changes have been tested for bitexactness.

BUG=webrtc:5201

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

Cr-Commit-Position: refs/heads/master@{#11050}
2015-12-16 14:07:33 +00:00
a6db4958c9 Move Rent-A-Codec out of CodecManager
So that the two of them sit next to each other at the top level of
AudioCodingModuleImpl. CodecManager now manages the specifications for
Rent-A-Codec, rather than managing encoders directly.

BUG=webrtc:5028

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

Cr-Commit-Position: refs/heads/master@{#11048}
2015-12-16 12:19:14 +00:00
a29386c26d Make VoiceDetection not a ProcessingComponent (bit exact).
BUG=webrtc:5354

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

Cr-Commit-Position: refs/heads/master@{#11047}
2015-12-16 11:31:16 +00:00
66085beef8 Bugfix that fixes the error where the audio processing module is called
using the wrong sample rate for the render signal.

The CL is basically a partial revert of the related changes done on
output_mixer.cc in the CL https://codereview.webrtc.org/1234463003.

The CL also reverts the removal of the input_sample_rate_hz() method
that was removed as part of the CL
https://codereview.webrtc.org/1379123002 (as it was at that point
no longer used).

It should be noted that this CL turns off the effect of the
IntelligibilityEnhancer when the AudioFrame AudioProcessing APIs are
used. While it may be possible to solve that by adding upsampling after
the API call, that  approach was discarded due to that:
-That would add extra processing in the echo path, leading to possible
AEC performance reduction.
-That would add extra complexity for the mobile case.
-That would only patch the intelligibility enhancer operation as the
proper way to do such an operation is within APM.
-The intelligibility enhancer is not active by default anywhere.

BUG=webrtc:5237

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

Cr-Commit-Position: refs/heads/master@{#11045}
2015-12-16 10:02:26 +00:00
54999d411b rtcp::Dlrr block moved into own file and got Parse function
BUG=webrtc:5260

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

Cr-Commit-Position: refs/heads/master@{#11044}
2015-12-16 09:56:22 +00:00
29e2f9385b Fix NoiseSuppression initialization behavior. This was changed when removing the ProcessingComponent inheritance in https://codereview.webrtc.org/1507683006/.
BUG=webrtc:5298

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

Cr-Commit-Position: refs/heads/master@{#11043}
2015-12-16 09:18:23 +00:00
c1316a1e51 Fix HPF initialization behavior. This was changed when removing the ProcessingComponent inheritance in https://codereview.webrtc.org/1490333004/.
BUG=webrtc:5298

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

Cr-Commit-Position: refs/heads/master@{#11038}
2015-12-16 00:07:32 +00:00
95d9851a6c Add speech encoder to the encoder stack specification struct
BUG=webrtc:5028

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

Cr-Commit-Position: refs/heads/master@{#11037}
2015-12-15 22:21:40 +00:00
7eb914debb Fix incorrect comment
Review URL: https://codereview.webrtc.org/1524663004

Cr-Commit-Position: refs/heads/master@{#11036}
2015-12-15 22:20:29 +00:00
949028fbf1 Make LevelEstimation not a ProcessingComponent.
BUG=webrtc:5355

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

Cr-Commit-Position: refs/heads/master@{#11033}
2015-12-15 19:39:49 +00:00
91941ae493 rtcp::VoipMetric block moved into own file and got Parse function
Review URL: https://codereview.webrtc.org/1452733002

Cr-Commit-Position: refs/heads/master@{#11030}
2015-12-15 15:06:44 +00:00
6db6cdc604 [rtp_rtcp] fixed lint errors in rtp_rtcp module that are not fixed in other CLs
BUG=webrtc:5277
R=mflodman

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

Cr-Commit-Position: refs/heads/master@{#11025}
2015-12-15 10:54:50 +00:00
e005cf2c93 [rtp_rtcp] SSRCDatabase class cleaned (including all lint errors)
BUG=webrtc:5277
R=mflodman

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

Cr-Commit-Position: refs/heads/master@{#11023}
2015-12-15 09:59:50 +00:00
8f09f170e6 Simple CL to fix lint errors in webrtc/modules/remote_bitrate_estimator. Added the lint check for the folder to the presubmit script.
BUG=webrtc:5310

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

Cr-Commit-Position: refs/heads/master@{#11021}
2015-12-15 08:52:03 +00:00
47a740bc5e [rtp_rtcp] lint errors about rand() usage fixed.
rand() usage replaced with new Random class, which also makes it clearer what interval random number is in.

BUG=webrtc:5277
R=mflodman

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

Cr-Commit-Position: refs/heads/master@{#11019}
2015-12-15 08:30:12 +00:00
82ccfcf5ca Remove unused and rarely used LOG_ macros.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#11014}
2015-12-14 16:22:21 +00:00
40f349fdda [rtp_rtcp] Lint errors cleared from rtp_rtcp/test
except rand() function that is subject of CL#1519503002
 and namespace that is fixed in CL#1506823002

BUG=webrtc:5277
R=mflodman

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

Cr-Commit-Position: refs/heads/master@{#11012}
2015-12-14 14:39:41 +00:00
b2f80e3a28 rtp_rtcp/test/BWEStandAlone deleted as obsolete
BUG=webrtc:5277
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11008}
2015-12-14 11:21:51 +00:00
4c1093b86f Add FEC producer fuzzing and a unittest for one of the issues found.
BUG=webrtc:4800
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10990}
2015-12-11 17:25:56 +00:00
5b659c0d10 Special-case android-arm64 in codec bitexactness tests
We already had a special case for android, but it only worked for arm32.

BUG=webrtc:4198, webrtc:4199

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

Cr-Commit-Position: refs/heads/master@{#10989}
2015-12-11 15:34:05 +00:00
cb23c0d984 Adding Opus to RTPencode.
As a step toward fixing webrtc:3987, here we update the RTPencode to allow Opus RTP payloads.

BUG=webrtc:3987, webrtc:2692

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

Cr-Commit-Position: refs/heads/master@{#10987}
2015-12-11 09:58:31 +00:00
6a6f0893dd in rtp_rtcp module:
fixed build/namespaces lint errors
  fixed readability/namespace lint errors

BUG=webrtc:5277
R=mflodman,stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10978}
2015-12-10 20:39:16 +00:00
61a90f94b6 clang/win: Fix -Wextra warnings in webrtc.
Fixes one sign mismatch warning, and one "const has no effect and is
ignored" warning.

BUG=chromium:567877

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

Cr-Commit-Position: refs/heads/master@{#10976}
2015-12-10 18:50:36 +00:00
5c1def8892 modules/rtp_rtcp/include folder cleared of lint warnings
Functions that do not follow lint are marked deprecated, including function in the interface.

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

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

Cr-Commit-Position: refs/heads/master@{#10975}
2015-12-10 17:52:01 +00:00