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}
rtc::PlatformThreadId is pid_t (32-bit signed int) on Linux and Mac,
but DWORD (32-bit unsigned int) on Windows.
Using the %d printf specifier is therefore not correct on Windows,
and Clang would warn about it:
..\..\third_party\webrtc\base\event_tracer.cc(124,46) : error: format specifies
type 'int' but the argument has type 'rtc::PlatformThreadId' (aka 'unsigned
long') [-Werror,-Wformat]
e.phase, e.timestamp, e.pid, e.tid);
^~~~~
This commit fixes the problem by explicitly casting to int before printing.
BUG=82385
Review URL: https://codereview.webrtc.org/1514253002 .
Cr-Commit-Position: refs/heads/master@{#10982}
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}
Makes use of rtc::Event which is simpler and can be used without
allocating additional objects on the heap.
Does not modify test/channel_transport/.
BUG=
R=mflodman@webrtc.org
Review URL: https://codereview.webrtc.org/1487893004 .
Cr-Commit-Position: refs/heads/master@{#10968}
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}
Still waiting to turn on negotiation (in mediasession.cc)
until we verify it's working as expected.
BUG=webrtc:4868
Review URL: https://codereview.webrtc.org/1418123003
Cr-Commit-Position: refs/heads/master@{#10958}
-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}
Removes the global simulated time that affects (or breaks) following
tests in the same binary and replaces it with SimulatedClock.
BUG=webrtc:5318
R=mflodman@webrtc.org
Review URL: https://codereview.webrtc.org/1512853002 .
Cr-Commit-Position: refs/heads/master@{#10947}
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}
This change adds fuzzer tests for iLBC, iSAC fix and float, and
Opus. The fuzzer function takes a random input vector and splits it
into a number of payloads. The lengths of the payloads is also
determined by the random vector. The payloads are decoded with the
decoders.
BUG=webrtc:5306
R=kjellander@webrtc.org, pbos@webrtc.org
Review URL: https://codereview.webrtc.org/1499093002 .
Cr-Commit-Position: refs/heads/master@{#10932}
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}
Logs tracing events (TRACE_EVENT0 and friends) to storage in a format
compatible with chrome://tracing which can be used for performance
evaluation, finding lock contention and other sweet things). Tracing is
still basic and doesn't contain thread metadata or logging of tracing
arguments.
BUG=webrtc:5158
R=tommi@webrtc.org
Review URL: https://codereview.webrtc.org/1457383002 .
Cr-Commit-Position: refs/heads/master@{#10921}