mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-14 06:10:40 +01:00
Avoids update of WebRTC.Audio.SourceMatchesRecordingSession for Android < N
Before this change we always logged false in WebRTC.Audio.SourceMatchesRecordingSession even when a test had not been executed (happens e.g. for Android < N). This issue is now fixed and we only update WebRTC.Audio.SourceMatchesRecordingSession if a valid test has been performed. No-Try: True TBR: glaznev Bug: webrtc:10971 Change-Id: I907197476f00b812c67bb71e8fdcd6f297cfbdee Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/154563 Commit-Queue: Henrik Andreassson <henrika@webrtc.org> Reviewed-by: Henrik Andreassson <henrika@webrtc.org> Cr-Commit-Position: refs/heads/master@{#29324}
This commit is contained in:
parent
a21d50c1f3
commit
ee8ee2f103
2 changed files with 22 additions and 11 deletions
|
@ -93,7 +93,7 @@ class WebRtcAudioRecord {
|
|||
|
||||
private volatile boolean microphoneMute;
|
||||
private boolean audioSourceMatchesRecordingSession;
|
||||
private boolean audioConfigHasBeenVerified;
|
||||
private boolean isAudioConfigVerified;
|
||||
private byte[] emptyBytes;
|
||||
|
||||
private final @Nullable AudioRecordErrorCallback errorCallback;
|
||||
|
@ -221,13 +221,20 @@ class WebRtcAudioRecord {
|
|||
return isNoiseSuppressorSupported;
|
||||
}
|
||||
|
||||
// Returns true if a valid call to verifyAudioConfig() has been done. Should always be
|
||||
// checked before using the returned value of isAudioSourceMatchingRecordingSession().
|
||||
@CalledByNative
|
||||
boolean isAudioConfigVerified() {
|
||||
return isAudioConfigVerified;
|
||||
}
|
||||
|
||||
// Returns true if verifyAudioConfig() succeeds. This value is set after a specific delay when
|
||||
// startRecording() has been called. Hence, should preferably be called in combination with
|
||||
// stopRecording() to ensure that it has been set properly. |audioConfigHasBeenChecked| is
|
||||
// stopRecording() to ensure that it has been set properly. |isAudioConfigVerified| is
|
||||
// enabled in WebRtcAudioRecord to ensure that the returned value is valid.
|
||||
@CalledByNative
|
||||
boolean isAudioSourceMatchingRecordingSession() {
|
||||
if (!audioConfigHasBeenVerified) {
|
||||
if (!isAudioConfigVerified) {
|
||||
Logging.w(TAG, "Audio configuration has not yet been verified");
|
||||
return false;
|
||||
}
|
||||
|
@ -434,7 +441,7 @@ class WebRtcAudioRecord {
|
|||
audioSourceMatchesRecordingSession =
|
||||
verifyAudioConfig(audioRecord.getAudioSource(), audioRecord.getAudioSessionId(),
|
||||
audioRecord.getFormat(), audioRecord.getRoutedDevice(), configs);
|
||||
audioConfigHasBeenVerified = true;
|
||||
isAudioConfigVerified = true;
|
||||
}
|
||||
}
|
||||
return numActiveRecordingSessions;
|
||||
|
|
|
@ -158,13 +158,17 @@ int32_t AudioRecordJni::StopRecording() {
|
|||
if (!initialized_ || !recording_) {
|
||||
return 0;
|
||||
}
|
||||
const bool session_was_ok =
|
||||
Java_WebRtcAudioRecord_isAudioSourceMatchingRecordingSession(
|
||||
env_, j_audio_record_);
|
||||
RTC_HISTOGRAM_BOOLEAN("WebRTC.Audio.SourceMatchesRecordingSession",
|
||||
session_was_ok);
|
||||
RTC_LOG(INFO) << "HISTOGRAM(WebRTC.Audio.SourceMatchesRecordingSession): "
|
||||
<< session_was_ok;
|
||||
// Check if the audio source matched the activated recording session but only
|
||||
// if a valid results exists to avoid invalid statistics.
|
||||
if (Java_WebRtcAudioRecord_isAudioConfigVerified(env_, j_audio_record_)) {
|
||||
const bool session_was_ok =
|
||||
Java_WebRtcAudioRecord_isAudioSourceMatchingRecordingSession(
|
||||
env_, j_audio_record_);
|
||||
RTC_HISTOGRAM_BOOLEAN("WebRTC.Audio.SourceMatchesRecordingSession",
|
||||
session_was_ok);
|
||||
RTC_LOG(INFO) << "HISTOGRAM(WebRTC.Audio.SourceMatchesRecordingSession): "
|
||||
<< session_was_ok;
|
||||
}
|
||||
if (!Java_WebRtcAudioRecord_stopRecording(env_, j_audio_record_)) {
|
||||
RTC_LOG(LS_ERROR) << "StopRecording failed";
|
||||
return -1;
|
||||
|
|
Loading…
Reference in a new issue