Merge "bug fix: handle OMX_EventBufferFlag events" into oc-mr1-dev

This commit is contained in:
TreeHugger Robot 2017-08-02 01:22:25 +00:00 committed by Android (Google) Code Review
commit 35adbc2a4d
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 // something unexpected happened
EXPECT_TRUE(false); 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 { } else {
// something unexpected happened // something unexpected happened
EXPECT_TRUE(false); EXPECT_TRUE(false);

View file

@ -131,6 +131,12 @@ struct CodecObserver : public IOmxObserver {
android::hardware::media::omx::V1_0::Message::Type::EVENT) { android::hardware::media::omx::V1_0::Message::Type::EVENT) {
*msg = *it; *msg = *it;
msgQueue.erase(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; return ::android::hardware::media::omx::V1_0::Status::OK;
} else if (it->type == android::hardware::media::omx::V1_0:: } else if (it->type == android::hardware::media::omx::V1_0::
Message::Type::FILL_BUFFER_DONE) { Message::Type::FILL_BUFFER_DONE) {

View file

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