Loading tv/tuner/1.0/vts/functional/FilterTests.cpp +4 −5 Original line number Diff line number Diff line Loading @@ -16,7 +16,7 @@ #include "FilterTests.h" void FilterCallback::startFilterEventThread(DemuxFilterEvent event) { void FilterCallback::startFilterEventThread(DemuxFilterEvent& event) { struct FilterThreadArgs* threadArgs = (struct FilterThreadArgs*)malloc(sizeof(struct FilterThreadArgs)); threadArgs->user = this; Loading Loading @@ -69,9 +69,8 @@ void FilterCallback::filterThreadLoop(DemuxFilterEvent& /* event */) { // end thread } bool FilterCallback::readFilterEventData() { bool FilterCallback::readFilterEventData(const DemuxFilterEvent& filterEvent) { bool result = false; DemuxFilterEvent filterEvent = mFilterEvent; ALOGW("[vts] reading from filter FMQ or buffer %d", mFilterId); // todo separate filter handlers for (auto event : filterEvent.events) { Loading Loading @@ -107,7 +106,7 @@ bool FilterCallback::readFilterEventData() { return result; } bool FilterCallback::dumpAvData(DemuxFilterMediaEvent event) { bool FilterCallback::dumpAvData(DemuxFilterMediaEvent& event) { uint32_t length = event.dataLength; uint64_t dataId = event.avDataId; // read data from buffer pointed by a handle Loading @@ -127,7 +126,7 @@ bool FilterCallback::dumpAvData(DemuxFilterMediaEvent event) { return true; } bool FilterCallback::readRecordData(DemuxFilterTsRecordEvent event) { bool FilterCallback::readRecordData(DemuxFilterTsRecordEvent& event) { ALOGD("[vts] got DemuxFilterTsRecordEvent with pid=%d.", event.pid.tPid()); return true; } Loading tv/tuner/1.0/vts/functional/FilterTests.h +5 −7 Original line number Diff line number Diff line Loading @@ -77,8 +77,7 @@ class FilterCallback : public IFilterCallback { android::Mutex::Autolock autoLock(mMsgLock); // Temprarily we treat the first coming back filter data on the matching pid a success // once all of the MQ are cleared, means we got all the expected output mFilterEvent = filterEvent; readFilterEventData(); readFilterEventData(filterEvent); mPidFilterOutputCount++; // mFilterIdToMQ.erase(filterEvent.filterId); Loading @@ -96,15 +95,15 @@ class FilterCallback : public IFilterCallback { void testFilterDataOutput(); void startFilterEventThread(DemuxFilterEvent event); void startFilterEventThread(DemuxFilterEvent& event); static void* __threadLoopFilter(void* threadArgs); void filterThreadLoop(DemuxFilterEvent& event); void updateFilterMQ(MQDesc& filterMQDescriptor); void updateGoldenOutputMap(string goldenOutputFile); bool readFilterEventData(); bool dumpAvData(DemuxFilterMediaEvent event); bool readRecordData(DemuxFilterTsRecordEvent event); bool readFilterEventData(const DemuxFilterEvent& filterEvent); bool dumpAvData(DemuxFilterMediaEvent& event); bool readRecordData(DemuxFilterTsRecordEvent& event); private: struct FilterThreadArgs { Loading @@ -120,7 +119,6 @@ class FilterCallback : public IFilterCallback { sp<IFilter> mFilter; std::unique_ptr<FilterMQ> mFilterMQ; EventFlag* mFilterMQEventFlag; DemuxFilterEvent mFilterEvent; android::Mutex mMsgLock; android::Mutex mFilterOutputLock; Loading tv/tuner/1.0/vts/functional/FrontendTests.cpp +8 −7 Original line number Diff line number Diff line Loading @@ -370,10 +370,11 @@ AssertionResult FrontendTests::tuneFrontend(FrontendConfig config, bool testWith mIsSoftwareFe = config.isSoftwareFe; bool result = true; if (mIsSoftwareFe && testWithDemux) { result &= mDvrTests.openDvrInDemux(mDvrConfig.type, mDvrConfig.bufferSize) == success(); result &= mDvrTests.configDvrPlayback(mDvrConfig.settings) == success(); result &= mDvrTests.getDvrPlaybackMQDescriptor() == success(); mDvrTests.startPlaybackInputThread(mDvrConfig.playbackInputFile, result &= getDvrTests()->openDvrInDemux(mDvrConfig.type, mDvrConfig.bufferSize) == success(); result &= getDvrTests()->configDvrPlayback(mDvrConfig.settings) == success(); result &= getDvrTests()->getDvrPlaybackMQDescriptor() == success(); getDvrTests()->startPlaybackInputThread(mDvrConfig.playbackInputFile, mDvrConfig.settings.playback()); if (!result) { ALOGW("[vts] Software frontend dvr configure failed."); Loading @@ -397,8 +398,8 @@ AssertionResult FrontendTests::stopTuneFrontend(bool testWithDemux) { Result status; status = mFrontend->stopTune(); if (mIsSoftwareFe && testWithDemux) { mDvrTests.stopPlaybackThread(); mDvrTests.closeDvrPlayback(); getDvrTests()->stopPlaybackThread(); getDvrTests()->closeDvrPlayback(); } return AssertionResult(status == Result::SUCCESS); } Loading tv/tuner/1.0/vts/functional/FrontendTests.h +8 −3 Original line number Diff line number Diff line Loading @@ -103,7 +103,7 @@ class FrontendTests { void setService(sp<ITuner> tuner) { mService = tuner; mDvrTests.setService(tuner); getDvrTests()->setService(tuner); getDefaultSoftwareFrontendPlaybackConfig(mDvrConfig); } Loading @@ -124,8 +124,8 @@ class FrontendTests { void tuneTest(FrontendConfig frontendConf); void scanTest(FrontendConfig frontend, FrontendScanType type); void setDvrTests(DvrTests dvrTests) { mDvrTests = dvrTests; } void setDemux(sp<IDemux> demux) { mDvrTests.setDemux(demux); } void setDvrTests(DvrTests* dvrTests) { mExternalDvrTests = dvrTests; } void setDemux(sp<IDemux> demux) { getDvrTests()->setDemux(demux); } void setSoftwareFrontendDvrConfig(DvrConfig conf) { mDvrConfig = conf; } protected: Loading @@ -147,11 +147,16 @@ class FrontendTests { dvrConfig.settings.playback(playbackSettings); } DvrTests* getDvrTests() { return (mExternalDvrTests != nullptr ? mExternalDvrTests : &mDvrTests); } sp<IFrontend> mFrontend; FrontendInfo mFrontendInfo; sp<FrontendCallback> mFrontendCallback; hidl_vec<FrontendId> mFeIds; DvrTests* mExternalDvrTests = nullptr; DvrTests mDvrTests; bool mIsSoftwareFe = false; DvrConfig mDvrConfig; Loading tv/tuner/1.0/vts/functional/VtsHalTvTunerV1_0TargetTest.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -177,7 +177,7 @@ void TunerRecordHidlTest::recordSingleFilterTest(FilterConfig filterConf, mFrontendTests.setSoftwareFrontendDvrConfig(dvrMap[record.dvrSoftwareFeId]); } ASSERT_TRUE(mDemuxTests.setDemuxFrontendDataSource(feId)); mFrontendTests.setDvrTests(mDvrTests); mFrontendTests.setDvrTests(&mDvrTests); } else { dvrSourceConfig = dvrMap[record.dvrSourceId]; ASSERT_TRUE(mDvrTests.openDvrInDemux(dvrSourceConfig.type, dvrSourceConfig.bufferSize)); Loading Loading
tv/tuner/1.0/vts/functional/FilterTests.cpp +4 −5 Original line number Diff line number Diff line Loading @@ -16,7 +16,7 @@ #include "FilterTests.h" void FilterCallback::startFilterEventThread(DemuxFilterEvent event) { void FilterCallback::startFilterEventThread(DemuxFilterEvent& event) { struct FilterThreadArgs* threadArgs = (struct FilterThreadArgs*)malloc(sizeof(struct FilterThreadArgs)); threadArgs->user = this; Loading Loading @@ -69,9 +69,8 @@ void FilterCallback::filterThreadLoop(DemuxFilterEvent& /* event */) { // end thread } bool FilterCallback::readFilterEventData() { bool FilterCallback::readFilterEventData(const DemuxFilterEvent& filterEvent) { bool result = false; DemuxFilterEvent filterEvent = mFilterEvent; ALOGW("[vts] reading from filter FMQ or buffer %d", mFilterId); // todo separate filter handlers for (auto event : filterEvent.events) { Loading Loading @@ -107,7 +106,7 @@ bool FilterCallback::readFilterEventData() { return result; } bool FilterCallback::dumpAvData(DemuxFilterMediaEvent event) { bool FilterCallback::dumpAvData(DemuxFilterMediaEvent& event) { uint32_t length = event.dataLength; uint64_t dataId = event.avDataId; // read data from buffer pointed by a handle Loading @@ -127,7 +126,7 @@ bool FilterCallback::dumpAvData(DemuxFilterMediaEvent event) { return true; } bool FilterCallback::readRecordData(DemuxFilterTsRecordEvent event) { bool FilterCallback::readRecordData(DemuxFilterTsRecordEvent& event) { ALOGD("[vts] got DemuxFilterTsRecordEvent with pid=%d.", event.pid.tPid()); return true; } Loading
tv/tuner/1.0/vts/functional/FilterTests.h +5 −7 Original line number Diff line number Diff line Loading @@ -77,8 +77,7 @@ class FilterCallback : public IFilterCallback { android::Mutex::Autolock autoLock(mMsgLock); // Temprarily we treat the first coming back filter data on the matching pid a success // once all of the MQ are cleared, means we got all the expected output mFilterEvent = filterEvent; readFilterEventData(); readFilterEventData(filterEvent); mPidFilterOutputCount++; // mFilterIdToMQ.erase(filterEvent.filterId); Loading @@ -96,15 +95,15 @@ class FilterCallback : public IFilterCallback { void testFilterDataOutput(); void startFilterEventThread(DemuxFilterEvent event); void startFilterEventThread(DemuxFilterEvent& event); static void* __threadLoopFilter(void* threadArgs); void filterThreadLoop(DemuxFilterEvent& event); void updateFilterMQ(MQDesc& filterMQDescriptor); void updateGoldenOutputMap(string goldenOutputFile); bool readFilterEventData(); bool dumpAvData(DemuxFilterMediaEvent event); bool readRecordData(DemuxFilterTsRecordEvent event); bool readFilterEventData(const DemuxFilterEvent& filterEvent); bool dumpAvData(DemuxFilterMediaEvent& event); bool readRecordData(DemuxFilterTsRecordEvent& event); private: struct FilterThreadArgs { Loading @@ -120,7 +119,6 @@ class FilterCallback : public IFilterCallback { sp<IFilter> mFilter; std::unique_ptr<FilterMQ> mFilterMQ; EventFlag* mFilterMQEventFlag; DemuxFilterEvent mFilterEvent; android::Mutex mMsgLock; android::Mutex mFilterOutputLock; Loading
tv/tuner/1.0/vts/functional/FrontendTests.cpp +8 −7 Original line number Diff line number Diff line Loading @@ -370,10 +370,11 @@ AssertionResult FrontendTests::tuneFrontend(FrontendConfig config, bool testWith mIsSoftwareFe = config.isSoftwareFe; bool result = true; if (mIsSoftwareFe && testWithDemux) { result &= mDvrTests.openDvrInDemux(mDvrConfig.type, mDvrConfig.bufferSize) == success(); result &= mDvrTests.configDvrPlayback(mDvrConfig.settings) == success(); result &= mDvrTests.getDvrPlaybackMQDescriptor() == success(); mDvrTests.startPlaybackInputThread(mDvrConfig.playbackInputFile, result &= getDvrTests()->openDvrInDemux(mDvrConfig.type, mDvrConfig.bufferSize) == success(); result &= getDvrTests()->configDvrPlayback(mDvrConfig.settings) == success(); result &= getDvrTests()->getDvrPlaybackMQDescriptor() == success(); getDvrTests()->startPlaybackInputThread(mDvrConfig.playbackInputFile, mDvrConfig.settings.playback()); if (!result) { ALOGW("[vts] Software frontend dvr configure failed."); Loading @@ -397,8 +398,8 @@ AssertionResult FrontendTests::stopTuneFrontend(bool testWithDemux) { Result status; status = mFrontend->stopTune(); if (mIsSoftwareFe && testWithDemux) { mDvrTests.stopPlaybackThread(); mDvrTests.closeDvrPlayback(); getDvrTests()->stopPlaybackThread(); getDvrTests()->closeDvrPlayback(); } return AssertionResult(status == Result::SUCCESS); } Loading
tv/tuner/1.0/vts/functional/FrontendTests.h +8 −3 Original line number Diff line number Diff line Loading @@ -103,7 +103,7 @@ class FrontendTests { void setService(sp<ITuner> tuner) { mService = tuner; mDvrTests.setService(tuner); getDvrTests()->setService(tuner); getDefaultSoftwareFrontendPlaybackConfig(mDvrConfig); } Loading @@ -124,8 +124,8 @@ class FrontendTests { void tuneTest(FrontendConfig frontendConf); void scanTest(FrontendConfig frontend, FrontendScanType type); void setDvrTests(DvrTests dvrTests) { mDvrTests = dvrTests; } void setDemux(sp<IDemux> demux) { mDvrTests.setDemux(demux); } void setDvrTests(DvrTests* dvrTests) { mExternalDvrTests = dvrTests; } void setDemux(sp<IDemux> demux) { getDvrTests()->setDemux(demux); } void setSoftwareFrontendDvrConfig(DvrConfig conf) { mDvrConfig = conf; } protected: Loading @@ -147,11 +147,16 @@ class FrontendTests { dvrConfig.settings.playback(playbackSettings); } DvrTests* getDvrTests() { return (mExternalDvrTests != nullptr ? mExternalDvrTests : &mDvrTests); } sp<IFrontend> mFrontend; FrontendInfo mFrontendInfo; sp<FrontendCallback> mFrontendCallback; hidl_vec<FrontendId> mFeIds; DvrTests* mExternalDvrTests = nullptr; DvrTests mDvrTests; bool mIsSoftwareFe = false; DvrConfig mDvrConfig; Loading
tv/tuner/1.0/vts/functional/VtsHalTvTunerV1_0TargetTest.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -177,7 +177,7 @@ void TunerRecordHidlTest::recordSingleFilterTest(FilterConfig filterConf, mFrontendTests.setSoftwareFrontendDvrConfig(dvrMap[record.dvrSoftwareFeId]); } ASSERT_TRUE(mDemuxTests.setDemuxFrontendDataSource(feId)); mFrontendTests.setDvrTests(mDvrTests); mFrontendTests.setDvrTests(&mDvrTests); } else { dvrSourceConfig = dvrMap[record.dvrSourceId]; ASSERT_TRUE(mDvrTests.openDvrInDemux(dvrSourceConfig.type, dvrSourceConfig.bufferSize)); Loading