Add SourceMetadata as a new parameter in openOutputStream
In order to bypass an audio-encoder and achieve low latency, we need to
pass the USAGE_GAME audio attribute to the audio HAL so that the vendor
can use this audio usage to bypass ms12. The USAGE_GAME will be stored
in SourceMetadata and get pass down to the HAL layer.
Bug: 297875432
Test: N/A
Flag: EXEMPT bugfix
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:bdf526dec5cdb2f53405d26b1a75d7e887fceaa9)
Merged-In: I528cb39ec8f79b672acdbbbf4316ed655f6797ae
Change-Id: I528cb39ec8f79b672acdbbbf4316ed655f6797ae
diff --git a/media/audioaidlconversion/AidlConversionNdk.cpp b/media/audioaidlconversion/AidlConversionNdk.cpp
index 9b14a5e..7ab616a 100644
--- a/media/audioaidlconversion/AidlConversionNdk.cpp
+++ b/media/audioaidlconversion/AidlConversionNdk.cpp
@@ -35,6 +35,7 @@
using hardware::audio::common::PlaybackTrackMetadata;
using hardware::audio::common::RecordTrackMetadata;
+using hardware::audio::common::SourceMetadata;
using ::android::BAD_VALUE;
using ::android::OK;
@@ -194,5 +195,16 @@
return aidl;
}
+// static
+ConversionResult<SourceMetadata>
+legacy2aidl_SourceMetadata(const std::vector<playback_track_metadata_v7_t>& legacy) {
+ SourceMetadata aidl;
+ aidl.tracks = VALUE_OR_RETURN(
+ convertContainer<std::vector<PlaybackTrackMetadata>>(
+ legacy,
+ legacy2aidl_playback_track_metadata_v7_PlaybackTrackMetadata));
+ return aidl;
+}
+
} // namespace android
} // aidl