Loading include/media/IOMX.h +4 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ #define ANDROID_IOMX_H_ #include <binder/IInterface.h> #include <binder/MemoryHeapBase.h> #include <utils/List.h> #include <utils/String8.h> Loading Loading @@ -143,6 +144,7 @@ struct omx_message { EVENT, EMPTY_BUFFER_DONE, FILL_BUFFER_DONE, REGISTER_BUFFERS } type; Loading Loading @@ -170,6 +172,7 @@ struct omx_message { OMX_TICKS timestamp; OMX_PTR platform_private; OMX_PTR data_ptr; OMX_U32 pmem_offset; } extended_buffer_data; } u; Loading @@ -180,6 +183,7 @@ public: DECLARE_META_INTERFACE(OMXObserver); virtual void onMessage(const omx_message &msg) = 0; virtual void registerBuffers(const sp<IMemoryHeap> &mem) = 0; }; class IOMXRenderer : public IInterface { Loading include/media/stagefright/MediaBuffer.h +1 −0 Original line number Diff line number Diff line Loading @@ -55,6 +55,7 @@ public: // Increments the reference count. void add_ref(); void setData(void *); void *data() const; size_t size() const; Loading include/media/stagefright/OMXCodec.h +4 −1 Original line number Diff line number Diff line Loading @@ -60,6 +60,8 @@ struct OMXCodec : public MediaSource, virtual status_t pause(); void registerBuffers(const sp<IMemoryHeap> &mem); // from MediaBufferObserver virtual void signalBufferReturned(MediaBuffer *buffer); Loading Loading @@ -116,6 +118,7 @@ private: kOutputBuffersAreUnreadable = 8192, kStoreMetaDataInInputVideoBuffers = 16384, kCanNotSetVideoParameters = 32768, kDoesNotRequireMemcpyOnOutputPort = 65536 }; struct BufferInfo { Loading Loading @@ -143,7 +146,7 @@ private: sp<MediaSource> mSource; Vector<CodecSpecificData *> mCodecSpecificData; size_t mCodecSpecificDataIndex; sp<IMemoryHeap> mPmemInfo; sp<MemoryDealer> mDealer[2]; State mState; Loading media/libmedia/IOMX.cpp +15 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ enum { CREATE_RENDERER, OBSERVER_ON_MSG, RENDERER_RENDER, REGISTER_BUFFERS }; sp<IOMXRenderer> IOMX::createRenderer( Loading Loading @@ -721,6 +722,13 @@ public: remote()->transact(OBSERVER_ON_MSG, data, &reply, IBinder::FLAG_ONEWAY); } virtual void registerBuffers(const sp<IMemoryHeap> &mem) { Parcel data, reply; data.writeInterfaceToken(IOMXObserver::getInterfaceDescriptor()); data.writeStrongBinder(mem->asBinder()); remote()->transact(REGISTER_BUFFERS, data, &reply); } }; IMPLEMENT_META_INTERFACE(OMXObserver, "android.hardware.IOMXObserver"); Loading @@ -740,6 +748,13 @@ status_t BnOMXObserver::onTransact( return NO_ERROR; } case REGISTER_BUFFERS: { CHECK_INTERFACE(IOMXObserver, data, reply); sp<IMemoryHeap> mem = interface_cast<IMemoryHeap>(data.readStrongBinder()); registerBuffers(mem); } default: return BBinder::onTransact(code, data, reply, flags); Loading media/libstagefright/MediaBuffer.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -91,6 +91,10 @@ void MediaBuffer::add_ref() { atomic_add(&mRefCount, 1); } void MediaBuffer::setData(void *data) { mData = data; } void *MediaBuffer::data() const { return mData; } Loading Loading
include/media/IOMX.h +4 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ #define ANDROID_IOMX_H_ #include <binder/IInterface.h> #include <binder/MemoryHeapBase.h> #include <utils/List.h> #include <utils/String8.h> Loading Loading @@ -143,6 +144,7 @@ struct omx_message { EVENT, EMPTY_BUFFER_DONE, FILL_BUFFER_DONE, REGISTER_BUFFERS } type; Loading Loading @@ -170,6 +172,7 @@ struct omx_message { OMX_TICKS timestamp; OMX_PTR platform_private; OMX_PTR data_ptr; OMX_U32 pmem_offset; } extended_buffer_data; } u; Loading @@ -180,6 +183,7 @@ public: DECLARE_META_INTERFACE(OMXObserver); virtual void onMessage(const omx_message &msg) = 0; virtual void registerBuffers(const sp<IMemoryHeap> &mem) = 0; }; class IOMXRenderer : public IInterface { Loading
include/media/stagefright/MediaBuffer.h +1 −0 Original line number Diff line number Diff line Loading @@ -55,6 +55,7 @@ public: // Increments the reference count. void add_ref(); void setData(void *); void *data() const; size_t size() const; Loading
include/media/stagefright/OMXCodec.h +4 −1 Original line number Diff line number Diff line Loading @@ -60,6 +60,8 @@ struct OMXCodec : public MediaSource, virtual status_t pause(); void registerBuffers(const sp<IMemoryHeap> &mem); // from MediaBufferObserver virtual void signalBufferReturned(MediaBuffer *buffer); Loading Loading @@ -116,6 +118,7 @@ private: kOutputBuffersAreUnreadable = 8192, kStoreMetaDataInInputVideoBuffers = 16384, kCanNotSetVideoParameters = 32768, kDoesNotRequireMemcpyOnOutputPort = 65536 }; struct BufferInfo { Loading Loading @@ -143,7 +146,7 @@ private: sp<MediaSource> mSource; Vector<CodecSpecificData *> mCodecSpecificData; size_t mCodecSpecificDataIndex; sp<IMemoryHeap> mPmemInfo; sp<MemoryDealer> mDealer[2]; State mState; Loading
media/libmedia/IOMX.cpp +15 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ enum { CREATE_RENDERER, OBSERVER_ON_MSG, RENDERER_RENDER, REGISTER_BUFFERS }; sp<IOMXRenderer> IOMX::createRenderer( Loading Loading @@ -721,6 +722,13 @@ public: remote()->transact(OBSERVER_ON_MSG, data, &reply, IBinder::FLAG_ONEWAY); } virtual void registerBuffers(const sp<IMemoryHeap> &mem) { Parcel data, reply; data.writeInterfaceToken(IOMXObserver::getInterfaceDescriptor()); data.writeStrongBinder(mem->asBinder()); remote()->transact(REGISTER_BUFFERS, data, &reply); } }; IMPLEMENT_META_INTERFACE(OMXObserver, "android.hardware.IOMXObserver"); Loading @@ -740,6 +748,13 @@ status_t BnOMXObserver::onTransact( return NO_ERROR; } case REGISTER_BUFFERS: { CHECK_INTERFACE(IOMXObserver, data, reply); sp<IMemoryHeap> mem = interface_cast<IMemoryHeap>(data.readStrongBinder()); registerBuffers(mem); } default: return BBinder::onTransact(code, data, reply, flags); Loading
media/libstagefright/MediaBuffer.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -91,6 +91,10 @@ void MediaBuffer::add_ref() { atomic_add(&mRefCount, 1); } void MediaBuffer::setData(void *data) { mData = data; } void *MediaBuffer::data() const { return mData; } Loading