Add TEMI filter, releasing AV handle and CI-CAM
Test: Manual
bug: 135708935
Change-Id: I21701185feb274dc1e8b3cff3db59b9d3f73edf1
diff --git a/tv/tuner/1.0/default/Demux.cpp b/tv/tuner/1.0/default/Demux.cpp
index c5921f7..71a26ab 100644
--- a/tv/tuner/1.0/default/Demux.cpp
+++ b/tv/tuner/1.0/default/Demux.cpp
@@ -147,6 +147,20 @@
return Void();
}
+Return<Result> Demux::connectCiCam(uint32_t ciCamId) {
+ ALOGV("%s", __FUNCTION__);
+
+ mCiCamId = ciCamId;
+
+ return Result::SUCCESS;
+}
+
+Return<Result> Demux::disconnectCiCam() {
+ ALOGV("%s", __FUNCTION__);
+
+ return Result::SUCCESS;
+}
+
Result Demux::removeFilter(uint32_t filterId) {
ALOGV("%s", __FUNCTION__);
diff --git a/tv/tuner/1.0/default/Demux.h b/tv/tuner/1.0/default/Demux.h
index a9756cc..037429d 100644
--- a/tv/tuner/1.0/default/Demux.h
+++ b/tv/tuner/1.0/default/Demux.h
@@ -76,6 +76,10 @@
virtual Return<void> openDvr(DvrType type, uint32_t bufferSize, const sp<IDvrCallback>& cb,
openDvr_cb _hidl_cb) override;
+ virtual Return<Result> connectCiCam(uint32_t ciCamId) override;
+
+ virtual Return<Result> disconnectCiCam() override;
+
// Functions interacts with Tuner Service
void stopBroadcastInput();
Result removeFilter(uint32_t filterId);
@@ -118,6 +122,7 @@
void startTsFilter(vector<uint8_t> data);
uint32_t mDemuxId;
+ uint32_t mCiCamId;
/**
* Record the last used filter id. Initial value is -1.
* Filter Id starts with 0.
diff --git a/tv/tuner/1.0/default/Filter.cpp b/tv/tuner/1.0/default/Filter.cpp
index 3d8a977..befd1e6 100644
--- a/tv/tuner/1.0/default/Filter.cpp
+++ b/tv/tuner/1.0/default/Filter.cpp
@@ -120,6 +120,12 @@
return Result::SUCCESS;
}
+Return<Result> Filter::releaseAvHandle(const hidl_handle& /*avMemory*/) {
+ ALOGV("%s", __FUNCTION__);
+
+ return Result::SUCCESS;
+}
+
Return<Result> Filter::close() {
ALOGV("%s", __FUNCTION__);
@@ -289,6 +295,9 @@
case DemuxTsFilterType::RECORD:
startRecordFilterHandler();
break;
+ case DemuxTsFilterType::TEMI:
+ startTemiFilterHandler();
+ break;
}
break;
case DemuxFilterMainType::MMTP:
@@ -419,6 +428,11 @@
return Result::SUCCESS;
}
+Result Filter::startTemiFilterHandler() {
+ // TODO handle starting TEMI filter
+ return Result::SUCCESS;
+}
+
bool Filter::writeSectionsAndCreateEvent(vector<uint8_t> data) {
// TODO check how many sections has been read
ALOGD("[Filter] section hander");
@@ -453,4 +467,4 @@
} // namespace tuner
} // namespace tv
} // namespace hardware
-} // namespace android
\ No newline at end of file
+} // namespace android
diff --git a/tv/tuner/1.0/default/Filter.h b/tv/tuner/1.0/default/Filter.h
index 21d4297..fbd965a 100644
--- a/tv/tuner/1.0/default/Filter.h
+++ b/tv/tuner/1.0/default/Filter.h
@@ -68,6 +68,8 @@
virtual Return<Result> flush() override;
+ virtual Return<Result> releaseAvHandle(const hidl_handle& avMemory) override;
+
virtual Return<Result> close() override;
/**
@@ -129,6 +131,7 @@
Result startMediaFilterHandler();
Result startRecordFilterHandler();
Result startPcrFilterHandler();
+ Result startTemiFilterHandler();
Result startFilterLoop();
void deleteEventFlag();
@@ -176,4 +179,4 @@
} // namespace hardware
} // namespace android
-#endif // ANDROID_HARDWARE_TV_TUNER_V1_0_FILTER_H_
\ No newline at end of file
+#endif // ANDROID_HARDWARE_TV_TUNER_V1_0_FILTER_H_