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.cpp b/services/audiopolicy/service/SpatializerPoseController.cpp
index fa9a5d1..215f899 100644
--- a/services/audiopolicy/service/SpatializerPoseController.cpp
+++ b/services/audiopolicy/service/SpatializerPoseController.cpp
@@ -77,7 +77,6 @@
                                                      std::chrono::microseconds maxUpdatePeriod)
     : mListener(listener),
       mSensorPeriod(sensorPeriod),
-      mPoseProvider(SensorPoseProvider::create("headtracker", this)),
       mProcessor(createHeadTrackingProcessor(HeadTrackingProcessor::Options{
               .maxTranslationalVelocity = kMaxTranslationalVelocity / kTicksPerSecond,
               .maxRotationalVelocity = kMaxRotationalVelocity / kTicksPerSecond,
@@ -86,6 +85,7 @@
               .freshnessTimeout = Ticks(sensorPeriod * kMaxLostSamples).count(),
               .predictionDuration = Ticks(kPredictionDuration).count(),
       })),
+      mPoseProvider(SensorPoseProvider::create("headtracker", this)),
       mThread([this, maxUpdatePeriod] {
           while (true) {
               Pose3f headToStage;