Loading tv/tuner/1.1/IFilter.hal +11 −0 Original line number Diff line number Diff line Loading @@ -40,4 +40,15 @@ interface IFilter extends @1.0::IFilter { * @return filterId the hardware resource Id for the filter. */ getId64Bit() generates (Result result, uint64_t filterId); /** * Configure additional Context ID on the IP filter. * * @param ipCid Context Id of the IP filter. * @return result Result status of the operation. * SUCCESS if successful, * INVALID_STATE if failed for wrong state. * UNKNOWN_ERROR if failed for other reasons. */ configureIpCid(uint32_t ipCid) generates (Result result); }; tv/tuner/1.1/default/Filter.cpp +11 −0 Original line number Diff line number Diff line Loading @@ -179,6 +179,17 @@ Return<Result> Filter::close() { return mDemux->removeFilter(mFilterId); } Return<Result> Filter::configureIpCid(uint32_t ipCid) { ALOGV("%s", __FUNCTION__); if (mType.mainType != DemuxFilterMainType::IP) { return Result::INVALID_STATE; } mCid = ipCid; return Result::SUCCESS; } bool Filter::createFilterMQ() { ALOGV("%s", __FUNCTION__); Loading tv/tuner/1.1/default/Filter.h +3 −0 Original line number Diff line number Diff line Loading @@ -76,6 +76,8 @@ class Filter : public V1_1::IFilter { virtual Return<Result> close() override; virtual Return<Result> configureIpCid(uint32_t ipCid) override; /** * To create a FilterMQ and its Event Flag. * Loading Loading @@ -111,6 +113,7 @@ class Filter : public V1_1::IFilter { sp<V1_1::IFilterCallback> mCallback_1_1 = nullptr; uint64_t mFilterId; uint32_t mCid = static_cast<uint32_t>(V1_1::Constant::INVALID_IP_FILTER_CONTEXT_ID); uint32_t mBufferSize; DemuxFilterType mType; bool mIsMediaFilter = false; Loading tv/tuner/1.1/types.hal +5 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,11 @@ enum Constant : @1.0::Constant { * An invalid frenquency that can be used as the default value of the frontend setting. */ INVALID_FRONTEND_SETTING_FREQUENCY = 0xFFFFFFFF, /** * An invalid context id that can be used as the default value of the unconfigured id. It can * be used to reset the configured ip context id. */ INVALID_IP_FILTER_CONTEXT_ID = 0xFFFFFFFF, }; @export Loading tv/tuner/1.1/vts/functional/FilterTests.cpp +16 −0 Original line number Diff line number Diff line Loading @@ -89,6 +89,22 @@ AssertionResult FilterTests::configFilter(DemuxFilterSettings setting, uint64_t return AssertionResult(status == Result::SUCCESS); } AssertionResult FilterTests::configIpFilterCid(uint32_t ipCid, uint64_t filterId) { Result status; EXPECT_TRUE(mFilters[filterId]) << "Open Ip filter first."; sp<android::hardware::tv::tuner::V1_1::IFilter> filter_v1_1 = android::hardware::tv::tuner::V1_1::IFilter::castFrom(mFilters[filterId]); if (filter_v1_1 != NULL) { status = filter_v1_1->configureIpCid(ipCid); } else { ALOGW("[vts] Can't cast IFilter into v1_1."); return failure(); } return AssertionResult(status == Result::SUCCESS); } AssertionResult FilterTests::getFilterMQDescriptor(uint64_t filterId) { Result status; EXPECT_TRUE(mFilters[filterId]) << "Test with getNewlyOpenedFilterId first."; Loading Loading
tv/tuner/1.1/IFilter.hal +11 −0 Original line number Diff line number Diff line Loading @@ -40,4 +40,15 @@ interface IFilter extends @1.0::IFilter { * @return filterId the hardware resource Id for the filter. */ getId64Bit() generates (Result result, uint64_t filterId); /** * Configure additional Context ID on the IP filter. * * @param ipCid Context Id of the IP filter. * @return result Result status of the operation. * SUCCESS if successful, * INVALID_STATE if failed for wrong state. * UNKNOWN_ERROR if failed for other reasons. */ configureIpCid(uint32_t ipCid) generates (Result result); };
tv/tuner/1.1/default/Filter.cpp +11 −0 Original line number Diff line number Diff line Loading @@ -179,6 +179,17 @@ Return<Result> Filter::close() { return mDemux->removeFilter(mFilterId); } Return<Result> Filter::configureIpCid(uint32_t ipCid) { ALOGV("%s", __FUNCTION__); if (mType.mainType != DemuxFilterMainType::IP) { return Result::INVALID_STATE; } mCid = ipCid; return Result::SUCCESS; } bool Filter::createFilterMQ() { ALOGV("%s", __FUNCTION__); Loading
tv/tuner/1.1/default/Filter.h +3 −0 Original line number Diff line number Diff line Loading @@ -76,6 +76,8 @@ class Filter : public V1_1::IFilter { virtual Return<Result> close() override; virtual Return<Result> configureIpCid(uint32_t ipCid) override; /** * To create a FilterMQ and its Event Flag. * Loading Loading @@ -111,6 +113,7 @@ class Filter : public V1_1::IFilter { sp<V1_1::IFilterCallback> mCallback_1_1 = nullptr; uint64_t mFilterId; uint32_t mCid = static_cast<uint32_t>(V1_1::Constant::INVALID_IP_FILTER_CONTEXT_ID); uint32_t mBufferSize; DemuxFilterType mType; bool mIsMediaFilter = false; Loading
tv/tuner/1.1/types.hal +5 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,11 @@ enum Constant : @1.0::Constant { * An invalid frenquency that can be used as the default value of the frontend setting. */ INVALID_FRONTEND_SETTING_FREQUENCY = 0xFFFFFFFF, /** * An invalid context id that can be used as the default value of the unconfigured id. It can * be used to reset the configured ip context id. */ INVALID_IP_FILTER_CONTEXT_ID = 0xFFFFFFFF, }; @export Loading
tv/tuner/1.1/vts/functional/FilterTests.cpp +16 −0 Original line number Diff line number Diff line Loading @@ -89,6 +89,22 @@ AssertionResult FilterTests::configFilter(DemuxFilterSettings setting, uint64_t return AssertionResult(status == Result::SUCCESS); } AssertionResult FilterTests::configIpFilterCid(uint32_t ipCid, uint64_t filterId) { Result status; EXPECT_TRUE(mFilters[filterId]) << "Open Ip filter first."; sp<android::hardware::tv::tuner::V1_1::IFilter> filter_v1_1 = android::hardware::tv::tuner::V1_1::IFilter::castFrom(mFilters[filterId]); if (filter_v1_1 != NULL) { status = filter_v1_1->configureIpCid(ipCid); } else { ALOGW("[vts] Can't cast IFilter into v1_1."); return failure(); } return AssertionResult(status == Result::SUCCESS); } AssertionResult FilterTests::getFilterMQDescriptor(uint64_t filterId) { Result status; EXPECT_TRUE(mFilters[filterId]) << "Test with getNewlyOpenedFilterId first."; Loading