Loading media/libaaudio/src/core/AAudioAudio.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -432,7 +432,7 @@ AAUDIO_API int32_t AAudioStream_getSamplesPerFrame(AAudioStream* stream) AAUDIO_API aaudio_stream_state_t AAudioStream_getState(AAudioStream* stream) { AudioStream *audioStream = convertAAudioStreamToAudioStream(stream); return audioStream->getState(); return audioStream->getStateExternal(); } AAUDIO_API aaudio_format_t AAudioStream_getFormat(AAudioStream* stream) Loading media/libaaudio/src/core/AudioStream.cpp +11 −2 Original line number Diff line number Diff line Loading @@ -411,6 +411,8 @@ void AudioStream::setDisconnected() { return; // no change, the stream is already disconnected } mDisconnected.store(true); // Wake up a wakeForStateChange thread if it exists. syscall(SYS_futex, &mState, FUTEX_WAKE_PRIVATE, INT_MAX, NULL, NULL, 0); // Track transition to DISCONNECTED state. android::mediametrics::LogItem(mMetricsId) .set(AMEDIAMETRICS_PROP_EVENT, AMEDIAMETRICS_PROP_EVENT_VALUE_DISCONNECT) Loading @@ -428,7 +430,7 @@ aaudio_result_t AudioStream::waitForStateChange(aaudio_stream_state_t currentSta } int64_t durationNanos = 20 * AAUDIO_NANOS_PER_MILLISECOND; // arbitrary aaudio_stream_state_t state = getState(); aaudio_stream_state_t state = getStateExternal(); while (state == currentState && timeoutNanoseconds > 0) { if (durationNanos > timeoutNanoseconds) { durationNanos = timeoutNanoseconds; Loading @@ -447,7 +449,7 @@ aaudio_result_t AudioStream::waitForStateChange(aaudio_stream_state_t currentSta return result; } state = getState(); state = getStateExternal(); } if (nextState != nullptr) { *nextState = state; Loading Loading @@ -638,6 +640,13 @@ void AudioStream::setDuckAndMuteVolume(float duckAndMuteVolume) { doSetVolume(); // apply this change } aaudio_stream_state_t AudioStream::getStateExternal() const { if (isDisconnected()) { return AAUDIO_STREAM_STATE_DISCONNECTED; } return getState(); } void AudioStream::MyPlayerBase::registerWithAudioManager(const android::sp<AudioStream>& parent) { std::lock_guard<std::mutex> lock(mParentLock); mParent = parent; Loading media/libaaudio/src/core/AudioStream.h +2 −0 Original line number Diff line number Diff line Loading @@ -194,6 +194,8 @@ public: return mState.load(); } aaudio_stream_state_t getStateExternal() const; virtual int32_t getBufferSize() const { return AAUDIO_ERROR_UNIMPLEMENTED; } Loading Loading
media/libaaudio/src/core/AAudioAudio.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -432,7 +432,7 @@ AAUDIO_API int32_t AAudioStream_getSamplesPerFrame(AAudioStream* stream) AAUDIO_API aaudio_stream_state_t AAudioStream_getState(AAudioStream* stream) { AudioStream *audioStream = convertAAudioStreamToAudioStream(stream); return audioStream->getState(); return audioStream->getStateExternal(); } AAUDIO_API aaudio_format_t AAudioStream_getFormat(AAudioStream* stream) Loading
media/libaaudio/src/core/AudioStream.cpp +11 −2 Original line number Diff line number Diff line Loading @@ -411,6 +411,8 @@ void AudioStream::setDisconnected() { return; // no change, the stream is already disconnected } mDisconnected.store(true); // Wake up a wakeForStateChange thread if it exists. syscall(SYS_futex, &mState, FUTEX_WAKE_PRIVATE, INT_MAX, NULL, NULL, 0); // Track transition to DISCONNECTED state. android::mediametrics::LogItem(mMetricsId) .set(AMEDIAMETRICS_PROP_EVENT, AMEDIAMETRICS_PROP_EVENT_VALUE_DISCONNECT) Loading @@ -428,7 +430,7 @@ aaudio_result_t AudioStream::waitForStateChange(aaudio_stream_state_t currentSta } int64_t durationNanos = 20 * AAUDIO_NANOS_PER_MILLISECOND; // arbitrary aaudio_stream_state_t state = getState(); aaudio_stream_state_t state = getStateExternal(); while (state == currentState && timeoutNanoseconds > 0) { if (durationNanos > timeoutNanoseconds) { durationNanos = timeoutNanoseconds; Loading @@ -447,7 +449,7 @@ aaudio_result_t AudioStream::waitForStateChange(aaudio_stream_state_t currentSta return result; } state = getState(); state = getStateExternal(); } if (nextState != nullptr) { *nextState = state; Loading Loading @@ -638,6 +640,13 @@ void AudioStream::setDuckAndMuteVolume(float duckAndMuteVolume) { doSetVolume(); // apply this change } aaudio_stream_state_t AudioStream::getStateExternal() const { if (isDisconnected()) { return AAUDIO_STREAM_STATE_DISCONNECTED; } return getState(); } void AudioStream::MyPlayerBase::registerWithAudioManager(const android::sp<AudioStream>& parent) { std::lock_guard<std::mutex> lock(mParentLock); mParent = parent; Loading
media/libaaudio/src/core/AudioStream.h +2 −0 Original line number Diff line number Diff line Loading @@ -194,6 +194,8 @@ public: return mState.load(); } aaudio_stream_state_t getStateExternal() const; virtual int32_t getBufferSize() const { return AAUDIO_ERROR_UNIMPLEMENTED; } Loading