3638 Commits

Author SHA1 Message Date
Stefan Holmer
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
minyue
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
kwiberg
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
peah
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
kwiberg
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
solenberg
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
peah
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
danilchap
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
solenberg
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
solenberg
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
kwiberg
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
kwiberg
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
solenberg
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
danilchap
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
danilchap
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
danilchap
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
terelius
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
danilchap
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
solenberg
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
danilchap
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
danilchap
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
Stefan Holmer
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
kwiberg
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
minyue
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
danilchap
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
thakis
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
danilchap
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
perkj
796cfaf7f7 Add VideoCodec::PreferDecodeLate
The purpose is so that a decoder (Android) that only have a limited number of output buffers can make sure that decoding is done just before the frame is needed.

Removed unused iSupportsRenderTiming and the settings structs since it was not used.
Added VCMReceiver::FrameForDecoding unit test for the case when PreferDecodeLate is set.

Note that this does not change the current behaviour. We actually currently always decode frames late. This cl is to make sure the behaviour is kept for Android, if the default behaviour is changed.

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

Cr-Commit-Position: refs/heads/master@{#10974}
2015-12-10 17:27:45 +00:00
Henrik Lundin
4d68208a20 Reduce the runtime of some ACM tests in modules_tests
By reducing the length of the audio input, the total runtime of
$ out/Debug/modules_tests --gtest_filter=AudioCodingModuleTest.*
is reduced by more than 10x, when run single-threaded.

The PCMFile helper class is extended with a FastForward method (to
skip initial silence in the test files) and a limiter on how much to
read.

BUG=webrtc:2463
R=ivoc@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10973}
2015-12-10 15:24:50 +00:00
danilchap
b8b6fbb7a5 lint build/include errors fixed in rtp_rtcp module
BUG=webrtc:5277
R=mflodman

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

Cr-Commit-Position: refs/heads/master@{#10971}
2015-12-10 13:05:35 +00:00
kwiberg
866df6602c Typo fix: Enable a bunch of tests that were accidentally disabled
They were meant to be run if we have either iSAC float or fix, but the
typo made them run for just float.

BUG=webrtc:4198, webrtc:4199

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

Cr-Commit-Position: refs/heads/master@{#10969}
2015-12-10 12:20:06 +00:00
danilchap
162abd3562 lint whitespace warning removed from most rtp_rtcp/source/ files
rtcp_utility, rtp_utility, tmmbr_help, rtcp_receiver, rtcp_receiver_help are explicetly excluded from the cleanup becaues there are short plans (or cls) to do a deeper cleaning there.

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

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

Cr-Commit-Position: refs/heads/master@{#10966}
2015-12-10 10:39:45 +00:00
terelius
84e78f9102 Rewrote the PRNG using an xorshift* algorithm and moved the files from test/ to base/.
Created a simple unit test for the new random number generator. (It mostly tests
that the generated numbers are consistent with the intended distribution, e.g. uniform.
It is not a comprehensive test of the quality of the random numbers.)

Several assertions in OveruseDetectorTest seem to depend on the exact sequence of random numbers. I updated those numbers to work with the new PRNG.

Compute the standard deviation of the expected result in TestReorderFilter instead of passing an uncertainty parameter.

BUG=webrtc:5177

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

Cr-Commit-Position: refs/heads/master@{#10965}
2015-12-10 09:51:02 +00:00
mflodman
0b3d7eec07 Prevent RTCP SR to be sent with bogus timestamp.
This CL makes sure no RTCP SR is sent before there is a valid timestamp
to set in the SR, based on the first sent media packet.

BUG=webrtc:1600
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10964}
2015-12-10 09:10:54 +00:00
peah
48bf2382d9 Some further minor bitexact APM echo suppressor refactoring
-Moved memsets to where their variables are used.
-Removed redundant.
-Changed a pointer scalar to be accessed in pointer notation rather than
 in array notation.

The change has been tested for bitexactness.

BUG=webrtc:5201

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

Cr-Commit-Position: refs/heads/master@{#10963}
2015-12-10 05:24:56 +00:00
peah
b14f00113e Some minor (bitexact) AEC echo suppressor refactoring
-Moved filter reset from the echo suppression
 into the echo subtraction code where it belongs
 (the echo subtractor should own its filter reset).
-Moved the selection between using the microphone sinal and
 the echo subtractor output down to the lowest level in the
 EchoSuppression function. This makes sense as that selection
 was very hidden in an unrelated sub-sub-function call and
 as the selection is critical for what the AEC outputs.

The changes have been tested for bitexactness.

BUG=webrtc:5201

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

Cr-Commit-Position: refs/heads/master@{#10956}
2015-12-09 19:07:27 +00:00
peah
afeb43897a Moved code into the lowest level of EchoSuppression
to simplify future refactoring and development.

In more detail:
1) Moved the updating of eBuf from the EchoSubtraction method
   to the EchoSuppression method as it is only used in the latter.
2) Moved the computation of efw and dfw from the SubbandCoherence method
   as those are actually the analysis filterbank computation that is not
   directly related to the coherence.
3) As a consequence of 2) 3 functions needed to be replaced by the
   generic function pointer scheme used in WebRTCAec as they have
   optimized versions for SSE2 and NEON (which before were local to each
   of the aec_core*.c files.

Motivation:
Apart from making sense from a logical point of view, the changes will
a) Allow eBuf stored in half the size on the state.
b) Allow simpler switching between using the the microphone signal
   and echo subtractor output in the echo suppressor.
