diff options
author | David Li <dvdli@google.com> | 2024-05-14 17:05:13 +0000 |
---|---|---|
committer | Android Build Cherrypicker Worker <android-build-cherrypicker-worker@google.com> | 2024-05-14 17:05:13 +0000 |
commit | d974cf81fb98c24e1436a7416ab1921aab7938f1 (patch) | |
tree | 2dc745a172e73d9228f3a7525dda9b50ccda2750 | |
parent | 9d0441fbd0a0b956d3d2d9131dd5929f6da7089f (diff) | |
download | av-d974cf81fb98c24e1436a7416ab1921aab7938f1.tar.gz |
allow standby function in the DRAINING and TRANSFERRING states
Bug: 339564402
Test: steps in bug
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:6713689c5b517c44afccf700dcd62ca26c77ec81)
Merged-In: I71e306f65d6a3730224a1d6375f62e3f952dcebc
Change-Id: I71e306f65d6a3730224a1d6375f62e3f952dcebc
-rw-r--r-- | media/libaudiohal/impl/StreamHalAidl.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/media/libaudiohal/impl/StreamHalAidl.cpp b/media/libaudiohal/impl/StreamHalAidl.cpp index 4389913d24..5d2f9e859b 100644 --- a/media/libaudiohal/impl/StreamHalAidl.cpp +++ b/media/libaudiohal/impl/StreamHalAidl.cpp @@ -200,8 +200,12 @@ status_t StreamHalAidl::standby() { StreamDescriptor::Reply reply; switch (state) { case StreamDescriptor::State::ACTIVE: + case StreamDescriptor::State::DRAINING: + case StreamDescriptor::State::TRANSFERRING: RETURN_STATUS_IF_ERROR(pause(&reply)); - if (reply.state != StreamDescriptor::State::PAUSED) { + if (reply.state != StreamDescriptor::State::PAUSED && + reply.state != StreamDescriptor::State::DRAIN_PAUSED && + reply.state != StreamDescriptor::State::TRANSFER_PAUSED) { ALOGE("%s: unexpected stream state: %s (expected PAUSED)", __func__, toString(reply.state).c_str()); return INVALID_OPERATION; @@ -209,6 +213,7 @@ status_t StreamHalAidl::standby() { FALLTHROUGH_INTENDED; case StreamDescriptor::State::PAUSED: case StreamDescriptor::State::DRAIN_PAUSED: + case StreamDescriptor::State::TRANSFER_PAUSED: if (mIsInput) return flush(); RETURN_STATUS_IF_ERROR(flush(&reply)); if (reply.state != StreamDescriptor::State::IDLE) { |