IOMX: remove nodeBinder from allocateNode
This is no longer needed, the IOMXNode is already a binder,
we can just link to that.
bug: 31399200
Change-Id: Ic5dd5330dab448ae126aaec694f71f22857b3169
diff --git a/include/media/IOMX.h b/include/media/IOMX.h
index f413fd7..54fa85f 100644
--- a/include/media/IOMX.h
+++ b/include/media/IOMX.h
@@ -63,7 +63,7 @@
virtual status_t allocateNode(
const char *name, const sp<IOMXObserver> &observer,
- sp<IBinder> *nodeBinder, sp<IOMXNode> *omxNode) = 0;
+ sp<IOMXNode> *omxNode) = 0;
virtual status_t createPersistentInputSurface(
sp<IGraphicBufferProducer> *bufferProducer,
diff --git a/include/media/stagefright/ACodec.h b/include/media/stagefright/ACodec.h
index e83a8f2..cc1e1d0 100644
--- a/include/media/stagefright/ACodec.h
+++ b/include/media/stagefright/ACodec.h
@@ -245,7 +245,6 @@
uint32_t mQuirks;
sp<IOMX> mOMX;
sp<IOMXNode> mOMXNode;
- sp<IBinder> mNodeBinder;
int32_t mNodeGeneration;
sp<MemoryDealer> mDealer[2];
diff --git a/media/libmedia/IOMX.cpp b/media/libmedia/IOMX.cpp
index e25e56c..5063504 100644
--- a/media/libmedia/IOMX.cpp
+++ b/media/libmedia/IOMX.cpp
@@ -99,7 +99,7 @@
virtual status_t allocateNode(
const char *name, const sp<IOMXObserver> &observer,
- sp<IBinder> *nodeBinder, sp<IOMXNode> *omxNode) {
+ sp<IOMXNode> *omxNode) {
Parcel data, reply;
data.writeInterfaceToken(IOMX::getInterfaceDescriptor());
data.writeCString(name);
@@ -109,9 +109,6 @@
status_t err = reply.readInt32();
if (err == OK) {
*omxNode = IOMXNode::asInterface(reply.readStrongBinder());
- if (nodeBinder != NULL) {
- *nodeBinder = remote();
- }
} else {
omxNode->clear();
}
@@ -671,8 +668,7 @@
sp<IOMXNode> omxNode;
- status_t err = allocateNode(
- name, observer, NULL /* nodeBinder */, &omxNode);
+ status_t err = allocateNode(name, observer, &omxNode);
reply->writeInt32(err);
if (err == OK) {
diff --git a/media/libstagefright/ACodec.cpp b/media/libstagefright/ACodec.cpp
index 162ae22..e4047c8 100644
--- a/media/libstagefright/ACodec.cpp
+++ b/media/libstagefright/ACodec.cpp
@@ -6221,7 +6221,10 @@
ALOGV("Now uninitialized");
if (mDeathNotifier != NULL) {
- mCodec->mNodeBinder->unlinkToDeath(mDeathNotifier);
+ if (mCodec->mOMXNode != NULL) {
+ sp<IBinder> binder = IInterface::asBinder(mCodec->mOMXNode);
+ binder->unlinkToDeath(mDeathNotifier);
+ }
mDeathNotifier.clear();
}
@@ -6359,7 +6362,7 @@
pid_t tid = gettid();
int prevPriority = androidGetThreadPriority(tid);
androidSetThreadPriority(tid, ANDROID_PRIORITY_FOREGROUND);
- err = omx->allocateNode(componentName.c_str(), observer, &mCodec->mNodeBinder, &omxNode);
+ err = omx->allocateNode(componentName.c_str(), observer, &omxNode);
androidSetThreadPriority(tid, prevPriority);
if (err == OK) {
@@ -6384,8 +6387,7 @@
}
mDeathNotifier = new DeathNotifier(notify);
- if (mCodec->mNodeBinder == NULL ||
- mCodec->mNodeBinder->linkToDeath(mDeathNotifier) != OK) {
+ if (IInterface::asBinder(omxNode)->linkToDeath(mDeathNotifier) != OK) {
// This was a local binder, if it dies so do we, we won't care
// about any notifications in the afterlife.
mDeathNotifier.clear();
@@ -7798,7 +7800,7 @@
sp<CodecObserver> observer = new CodecObserver;
sp<IOMXNode> omxNode;
- err = omx->allocateNode(name.c_str(), observer, NULL, &omxNode);
+ err = omx->allocateNode(name.c_str(), observer, &omxNode);
if (err != OK) {
client.disconnect();
return err;
diff --git a/media/libstagefright/include/OMX.h b/media/libstagefright/include/OMX.h
index 1ef180f..2e62806 100644
--- a/media/libstagefright/include/OMX.h
+++ b/media/libstagefright/include/OMX.h
@@ -35,7 +35,7 @@
virtual status_t allocateNode(
const char *name, const sp<IOMXObserver> &observer,
- sp<IBinder> *nodeBinder, sp<IOMXNode> *omxNode);
+ sp<IOMXNode> *omxNode);
virtual status_t createPersistentInputSurface(
sp<IGraphicBufferProducer> *bufferProducer,
diff --git a/media/libstagefright/omx/OMX.cpp b/media/libstagefright/omx/OMX.cpp
index 81e03ba..70b9c17 100644
--- a/media/libstagefright/omx/OMX.cpp
+++ b/media/libstagefright/omx/OMX.cpp
@@ -96,13 +96,10 @@
status_t OMX::allocateNode(
const char *name, const sp<IOMXObserver> &observer,
- sp<IBinder> *nodeBinder, sp<IOMXNode> *omxNode) {
+ sp<IOMXNode> *omxNode) {
Mutex::Autolock autoLock(mLock);
omxNode->clear();
- if (nodeBinder != NULL) {
- *nodeBinder = NULL;
- }
if (mLiveNodes.size() == kMaxNodeInstances) {
return NO_MEMORY;
diff --git a/media/libstagefright/omx/tests/OMXHarness.cpp b/media/libstagefright/omx/tests/OMXHarness.cpp
index 277af63..a940c51 100644
--- a/media/libstagefright/omx/tests/OMXHarness.cpp
+++ b/media/libstagefright/omx/tests/OMXHarness.cpp
@@ -283,8 +283,7 @@
sp<CodecObserver> observer = new CodecObserver(this, ++mCurGeneration);
- status_t err =
- mOMX->allocateNode(componentName, observer, NULL, &mOMXNode);
+ status_t err = mOMX->allocateNode(componentName, observer, &mOMXNode);
EXPECT_SUCCESS(err, "allocateNode");
NodeReaper reaper(this, mOMXNode);