spatialier: more head pose controller optimizations
Spatializer:
- do not suppress pose updates when actual head tracking mode is
disabled
- remove redundant check on mode changed in onActualModeChangeMsg()
- do not wait for pose calculation when creating the head pose
controller
SpatializerPoseController:
- fix potential race condition between mShouldExit and mShouldCalculate
- allow constuction without maxUpdatePeriod
Bug: 227740874
Test: Spatial audio playback with and without head pose sensor
Change-Id: I92fa5158ba7ffda564a021b03e81b6ff3d124351
diff --git a/services/audiopolicy/service/SpatializerPoseController.h b/services/audiopolicy/service/SpatializerPoseController.h
index 2b5c189..2c6d79a 100644
--- a/services/audiopolicy/service/SpatializerPoseController.h
+++ b/services/audiopolicy/service/SpatializerPoseController.h
@@ -60,10 +60,10 @@
* Ctor.
* sensorPeriod determines how often to receive updates from the sensors (input rate).
* maxUpdatePeriod determines how often to produce an output when calculateAsync() isn't
- * invoked.
+ * invoked; passing nullopt means an output is never produced.
*/
SpatializerPoseController(Listener* listener, std::chrono::microseconds sensorPeriod,
- std::chrono::microseconds maxUpdatePeriod);
+ std::optional<std::chrono::microseconds> maxUpdatePeriod);
/** Dtor. */
~SpatializerPoseController();