Add AMediaFormat functions to clear and copy
Also move NdkMediaFormat internals to libmedia to avoid a future circular
dependency between libmedia and libmediandk.
Bug: 111407253
Test: build, boot, play some files
Change-Id: I54d91439f216c3834726e5505afef40dc0d93e67
diff --git a/media/ndk/NdkMediaFormat.cpp b/media/ndk/NdkMediaFormat.cpp
index f32b83e..a66f3b3 100644
--- a/media/ndk/NdkMediaFormat.cpp
+++ b/media/ndk/NdkMediaFormat.cpp
@@ -20,6 +20,7 @@
#include <inttypes.h>
#include <media/NdkMediaFormat.h>
+#include <media/NdkMediaFormatPriv.h>
#include <utils/Log.h>
#include <utils/StrongPointer.h>
@@ -32,12 +33,6 @@
using namespace android;
-struct AMediaFormat {
- sp<AMessage> mFormat;
- String8 mDebug;
- KeyedVector<String8, String8> mStringCache;
-};
-
extern "C" {
// private functions for conversion to/from AMessage
@@ -74,6 +69,18 @@
return AMEDIA_OK;
}
+EXPORT
+void AMediaFormat_clear(AMediaFormat *format) {
+ format->mFormat->clear();
+}
+
+EXPORT
+media_status_t AMediaFormat_copy(AMediaFormat *to, AMediaFormat *from) {
+ to->mFormat->clear();
+ to->mFormat->extend(from->mFormat);
+ return AMEDIA_OK;
+}
+
EXPORT
const char* AMediaFormat_toString(AMediaFormat *mData) {
@@ -256,7 +263,7 @@
}
EXPORT
-void AMediaFormat_setBuffer(AMediaFormat* format, const char* name, void* data, size_t size) {
+void AMediaFormat_setBuffer(AMediaFormat* format, const char* name, const void* data, size_t size) {
// the ABuffer(void*, size_t) constructor doesn't take ownership of the data, so create
// a new buffer and copy the data into it
sp<ABuffer> buf = new ABuffer(size);