The class doesn't do anything in almost all cases except for grabbing and releasing locks + allocate memory. There are a couple of methods there such as WaitForKey and GetTimeInMs that are used, but those methods aren't specific to audio and we have implementations of these elsewhere. The third method, StringCompare isn't used anywhere (and also isn't specific to audio).
BUG=
R=henrika@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/50009004
Cr-Commit-Position: refs/heads/master@{#9220}
1. when an IP is reported by DNS but it doesn't serve any traffic, we shouldn't count failure from that.
2. shared socket mode should should only be true for the case where multiple IPs are resolved and successfully pinged.
3. allow multiple STUN servers now.
Fix a bug in symnat detection. SymNAT will provide the same IP but different port.
If we have more than 1 srflx IP, we'll fail the experiment.
BUG=4576
R=pthatcher@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/51849004
Cr-Commit-Position: refs/heads/master@{#9215}
From 6kHz-6.5kHz to 3kHz-5kHz. Previous range had unreliable mask values, letting high frequencies from all directions through. The new range is wider and lower, which results in better estimates.
R=andrew@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/47089004
Cr-Commit-Position: refs/heads/master@{#9213}
It was too spammy in the log because we have many code paths that check for responses when it's not a problem that it's not an expected response.
R=glaznev@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/47199004
Cr-Commit-Position: refs/heads/master@{#9212}
BUG=4573,2982,2175,3590
TEST=modules_unittests --gtest_filter=AudioDevice*, AppRTCDemo and WebRTCDemo
Summary:
- Removes dependency of the 'enable_android_opensl' compiler flag.
Instead, OpenSL ES is always supported, and will enabled for devices that
supports low-latency output.
- WebRTC no longer supports OpenSL ES for the input/recording side.
- Removes old code and demos using OpenSL ES for audio input.
- Improves accuracy of total delay estimates (better AEC performance).
- Reduces roundtrip audio latency; especially when OpenSL can be used.
Performance verified on: Nexus 5, 6, 7 and 9. Samsung Galaxy S4 and S6.
Android One device.
R=magjed@webrtc.org, phoglund@webrtc.org, tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/51759004
Cr-Commit-Position: refs/heads/master@{#9208}
Before this change, a decoder was registered into ACMReceiver through
the CodecOwner; the CodecOwner had to have a pointer back to the
AudioCodingModuleImpl object to make this call. With this change, the
AudioCodingModuleImpl object asks the CodecOwner for a decoder pointer
instead, making the chain of calls more straightforward.
COAUTHOR=henrik.lundin@webrtc.org
BUG=4474
R=jmarusic@webrtc.org, minyue@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/52439004
Cr-Commit-Position: refs/heads/master@{#9204}
Chrome will only see stunprober.h and stunprobercontext.h and link with libstunprober.a.
It has support for shared and non-shared mode. In shared mode, a socket will be used to ping all resolved IPs once. In non-shared mode, each ping will get a new socket.
The thread scheduling will try to run MaybeScheduleStunRequest every 1 ms. When the time is up for next ping, it'll send it out.
BUG=4576
R=pthatcher@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/51729004
Cr-Commit-Position: refs/heads/master@{#9194}
Prevents bug where transmitted bitrate was reported as higher than what
was actually sent, since unused RTP modules weren't updated to say that
they sent zero.
BUG=
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/49979004
Cr-Commit-Position: refs/heads/master@{#9192}
Enable the -Wformat-security and -Wformat warnings for talk/.
Remove *.def and *.h.pump files from webrtc/base/base.gyp since they're not supported by some tools.
BUG=4242
R=henrika@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/49969004
Cr-Commit-Position: refs/heads/master@{#9191}
Since libjingle log constant values decrease as severety goes up while Chrome's increase, I decided to handle the verbosity level check explicitly and convert libjingle severity over to chrome constants only when we log.
This also requires updating the unittests on the Chrome side.
BUG=chromium:401963
TBR=magjed@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/51839004
Cr-Commit-Position: refs/heads/master@{#9189}
The constants we were using for severities don't match Chrome's, so I added a little translation function.
A longer term fix could be to simply use the same values as in Chrome to not need the translation.
That will however be a bigger change.
BUG=chromium:401963
TBR=magjed@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/50949004
Cr-Commit-Position: refs/heads/master@{#9188}
This will make us detect when sources are listed in GYP files that
are no longer present on disk. This check only exists for Windows
but should be enough to keep our GYP files up to date with the file
system.
R=pbos@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/54409004
Cr-Commit-Position: refs/heads/master@{#9187}
This reduces the types exported in webrtc proper, which can cause other
issues (since it doesn't generally use webrtc/base/basictypes.h).
basictypes.h integral types (e.g. uint8) have been replaced by the
stdint counterparts (e.g. uint8_t), which matches general webrtc style.
The include for common.h has been replaced by constructormagic.h, which
was the only part used.
BUG=
R=pthatcher@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/50859004
Cr-Commit-Position: refs/heads/master@{#9181}
AudioCodingModuleImpl::Add10MsData() calls two private methods that
together do all the work: Add10MsDataInternal() and Encode(). They
each took locks internally in order to protect access to, among other
things, codec_manager_.
This turned out to be inadequate. Add10MsDataInternal() calls
codec_manager_.CurrentEncoder()->SampleRateHz() in order to be able to
resample the audio data to what the current encoder wants. When the
resampled data is fed to the encoder deep inside the Encode() call,
that sample rate must still be correct, but occasionally it wasn't,
which triggered a CHECK. (The specific test that failed was the
voe_auto_test subtest
CodecTest.OpusMaxPlaybackRateCannotBeSetForNonOpus, which changes the
current encoder while encoding is in progress.)
This CL solves the problem by covering all of
AudioCodingModuleImpl::Add10MsData() in a single critical section, so
that the sample rate obtained in Add10MsDataInternal() is guaranteed
to still be valid during the Encode() call.
BUG=4644
R=henrik.lundin@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/52459004
Cr-Commit-Position: refs/heads/master@{#9174}
Addressing discrepancy where NACK used to be set from send codecs in
WebRtcVideoEngine(1), and before this change, from recv codecs in
WebRtcVideoEngine2. This should address that NACK might be sent even if
the remote side does not support it.
BUG=4626
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/53409004
Cr-Commit-Position: refs/heads/master@{#9171}