summaryrefslogtreecommitdiffstats
path: root/media/libmedia
diff options
context:
space:
mode:
authorDave Burke <daveburke@google.com>2011-10-19 22:38:45 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2011-10-19 22:38:45 -0700
commit1d2acaffde56ad79e6e96f228d7857863462397c (patch)
treee5e05f30fbca34668d58ff6e6b3199a4ab947e3b /media/libmedia
parente6a823c276302b0c499d7a39956c1b731f23dd4c (diff)
parent55f4bc5c3d1acfaa735b8b19cf34b6b68f6cfcca (diff)
downloadframeworks_av-1d2acaffde56ad79e6e96f228d7857863462397c.zip
frameworks_av-1d2acaffde56ad79e6e96f228d7857863462397c.tar.gz
frameworks_av-1d2acaffde56ad79e6e96f228d7857863462397c.tar.bz2
am 23d64420: Merge "Stagefright: idle OMX after ANW errors" into ics-mr0
* commit '23d644202a44383bf008ff86f6faa3ea7e447290': Stagefright: idle OMX after ANW errors
Diffstat (limited to 'media/libmedia')
-rw-r--r--media/libmedia/IOMX.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/media/libmedia/IOMX.cpp b/media/libmedia/IOMX.cpp
index d3aab08..7d2fbce 100644
--- a/media/libmedia/IOMX.cpp
+++ b/media/libmedia/IOMX.cpp
@@ -38,6 +38,7 @@ enum {
SET_PARAMETER,
GET_CONFIG,
SET_CONFIG,
+ GET_STATE,
ENABLE_GRAPHIC_BUFFERS,
USE_BUFFER,
USE_GRAPHIC_BUFFER,
@@ -198,6 +199,17 @@ public:
return reply.readInt32();
}
+ virtual status_t getState(
+ node_id node, OMX_STATETYPE* state) {
+ Parcel data, reply;
+ data.writeInterfaceToken(IOMX::getInterfaceDescriptor());
+ data.writeIntPtr((intptr_t)node);
+ remote()->transact(GET_STATE, data, &reply);
+
+ *state = static_cast<OMX_STATETYPE>(reply.readInt32());
+ return reply.readInt32();
+ }
+
virtual status_t enableGraphicBuffers(
node_id node, OMX_U32 port_index, OMX_BOOL enable) {
Parcel data, reply;
@@ -524,6 +536,20 @@ status_t BnOMX::onTransact(
return NO_ERROR;
}
+ case GET_STATE:
+ {
+ CHECK_INTERFACE(IOMX, data, reply);
+
+ node_id node = (void*)data.readIntPtr();
+ OMX_STATETYPE state = OMX_StateInvalid;
+
+ status_t err = getState(node, &state);
+ reply->writeInt32(state);
+ reply->writeInt32(err);
+
+ return NO_ERROR;
+ }
+
case ENABLE_GRAPHIC_BUFFERS:
{
CHECK_INTERFACE(IOMX, data, reply);