bug fix: handle OMX_EventBufferFlag events

OMX_EventBufferFlag event is sent when the component has processed a buffer
with its EOS flag set. This event is not sent by soft omx components.
Vendor components can send this. From IOMX point of view, this event is
not sent for processing

bug:64102197
Merged-In: I3a978a885b1e4446f82f2356ae677f70ea6f8150
Change-Id: I3a978a885b1e4446f82f2356ae677f70ea6f8150
This commit is contained in:
Ram Mohan M
2017-07-27 15:50:47 +05:30
committed by Pawin Vongmasa
parent 74fcad94f1
commit 28cd8404d6
3 changed files with 6 additions and 6 deletions

View File

@@ -560,9 +560,6 @@ void testEOS(sp<IOmxNode> omxNode, sp<CodecObserver> observer,
// something unexpected happened
EXPECT_TRUE(false);
}
} else if (msg.data.eventData.event == OMX_EventBufferFlag) {
// soft omx components donot send this, we will just ignore it
// for now
} else {
// something unexpected happened
EXPECT_TRUE(false);

View File

@@ -131,6 +131,12 @@ struct CodecObserver : public IOmxObserver {
android::hardware::media::omx::V1_0::Message::Type::EVENT) {
*msg = *it;
msgQueue.erase(it);
// OMX_EventBufferFlag event is sent when the component has
// processed a buffer with its EOS flag set. This event is
// not sent by soft omx components. Vendor components can
// send this. From IOMX point of view, we will ignore this
// event.
if (msg->data.eventData.event == OMX_EventBufferFlag) break;
return ::android::hardware::media::omx::V1_0::Status::OK;
} else if (it->type == android::hardware::media::omx::V1_0::
Message::Type::FILL_BUFFER_DONE) {

View File

@@ -587,9 +587,6 @@ void portReconfiguration(sp<IOmxNode> omxNode, sp<CodecObserver> observer,
std::cout << "[ ] Warning ! OMX_EventError/ "
"Decode Frame Call might be failed \n";
return;
} else if (msg.data.eventData.event == OMX_EventBufferFlag) {
// soft omx components donot send this, we will just ignore it
// for now
} else {
// something unexpected happened
ASSERT_TRUE(false);