Loading include/media/IOMX.h +0 −18 Original line number Diff line number Diff line Loading @@ -25,8 +25,6 @@ #include <OMX_Core.h> #include <OMX_Video.h> #define IOMX_USES_SOCKETS 0 namespace android { class IMemory; Loading @@ -41,12 +39,6 @@ public: typedef void *buffer_id; typedef void *node_id; #if IOMX_USES_SOCKETS // If successful, returns a socket descriptor used for further // communication. Caller assumes ownership of "*sd". virtual status_t connect(int *sd) = 0; #endif virtual status_t list_nodes(List<String8> *list) = 0; virtual status_t allocate_node(const char *name, node_id *node) = 0; Loading Loading @@ -78,7 +70,6 @@ public: virtual status_t free_buffer( node_id node, OMX_U32 port_index, buffer_id buffer) = 0; #if !IOMX_USES_SOCKETS virtual status_t observe_node( node_id node, const sp<IOMXObserver> &observer) = 0; Loading @@ -89,7 +80,6 @@ public: buffer_id buffer, OMX_U32 range_offset, OMX_U32 range_length, OMX_U32 flags, OMX_TICKS timestamp) = 0; #endif virtual sp<IOMXRenderer> createRenderer( const sp<ISurface> &surface, Loading @@ -105,14 +95,6 @@ struct omx_message { EMPTY_BUFFER_DONE, FILL_BUFFER_DONE, #if IOMX_USES_SOCKETS EMPTY_BUFFER, FILL_BUFFER, SEND_COMMAND, DISCONNECT, DISCONNECTED, #endif // reserved for OMXDecoder use. START, INITIAL_FILL_BUFFER, Loading include/media/stagefright/OMXClient.h +0 −18 Original line number Diff line number Diff line Loading @@ -87,32 +87,14 @@ public: status_t registerObserver(IOMX::node_id node, OMXObserver *observer); void unregisterObserver(IOMX::node_id node); status_t fillBuffer(IOMX::node_id node, IOMX::buffer_id buffer); status_t emptyBuffer( IOMX::node_id node, IOMX::buffer_id buffer, OMX_U32 range_offset, OMX_U32 range_length, OMX_U32 flags, OMX_TICKS timestamp); status_t send_command( IOMX::node_id node, OMX_COMMANDTYPE cmd, OMX_S32 param); private: sp<IOMX> mOMX; int mSock; Mutex mLock; pthread_t mThread; KeyedVector<IOMX::node_id, OMXObserver *> mObservers; sp<OMXClientReflector> mReflector; #if IOMX_USES_SOCKETS static void *ThreadWrapper(void *me); void threadEntry(); #endif bool onOMXMessage(const omx_message &msg); OMXClient(const OMXClient &); Loading media/libmedia/IOMX.cpp +0 −43 Original line number Diff line number Diff line Loading @@ -45,23 +45,6 @@ public: : BpInterface<IOMX>(impl) { } #if IOMX_USES_SOCKETS virtual status_t connect(int *sd) { Parcel data, reply; data.writeInterfaceToken(IOMX::getInterfaceDescriptor()); remote()->transact(CONNECT, data, &reply); status_t err = reply.readInt32(); if (err == OK) { *sd = dup(reply.readFileDescriptor()); } else { *sd = -1; } return reply.readInt32(); } #endif virtual status_t list_nodes(List<String8> *list) { list->clear(); Loading Loading @@ -229,7 +212,6 @@ public: return reply.readInt32(); } #if !IOMX_USES_SOCKETS virtual status_t observe_node( node_id node, const sp<IOMXObserver> &observer) { Parcel data, reply; Loading Loading @@ -264,7 +246,6 @@ public: data.writeInt64(timestamp); remote()->transact(EMPTY_BUFFER, data, &reply, IBinder::FLAG_ONEWAY); } #endif virtual sp<IOMXRenderer> createRenderer( const sp<ISurface> &surface, Loading Loading @@ -302,28 +283,6 @@ IMPLEMENT_META_INTERFACE(OMX, "android.hardware.IOMX"); status_t BnOMX::onTransact( uint32_t code, const Parcel &data, Parcel *reply, uint32_t flags) { switch (code) { #if IOMX_USES_SOCKETS case CONNECT: { CHECK_INTERFACE(IOMX, data, reply); int s; status_t err = connect(&s); reply->writeInt32(err); if (err == OK) { assert(s >= 0); reply->writeDupFileDescriptor(s); close(s); s = -1; } else { assert(s == -1); } return NO_ERROR; } #endif case LIST_NODES: { CHECK_INTERFACE(IOMX, data, reply); Loading Loading @@ -495,7 +454,6 @@ status_t BnOMX::onTransact( return NO_ERROR; } #if !IOMX_USES_SOCKETS case OBSERVE_NODE: { CHECK_INTERFACE(IOMX, data, reply); Loading Loading @@ -536,7 +494,6 @@ status_t BnOMX::onTransact( return NO_ERROR; } #endif case CREATE_RENDERER: { Loading media/libstagefright/OMXClient.cpp +5 −151 Original line number Diff line number Diff line Loading @@ -30,8 +30,7 @@ namespace android { OMXClient::OMXClient() : mSock(-1) { OMXClient::OMXClient() { } OMXClient::~OMXClient() { Loading @@ -41,10 +40,6 @@ OMXClient::~OMXClient() { status_t OMXClient::connect() { Mutex::Autolock autoLock(mLock); if (mSock >= 0) { return UNKNOWN_ERROR; } sp<IServiceManager> sm = defaultServiceManager(); sp<IBinder> binder = sm->getService(String16("media.player")); sp<IMediaPlayerService> service = interface_cast<IMediaPlayerService>(binder); Loading @@ -54,152 +49,22 @@ status_t OMXClient::connect() { mOMX = service->createOMX(); assert(mOMX.get() != NULL); #if IOMX_USES_SOCKETS status_t result = mOMX->connect(&mSock); if (result != OK) { mSock = -1; mOMX = NULL; return result; } pthread_attr_t attr; pthread_attr_init(&attr); pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE); int err = pthread_create(&mThread, &attr, ThreadWrapper, this); assert(err == 0); pthread_attr_destroy(&attr); #else mReflector = new OMXClientReflector(this); #endif return OK; } void OMXClient::disconnect() { { Mutex::Autolock autoLock(mLock); if (mSock < 0) { if (mReflector.get() != NULL) { return; } assert(mObservers.isEmpty()); } #if IOMX_USES_SOCKETS omx_message msg; msg.type = omx_message::DISCONNECT; ssize_t n = send(mSock, &msg, sizeof(msg), 0); assert(n > 0 && static_cast<size_t>(n) == sizeof(msg)); void *dummy; pthread_join(mThread, &dummy); #else mReflector->reset(); mReflector.clear(); #endif } #if IOMX_USES_SOCKETS // static void *OMXClient::ThreadWrapper(void *me) { ((OMXClient *)me)->threadEntry(); return NULL; } void OMXClient::threadEntry() { bool done = false; while (!done) { omx_message msg; ssize_t n = recv(mSock, &msg, sizeof(msg), 0); if (n <= 0) { break; } done = onOMXMessage(msg); } Mutex::Autolock autoLock(mLock); close(mSock); mSock = -1; } #endif status_t OMXClient::fillBuffer(IOMX::node_id node, IOMX::buffer_id buffer) { #if !IOMX_USES_SOCKETS mOMX->fill_buffer(node, buffer); #else if (mSock < 0) { return UNKNOWN_ERROR; } omx_message msg; msg.type = omx_message::FILL_BUFFER; msg.u.buffer_data.node = node; msg.u.buffer_data.buffer = buffer; ssize_t n = send(mSock, &msg, sizeof(msg), 0); assert(n > 0 && static_cast<size_t>(n) == sizeof(msg)); #endif return OK; } status_t OMXClient::emptyBuffer( IOMX::node_id node, IOMX::buffer_id buffer, OMX_U32 range_offset, OMX_U32 range_length, OMX_U32 flags, OMX_TICKS timestamp) { #if !IOMX_USES_SOCKETS mOMX->empty_buffer( node, buffer, range_offset, range_length, flags, timestamp); #else if (mSock < 0) { return UNKNOWN_ERROR; } // XXX I don't like all this copying... omx_message msg; msg.type = omx_message::EMPTY_BUFFER; msg.u.extended_buffer_data.node = node; msg.u.extended_buffer_data.buffer = buffer; msg.u.extended_buffer_data.range_offset = range_offset; msg.u.extended_buffer_data.range_length = range_length; msg.u.extended_buffer_data.flags = flags; msg.u.extended_buffer_data.timestamp = timestamp; ssize_t n = send(mSock, &msg, sizeof(msg), 0); assert(n > 0 && static_cast<size_t>(n) == sizeof(msg)); #endif return OK; } status_t OMXClient::send_command( IOMX::node_id node, OMX_COMMANDTYPE cmd, OMX_S32 param) { #if !IOMX_USES_SOCKETS return mOMX->send_command(node, cmd, param); #else if (mSock < 0) { return UNKNOWN_ERROR; } omx_message msg; msg.type = omx_message::SEND_COMMAND; msg.u.send_command_data.node = node; msg.u.send_command_data.cmd = cmd; msg.u.send_command_data.param = param; ssize_t n = send(mSock, &msg, sizeof(msg), 0); assert(n > 0 && static_cast<size_t>(n) == sizeof(msg)); #endif return OK; } status_t OMXClient::registerObserver( Loading @@ -214,9 +79,7 @@ status_t OMXClient::registerObserver( mObservers.add(node, observer); observer->start(); #if !IOMX_USES_SOCKETS mOMX->observe_node(node, mReflector); #endif return OK; } Loading Loading @@ -263,15 +126,6 @@ bool OMXClient::onOMXMessage(const omx_message &msg) { break; } #if IOMX_USES_SOCKETS case omx_message::DISCONNECTED: { LOGV("Disconnected"); done = true; break; } #endif default: LOGE("received unknown omx_message type %d", msg.type); break; Loading media/libstagefright/OMXDecoder.cpp +9 −15 Original line number Diff line number Diff line Loading @@ -1041,8 +1041,7 @@ void OMXDecoder::onEventCmdComplete(OMX_COMMANDTYPE type, OMX_U32 data) { IOMX::buffer_id buffer = *obuffers->begin(); obuffers->erase(obuffers->begin()); status_t err = mClient->fillBuffer(mNode, buffer); assert(err == NO_ERROR); mOMX->fill_buffer(mNode, buffer); } break; Loading Loading @@ -1178,7 +1177,7 @@ void OMXDecoder::onStateChanged(OMX_STATETYPE to) { LOGV("Executing->Idle complete, initiating Idle->Loaded"); status_t err = mClient->send_command(mNode, OMX_CommandStateSet, OMX_StateLoaded); mOMX->send_command(mNode, OMX_CommandStateSet, OMX_StateLoaded); assert(err == NO_ERROR); freePortBuffers(kPortIndexInput); Loading Loading @@ -1215,7 +1214,7 @@ void OMXDecoder::initiateShutdown() { setPortStatus(kPortIndexInput, kPortStatusFlushingToShutdown); setPortStatus(kPortIndexOutput, kPortStatusFlushingToShutdown); } else { err = mClient->send_command( err = mOMX->send_command( mNode, OMX_CommandStateSet, OMX_StateIdle); setPortStatus(kPortIndexInput, kPortStatusShutdown); Loading Loading @@ -1300,14 +1299,14 @@ void OMXDecoder::onFillBufferDone(const omx_message &msg) { default: { if (msg.type == omx_message::INITIAL_FILL_BUFFER) { err = mClient->fillBuffer(mNode, buffer); mOMX->fill_buffer(mNode, buffer); } else { LOGV("[%s] Filled OUTPUT buffer %p, flags=0x%08lx.", mComponentName, buffer, msg.u.extended_buffer_data.flags); onRealFillBufferDone(msg); err = NO_ERROR; } err = NO_ERROR; break; } } Loading Loading @@ -1348,13 +1347,11 @@ void OMXDecoder::onRealEmptyBufferDone(IOMX::buffer_id buffer) { ++mCodecSpecificDataIterator; status_t err = mClient->emptyBuffer( mOMX->empty_buffer( mNode, buffer, 0, range_length, OMX_BUFFERFLAG_ENDOFFRAME | OMX_BUFFERFLAG_CODECCONFIG, 0); assert(err == NO_ERROR); return; } Loading Loading @@ -1385,10 +1382,9 @@ void OMXDecoder::onRealEmptyBufferDone(IOMX::buffer_id buffer) { } if (err != OK) { status_t err2 = mClient->emptyBuffer( mOMX->empty_buffer( mNode, buffer, 0, 0, OMX_BUFFERFLAG_EOS, 0); assert(err2 == NO_ERROR); return; } Loading Loading @@ -1452,9 +1448,8 @@ void OMXDecoder::onRealEmptyBufferDone(IOMX::buffer_id buffer) { LOGV("[%s] Calling EmptyBuffer on buffer %p size:%d flags:0x%08lx", mComponentName, buffer, src_length, flags); status_t err2 = mClient->emptyBuffer( mOMX->empty_buffer( mNode, buffer, 0, src_length, flags, timestamp); assert(err2 == OK); } void OMXDecoder::onRealFillBufferDone(const omx_message &msg) { Loading Loading @@ -1517,8 +1512,7 @@ void OMXDecoder::signalBufferReturned(MediaBuffer *_buffer) { } else { LOGV("[%s] Calling FillBuffer on buffer %p.", mComponentName, buffer); status_t err = mClient->fillBuffer(mNode, buffer); assert(err == NO_ERROR); mOMX->fill_buffer(mNode, buffer); } } Loading Loading
include/media/IOMX.h +0 −18 Original line number Diff line number Diff line Loading @@ -25,8 +25,6 @@ #include <OMX_Core.h> #include <OMX_Video.h> #define IOMX_USES_SOCKETS 0 namespace android { class IMemory; Loading @@ -41,12 +39,6 @@ public: typedef void *buffer_id; typedef void *node_id; #if IOMX_USES_SOCKETS // If successful, returns a socket descriptor used for further // communication. Caller assumes ownership of "*sd". virtual status_t connect(int *sd) = 0; #endif virtual status_t list_nodes(List<String8> *list) = 0; virtual status_t allocate_node(const char *name, node_id *node) = 0; Loading Loading @@ -78,7 +70,6 @@ public: virtual status_t free_buffer( node_id node, OMX_U32 port_index, buffer_id buffer) = 0; #if !IOMX_USES_SOCKETS virtual status_t observe_node( node_id node, const sp<IOMXObserver> &observer) = 0; Loading @@ -89,7 +80,6 @@ public: buffer_id buffer, OMX_U32 range_offset, OMX_U32 range_length, OMX_U32 flags, OMX_TICKS timestamp) = 0; #endif virtual sp<IOMXRenderer> createRenderer( const sp<ISurface> &surface, Loading @@ -105,14 +95,6 @@ struct omx_message { EMPTY_BUFFER_DONE, FILL_BUFFER_DONE, #if IOMX_USES_SOCKETS EMPTY_BUFFER, FILL_BUFFER, SEND_COMMAND, DISCONNECT, DISCONNECTED, #endif // reserved for OMXDecoder use. START, INITIAL_FILL_BUFFER, Loading
include/media/stagefright/OMXClient.h +0 −18 Original line number Diff line number Diff line Loading @@ -87,32 +87,14 @@ public: status_t registerObserver(IOMX::node_id node, OMXObserver *observer); void unregisterObserver(IOMX::node_id node); status_t fillBuffer(IOMX::node_id node, IOMX::buffer_id buffer); status_t emptyBuffer( IOMX::node_id node, IOMX::buffer_id buffer, OMX_U32 range_offset, OMX_U32 range_length, OMX_U32 flags, OMX_TICKS timestamp); status_t send_command( IOMX::node_id node, OMX_COMMANDTYPE cmd, OMX_S32 param); private: sp<IOMX> mOMX; int mSock; Mutex mLock; pthread_t mThread; KeyedVector<IOMX::node_id, OMXObserver *> mObservers; sp<OMXClientReflector> mReflector; #if IOMX_USES_SOCKETS static void *ThreadWrapper(void *me); void threadEntry(); #endif bool onOMXMessage(const omx_message &msg); OMXClient(const OMXClient &); Loading
media/libmedia/IOMX.cpp +0 −43 Original line number Diff line number Diff line Loading @@ -45,23 +45,6 @@ public: : BpInterface<IOMX>(impl) { } #if IOMX_USES_SOCKETS virtual status_t connect(int *sd) { Parcel data, reply; data.writeInterfaceToken(IOMX::getInterfaceDescriptor()); remote()->transact(CONNECT, data, &reply); status_t err = reply.readInt32(); if (err == OK) { *sd = dup(reply.readFileDescriptor()); } else { *sd = -1; } return reply.readInt32(); } #endif virtual status_t list_nodes(List<String8> *list) { list->clear(); Loading Loading @@ -229,7 +212,6 @@ public: return reply.readInt32(); } #if !IOMX_USES_SOCKETS virtual status_t observe_node( node_id node, const sp<IOMXObserver> &observer) { Parcel data, reply; Loading Loading @@ -264,7 +246,6 @@ public: data.writeInt64(timestamp); remote()->transact(EMPTY_BUFFER, data, &reply, IBinder::FLAG_ONEWAY); } #endif virtual sp<IOMXRenderer> createRenderer( const sp<ISurface> &surface, Loading Loading @@ -302,28 +283,6 @@ IMPLEMENT_META_INTERFACE(OMX, "android.hardware.IOMX"); status_t BnOMX::onTransact( uint32_t code, const Parcel &data, Parcel *reply, uint32_t flags) { switch (code) { #if IOMX_USES_SOCKETS case CONNECT: { CHECK_INTERFACE(IOMX, data, reply); int s; status_t err = connect(&s); reply->writeInt32(err); if (err == OK) { assert(s >= 0); reply->writeDupFileDescriptor(s); close(s); s = -1; } else { assert(s == -1); } return NO_ERROR; } #endif case LIST_NODES: { CHECK_INTERFACE(IOMX, data, reply); Loading Loading @@ -495,7 +454,6 @@ status_t BnOMX::onTransact( return NO_ERROR; } #if !IOMX_USES_SOCKETS case OBSERVE_NODE: { CHECK_INTERFACE(IOMX, data, reply); Loading Loading @@ -536,7 +494,6 @@ status_t BnOMX::onTransact( return NO_ERROR; } #endif case CREATE_RENDERER: { Loading
media/libstagefright/OMXClient.cpp +5 −151 Original line number Diff line number Diff line Loading @@ -30,8 +30,7 @@ namespace android { OMXClient::OMXClient() : mSock(-1) { OMXClient::OMXClient() { } OMXClient::~OMXClient() { Loading @@ -41,10 +40,6 @@ OMXClient::~OMXClient() { status_t OMXClient::connect() { Mutex::Autolock autoLock(mLock); if (mSock >= 0) { return UNKNOWN_ERROR; } sp<IServiceManager> sm = defaultServiceManager(); sp<IBinder> binder = sm->getService(String16("media.player")); sp<IMediaPlayerService> service = interface_cast<IMediaPlayerService>(binder); Loading @@ -54,152 +49,22 @@ status_t OMXClient::connect() { mOMX = service->createOMX(); assert(mOMX.get() != NULL); #if IOMX_USES_SOCKETS status_t result = mOMX->connect(&mSock); if (result != OK) { mSock = -1; mOMX = NULL; return result; } pthread_attr_t attr; pthread_attr_init(&attr); pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE); int err = pthread_create(&mThread, &attr, ThreadWrapper, this); assert(err == 0); pthread_attr_destroy(&attr); #else mReflector = new OMXClientReflector(this); #endif return OK; } void OMXClient::disconnect() { { Mutex::Autolock autoLock(mLock); if (mSock < 0) { if (mReflector.get() != NULL) { return; } assert(mObservers.isEmpty()); } #if IOMX_USES_SOCKETS omx_message msg; msg.type = omx_message::DISCONNECT; ssize_t n = send(mSock, &msg, sizeof(msg), 0); assert(n > 0 && static_cast<size_t>(n) == sizeof(msg)); void *dummy; pthread_join(mThread, &dummy); #else mReflector->reset(); mReflector.clear(); #endif } #if IOMX_USES_SOCKETS // static void *OMXClient::ThreadWrapper(void *me) { ((OMXClient *)me)->threadEntry(); return NULL; } void OMXClient::threadEntry() { bool done = false; while (!done) { omx_message msg; ssize_t n = recv(mSock, &msg, sizeof(msg), 0); if (n <= 0) { break; } done = onOMXMessage(msg); } Mutex::Autolock autoLock(mLock); close(mSock); mSock = -1; } #endif status_t OMXClient::fillBuffer(IOMX::node_id node, IOMX::buffer_id buffer) { #if !IOMX_USES_SOCKETS mOMX->fill_buffer(node, buffer); #else if (mSock < 0) { return UNKNOWN_ERROR; } omx_message msg; msg.type = omx_message::FILL_BUFFER; msg.u.buffer_data.node = node; msg.u.buffer_data.buffer = buffer; ssize_t n = send(mSock, &msg, sizeof(msg), 0); assert(n > 0 && static_cast<size_t>(n) == sizeof(msg)); #endif return OK; } status_t OMXClient::emptyBuffer( IOMX::node_id node, IOMX::buffer_id buffer, OMX_U32 range_offset, OMX_U32 range_length, OMX_U32 flags, OMX_TICKS timestamp) { #if !IOMX_USES_SOCKETS mOMX->empty_buffer( node, buffer, range_offset, range_length, flags, timestamp); #else if (mSock < 0) { return UNKNOWN_ERROR; } // XXX I don't like all this copying... omx_message msg; msg.type = omx_message::EMPTY_BUFFER; msg.u.extended_buffer_data.node = node; msg.u.extended_buffer_data.buffer = buffer; msg.u.extended_buffer_data.range_offset = range_offset; msg.u.extended_buffer_data.range_length = range_length; msg.u.extended_buffer_data.flags = flags; msg.u.extended_buffer_data.timestamp = timestamp; ssize_t n = send(mSock, &msg, sizeof(msg), 0); assert(n > 0 && static_cast<size_t>(n) == sizeof(msg)); #endif return OK; } status_t OMXClient::send_command( IOMX::node_id node, OMX_COMMANDTYPE cmd, OMX_S32 param) { #if !IOMX_USES_SOCKETS return mOMX->send_command(node, cmd, param); #else if (mSock < 0) { return UNKNOWN_ERROR; } omx_message msg; msg.type = omx_message::SEND_COMMAND; msg.u.send_command_data.node = node; msg.u.send_command_data.cmd = cmd; msg.u.send_command_data.param = param; ssize_t n = send(mSock, &msg, sizeof(msg), 0); assert(n > 0 && static_cast<size_t>(n) == sizeof(msg)); #endif return OK; } status_t OMXClient::registerObserver( Loading @@ -214,9 +79,7 @@ status_t OMXClient::registerObserver( mObservers.add(node, observer); observer->start(); #if !IOMX_USES_SOCKETS mOMX->observe_node(node, mReflector); #endif return OK; } Loading Loading @@ -263,15 +126,6 @@ bool OMXClient::onOMXMessage(const omx_message &msg) { break; } #if IOMX_USES_SOCKETS case omx_message::DISCONNECTED: { LOGV("Disconnected"); done = true; break; } #endif default: LOGE("received unknown omx_message type %d", msg.type); break; Loading
media/libstagefright/OMXDecoder.cpp +9 −15 Original line number Diff line number Diff line Loading @@ -1041,8 +1041,7 @@ void OMXDecoder::onEventCmdComplete(OMX_COMMANDTYPE type, OMX_U32 data) { IOMX::buffer_id buffer = *obuffers->begin(); obuffers->erase(obuffers->begin()); status_t err = mClient->fillBuffer(mNode, buffer); assert(err == NO_ERROR); mOMX->fill_buffer(mNode, buffer); } break; Loading Loading @@ -1178,7 +1177,7 @@ void OMXDecoder::onStateChanged(OMX_STATETYPE to) { LOGV("Executing->Idle complete, initiating Idle->Loaded"); status_t err = mClient->send_command(mNode, OMX_CommandStateSet, OMX_StateLoaded); mOMX->send_command(mNode, OMX_CommandStateSet, OMX_StateLoaded); assert(err == NO_ERROR); freePortBuffers(kPortIndexInput); Loading Loading @@ -1215,7 +1214,7 @@ void OMXDecoder::initiateShutdown() { setPortStatus(kPortIndexInput, kPortStatusFlushingToShutdown); setPortStatus(kPortIndexOutput, kPortStatusFlushingToShutdown); } else { err = mClient->send_command( err = mOMX->send_command( mNode, OMX_CommandStateSet, OMX_StateIdle); setPortStatus(kPortIndexInput, kPortStatusShutdown); Loading Loading @@ -1300,14 +1299,14 @@ void OMXDecoder::onFillBufferDone(const omx_message &msg) { default: { if (msg.type == omx_message::INITIAL_FILL_BUFFER) { err = mClient->fillBuffer(mNode, buffer); mOMX->fill_buffer(mNode, buffer); } else { LOGV("[%s] Filled OUTPUT buffer %p, flags=0x%08lx.", mComponentName, buffer, msg.u.extended_buffer_data.flags); onRealFillBufferDone(msg); err = NO_ERROR; } err = NO_ERROR; break; } } Loading Loading @@ -1348,13 +1347,11 @@ void OMXDecoder::onRealEmptyBufferDone(IOMX::buffer_id buffer) { ++mCodecSpecificDataIterator; status_t err = mClient->emptyBuffer( mOMX->empty_buffer( mNode, buffer, 0, range_length, OMX_BUFFERFLAG_ENDOFFRAME | OMX_BUFFERFLAG_CODECCONFIG, 0); assert(err == NO_ERROR); return; } Loading Loading @@ -1385,10 +1382,9 @@ void OMXDecoder::onRealEmptyBufferDone(IOMX::buffer_id buffer) { } if (err != OK) { status_t err2 = mClient->emptyBuffer( mOMX->empty_buffer( mNode, buffer, 0, 0, OMX_BUFFERFLAG_EOS, 0); assert(err2 == NO_ERROR); return; } Loading Loading @@ -1452,9 +1448,8 @@ void OMXDecoder::onRealEmptyBufferDone(IOMX::buffer_id buffer) { LOGV("[%s] Calling EmptyBuffer on buffer %p size:%d flags:0x%08lx", mComponentName, buffer, src_length, flags); status_t err2 = mClient->emptyBuffer( mOMX->empty_buffer( mNode, buffer, 0, src_length, flags, timestamp); assert(err2 == OK); } void OMXDecoder::onRealFillBufferDone(const omx_message &msg) { Loading Loading @@ -1517,8 +1512,7 @@ void OMXDecoder::signalBufferReturned(MediaBuffer *_buffer) { } else { LOGV("[%s] Calling FillBuffer on buffer %p.", mComponentName, buffer); status_t err = mClient->fillBuffer(mNode, buffer); assert(err == NO_ERROR); mOMX->fill_buffer(mNode, buffer); } } Loading