summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/OMXClient.cpp
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2009-08-07 13:45:06 -0700
committerAndreas Huber <andih@google.com>2009-08-10 10:29:40 -0700
commit408b8e1073385d0d09bb96b9952f84731a0b4aeb (patch)
treeebd01cb86b2e91ec91ee6b20907663cb514f511c /media/libstagefright/OMXClient.cpp
parent47f59cfe40b0ebb3afd6c39f97dcd1eac2e966f7 (diff)
downloadframeworks_av-408b8e1073385d0d09bb96b9952f84731a0b4aeb.zip
frameworks_av-408b8e1073385d0d09bb96b9952f84731a0b4aeb.tar.gz
frameworks_av-408b8e1073385d0d09bb96b9952f84731a0b4aeb.tar.bz2
Deprecate/remove now unused socketpair ipc communication in favour of exclusive binder use.
Diffstat (limited to 'media/libstagefright/OMXClient.cpp')
-rw-r--r--media/libstagefright/OMXClient.cpp156
1 files changed, 5 insertions, 151 deletions
diff --git a/media/libstagefright/OMXClient.cpp b/media/libstagefright/OMXClient.cpp
index 1bc8a44..3e7cf3c 100644
--- a/media/libstagefright/OMXClient.cpp
+++ b/media/libstagefright/OMXClient.cpp
@@ -30,8 +30,7 @@
namespace android {
-OMXClient::OMXClient()
- : mSock(-1) {
+OMXClient::OMXClient() {
}
OMXClient::~OMXClient() {
@@ -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);
@@ -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) {
- return;
- }
+ Mutex::Autolock autoLock(mLock);
- assert(mObservers.isEmpty());
+ if (mReflector.get() != NULL) {
+ return;
}
-#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));
+ assert(mObservers.isEmpty());
- 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(
@@ -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;
}
@@ -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;