Fix destruction order in SpatializerPoseController

We want to make sure the pose provider is destroyed before the
processor, to make sure no pose updates are received with the
processor destroyed.

Test: Manual inspection of logs while running head tracking.
Bug: 188502620
Change-Id: I7110e8db178e16f4addbfb6a0701a700da976ac7
diff --git a/services/audiopolicy/service/SpatializerPoseController.h b/services/audiopolicy/service/SpatializerPoseController.h
index fcb7a46..12898aa 100644
--- a/services/audiopolicy/service/SpatializerPoseController.h
+++ b/services/audiopolicy/service/SpatializerPoseController.h
@@ -115,8 +115,9 @@
     mutable std::mutex mMutex;
     Listener* const mListener;
     const std::chrono::microseconds mSensorPeriod;
-    std::unique_ptr<media::SensorPoseProvider> mPoseProvider;
+    // Order matters for the following two members to ensure correct destruction.
     std::unique_ptr<media::HeadTrackingProcessor> mProcessor;
+    std::unique_ptr<media::SensorPoseProvider> mPoseProvider;
     int32_t mHeadSensor = media::SensorPoseProvider::INVALID_HANDLE;
     int32_t mScreenSensor = media::SensorPoseProvider::INVALID_HANDLE;
     std::optional<media::HeadTrackingMode> mActualMode;