Merge change If68c168d into eclair-mr2

* changes:
  Some cleanup of OMXCodec code, make sure to ignore 0-length output buffers in the metadata retriever.
diff --git a/include/media/stagefright/OMXCodec.h b/include/media/stagefright/OMXCodec.h
index ec043a9..dfc902e 100644
--- a/include/media/stagefright/OMXCodec.h
+++ b/include/media/stagefright/OMXCodec.h
@@ -106,7 +106,6 @@
 
     sp<IOMX> mOMX;
     IOMX::node_id mNode;
-    sp<OMXCodecObserver> mObserver;
     uint32_t mQuirks;
     bool mIsEncoder;
     char *mMIME;
diff --git a/media/libmediaplayerservice/StagefrightMetadataRetriever.cpp b/media/libmediaplayerservice/StagefrightMetadataRetriever.cpp
index 0e92162..c069128 100644
--- a/media/libmediaplayerservice/StagefrightMetadataRetriever.cpp
+++ b/media/libmediaplayerservice/StagefrightMetadataRetriever.cpp
@@ -129,11 +129,19 @@
 
     decoder->start();
 
-    MediaBuffer *buffer;
+    // Read one output buffer, ignore format change notifications
+    // and spurious empty buffers.
+
+    MediaBuffer *buffer = NULL;
     status_t err;
     do {
+        if (buffer != NULL) {
+            buffer->release();
+            buffer = NULL;
+        }
         err = decoder->read(&buffer);
-    } while (err == INFO_FORMAT_CHANGED);
+    } while (err == INFO_FORMAT_CHANGED
+             || (buffer != NULL && buffer->range_length() == 0));
 
     if (err != OK) {
         CHECK_EQ(buffer, NULL);
diff --git a/media/libstagefright/OMXCodec.cpp b/media/libstagefright/OMXCodec.cpp
index 264271d..d692820 100644
--- a/media/libstagefright/OMXCodec.cpp
+++ b/media/libstagefright/OMXCodec.cpp
@@ -1065,8 +1065,8 @@
         return false;
     }
 
-    if (from.get() == NULL && to.get() != NULL
-        || from.get() != NULL && to.get() == NULL) {
+    if ((from.get() == NULL && to.get() != NULL)
+        || (from.get() != NULL && to.get() == NULL)) {
         return true;
     }