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}
This CL is the first in a series of CLs to refactor
VideoProcessing(Module) to follow Google C++ style guide and make the
code more readable.
This CL removed inheritance from Module, renames variables and makes
VideoProcessingImpl::PreprocessFrame return a frame pointer if there
is a frame to send, nullptr otherwise. The affected CLs also passes git
cl lint.
BUG=webrtc:5259
Review URL: https://codereview.webrtc.org/1482913003
Cr-Commit-Position: refs/heads/master@{#10907}
Specify kf_min_dist to get correct key frame interval in svc mode.
Also set QP-max/min per temporal and spatial layer (was previously only allowed to be set per spatial layer).
BUG=chromium:500602
R=stefan@webrtc.org
Review URL: https://codereview.webrtc.org/1492633005 .
Cr-Commit-Position: refs/heads/master@{#10890}
To try to resolve the problem I replaced the custom synchronization with rtc::Event which made the code cleaner, faster, and less error prone.
However, in the end the source of the test locks was that during TearDown one of the threads was stuck in a waiting loop.
I added a fix for the TearDown issue but still decided to keep the rtc:Event - based code change metioned above as that gave a more clean code.
BUG=
Review URL: https://codereview.webrtc.org/1490113004
Cr-Commit-Position: refs/heads/master@{#10880}
The two added macros simplifies the logging code when a value which is not stored in a variable should be logged.
BUG=
Review URL: https://codereview.webrtc.org/1488613002
Cr-Commit-Position: refs/heads/master@{#10870}
Also doing some simplifications inside video_coding. No CHECKs added,
since they appear to have introduced breakages in downstream tests.
Overall reducing the number of potential ways a decoder could possibly
be set null. Removing deregistration of external decoders should also
give a quicker shutdown time since that may attempt to register
internal decoders.
BUG=chromium:563299
TBR=stefan@webrtc.org
Review URL: https://codereview.webrtc.org/1483423002 .
Cr-Commit-Position: refs/heads/master@{#10858}
Reason for revert:
Speculative revert since a downstream test started failing with this.
Original issue's description:
> Add _decoder CHECK to VCMGenericDecoder constructor.
>
> This should never be using a null decoder, but it looks like it's
> crashing out in the field. Adding a CHECK to see if it catches any
> interesting stack traces.
>
> Also making the _decoder pointer const to show that it should never be
> changing.
>
> BUG=chromium:563299
> R=stefan@webrtc.org
>
> Committed: a443ec1a75TBR=stefan@webrtc.org,pbos@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:563299
Review URL: https://codereview.webrtc.org/1490703002
Cr-Commit-Position: refs/heads/master@{#10851}
The callback keeps a reference to an object until the callback goes out of scope.
Review URL: https://codereview.webrtc.org/1487493002
Cr-Commit-Position: refs/heads/master@{#10847}