Merge change If68c168d into eclair-mr2

* changes:
  Some cleanup of OMXCodec code, make sure to ignore 0-length output buffers in the metadata retriever.
This commit is contained in:
Android (Google) Code Review
2009-10-21 18:17:01 -04:00
3 changed files with 12 additions and 5 deletions

View File

@@ -106,7 +106,6 @@ private:
sp<IOMX> mOMX;
IOMX::node_id mNode;
sp<OMXCodecObserver> mObserver;
uint32_t mQuirks;
bool mIsEncoder;
char *mMIME;

View File

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

View File

@@ -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;
}