r_submix: keep the signed value for offset calculation in AIDL implementation

otherwise a negative offset will result in long sleep

Bug: 295055755
Test: atest android.media.audio.cts.AudioPlaybackCaptureTest
Change-Id: Ie941cc2525e3ea42b53106ae3a65242794b1dd1b
This commit is contained in:
Shunkai Yao
2023-08-22 20:46:34 +00:00
parent fefceb14d0
commit 7816f26afa

View File

@@ -348,9 +348,9 @@ size_t StreamRemoteSubmix::getStreamPipeSizeInFrames() {
// recording (including this call): it's converted to usec and compared to how long we've been
// recording for, which gives us how long we must wait to sync the projected recording time, and
// the observed recording time.
const size_t projectedVsObservedOffsetUs = static_cast<size_t>(
const int projectedVsObservedOffsetUs =
std::roundf((readCounterFrames * MICROS_PER_SECOND / mStreamConfig.sampleRate) -
recordDurationUs.count()));
recordDurationUs.count());
LOG(VERBOSE) << __func__ << ": record duration " << recordDurationUs.count()
<< " microseconds, will wait: " << projectedVsObservedOffsetUs << " microseconds";