c) Allow further refactoring that move all the changes to eBuf to one method
   (currently those are happening in at least 4 different methods.

Drawbacks:
i) dfw is moved to EchoSuppression which increases the stack usage for that
 method. This will, however, be improved once further refactoring can be done.

The changes have been tested for bitexactness on Linux using a quite extensive dataset.

BUG=webrtc:5201

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

Cr-Commit-Position: refs/heads/master@{#10954}
2015-12-09 16:50:29 +00:00
henrik.lundin
4cf61dd116 NetEq: Add codec name and RTP timestamp rate to DecoderInfo
The new fields are default-populated for built-in decoders, but for
external decoders, the name can now be given when registering the
decoder.

BUG=webrtc:3520

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

Cr-Commit-Position: refs/heads/master@{#10952}
2015-12-09 14:21:02 +00:00
danilchap
5eb4988c0a [rtp_rtcp] Lint build/header_guard errors fixed
BUG=webrtc:5277
R=mflodman

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

Cr-Commit-Position: refs/heads/master@{#10949}
2015-12-09 11:32:45 +00:00
solenberg
5e465c33ca Make NoiseSuppression not a processing component (bit exact).
BUG=webrtc:5298

patch from issue 1490333004 at patchset 1 (http://crrev.com/1490333004#ps1)

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

Cr-Commit-Position: refs/heads/master@{#10944}
2015-12-08 21:22:35 +00:00
solenberg
70f9903e57 Make HighPassFilter not a ProcessingComponent anymore (bit exact).
BUG=webrtc:5298

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

Cr-Commit-Position: refs/heads/master@{#10939}
2015-12-08 19:07:38 +00:00
ivoc
e10c82dc12 Deletes temporary files that are generated in several ACM unittests.
This applies to AcmSwitchingOutputFrequencyOldApi.*,
AcmReceiverBitExactnessOldApi.* and AcmSenderBitExactnessOldApi.*.

BUG=webrtc:4647
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#10936}
2015-12-08 13:03:32 +00:00
Peter Boström
d7b7ae8bda Add encode/decode time tracing to audio_coding.
Also removes virtual from VideoDecoder::Decode and updated mocks and
tests accordingly to use VideoDecoder::DecodeInternal instead.

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

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

Cr-Commit-Position: refs/heads/master@{#10935}
2015-12-08 12:41:44 +00:00
Tina le Grand
325b34542d There was an old scaling for CNG 48 kHz in the code, from the time where Audio Coding Module didn't have full 48 kHz support. This CL removes the scaling.
The bug hasn't caused us any problems, since we don't run CNG together with Opus (our only real 48 kHz codec), but would cause problems if used with PCB16b @ 48 kHz.

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

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

Cr-Commit-Position: refs/heads/master@{#10929}
2015-12-08 09:13:08 +00:00
Stefan Holmer
4654d204e4 Add test which verifies that the RTP header extensions are set correctly for FEC packets.
Also taking the opportunity to do a little bit of clean up.

BUG=webrtc:705
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10927}
2015-12-08 08:10:58 +00:00
mflodman
99ab9447d1 Clang format of video_processing folder.
BUG=webrtc:5259

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

Cr-Commit-Position: refs/heads/master@{#10925}
2015-12-08 06:54:59 +00:00
pbos
46ad5426b0 Revert of "Create rtc::AtomicInt POD struct." (patchset #3 id:40001 of https://codereview.webrtc.org/1498953002/ )
Reason for revert:
Broke downstream compile step, possibly relandable when using a MSVC version that has constexpr, other than that I'm out of ideas.

.../webrtc/base/atomicops.h:71:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const rtc::AtomicInt&'

Original issue's description:
> Reland of "Create rtc::AtomicInt POD struct."
>
> Relands https://codereview.webrtc.org/1420043008/ with brace initializers
> instead of constructors hoping that they won't introduce static
> initializers.
>
> BUG=
> R=tommi@webrtc.org
>
> Committed: https://crrev.com/84f0970d100e67a1dc4fe9a1b16b7d293302044e
> Cr-Commit-Position: refs/heads/master@{#10920}

TBR=tommi@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#10922}
2015-12-07 22:29:21 +00:00
Peter Boström
84f0970d10 Reland of "Create rtc::AtomicInt POD struct."
Relands https://codereview.webrtc.org/1420043008/ with brace initializers
instead of constructors hoping that they won't introduce static
initializers.

BUG=
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10920}
2015-12-07 22:07:11 +00:00
Danil Chapovalov
fc47ed6c05 rtcp::Rrtr block moved into own file and got Parse function
BUG=webrtc:5260
R=asapersson@webrtc.org, åsapersson

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

Cr-Commit-Position: refs/heads/master@{#10912}
2015-12-07 13:46:42 +00:00
Stefan Holmer
b86d4e4a8d Prepare the AudioSendStream to be hooked up to send-side BWE.
This CL contains three changes as a preparation for adding audio send streams
to the send-side BWE:
1. Audio packets are passed through the pacer with high priority. This
is needed to be able to set transport sequence numbers on the packets.
2. A feedback observer is passed to the audio stream's rtcp receiver so
that the BWE can get notified of any BWE feedback being received on the
audio feedback channel.
3. Support for the transport sequence number header extension is added
to audio send streams.

BUG=webrtc:5263,webrtc:5307
R=mflodman@webrtc.org, solenberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10909}
2015-12-07 09:26:32 +00:00