Split libnbaio into libnbaio + libnbaio_mono.
When the vndk is enabled (BOARD_VNDK_VERSION=current),
vendor libraries must only link against vendor variants
in the build system. This also means that they receive restricted
sets of headers and that automatic global headers are restricted.
Test: mma -j BOARD_VNDK_VERSION=current
Test: boots device, audio plays over YouTube
Bug: 37342627
Bug: 63269228
Change-Id: Ifa9c96f6b98b456def485be6bc5046ee54c3c3ca
diff --git a/include/media/nbaio b/include/media/nbaio
deleted file mode 120000
index 045a1d9..0000000
--- a/include/media/nbaio
+++ /dev/null
@@ -1 +0,0 @@
-../../media/libnbaio/include/media/nbaio/
\ No newline at end of file
diff --git a/include/media/nbaio/AudioBufferProviderSource.h b/include/media/nbaio/AudioBufferProviderSource.h
new file mode 120000
index 0000000..55841e7
--- /dev/null
+++ b/include/media/nbaio/AudioBufferProviderSource.h
@@ -0,0 +1 @@
+../../../media/libnbaio/include/media/nbaio/AudioBufferProviderSource.h
\ No newline at end of file
diff --git a/include/media/nbaio/AudioStreamInSource.h b/include/media/nbaio/AudioStreamInSource.h
new file mode 120000
index 0000000..f5bcc76
--- /dev/null
+++ b/include/media/nbaio/AudioStreamInSource.h
@@ -0,0 +1 @@
+../../../media/libnbaio/include/media/nbaio/AudioStreamInSource.h
\ No newline at end of file
diff --git a/include/media/nbaio/AudioStreamOutSink.h b/include/media/nbaio/AudioStreamOutSink.h
new file mode 120000
index 0000000..43bfac5
--- /dev/null
+++ b/include/media/nbaio/AudioStreamOutSink.h
@@ -0,0 +1 @@
+../../../media/libnbaio/include/media/nbaio/AudioStreamOutSink.h
\ No newline at end of file
diff --git a/include/media/nbaio/LibsndfileSink.h b/include/media/nbaio/LibsndfileSink.h
new file mode 120000
index 0000000..8a13b6c
--- /dev/null
+++ b/include/media/nbaio/LibsndfileSink.h
@@ -0,0 +1 @@
+../../../media/libnbaio/include/media/nbaio/LibsndfileSink.h
\ No newline at end of file
diff --git a/include/media/nbaio/LibsndfileSource.h b/include/media/nbaio/LibsndfileSource.h
new file mode 120000
index 0000000..2750fde
--- /dev/null
+++ b/include/media/nbaio/LibsndfileSource.h
@@ -0,0 +1 @@
+../../../media/libnbaio/include/media/nbaio/LibsndfileSource.h
\ No newline at end of file
diff --git a/include/media/nbaio/MonoPipe.h b/include/media/nbaio/MonoPipe.h
new file mode 120000
index 0000000..4ea43be
--- /dev/null
+++ b/include/media/nbaio/MonoPipe.h
@@ -0,0 +1 @@
+../../../media/libnbaio/include_mono/media/nbaio/MonoPipe.h
\ No newline at end of file
diff --git a/include/media/nbaio/MonoPipeReader.h b/include/media/nbaio/MonoPipeReader.h
new file mode 120000
index 0000000..30f426c
--- /dev/null
+++ b/include/media/nbaio/MonoPipeReader.h
@@ -0,0 +1 @@
+../../../media/libnbaio/include_mono/media/nbaio/MonoPipeReader.h
\ No newline at end of file
diff --git a/include/media/nbaio/NBAIO.h b/include/media/nbaio/NBAIO.h
new file mode 120000
index 0000000..ff6a151
--- /dev/null
+++ b/include/media/nbaio/NBAIO.h
@@ -0,0 +1 @@
+../../../media/libnbaio/include_mono/media/nbaio/NBAIO.h
\ No newline at end of file
diff --git a/include/media/nbaio/NBLog.h b/include/media/nbaio/NBLog.h
new file mode 120000
index 0000000..c35401e
--- /dev/null
+++ b/include/media/nbaio/NBLog.h
@@ -0,0 +1 @@
+../../../media/libnbaio/include/media/nbaio/NBLog.h
\ No newline at end of file
diff --git a/include/media/nbaio/PerformanceAnalysis.h b/include/media/nbaio/PerformanceAnalysis.h
new file mode 120000
index 0000000..7acfc90
--- /dev/null
+++ b/include/media/nbaio/PerformanceAnalysis.h
@@ -0,0 +1 @@
+../../../media/libnbaio/include/media/nbaio/PerformanceAnalysis.h
\ No newline at end of file
diff --git a/include/media/nbaio/Pipe.h b/include/media/nbaio/Pipe.h
new file mode 120000
index 0000000..a4bbbc9
--- /dev/null
+++ b/include/media/nbaio/Pipe.h
@@ -0,0 +1 @@
+../../../media/libnbaio/include/media/nbaio/Pipe.h
\ No newline at end of file
diff --git a/include/media/nbaio/PipeReader.h b/include/media/nbaio/PipeReader.h
new file mode 120000
index 0000000..64b21cf
--- /dev/null
+++ b/include/media/nbaio/PipeReader.h
@@ -0,0 +1 @@
+../../../media/libnbaio/include/media/nbaio/PipeReader.h
\ No newline at end of file
diff --git a/include/media/nbaio/SourceAudioBufferProvider.h b/include/media/nbaio/SourceAudioBufferProvider.h
new file mode 120000
index 0000000..74a3b06
--- /dev/null
+++ b/include/media/nbaio/SourceAudioBufferProvider.h
@@ -0,0 +1 @@
+../../../media/libnbaio/include/media/nbaio/SourceAudioBufferProvider.h
\ No newline at end of file
diff --git a/media/libnbaio/Android.bp b/media/libnbaio/Android.bp
index a7cfe4a..02f7529 100644
--- a/media/libnbaio/Android.bp
+++ b/media/libnbaio/Android.bp
@@ -1,12 +1,46 @@
+
+cc_defaults {
+ name: "libnbaio_mono_defaults",
+ srcs: [
+ "MonoPipe.cpp",
+ "MonoPipeReader.cpp",
+ "NBAIO.cpp",
+ ],
+ header_libs: [
+ "libaudioclient_headers",
+ "libaudio_system_headers",
+ "libmedia_headers",
+ ],
+ export_header_lib_headers: [
+ "libaudioclient_headers",
+ "libmedia_headers",
+ ],
+
+ shared_libs: [
+ "libaudioutils",
+ "liblog",
+ "libutils",
+ ],
+
+ export_include_dirs: ["include_mono"],
+}
+
+// libnbaio_mono is the part of libnbaio that is available for vendors to use. Vendor modules can't
+// link against libnbaio and system modules can't link against libnbaio_mono. The rest of libnbaio
+// pulls in too many other dependencies.
+cc_library_shared {
+ name: "libnbaio_mono",
+ vendor: true,
+ defaults: ["libnbaio_mono_defaults"],
+}
+
cc_library_shared {
name: "libnbaio",
+ defaults: ["libnbaio_mono_defaults"],
srcs: [
"AudioBufferProviderSource.cpp",
"AudioStreamInSource.cpp",
"AudioStreamOutSink.cpp",
- "MonoPipe.cpp",
- "MonoPipeReader.cpp",
- "NBAIO.cpp",
"NBLog.cpp",
"PerformanceAnalysis.cpp",
"Pipe.cpp",
@@ -25,8 +59,8 @@
"libaudioutils",
"libbinder",
"libcutils",
- "libutils",
"liblog",
+ "libutils",
],
cflags: [
@@ -36,7 +70,5 @@
include_dirs: ["system/media/audio_utils/include"],
- local_include_dirs: ["include"],
-
export_include_dirs: ["include"],
}
diff --git a/media/libnbaio/include/media/nbaio/AudioBufferProviderSource.h b/media/libnbaio/include/media/nbaio/AudioBufferProviderSource.h
index 4747dcf..71182bb 100644
--- a/media/libnbaio/include/media/nbaio/AudioBufferProviderSource.h
+++ b/media/libnbaio/include/media/nbaio/AudioBufferProviderSource.h
@@ -19,8 +19,8 @@
#ifndef ANDROID_AUDIO_BUFFER_PROVIDER_SOURCE_H
#define ANDROID_AUDIO_BUFFER_PROVIDER_SOURCE_H
-#include "NBAIO.h"
#include <media/AudioBufferProvider.h>
+#include <media/nbaio/NBAIO.h>
namespace android {
diff --git a/media/libnbaio/include/media/nbaio/AudioStreamInSource.h b/media/libnbaio/include/media/nbaio/AudioStreamInSource.h
index 508e0fe..8a3ffbe 100644
--- a/media/libnbaio/include/media/nbaio/AudioStreamInSource.h
+++ b/media/libnbaio/include/media/nbaio/AudioStreamInSource.h
@@ -17,7 +17,7 @@
#ifndef ANDROID_AUDIO_STREAM_IN_SOURCE_H
#define ANDROID_AUDIO_STREAM_IN_SOURCE_H
-#include "NBAIO.h"
+#include <media/nbaio/NBAIO.h>
namespace android {
diff --git a/media/libnbaio/include/media/nbaio/AudioStreamOutSink.h b/media/libnbaio/include/media/nbaio/AudioStreamOutSink.h
index 56a2a38..348b4f8 100644
--- a/media/libnbaio/include/media/nbaio/AudioStreamOutSink.h
+++ b/media/libnbaio/include/media/nbaio/AudioStreamOutSink.h
@@ -17,7 +17,7 @@
#ifndef ANDROID_AUDIO_STREAM_OUT_SINK_H
#define ANDROID_AUDIO_STREAM_OUT_SINK_H
-#include "NBAIO.h"
+#include <media/nbaio/NBAIO.h>
namespace android {
diff --git a/media/libnbaio/include/media/nbaio/LibsndfileSink.h b/media/libnbaio/include/media/nbaio/LibsndfileSink.h
index 97a57e0..535e3f5 100644
--- a/media/libnbaio/include/media/nbaio/LibsndfileSink.h
+++ b/media/libnbaio/include/media/nbaio/LibsndfileSink.h
@@ -17,7 +17,8 @@
#ifndef ANDROID_AUDIO_LIBSNDFILE_SINK_H
#define ANDROID_AUDIO_LIBSNDFILE_SINK_H
-#include "NBAIO.h"
+#include <media/nbaio/NBAIO.h>
+
#include "sndfile.h"
// Implementation of NBAIO_Sink that wraps a libsndfile opened in SFM_WRITE mode
diff --git a/media/libnbaio/include/media/nbaio/LibsndfileSource.h b/media/libnbaio/include/media/nbaio/LibsndfileSource.h
index 4fbdb4b..bc6aa9d 100644
--- a/media/libnbaio/include/media/nbaio/LibsndfileSource.h
+++ b/media/libnbaio/include/media/nbaio/LibsndfileSource.h
@@ -17,7 +17,8 @@
#ifndef ANDROID_AUDIO_LIBSNDFILE_SOURCE_H
#define ANDROID_AUDIO_LIBSNDFILE_SOURCE_H
-#include "NBAIO.h"
+#include <media/nbaio/NBAIO.h>
+
#include "sndfile.h"
// Implementation of NBAIO_Source that wraps a libsndfile opened in SFM_READ mode
diff --git a/media/libnbaio/include/media/nbaio/Pipe.h b/media/libnbaio/include/media/nbaio/Pipe.h
index 58b9750..0431976 100644
--- a/media/libnbaio/include/media/nbaio/Pipe.h
+++ b/media/libnbaio/include/media/nbaio/Pipe.h
@@ -18,7 +18,7 @@
#define ANDROID_AUDIO_PIPE_H
#include <audio_utils/fifo.h>
-#include "NBAIO.h"
+#include <media/nbaio/NBAIO.h>
namespace android {
diff --git a/media/libnbaio/include/media/nbaio/SourceAudioBufferProvider.h b/media/libnbaio/include/media/nbaio/SourceAudioBufferProvider.h
index ae49903..cc2d019 100644
--- a/media/libnbaio/include/media/nbaio/SourceAudioBufferProvider.h
+++ b/media/libnbaio/include/media/nbaio/SourceAudioBufferProvider.h
@@ -19,7 +19,7 @@
#ifndef ANDROID_SOURCE_AUDIO_BUFFER_PROVIDER_H
#define ANDROID_SOURCE_AUDIO_BUFFER_PROVIDER_H
-#include "NBAIO.h"
+#include <media/nbaio/NBAIO.h>
#include <media/ExtendedAudioBufferProvider.h>
namespace android {
diff --git a/media/libnbaio/include/media/nbaio/MonoPipe.h b/media/libnbaio/include_mono/media/nbaio/MonoPipe.h
similarity index 99%
rename from media/libnbaio/include/media/nbaio/MonoPipe.h
rename to media/libnbaio/include_mono/media/nbaio/MonoPipe.h
index 60ae92e..c51d0fe 100644
--- a/media/libnbaio/include/media/nbaio/MonoPipe.h
+++ b/media/libnbaio/include_mono/media/nbaio/MonoPipe.h
@@ -20,7 +20,7 @@
#include <time.h>
#include <audio_utils/fifo.h>
#include <media/SingleStateQueue.h>
-#include "NBAIO.h"
+#include <media/nbaio/NBAIO.h>
namespace android {
diff --git a/media/libnbaio/include/media/nbaio/MonoPipeReader.h b/media/libnbaio/include_mono/media/nbaio/MonoPipeReader.h
similarity index 100%
rename from media/libnbaio/include/media/nbaio/MonoPipeReader.h
rename to media/libnbaio/include_mono/media/nbaio/MonoPipeReader.h
diff --git a/media/libnbaio/include/media/nbaio/NBAIO.h b/media/libnbaio/include_mono/media/nbaio/NBAIO.h
similarity index 100%
rename from media/libnbaio/include/media/nbaio/NBAIO.h
rename to media/libnbaio/include_mono/media/nbaio/NBAIO.h