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:
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user