diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp
index c8d753b..87964d1 100644
--- a/services/audioflinger/AudioFlinger.cpp
+++ b/services/audioflinger/AudioFlinger.cpp
@@ -104,6 +104,8 @@
 namespace android {
 
 using media::IEffectClient;
+using media::audio::common::AudioMMapPolicyInfo;
+using media::audio::common::AudioMMapPolicyType;
 using android::content::AttributionSourceState;
 
 static const char kDeadlockedString[] = "AudioFlinger may be deadlocked\n";
@@ -339,8 +341,7 @@
 #define MAX_MMAP_PROPERTY_DEVICE_HAL_VERSION 7.0
 
 status_t AudioFlinger::getMmapPolicyInfos(
-            media::AudioMMapPolicyType policyType,
-            std::vector<media::AudioMMapPolicyInfo> *policyInfos) {
+            AudioMMapPolicyType policyType, std::vector<AudioMMapPolicyInfo> *policyInfos) {
     if (const auto it = mPolicyInfos.find(policyType); it != mPolicyInfos.end()) {
         *policyInfos = it->second;
         return NO_ERROR;
@@ -349,7 +350,7 @@
         AutoMutex lock(mHardwareLock);
         for (size_t i = 0; i < mAudioHwDevs.size(); ++i) {
             AudioHwDevice *dev = mAudioHwDevs.valueAt(i);
-            std::vector<media::AudioMMapPolicyInfo> infos;
+            std::vector<AudioMMapPolicyInfo> infos;
             status_t status = dev->getMmapPolicyInfos(policyType, &infos);
             if (status != NO_ERROR) {
                 ALOGE("Failed to query mmap policy info of %d, error %d",
diff --git a/services/audioflinger/AudioFlinger.h b/services/audioflinger/AudioFlinger.h
index b5d587b..d0a9ea8 100644
--- a/services/audioflinger/AudioFlinger.h
+++ b/services/audioflinger/AudioFlinger.h
@@ -283,8 +283,8 @@
             const TrackSecondaryOutputsMap& trackSecondaryOutputs);
 
     virtual status_t getMmapPolicyInfos(
-            media::AudioMMapPolicyType policyType,
-            std::vector<media::AudioMMapPolicyInfo> *policyInfos);
+            media::audio::common::AudioMMapPolicyType policyType,
+            std::vector<media::audio::common::AudioMMapPolicyInfo> *policyInfos);
 
     status_t onTransactWrapper(TransactionCode code, const Parcel& data, uint32_t flags,
         const std::function<status_t()>& delegate) override;
@@ -1009,7 +1009,8 @@
     // Keep in sync with java definition in media/java/android/media/AudioRecord.java
     static constexpr int32_t kMaxSharedAudioHistoryMs = 5000;
 
-    std::map<media::AudioMMapPolicyType, std::vector<media::AudioMMapPolicyInfo>> mPolicyInfos;
+    std::map<media::audio::common::AudioMMapPolicyType,
+             std::vector<media::audio::common::AudioMMapPolicyInfo>> mPolicyInfos;
 };
 
 #undef INCLUDING_FROM_AUDIOFLINGER_H
diff --git a/services/audioflinger/AudioHwDevice.cpp b/services/audioflinger/AudioHwDevice.cpp
index b996c6c9..12f8272 100644
--- a/services/audioflinger/AudioHwDevice.cpp
+++ b/services/audioflinger/AudioHwDevice.cpp
@@ -29,6 +29,9 @@
 
 namespace android {
 
+using media::audio::common::AudioMMapPolicyInfo;
+using media::audio::common::AudioMMapPolicyType;
+
 // ----------------------------------------------------------------------------
 
 status_t AudioHwDevice::openOutputStream(
@@ -102,11 +105,8 @@
     return mHwDevice->getAudioPort(port);
 }
 
-
-
 status_t AudioHwDevice::getMmapPolicyInfos(
-            media::AudioMMapPolicyType policyType,
-            std::vector<media::AudioMMapPolicyInfo> *policyInfos) const {
+            AudioMMapPolicyType policyType, std::vector<AudioMMapPolicyInfo> *policyInfos) const {
     return mHwDevice->getMmapPolicyInfos(policyType, policyInfos);
 }
 
diff --git a/services/audioflinger/AudioHwDevice.h b/services/audioflinger/AudioHwDevice.h
index b72072f..0715e55 100644
--- a/services/audioflinger/AudioHwDevice.h
+++ b/services/audioflinger/AudioHwDevice.h
@@ -22,6 +22,8 @@
 #include <stdlib.h>
 #include <sys/types.h>
 
+#include <android/media/audio/common/AudioMMapPolicyInfo.h>
+#include <android/media/audio/common/AudioMMapPolicyType.h>
 #include <media/audiohal/DeviceHalInterface.h>
 #include <utils/Errors.h>
 #include <system/audio.h>
@@ -86,8 +88,8 @@
     status_t getAudioPort(struct audio_port_v7 *port) const;
 
     status_t getMmapPolicyInfos(
-            media::AudioMMapPolicyType policyType,
-            std::vector<media::AudioMMapPolicyInfo> *policyInfos) const;
+            media::audio::common::AudioMMapPolicyType policyType,
+            std::vector<media::audio::common::AudioMMapPolicyInfo> *policyInfos) const;
 
 private:
     const audio_module_handle_t mHandle;
diff --git a/services/audioflinger/PropertyUtils.cpp b/services/audioflinger/PropertyUtils.cpp
index b8abb8e..341d5bb 100644
--- a/services/audioflinger/PropertyUtils.cpp
+++ b/services/audioflinger/PropertyUtils.cpp
@@ -16,54 +16,57 @@
 
 #include <aaudio/AAudio.h>
 #include <aaudio/AAudioTesting.h>
-#include <android/media/AudioMMapPolicy.h>
+#include <android/media/audio/common/AudioMMapPolicy.h>
 #include <cutils/properties.h>
 
 #include "PropertyUtils.h"
 
 namespace android {
 
-std::string getMmapPolicyProperty(media::AudioMMapPolicyType policyType) {
+using media::audio::common::AudioMMapPolicy;
+using media::audio::common::AudioMMapPolicyType;
+using media::audio::common::AudioMMapPolicyInfo;
+
+std::string getMmapPolicyProperty(AudioMMapPolicyType policyType) {
     switch (policyType) {
-        case media::AudioMMapPolicyType::DEFAULT:
+        case AudioMMapPolicyType::DEFAULT:
             return "aaudio.mmap_policy";
-        case media::AudioMMapPolicyType::EXCLUSIVE:
+        case AudioMMapPolicyType::EXCLUSIVE:
             return "aaudio.mmap_exclusive_policy";
         default:
             return "";
     }
 }
 
-int getDefaultPolicyFromType(media::AudioMMapPolicyType policyType) {
+int getDefaultPolicyFromType(AudioMMapPolicyType policyType) {
     switch (policyType) {
-        case media::AudioMMapPolicyType::EXCLUSIVE:
+        case AudioMMapPolicyType::EXCLUSIVE:
             return AAUDIO_UNSPECIFIED;
-        case media::AudioMMapPolicyType::DEFAULT:
+        case AudioMMapPolicyType::DEFAULT:
         default:
             return AAUDIO_POLICY_NEVER;
     }
 }
 
-media::AudioMMapPolicy legacy2aidl_aaudio_policy_t_AudioMMapPolicy(aaudio_policy_t legacy) {
+AudioMMapPolicy legacy2aidl_aaudio_policy_t_AudioMMapPolicy(aaudio_policy_t legacy) {
     switch (legacy) {
         case AAUDIO_POLICY_NEVER:
-            return media::AudioMMapPolicy::NEVER;
+            return AudioMMapPolicy::NEVER;
         case AAUDIO_POLICY_AUTO:
-            return media::AudioMMapPolicy::AUTO;
+            return AudioMMapPolicy::AUTO;
         case AAUDIO_POLICY_ALWAYS:
-            return media::AudioMMapPolicy::ALWAYS;
+            return AudioMMapPolicy::ALWAYS;
         case AAUDIO_UNSPECIFIED:
-            return media::AudioMMapPolicy::UNSPECIFIED;
+            return AudioMMapPolicy::UNSPECIFIED;
         default:
             ALOGE("%s unknown aaudio policy: %d", __func__, legacy);
-            return media::AudioMMapPolicy::UNSPECIFIED;
+            return AudioMMapPolicy::UNSPECIFIED;
     }
 }
 
 status_t getMmapPolicyInfosFromSystemProperty(
-        media::AudioMMapPolicyType policyType,
-        std::vector<media::AudioMMapPolicyInfo> *policyInfos) {
-    media::AudioMMapPolicyInfo policyInfo;
+        AudioMMapPolicyType policyType, std::vector<AudioMMapPolicyInfo> *policyInfos) {
+    AudioMMapPolicyInfo policyInfo;
     const std::string propertyStr = getMmapPolicyProperty(policyType);
     if (propertyStr.empty()) {
         return BAD_VALUE;
diff --git a/services/audioflinger/PropertyUtils.h b/services/audioflinger/PropertyUtils.h
index 38cbf92..3bb6fa2 100644
--- a/services/audioflinger/PropertyUtils.h
+++ b/services/audioflinger/PropertyUtils.h
@@ -16,13 +16,13 @@
 
 #pragma once
 
-#include <android/media/AudioMMapPolicyType.h>
-#include <android/media/AudioMMapPolicyInfo.h>
+#include <android/media/audio/common/AudioMMapPolicyType.h>
+#include <android/media/audio/common/AudioMMapPolicyInfo.h>
 
 namespace android {
 
 status_t getMmapPolicyInfosFromSystemProperty(
-        media::AudioMMapPolicyType policyType,
-        std::vector<media::AudioMMapPolicyInfo> *policyInfos);
+        media::audio::common::AudioMMapPolicyType policyType,
+        std::vector<media::audio::common::AudioMMapPolicyInfo> *policyInfos);
 
 } // namespace android
