Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 28cd8404 authored by Ram Mohan M's avatar Ram Mohan M Committed by Pawin Vongmasa
Browse files

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
parent 74fcad94
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -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);
+6 −0
Original line number Diff line number Diff line
@@ -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) {
+0 −3
Original line number Diff line number Diff line
@@ -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);