Use HIDL's memory in CodecBuffer and add wrapper classes for
IOmxBufferProducer and IOmxProducerListener.
Test: Compiles
Bug: 31399200
Change-Id: Ia09973ee7b25120bc35cff02b1409f33b28a4b4e
diff --git a/include/media/OMXBuffer.h b/include/media/OMXBuffer.h
index 697823f..b4b9284 100644
--- a/include/media/OMXBuffer.h
+++ b/include/media/OMXBuffer.h
@@ -21,6 +21,7 @@
#include <media/IOMX.h>
#include <system/window.h>
#include <utils/StrongPointer.h>
+#include <hidl/HidlSupport.h>
namespace android {
@@ -42,6 +43,7 @@
class MediaCodecBuffer;
class NativeHandle;
struct OMXNodeInstance;
+using hardware::hidl_memory;
// TODO: After complete HIDL transition, this class would be replaced by
// CodecBuffer.
@@ -54,10 +56,15 @@
// Default constructor, constructs a buffer of type kBufferTypeInvalid.
OMXBuffer();
- // Constructs a buffer of type kBufferTypePreset with mRangeLength set to
- // |codecBuffer|'s size (or 0 if |codecBuffer| is NULL).
+ // Constructs a buffer of type kBufferTypePreset with mRangeOffset set to
+ // |codecBuffer|'s offset and mRangeLength set to |codecBuffer|'s size (or 0
+ // if |codecBuffer| is NULL).
OMXBuffer(const sp<MediaCodecBuffer> &codecBuffer);
+ // Constructs a buffer of type kBufferTypePreset with specified mRangeOffset
+ // and mRangeLength.
+ OMXBuffer(OMX_U32 rangeOffset, OMX_U32 rangeLength);
+
// Constructs a buffer of type kBufferTypeSharedMem.
OMXBuffer(const sp<IMemory> &mem);
@@ -67,6 +74,9 @@
// Constructs a buffer of type kBufferTypeNativeHandle.
OMXBuffer(const sp<NativeHandle> &handle);
+ // Constructs a buffer of type kBufferTypeHidlMemory.
+ OMXBuffer(const hidl_memory &hidlMemory);
+
// Parcelling/Un-parcelling.
status_t writeToParcel(Parcel *parcel) const;
status_t readFromParcel(const Parcel *parcel);
@@ -88,8 +98,9 @@
kBufferTypeInvalid = 0,
kBufferTypePreset,
kBufferTypeSharedMem,
- kBufferTypeANWBuffer,
+ kBufferTypeANWBuffer, // Use only for non-Treble
kBufferTypeNativeHandle,
+ kBufferTypeHidlMemory // Mapped to CodecBuffer::Type::SHARED_MEM.
};
BufferType mBufferType;
@@ -109,6 +120,9 @@
// kBufferTypeNativeHandle
sp<NativeHandle> mNativeHandle;
+ // kBufferTypeHidlMemory
+ hidl_memory mHidlMemory;
+
// Move assignment
OMXBuffer &operator=(OMXBuffer&&);