aaudio: fix sessionId conversion
Was not handling negative IDs correctly.
Update test to allow negative IDs.
Bug: 72333892
Test: CTS has test_session_id
Change-Id: I1ca57026d6202f7d54c8efd51b14854be6cc69e4
diff --git a/media/libaaudio/src/utility/AAudioUtilities.cpp b/media/libaaudio/src/utility/AAudioUtilities.cpp
index adc4904..854c691 100644
--- a/media/libaaudio/src/utility/AAudioUtilities.cpp
+++ b/media/libaaudio/src/utility/AAudioUtilities.cpp
@@ -251,8 +251,8 @@
}
audio_session_t AAudioConvert_aaudioToAndroidSessionId(aaudio_session_id_t sessionId) {
- // If not a valid sessionId then convert to a safe value of AUDIO_SESSION_ALLOCATE.
- return (sessionId < AAUDIO_SESSION_ID_MIN)
+ // If not a regular sessionId then convert to a safe value of AUDIO_SESSION_ALLOCATE.
+ return (sessionId == AAUDIO_SESSION_ID_ALLOCATE || sessionId == AAUDIO_SESSION_ID_NONE)
? AUDIO_SESSION_ALLOCATE
: (audio_session_t) sessionId;
}
diff --git a/media/libaaudio/src/utility/AAudioUtilities.h b/media/libaaudio/src/utility/AAudioUtilities.h
index 3673c34..dc6a671 100644
--- a/media/libaaudio/src/utility/AAudioUtilities.h
+++ b/media/libaaudio/src/utility/AAudioUtilities.h
@@ -27,9 +27,6 @@
#include "aaudio/AAudio.h"
-
-constexpr aaudio_session_id_t AAUDIO_SESSION_ID_MIN = 1; // must be positive
-
/**
* Convert an AAudio result into the closest matching Android status.
*/
diff --git a/media/libaaudio/tests/test_session_id.cpp b/media/libaaudio/tests/test_session_id.cpp
index d9072af..3f7d4fc 100644
--- a/media/libaaudio/tests/test_session_id.cpp
+++ b/media/libaaudio/tests/test_session_id.cpp
@@ -97,7 +97,10 @@
// Get the allocated ID from the stream.
sessionId1 = AAudioStream_getSessionId(aaudioStream1);
- ASSERT_LT(0, sessionId1); // Must be positive.
+
+ // Check for invalid session IDs.
+ ASSERT_NE(AAUDIO_SESSION_ID_NONE, sessionId1);
+ ASSERT_NE(AAUDIO_SESSION_ID_ALLOCATE, sessionId1);
ASSERT_EQ(AAUDIO_OK, AAudioStream_requestStart(aaudioStream1));