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; sp<IOMX> mOMX;
IOMX::node_id mNode; IOMX::node_id mNode;
sp<OMXCodecObserver> mObserver;
uint32_t mQuirks; uint32_t mQuirks;
bool mIsEncoder; bool mIsEncoder;
char *mMIME; char *mMIME;

View File

@@ -129,11 +129,19 @@ VideoFrame *StagefrightMetadataRetriever::captureFrame() {
decoder->start(); decoder->start();
MediaBuffer *buffer; // Read one output buffer, ignore format change notifications
// and spurious empty buffers.
MediaBuffer *buffer = NULL;
status_t err; status_t err;
do { do {
if (buffer != NULL) {
buffer->release();
buffer = NULL;
}
err = decoder->read(&buffer); err = decoder->read(&buffer);
} while (err == INFO_FORMAT_CHANGED); } while (err == INFO_FORMAT_CHANGED
|| (buffer != NULL && buffer->range_length() == 0));
if (err != OK) { if (err != OK) {
CHECK_EQ(buffer, NULL); CHECK_EQ(buffer, NULL);

View File

@@ -1065,8 +1065,8 @@ static bool formatHasNotablyChanged(
return false; return false;
} }
if (from.get() == NULL && to.get() != NULL if ((from.get() == NULL && to.get() != NULL)
|| from.get() != NULL && to.get() == NULL) { || (from.get() != NULL && to.get() == NULL)) {
return true; return true;
} }