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);