diff --git a/media/libaaudio/src/client/AudioStreamInternalPlay.h b/media/libaaudio/src/client/AudioStreamInternalPlay.h
index 98783de..d5c1b1e 100644
--- a/media/libaaudio/src/client/AudioStreamInternalPlay.h
+++ b/media/libaaudio/src/client/AudioStreamInternalPlay.h
@@ -50,9 +50,6 @@
         return AAUDIO_DIRECTION_OUTPUT;
     }
 
-    // Only register client side streams.
-    bool needsSystemRegistration() override { return !mInService; }
-
 protected:
 
     aaudio_result_t requestPauseInternal();
diff --git a/media/libaaudio/src/core/AAudioAudio.cpp b/media/libaaudio/src/core/AAudioAudio.cpp
index 63569ad..58966e0 100644
--- a/media/libaaudio/src/core/AAudioAudio.cpp
+++ b/media/libaaudio/src/core/AAudioAudio.cpp
@@ -219,7 +219,7 @@
     ALOGD("AAudioStreamBuilder_openStream() returns %d = %s for (%p) ----------------",
           result, AAudio_convertResultToText(result), audioStream);
     if (result == AAUDIO_OK) {
-        audioStream->systemRegister();
+        audioStream->registerPlayerBase();
         *streamPtr = (AAudioStream*) audioStream;
     } else {
         *streamPtr = nullptr;
@@ -243,7 +243,7 @@
     ALOGD("AAudioStream_close(%p)", stream);
     if (audioStream != nullptr) {
         audioStream->close();
-        audioStream->systemUnRegister();
+        audioStream->unregisterPlayerBase();
         delete audioStream;
         return AAUDIO_OK;
     }
diff --git a/media/libaaudio/src/core/AudioStream.cpp b/media/libaaudio/src/core/AudioStream.cpp
index 35a1c6a..8dcc37a 100644
--- a/media/libaaudio/src/core/AudioStream.cpp
+++ b/media/libaaudio/src/core/AudioStream.cpp
@@ -45,6 +45,8 @@
                           || getState() == AAUDIO_STREAM_STATE_DISCONNECTED),
                         "aaudio stream still in use, state = %s",
                         AAudio_convertStreamStateToText(getState()));
+
+    mPlayerBase->clearParentReference(); // remove reference to this AudioStream
 }
 
 static const char *AudioStream_convertSharingModeToShortText(aaudio_sharing_mode_t sharingMode) {
@@ -197,3 +199,38 @@
     return err ? AAudioConvert_androidToAAudioResult(-errno) : mThreadRegistrationResult;
 }
 
+
+#if AAUDIO_USE_VOLUME_SHAPER
+android::media::VolumeShaper::Status AudioStream::applyVolumeShaper(
+        const android::media::VolumeShaper::Configuration& configuration __unused,
+        const android::media::VolumeShaper::Operation& operation __unused) {
+    ALOGW("applyVolumeShaper() is not supported");
+    return android::media::VolumeShaper::Status::ok();
+}
+#endif
+
+AudioStream::MyPlayerBase::MyPlayerBase(AudioStream *parent) : mParent(parent) {
+}
+
+AudioStream::MyPlayerBase::~MyPlayerBase() {
+    ALOGV("MyPlayerBase::~MyPlayerBase(%p) deleted", this);
+}
+
+void AudioStream::MyPlayerBase::registerWithAudioManager() {
+    if (!mRegistered) {
+        init(android::PLAYER_TYPE_AAUDIO, AUDIO_USAGE_MEDIA);
+        mRegistered = true;
+    }
+}
+
+void AudioStream::MyPlayerBase::unregisterWithAudioManager() {
+    if (mRegistered) {
+        baseDestroy();
+        mRegistered = false;
+    }
+}
+
+
+void AudioStream::MyPlayerBase::destroy() {
+    unregisterWithAudioManager();
+}
diff --git a/media/libaaudio/src/core/AudioStream.h b/media/libaaudio/src/core/AudioStream.h
index 5800fa2..34202d2 100644
--- a/media/libaaudio/src/core/AudioStream.h
+++ b/media/libaaudio/src/core/AudioStream.h
@@ -256,29 +256,29 @@
     virtual android::status_t doSetVolume() { return android::NO_ERROR; }
 
 #if AAUDIO_USE_VOLUME_SHAPER
-    virtual android::binder::Status applyVolumeShaper(
+    virtual ::android::binder::Status applyVolumeShaper(
             const ::android::media::VolumeShaper::Configuration& configuration __unused,
-            const ::android::media::VolumeShaper::Operation& operation __unused) {
-        ALOGW("applyVolumeShaper() is not supported");
-        return android::binder::Status::ok();
-    }
+            const ::android::media::VolumeShaper::Operation& operation __unused);
 #endif
 
