audio_mutex: Add mutex priority inheritance flag

Test: adb shell setprop persist.device_config.aconfig_flags.media_audio.com.android.media.audio.flags.mutex_priority_inheritance true
Bug: 209491695
Change-Id: I4aa9988ed0c05a2e441f02c788f30acd528e04fd
diff --git a/media/audio/aconfig/Android.bp b/media/audio/aconfig/Android.bp
new file mode 100644
index 0000000..ed7f426
--- /dev/null
+++ b/media/audio/aconfig/Android.bp
@@ -0,0 +1,25 @@
+// media_audio namespace flags
+
+// aconfig_audio_flags is for general multi-project audio flags.
+aconfig_declarations {
+    name: "aconfig_audio_flags",
+    package: "com.android.media.audio.flags",
+    srcs: ["audio_flags.aconfig"],
+}
+
+cc_aconfig_library {
+    name: "aconfig_audio_flags_c_lib",
+    aconfig_declarations: "aconfig_audio_flags",
+
+    // This does not properly link with the
+    // libaudioutils library -- the vndk
+    // requirement needs a signature update.
+
+    double_loadable: true,
+    host_supported: true,
+    product_available: true,
+    vendor_available: true,
+    apex_available: [
+        "//apex_available:platform",
+    ],
+}
diff --git a/media/audio/aconfig/audio_flags.aconfig b/media/audio/aconfig/audio_flags.aconfig
new file mode 100644
index 0000000..58a8d41
--- /dev/null
+++ b/media/audio/aconfig/audio_flags.aconfig
@@ -0,0 +1,17 @@
+package: "com.android.media.audio.flags"
+
+# General multi-project audio flags.
+#
+# Please add flags in alphabetical order.
+
+flag {
+    name: "mutex_priority_inheritance"
+    namespace: "media_audio"
+    description: "\
+Enable mutex priority inheritance in audioserver \
+(std::mutex does not normally transfer priority from \
+the blocked thread to the blocking thread).  \
+This feature helps reduce audio glitching caused by low priority \
+blocking threads."
+    bug: "209491695"
+}
diff --git a/services/audioflinger/Android.bp b/services/audioflinger/Android.bp
index 7663250..b001a34 100644
--- a/services/audioflinger/Android.bp
+++ b/services/audioflinger/Android.bp
@@ -156,6 +156,7 @@
         "libaudiohal",
         "libaudioprocessing",
         "libaudioutils",
+        "libaudioutils_nonvndk",
         "libcutils",
         "libutils",
         "liblog",