commit | 183b0bd6128bb463547cf22dd21a22f0bc3d0636 | [log] [tgz] |
---|---|---|
author | Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> | Wed Feb 05 15:29:35 2025 -0800 |
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | Wed Feb 05 15:29:35 2025 -0800 |
tree | 8e477408531bea4efe756c34093676a3990075a5 | |
parent | aee3513ebd6a2453380fab5985855d3297ee3272 [diff] | |
parent | 3e7f0777e4d7dfc6cd4fbf5eaba0e27e0a4cf8ac [diff] |
Merge "audio: Fix MonoPipe ownership in StreamRemoteSubmix" into main am: 0cdd9a51e4 am: 3e7f0777e4 Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/3479190 Change-Id: Idd59d588edd13c4576f3b51d33cb250eb355ec71 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/audio/aidl/default/r_submix/StreamRemoteSubmix.cpp b/audio/aidl/default/r_submix/StreamRemoteSubmix.cpp index cef0ea6..f8ead16 100644 --- a/audio/aidl/default/r_submix/StreamRemoteSubmix.cpp +++ b/audio/aidl/default/r_submix/StreamRemoteSubmix.cpp
@@ -283,6 +283,15 @@ } return ::android::OK; } + // get and hold the sink because 'MonoPipeReader' does not hold a strong pointer to it. + sp<MonoPipe> sink = mCurrentRoute->getSink(); + if (sink == nullptr) { + if (++mReadErrorCount < kMaxErrorLogs) { + LOG(ERROR) << __func__ + << ": the sink has been released! (not all errors will be logged)"; + } + return ::android::OK; + } mReadErrorCount = 0; LOG(VERBOSE) << __func__ << ": " << mDeviceAddress.toString() << ", " << frameCount