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}
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}
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}
-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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
-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}
-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}
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}
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}
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}
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}
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}
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}
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}