Fix bufferpool

Fix bufferpool carsh sporadically on invalidation. use android::sp
instead of android::wp for caching IObserver hidl interface.

Bug: 112203066
Change-Id: I69aafa11cc617f9ae36cce88283a3294fcab9bbd
diff --git a/media/bufferpool/2.0/BufferPoolClient.cpp b/media/bufferpool/2.0/BufferPoolClient.cpp
index c80beff..5564a13 100644
--- a/media/bufferpool/2.0/BufferPoolClient.cpp
+++ b/media/bufferpool/2.0/BufferPoolClient.cpp
@@ -644,7 +644,7 @@
         } else if (messageId != 0) {
             // messages are drained.
             if (isMessageLater(messageId, mReleasing.mInvalidateId)) {
-                mReleasing.mInvalidateId = lastMsgId;
+                mReleasing.mInvalidateId = messageId;
                 mReleasing.mInvalidateAck = true;
             }
         }
@@ -653,6 +653,9 @@
             mReleasing.mStatusChannel->postBufferInvalidateAck(
                     mConnectionId,
                     mReleasing.mInvalidateId, &mReleasing.mInvalidateAck);
+            ALOGV("client %lld invalidateion ack (%d) %u",
+                (long long)mConnectionId,
+                mReleasing.mInvalidateAck, mReleasing.mInvalidateId);
         }
     }
     return cleared;
@@ -808,6 +811,7 @@
 }
 
 void BufferPoolClient::receiveInvalidation(uint32_t msgId) {
+    ALOGV("bufferpool client recv inv %u", msgId);
     if (isValid()) {
         mImpl->receiveInvalidation(msgId);
     }