summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRam Mohan M2017-06-22 03:23:12 -0500
committerKeun Soo Yim2018-01-23 16:21:33 -0600
commit7409a9312d9f6002ae64bc24e6ced988dbb7838a (patch)
tree493c4c2cbd7c4a1f8c55e63f92c528c4ea06e1a4 /media/omx/1.0
parentc9c4ba222b68cc616444f39fdeada4877a4b8b9e (diff)
downloadplatform-hardware-interfaces-7409a9312d9f6002ae64bc24e6ced988dbb7838a.tar.gz
platform-hardware-interfaces-7409a9312d9f6002ae64bc24e6ced988dbb7838a.tar.xz
platform-hardware-interfaces-7409a9312d9f6002ae64bc24e6ced988dbb7838a.zip
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 (cherry picked from commit c8df8940e1595f8d35cbd1df744eb3460a4c2d77)
Diffstat (limited to 'media/omx/1.0')
-rw-r--r--media/omx/1.0/vts/functional/audio/VtsHalMediaOmxV1_0TargetAudioDecTest.cpp55
-rwxr-xr-xmedia/omx/1.0/vts/functional/common/media_hidl_test_common.cpp15
-rw-r--r--media/omx/1.0/vts/functional/common/media_hidl_test_common.h15
-rw-r--r--media/omx/1.0/vts/functional/video/VtsHalMediaOmxV1_0TargetVideoDecTest.cpp25
4 files changed, 76 insertions, 34 deletions
diff --git a/media/omx/1.0/vts/functional/audio/VtsHalMediaOmxV1_0TargetAudioDecTest.cpp b/media/omx/1.0/vts/functional/audio/VtsHalMediaOmxV1_0TargetAudioDecTest.cpp
index fe67cb9b..0c698da1 100644
--- a/media/omx/1.0/vts/functional/audio/VtsHalMediaOmxV1_0TargetAudioDecTest.cpp
+++ b/media/omx/1.0/vts/functional/audio/VtsHalMediaOmxV1_0TargetAudioDecTest.cpp
@@ -474,15 +474,20 @@ void GetURLForComponent(AudioDecHidlTest::standardComp comp, char* mURL,
474 474
475// port settings reconfiguration during runtime. reconfigures sample rate and 475// port settings reconfiguration during runtime. reconfigures sample rate and
476// number 476// number
477typedef struct {
478 OMX_AUDIO_CODINGTYPE eEncoding;
479 AudioDecHidlTest::standardComp comp;
480} packedArgs;
477void portReconfiguration(sp<IOmxNode> omxNode, sp<CodecObserver> observer, 481void portReconfiguration(sp<IOmxNode> omxNode, sp<CodecObserver> observer,
478 android::Vector<BufferInfo>* iBuffer, 482 android::Vector<BufferInfo>* iBuffer,
479 android::Vector<BufferInfo>* oBuffer, 483 android::Vector<BufferInfo>* oBuffer,
480 OMX_AUDIO_CODINGTYPE eEncoding,
481 OMX_U32 kPortIndexInput, OMX_U32 kPortIndexOutput, 484 OMX_U32 kPortIndexInput, OMX_U32 kPortIndexOutput,
482 Message msg, 485 Message msg, PortMode oPortMode, void* args) {
483 AudioDecHidlTest::standardComp comp =
484 AudioDecHidlTest::standardComp::unknown_comp) {
485 android::hardware::media::omx::V1_0::Status status; 486 android::hardware::media::omx::V1_0::Status status;
487 packedArgs* audioArgs = static_cast<packedArgs*>(args);
488 OMX_AUDIO_CODINGTYPE eEncoding = audioArgs->eEncoding;
489 AudioDecHidlTest::standardComp comp = audioArgs->comp;
490 (void)oPortMode;
486 491
487 if (msg.data.eventData.event == OMX_EventPortSettingsChanged) { 492 if (msg.data.eventData.event == OMX_EventPortSettingsChanged) {
488 ASSERT_EQ(msg.data.eventData.data1, kPortIndexOutput); 493 ASSERT_EQ(msg.data.eventData.data1, kPortIndexOutput);
@@ -568,7 +573,8 @@ void waitOnInputConsumption(sp<IOmxNode> omxNode, sp<CodecObserver> observer,
568 android::Vector<BufferInfo>* iBuffer, 573 android::Vector<BufferInfo>* iBuffer,
569 android::Vector<BufferInfo>* oBuffer, 574 android::Vector<BufferInfo>* oBuffer,
570 OMX_AUDIO_CODINGTYPE eEncoding, 575 OMX_AUDIO_CODINGTYPE eEncoding,
571 OMX_U32 kPortIndexInput, OMX_U32 kPortIndexOutput) { 576 OMX_U32 kPortIndexInput, OMX_U32 kPortIndexOutput,
577 AudioDecHidlTest::standardComp comp) {
572 android::hardware::media::omx::V1_0::Status status; 578 android::hardware::media::omx::V1_0::Status status;
573 Message msg; 579 Message msg;
574 int timeOut = TIMEOUT_COUNTER; 580 int timeOut = TIMEOUT_COUNTER;
@@ -579,8 +585,10 @@ void waitOnInputConsumption(sp<IOmxNode> omxNode, sp<CodecObserver> observer,
579 observer->dequeueMessage(&msg, DEFAULT_TIMEOUT, iBuffer, oBuffer); 585 observer->dequeueMessage(&msg, DEFAULT_TIMEOUT, iBuffer, oBuffer);
580 if (status == android::hardware::media::omx::V1_0::Status::OK) { 586 if (status == android::hardware::media::omx::V1_0::Status::OK) {
581 EXPECT_EQ(msg.type, Message::Type::EVENT); 587 EXPECT_EQ(msg.type, Message::Type::EVENT);
582 portReconfiguration(omxNode, observer, iBuffer, oBuffer, eEncoding, 588 packedArgs audioArgs = {eEncoding, comp};
583 kPortIndexInput, kPortIndexOutput, msg); 589 portReconfiguration(omxNode, observer, iBuffer, oBuffer,
590 kPortIndexInput, kPortIndexOutput, msg,
591 PortMode::PRESET_BYTE_BUFFER, &audioArgs);
584 } 592 }
585 // status == TIMED_OUT, it could be due to process time being large 593 // status == TIMED_OUT, it could be due to process time being large
586 // than DEFAULT_TIMEOUT or component needs output buffers to start 594 // than DEFAULT_TIMEOUT or component needs output buffers to start
@@ -644,8 +652,10 @@ void decodeNFrames(sp<IOmxNode> omxNode, sp<CodecObserver> observer,
644 // Port Reconfiguration 652 // Port Reconfiguration
645 if (status == android::hardware::media::omx::V1_0::Status::OK && 653 if (status == android::hardware::media::omx::V1_0::Status::OK &&
646 msg.type == Message::Type::EVENT) { 654 msg.type == Message::Type::EVENT) {
647 portReconfiguration(omxNode, observer, iBuffer, oBuffer, eEncoding, 655 packedArgs audioArgs = {eEncoding, comp};
648 kPortIndexInput, kPortIndexOutput, msg, comp); 656 portReconfiguration(omxNode, observer, iBuffer, oBuffer,
657 kPortIndexInput, kPortIndexOutput, msg,
658 PortMode::PRESET_BYTE_BUFFER, &audioArgs);
649 } 659 }
650 660
651 if (frameID == (int)Info->size() || frameID == (offset + range)) break; 661 if (frameID == (int)Info->size() || frameID == (offset + range)) break;
@@ -789,8 +799,10 @@ TEST_F(AudioDecHidlTest, DecodeTest) {
789 (int)Info.size(), compName); 799 (int)Info.size(), compName);
790 eleStream.close(); 800 eleStream.close();
791 waitOnInputConsumption(omxNode, observer, &iBuffer, &oBuffer, eEncoding, 801 waitOnInputConsumption(omxNode, observer, &iBuffer, &oBuffer, eEncoding,
792 kPortIndexInput, kPortIndexOutput); 802 kPortIndexInput, kPortIndexOutput, compName);
793 testEOS(omxNode, observer, &iBuffer, &oBuffer, false, eosFlag); 803 packedArgs audioArgs = {eEncoding, compName};
804 testEOS(omxNode, observer, &iBuffer, &oBuffer, false, eosFlag, nullptr,
805 portReconfiguration, kPortIndexInput, kPortIndexOutput, &audioArgs);
794 EXPECT_EQ(timestampUslist.empty(), true); 806 EXPECT_EQ(timestampUslist.empty(), true);
795 // set state to idle 807 // set state to idle
796 changeStateExecutetoIdle(omxNode, observer, &iBuffer, &oBuffer); 808 changeStateExecutetoIdle(omxNode, observer, &iBuffer, &oBuffer);
@@ -846,7 +858,9 @@ TEST_F(AudioDecHidlTest, DISABLED_EOSTest_M) {
846 changeStateIdletoExecute(omxNode, observer); 858 changeStateIdletoExecute(omxNode, observer);
847 859
848 // request EOS at the start 860 // request EOS at the start
849 testEOS(omxNode, observer, &iBuffer, &oBuffer, true, eosFlag); 861 packedArgs audioArgs = {eEncoding, compName};
862 testEOS(omxNode, observer, &iBuffer, &oBuffer, true, eosFlag, nullptr,
863 portReconfiguration, kPortIndexInput, kPortIndexOutput, &audioArgs);
850 flushPorts(omxNode, observer, &iBuffer, &oBuffer, kPortIndexInput, 864 flushPorts(omxNode, observer, &iBuffer, &oBuffer, kPortIndexInput,
851 kPortIndexOutput); 865 kPortIndexOutput);
852 EXPECT_GE(framesReceived, 0U); 866 EXPECT_GE(framesReceived, 0U);
@@ -933,8 +947,10 @@ TEST_F(AudioDecHidlTest, ThumbnailTest) {
933 compName); 947 compName);
934 eleStream.close(); 948 eleStream.close();
935 waitOnInputConsumption(omxNode, observer, &iBuffer, &oBuffer, eEncoding, 949 waitOnInputConsumption(omxNode, observer, &iBuffer, &oBuffer, eEncoding,
936 kPortIndexInput, kPortIndexOutput); 950 kPortIndexInput, kPortIndexOutput, compName);
937 testEOS(omxNode, observer, &iBuffer, &oBuffer, false, eosFlag); 951 packedArgs audioArgs = {eEncoding, compName};
952 testEOS(omxNode, observer, &iBuffer, &oBuffer, false, eosFlag, nullptr,
953 portReconfiguration, kPortIndexInput, kPortIndexOutput, &audioArgs);
938 flushPorts(omxNode, observer, &iBuffer, &oBuffer, kPortIndexInput, 954 flushPorts(omxNode, observer, &iBuffer, &oBuffer, kPortIndexInput,
939 kPortIndexOutput); 955 kPortIndexOutput);
940 EXPECT_GE(framesReceived, 1U); 956 EXPECT_GE(framesReceived, 1U);
@@ -949,8 +965,9 @@ TEST_F(AudioDecHidlTest, ThumbnailTest) {
949 compName, false); 965 compName, false);
950 eleStream.close(); 966 eleStream.close();
951 waitOnInputConsumption(omxNode, observer, &iBuffer, &oBuffer, eEncoding, 967 waitOnInputConsumption(omxNode, observer, &iBuffer, &oBuffer, eEncoding,
952 kPortIndexInput, kPortIndexOutput); 968 kPortIndexInput, kPortIndexOutput, compName);
953 testEOS(omxNode, observer, &iBuffer, &oBuffer, true, eosFlag); 969 testEOS(omxNode, observer, &iBuffer, &oBuffer, true, eosFlag, nullptr,
970 portReconfiguration, kPortIndexInput, kPortIndexOutput, &audioArgs);
954 flushPorts(omxNode, observer, &iBuffer, &oBuffer, kPortIndexInput, 971 flushPorts(omxNode, observer, &iBuffer, &oBuffer, kPortIndexInput,
955 kPortIndexOutput); 972 kPortIndexOutput);
956 EXPECT_GE(framesReceived, 1U); 973 EXPECT_GE(framesReceived, 1U);
@@ -1034,8 +1051,10 @@ TEST_F(AudioDecHidlTest, SimpleEOSTest) {
1034 (int)Info.size(), compName, false); 1051 (int)Info.size(), compName, false);
1035 eleStream.close(); 1052 eleStream.close();
1036 waitOnInputConsumption(omxNode, observer, &iBuffer, &oBuffer, eEncoding, 1053 waitOnInputConsumption(omxNode, observer, &iBuffer, &oBuffer, eEncoding,
1037 kPortIndexInput, kPortIndexOutput); 1054 kPortIndexInput, kPortIndexOutput, compName);
1038 testEOS(omxNode, observer, &iBuffer, &oBuffer, true, eosFlag); 1055 packedArgs audioArgs = {eEncoding, compName};
1056 testEOS(omxNode, observer, &iBuffer, &oBuffer, true, eosFlag, nullptr,
1057 portReconfiguration, kPortIndexInput, kPortIndexOutput, &audioArgs);
1039 flushPorts(omxNode, observer, &iBuffer, &oBuffer, kPortIndexInput, 1058 flushPorts(omxNode, observer, &iBuffer, &oBuffer, kPortIndexInput,
1040 kPortIndexOutput); 1059 kPortIndexOutput);
1041 framesReceived = 0; 1060 framesReceived = 0;
diff --git a/media/omx/1.0/vts/functional/common/media_hidl_test_common.cpp b/media/omx/1.0/vts/functional/common/media_hidl_test_common.cpp
index e81e6dd4..700d2f31 100755
--- a/media/omx/1.0/vts/functional/common/media_hidl_test_common.cpp
+++ b/media/omx/1.0/vts/functional/common/media_hidl_test_common.cpp
@@ -406,7 +406,8 @@ void flushPorts(sp<IOmxNode> omxNode, sp<CodecObserver> observer,
406void testEOS(sp<IOmxNode> omxNode, sp<CodecObserver> observer, 406void testEOS(sp<IOmxNode> omxNode, sp<CodecObserver> observer,
407 android::Vector<BufferInfo>* iBuffer, 407 android::Vector<BufferInfo>* iBuffer,
408 android::Vector<BufferInfo>* oBuffer, bool signalEOS, 408 android::Vector<BufferInfo>* oBuffer, bool signalEOS,
409 bool& eosFlag, PortMode* portMode) { 409 bool& eosFlag, PortMode* portMode, portreconfig fptr,
410 OMX_U32 kPortIndexInput, OMX_U32 kPortIndexOutput, void* args) {
410 android::hardware::media::omx::V1_0::Status status; 411 android::hardware::media::omx::V1_0::Status status;
411 PortMode defaultPortMode[2], *pm; 412 PortMode defaultPortMode[2], *pm;
412 413
@@ -443,9 +444,15 @@ void testEOS(sp<IOmxNode> omxNode, sp<CodecObserver> observer,
443 status = 444 status =
444 observer->dequeueMessage(&msg, DEFAULT_TIMEOUT, iBuffer, oBuffer); 445 observer->dequeueMessage(&msg, DEFAULT_TIMEOUT, iBuffer, oBuffer);
445 if (status == android::hardware::media::omx::V1_0::Status::OK) { 446 if (status == android::hardware::media::omx::V1_0::Status::OK) {
446 if (msg.data.eventData.event == OMX_EventBufferFlag) { 447 if (msg.data.eventData.event == OMX_EventPortSettingsChanged) {
447 // soft omx components donot send this, we will just ignore it 448 if (fptr) {
448 // for now 449 (*fptr)(omxNode, observer, iBuffer, oBuffer,
450 kPortIndexInput, kPortIndexOutput, msg, pm[1],
451 args);
452 } else {
453 // something unexpected happened
454 EXPECT_TRUE(false);
455 }
449 } else { 456 } else {
450 // something unexpected happened 457 // something unexpected happened
451 EXPECT_TRUE(false); 458 EXPECT_TRUE(false);
diff --git a/media/omx/1.0/vts/functional/common/media_hidl_test_common.h b/media/omx/1.0/vts/functional/common/media_hidl_test_common.h
index d617e45e..354b7a7e 100644
--- a/media/omx/1.0/vts/functional/common/media_hidl_test_common.h
+++ b/media/omx/1.0/vts/functional/common/media_hidl_test_common.h
@@ -113,6 +113,12 @@ struct CodecObserver : public IOmxObserver {
113 android::hardware::media::omx::V1_0::Message::Type::EVENT) { 113 android::hardware::media::omx::V1_0::Message::Type::EVENT) {
114 *msg = *it; 114 *msg = *it;
115 msgQueue.erase(it); 115 msgQueue.erase(it);
116 // OMX_EventBufferFlag event is sent when the component has
117 // processed a buffer with its EOS flag set. This event is
118 // not sent by soft omx components. Vendor components can
119 // send this. From IOMX point of view, we will ignore this
120 // event.
121 if (msg->data.eventData.event == OMX_EventBufferFlag) break;
116 return ::android::hardware::media::omx::V1_0::Status::OK; 122 return ::android::hardware::media::omx::V1_0::Status::OK;
117 } else if (it->type == android::hardware::media::omx::V1_0:: 123 } else if (it->type == android::hardware::media::omx::V1_0::
118 Message::Type::FILL_BUFFER_DONE) { 124 Message::Type::FILL_BUFFER_DONE) {
@@ -299,9 +305,16 @@ void flushPorts(sp<IOmxNode> omxNode, sp<CodecObserver> observer,
299 android::Vector<BufferInfo>* oBuffer, OMX_U32 kPortIndexInput, 305 android::Vector<BufferInfo>* oBuffer, OMX_U32 kPortIndexInput,
300 OMX_U32 kPortIndexOutput, int64_t timeoutUs = DEFAULT_TIMEOUT); 306 OMX_U32 kPortIndexOutput, int64_t timeoutUs = DEFAULT_TIMEOUT);
301 307
308typedef void (*portreconfig)(sp<IOmxNode> omxNode, sp<CodecObserver> observer,
309 android::Vector<BufferInfo>* iBuffer,
310 android::Vector<BufferInfo>* oBuffer,
311 OMX_U32 kPortIndexInput, OMX_U32 kPortIndexOutput,
312 Message msg, PortMode oPortMode, void* args);
302void testEOS(sp<IOmxNode> omxNode, sp<CodecObserver> observer, 313void testEOS(sp<IOmxNode> omxNode, sp<CodecObserver> observer,
303 android::Vector<BufferInfo>* iBuffer, 314 android::Vector<BufferInfo>* iBuffer,
304 android::Vector<BufferInfo>* oBuffer, bool signalEOS, 315 android::Vector<BufferInfo>* oBuffer, bool signalEOS,
305 bool& eosFlag, PortMode* portMode = nullptr); 316 bool& eosFlag, PortMode* portMode = nullptr,
317 portreconfig fptr = nullptr, OMX_U32 kPortIndexInput = 0,
318 OMX_U32 kPortIndexOutput = 1, void* args = nullptr);
306 319
307#endif // MEDIA_HIDL_TEST_COMMON_H 320#endif // MEDIA_HIDL_TEST_COMMON_H
diff --git a/media/omx/1.0/vts/functional/video/VtsHalMediaOmxV1_0TargetVideoDecTest.cpp b/media/omx/1.0/vts/functional/video/VtsHalMediaOmxV1_0TargetVideoDecTest.cpp
index 2ff8ed3b..9773cb00 100644
--- a/media/omx/1.0/vts/functional/video/VtsHalMediaOmxV1_0TargetVideoDecTest.cpp
+++ b/media/omx/1.0/vts/functional/video/VtsHalMediaOmxV1_0TargetVideoDecTest.cpp
@@ -474,8 +474,9 @@ void portReconfiguration(sp<IOmxNode> omxNode, sp<CodecObserver> observer,
474 android::Vector<BufferInfo>* iBuffer, 474 android::Vector<BufferInfo>* iBuffer,
475 android::Vector<BufferInfo>* oBuffer, 475 android::Vector<BufferInfo>* oBuffer,
476 OMX_U32 kPortIndexInput, OMX_U32 kPortIndexOutput, 476 OMX_U32 kPortIndexInput, OMX_U32 kPortIndexOutput,
477 Message msg, PortMode oPortMode) { 477 Message msg, PortMode oPortMode, void* args) {
478 android::hardware::media::omx::V1_0::Status status; 478 android::hardware::media::omx::V1_0::Status status;
479 (void)args;
479 480
480 if (msg.data.eventData.event == OMX_EventPortSettingsChanged) { 481 if (msg.data.eventData.event == OMX_EventPortSettingsChanged) {
481 ASSERT_EQ(msg.data.eventData.data1, kPortIndexOutput); 482 ASSERT_EQ(msg.data.eventData.data1, kPortIndexOutput);
@@ -575,9 +576,6 @@ void portReconfiguration(sp<IOmxNode> omxNode, sp<CodecObserver> observer,
575 std::cout << "[ ] Warning ! OMX_EventError/ " 576 std::cout << "[ ] Warning ! OMX_EventError/ "
576 "Decode Frame Call might be failed \n"; 577 "Decode Frame Call might be failed \n";
577 return; 578 return;
578 } else if (msg.data.eventData.event == OMX_EventBufferFlag) {
579 // soft omx components donot send this, we will just ignore it
580 // for now
581 } else { 579 } else {
582 // something unexpected happened 580 // something unexpected happened
583 ASSERT_TRUE(false); 581 ASSERT_TRUE(false);
@@ -602,7 +600,7 @@ void waitOnInputConsumption(sp<IOmxNode> omxNode, sp<CodecObserver> observer,
602 EXPECT_EQ(msg.type, Message::Type::EVENT); 600 EXPECT_EQ(msg.type, Message::Type::EVENT);
603 portReconfiguration(omxNode, observer, iBuffer, oBuffer, 601 portReconfiguration(omxNode, observer, iBuffer, oBuffer,
604 kPortIndexInput, kPortIndexOutput, msg, 602 kPortIndexInput, kPortIndexOutput, msg,
605 oPortMode); 603 oPortMode, nullptr);
606 } 604 }
607 // status == TIMED_OUT, it could be due to process time being large 605 // status == TIMED_OUT, it could be due to process time being large
608 // than DEFAULT_TIMEOUT or component needs output buffers to start 606 // than DEFAULT_TIMEOUT or component needs output buffers to start
@@ -668,7 +666,7 @@ void decodeNFrames(sp<IOmxNode> omxNode, sp<CodecObserver> observer,
668 msg.type == Message::Type::EVENT) { 666 msg.type == Message::Type::EVENT) {
669 portReconfiguration(omxNode, observer, iBuffer, oBuffer, 667 portReconfiguration(omxNode, observer, iBuffer, oBuffer,
670 kPortIndexInput, kPortIndexOutput, msg, 668 kPortIndexInput, kPortIndexOutput, msg,
671 oPortMode); 669 oPortMode, nullptr);
672 } 670 }
673 671
674 if (frameID == (int)Info->size() || frameID == (offset + range)) break; 672 if (frameID == (int)Info->size() || frameID == (offset + range)) break;
@@ -834,7 +832,8 @@ TEST_F(VideoDecHidlTest, DecodeTest) {
834 eleStream.close(); 832 eleStream.close();
835 waitOnInputConsumption(omxNode, observer, &iBuffer, &oBuffer, 833 waitOnInputConsumption(omxNode, observer, &iBuffer, &oBuffer,
836 kPortIndexInput, kPortIndexOutput, portMode[1]); 834 kPortIndexInput, kPortIndexOutput, portMode[1]);
837 testEOS(omxNode, observer, &iBuffer, &oBuffer, false, eosFlag, portMode); 835 testEOS(omxNode, observer, &iBuffer, &oBuffer, false, eosFlag, portMode,
836 portReconfiguration, kPortIndexInput, kPortIndexOutput, nullptr);
838 EXPECT_EQ(timestampUslist.empty(), true); 837 EXPECT_EQ(timestampUslist.empty(), true);
839 // set state to idle 838 // set state to idle
840 changeStateExecutetoIdle(omxNode, observer, &iBuffer, &oBuffer); 839 changeStateExecutetoIdle(omxNode, observer, &iBuffer, &oBuffer);
@@ -884,7 +883,8 @@ TEST_F(VideoDecHidlTest, EOSTest_M) {
884 changeStateIdletoExecute(omxNode, observer); 883 changeStateIdletoExecute(omxNode, observer);
885 884
886 // request EOS at the start 885 // request EOS at the start
887 testEOS(omxNode, observer, &iBuffer, &oBuffer, true, eosFlag, portMode); 886 testEOS(omxNode, observer, &iBuffer, &oBuffer, true, eosFlag, portMode,
887 portReconfiguration, kPortIndexInput, kPortIndexOutput, nullptr);
888 flushPorts(omxNode, observer, &iBuffer, &oBuffer, kPortIndexInput, 888 flushPorts(omxNode, observer, &iBuffer, &oBuffer, kPortIndexInput,
889 kPortIndexOutput); 889 kPortIndexOutput);
890 EXPECT_GE(framesReceived, 0U); 890 EXPECT_GE(framesReceived, 0U);
@@ -968,7 +968,8 @@ TEST_F(VideoDecHidlTest, ThumbnailTest) {
968 eleStream.close(); 968 eleStream.close();
969 waitOnInputConsumption(omxNode, observer, &iBuffer, &oBuffer, 969 waitOnInputConsumption(omxNode, observer, &iBuffer, &oBuffer,
970 kPortIndexInput, kPortIndexOutput, portMode[1]); 970 kPortIndexInput, kPortIndexOutput, portMode[1]);
971 testEOS(omxNode, observer, &iBuffer, &oBuffer, false, eosFlag, portMode); 971 testEOS(omxNode, observer, &iBuffer, &oBuffer, false, eosFlag, portMode,
972 portReconfiguration, kPortIndexInput, kPortIndexOutput, nullptr);
972 flushPorts(omxNode, observer, &iBuffer, &oBuffer, kPortIndexInput, 973 flushPorts(omxNode, observer, &iBuffer, &oBuffer, kPortIndexInput,
973 kPortIndexOutput); 974 kPortIndexOutput);
974 EXPECT_GE(framesReceived, 1U); 975 EXPECT_GE(framesReceived, 1U);
@@ -983,7 +984,8 @@ TEST_F(VideoDecHidlTest, ThumbnailTest) {
983 eleStream.close(); 984 eleStream.close();
984 waitOnInputConsumption(omxNode, observer, &iBuffer, &oBuffer, 985 waitOnInputConsumption(omxNode, observer, &iBuffer, &oBuffer,
985 kPortIndexInput, kPortIndexOutput, portMode[1]); 986 kPortIndexInput, kPortIndexOutput, portMode[1]);
986 testEOS(omxNode, observer, &iBuffer, &oBuffer, true, eosFlag, portMode); 987 testEOS(omxNode, observer, &iBuffer, &oBuffer, true, eosFlag, portMode,
988 portReconfiguration, kPortIndexInput, kPortIndexOutput, nullptr);
987 flushPorts(omxNode, observer, &iBuffer, &oBuffer, kPortIndexInput, 989 flushPorts(omxNode, observer, &iBuffer, &oBuffer, kPortIndexInput,
988 kPortIndexOutput); 990 kPortIndexOutput);
989 EXPECT_GE(framesReceived, 1U); 991 EXPECT_GE(framesReceived, 1U);
@@ -1066,7 +1068,8 @@ TEST_F(VideoDecHidlTest, SimpleEOSTest) {
1066 eleStream.close(); 1068 eleStream.close();
1067 waitOnInputConsumption(omxNode, observer, &iBuffer, &oBuffer, 1069 waitOnInputConsumption(omxNode, observer, &iBuffer, &oBuffer,
1068 kPortIndexInput, kPortIndexOutput, portMode[1]); 1070 kPortIndexInput, kPortIndexOutput, portMode[1]);
1069 testEOS(omxNode, observer, &iBuffer, &oBuffer, true, eosFlag, portMode); 1071 testEOS(omxNode, observer, &iBuffer, &oBuffer, true, eosFlag, portMode,
1072 portReconfiguration, kPortIndexInput, kPortIndexOutput, nullptr);
1070 flushPorts(omxNode, observer, &iBuffer, &oBuffer, kPortIndexInput, 1073 flushPorts(omxNode, observer, &iBuffer, &oBuffer, kPortIndexInput,
1071 kPortIndexOutput); 1074 kPortIndexOutput);
1072 framesReceived = 0; 1075 framesReceived = 0;