diff --git a/include/media/stagefright/OMXCodec.h b/include/media/stagefright/OMXCodec.h index ec043a91602ab..dfc902e12c33f 100644 --- a/include/media/stagefright/OMXCodec.h +++ b/include/media/stagefright/OMXCodec.h @@ -106,7 +106,6 @@ private: sp mOMX; IOMX::node_id mNode; - sp mObserver; uint32_t mQuirks; bool mIsEncoder; char *mMIME; diff --git a/media/libmediaplayerservice/StagefrightMetadataRetriever.cpp b/media/libmediaplayerservice/StagefrightMetadataRetriever.cpp index 0e921621762c3..c06912896456f 100644 --- a/media/libmediaplayerservice/StagefrightMetadataRetriever.cpp +++ b/media/libmediaplayerservice/StagefrightMetadataRetriever.cpp @@ -129,11 +129,19 @@ VideoFrame *StagefrightMetadataRetriever::captureFrame() { 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 264271d05e051..d692820c16c91 100644 --- a/media/libstagefright/OMXCodec.cpp +++ b/media/libstagefright/OMXCodec.cpp @@ -1065,8 +1065,8 @@ static bool formatHasNotablyChanged( 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; }