From 191f76bb3803eddbf20105fe5ebaf839b61e1623 Mon Sep 17 00:00:00 2001 From: Ray Chin Date: Tue, 13 Dec 2022 17:50:59 +0800 Subject: [PATCH] Add new DemuxFilterStatus NO_DATA Bug: 260651195 Test: test on cf_x86_tv-userdebug Change-Id: I56619579ebf09b49d288254f2d77320cd5575d69 --- .../current/android/hardware/tv/tuner/DemuxFilterStatus.aidl | 1 + .../aidl/android/hardware/tv/tuner/DemuxFilterStatus.aidl | 5 +++++ tv/tuner/aidl/default/Filter.cpp | 2 ++ 3 files changed, 8 insertions(+) diff --git a/tv/tuner/aidl/aidl_api/android.hardware.tv.tuner/current/android/hardware/tv/tuner/DemuxFilterStatus.aidl b/tv/tuner/aidl/aidl_api/android.hardware.tv.tuner/current/android/hardware/tv/tuner/DemuxFilterStatus.aidl index 36b40ea5b9..1dc593ac18 100644 --- a/tv/tuner/aidl/aidl_api/android.hardware.tv.tuner/current/android/hardware/tv/tuner/DemuxFilterStatus.aidl +++ b/tv/tuner/aidl/aidl_api/android.hardware.tv.tuner/current/android/hardware/tv/tuner/DemuxFilterStatus.aidl @@ -39,4 +39,5 @@ enum DemuxFilterStatus { LOW_WATER = 2, HIGH_WATER = 4, OVERFLOW = 8, + NO_DATA = 16, } diff --git a/tv/tuner/aidl/android/hardware/tv/tuner/DemuxFilterStatus.aidl b/tv/tuner/aidl/android/hardware/tv/tuner/DemuxFilterStatus.aidl index e6f3b63b95..45a473ea5f 100644 --- a/tv/tuner/aidl/android/hardware/tv/tuner/DemuxFilterStatus.aidl +++ b/tv/tuner/aidl/android/hardware/tv/tuner/DemuxFilterStatus.aidl @@ -46,4 +46,9 @@ enum DemuxFilterStatus { * discarded. */ OVERFLOW = 1 << 3, + + /** + * Indicating there is no data coming to the filter. + */ + NO_DATA = 1 << 4, } diff --git a/tv/tuner/aidl/default/Filter.cpp b/tv/tuner/aidl/default/Filter.cpp index ade265ca26..59e301dccb 100644 --- a/tv/tuner/aidl/default/Filter.cpp +++ b/tv/tuner/aidl/default/Filter.cpp @@ -691,6 +691,8 @@ DemuxFilterStatus Filter::checkFilterStatusChange(uint32_t availableToWrite, return DemuxFilterStatus::OVERFLOW; } else if (availableToRead > highThreshold) { return DemuxFilterStatus::HIGH_WATER; + } else if (availableToRead == 0) { + return DemuxFilterStatus::NO_DATA; } else if (availableToRead < lowThreshold) { return DemuxFilterStatus::LOW_WATER; }