-    // Should this object be registered with the AudioManager?
-    virtual bool needsSystemRegistration() { return false; }
-
-    // Register this stream's PlayerBase with the AudioManager
-    void systemRegister() {
-        if (needsSystemRegistration()) {
+    /**
+     * Register this stream's PlayerBase with the AudioManager if needed.
+     * Only register output streams.
+     * This should only be called for client streams and not for streams
+     * that run in the service.
+     */
+    void registerPlayerBase() {
+        if (getDirection() == AAUDIO_DIRECTION_OUTPUT) {
             mPlayerBase->registerWithAudioManager();
         }
     }
 
-    // UnRegister this stream's PlayerBase with the AudioManager
-    void systemUnRegister() {
-        if (needsSystemRegistration()) {
-            mPlayerBase->destroy();
-        }
+    /**
+     * Unregister this stream's PlayerBase with the AudioManager.
+     * This will only unregister if already registered.
+     */
+    void unregisterPlayerBase() {
+        mPlayerBase->unregisterWithAudioManager();
     }
 
     // Pass start request through PlayerBase for tracking.
@@ -308,43 +308,53 @@
     //                         ------ AudioManager -------
     class MyPlayerBase : public android::PlayerBase {
     public:
-        MyPlayerBase(AudioStream *parent) : mParent(parent) {}
-        virtual ~MyPlayerBase() {}
+        explicit MyPlayerBase(AudioStream *parent);
 
-        void registerWithAudioManager() {
-            init(android::PLAYER_TYPE_AAUDIO, AUDIO_USAGE_MEDIA);
-        }
+        virtual ~MyPlayerBase();
 
-        void destroy() override {
-            // FIXME what else should this do? close()? disconnect()?
-            baseDestroy();
-        }
+        /**
+         * Register for volume changes and remote control.
+         */
+        void registerWithAudioManager();
 
-        virtual android::status_t playerStart() {
+        /**
+         * UnRegister.
+         */
+        void unregisterWithAudioManager();
+
+        /**
+         * Just calls unregisterWithAudioManager().
+         */
+        void destroy() override;
+
+        void clearParentReference() { mParent = nullptr; }
+
+        android::status_t playerStart() override {
+            // mParent should NOT be null. So go ahead and crash if it is.
             mResult = mParent->requestStart();
             return AAudioConvert_aaudioToAndroidStatus(mResult);
         }
 
-        virtual android::status_t playerPause() {
+        android::status_t playerPause() override {
             mResult = mParent->requestPause();
             return AAudioConvert_aaudioToAndroidStatus(mResult);
         }
 
-        virtual android::status_t playerStop() {
+        android::status_t playerStop() override {
             mResult = mParent->requestStop();
             return AAudioConvert_aaudioToAndroidStatus(mResult);
         }
 
-        virtual android::status_t playerSetVolume() {
+        android::status_t playerSetVolume() override {
             // No pan and only left volume is taken into account from IPLayer interface
             mParent->setDuckAndMuteVolume(mVolumeMultiplierL  /* * mPanMultiplierL */);
             return android::NO_ERROR;
         }
 
 #if AAUDIO_USE_VOLUME_SHAPER
-        android::binder::Status applyVolumeShaper(
-                const android::media::VolumeShaper::Configuration& configuration,
-                const android::media::VolumeShaper::Operation& operation) {
+        ::android::binder::Status applyVolumeShaper(
+                const ::android::media::VolumeShaper::Configuration& configuration,
+                const ::android::media::VolumeShaper::Operation& operation) {
             return mParent->applyVolumeShaper(configuration, operation);
         }
 #endif
@@ -353,12 +363,12 @@
             return mResult;
         }
 
-        AudioStream *mParent;
+    private:
+        AudioStream          *mParent;
         aaudio_result_t       mResult = AAUDIO_OK;
+        bool                  mRegistered = false;
     };
 
-
-
     /**
      * This should not be called after the open() call.
      */
diff --git a/media/libaaudio/src/legacy/AudioStreamTrack.cpp b/media/libaaudio/src/legacy/AudioStreamTrack.cpp
index 5e4446f..0e9aaef 100644
--- a/media/libaaudio/src/legacy/AudioStreamTrack.cpp
+++ b/media/libaaudio/src/legacy/AudioStreamTrack.cpp
@@ -478,6 +478,9 @@
 }
 
 #if AAUDIO_USE_VOLUME_SHAPER
+
+using namespace android::media::VolumeShaper;
+
 binder::Status AudioStreamTrack::applyVolumeShaper(
         const VolumeShaper::Configuration& configuration,
         const VolumeShaper::Operation& operation) {
@@ -487,7 +490,7 @@
 
     if (mAudioTrack.get() != nullptr) {
         ALOGD("applyVolumeShaper() from IPlayer");
-        VolumeShaper::Status status = mAudioTrack->applyVolumeShaper(spConfiguration, spOperation);
+        binder::Status status = mAudioTrack->applyVolumeShaper(spConfiguration, spOperation);
         if (status < 0) { // a non-negative value is the volume shaper id.
             ALOGE("applyVolumeShaper() failed with status %d", status);
         }
diff --git a/media/libaaudio/src/legacy/AudioStreamTrack.h b/media/libaaudio/src/legacy/AudioStreamTrack.h
index dbcb94e..a871db4 100644
--- a/media/libaaudio/src/legacy/AudioStreamTrack.h
+++ b/media/libaaudio/src/legacy/AudioStreamTrack.h
@@ -77,8 +77,6 @@
         return incrementFramesWritten(frames);
     }
 
-    bool needsSystemRegistration() override { return true; }
-
     android::status_t doSetVolume() override;
 
 #if AAUDIO_USE_VOLUME_SHAPER
