Add FrontendStatus for IPTV
Test: atest VtsHalTvTunerTargetTest
Bug: 263504906
Change-Id: I33c6480933fa830a9c17cf04eb3336c7ce11a587
diff --git a/tv/tuner/aidl/aidl_api/android.hardware.tv.tuner/current/android/hardware/tv/tuner/FrontendStatus.aidl b/tv/tuner/aidl/aidl_api/android.hardware.tv.tuner/current/android/hardware/tv/tuner/FrontendStatus.aidl
index 1e0f5f0..b991ab6 100644
--- a/tv/tuner/aidl/aidl_api/android.hardware.tv.tuner/current/android/hardware/tv/tuner/FrontendStatus.aidl
+++ b/tv/tuner/aidl/aidl_api/android.hardware.tv.tuner/current/android/hardware/tv/tuner/FrontendStatus.aidl
@@ -77,4 +77,9 @@
int[] streamIdList;
int[] dvbtCellIds;
android.hardware.tv.tuner.FrontendScanAtsc3PlpInfo[] allPlpInfo;
+ String iptvContentUrl = "";
+ long iptvPacketsReceived;
+ long iptvPacketsLost;
+ int iptvWorstJitterMs;
+ int iptvAverageJitterMs;
}
diff --git a/tv/tuner/aidl/aidl_api/android.hardware.tv.tuner/current/android/hardware/tv/tuner/FrontendStatusType.aidl b/tv/tuner/aidl/aidl_api/android.hardware.tv.tuner/current/android/hardware/tv/tuner/FrontendStatusType.aidl
index cd6ccb3..3791299 100644
--- a/tv/tuner/aidl/aidl_api/android.hardware.tv.tuner/current/android/hardware/tv/tuner/FrontendStatusType.aidl
+++ b/tv/tuner/aidl/aidl_api/android.hardware.tv.tuner/current/android/hardware/tv/tuner/FrontendStatusType.aidl
@@ -77,4 +77,9 @@
STREAM_ID_LIST = 39,
DVBT_CELL_IDS = 40,
ATSC3_ALL_PLP_INFO = 41,
+ IPTV_CONTENT_URL = 42,
+ IPTV_PACKETS_LOST = 43,
+ IPTV_PACKETS_RECEIVED = 44,
+ IPTV_WORST_JITTER_MS = 45,
+ IPTV_AVERAGE_JITTER_MS = 46,
}
diff --git a/tv/tuner/aidl/android/hardware/tv/tuner/FrontendStatus.aidl b/tv/tuner/aidl/android/hardware/tv/tuner/FrontendStatus.aidl
index b5d0201..391f29b 100644
--- a/tv/tuner/aidl/android/hardware/tv/tuner/FrontendStatus.aidl
+++ b/tv/tuner/aidl/android/hardware/tv/tuner/FrontendStatus.aidl
@@ -26,8 +26,8 @@
import android.hardware.tv.tuner.FrontendModulation;
import android.hardware.tv.tuner.FrontendModulationStatus;
import android.hardware.tv.tuner.FrontendRollOff;
-import android.hardware.tv.tuner.FrontendSpectralInversion;
import android.hardware.tv.tuner.FrontendScanAtsc3PlpInfo;
+import android.hardware.tv.tuner.FrontendSpectralInversion;
import android.hardware.tv.tuner.FrontendStatusAtsc3PlpInfo;
import android.hardware.tv.tuner.FrontendTransmissionMode;
import android.hardware.tv.tuner.LnbVoltage;
@@ -247,4 +247,29 @@
* and not tuned PLPs for currently watching service.
*/
FrontendScanAtsc3PlpInfo[] allPlpInfo;
+
+ /**
+ * IPTV Content URL
+ */
+ String iptvContentUrl = "";
+
+ /**
+ * Packets Received (IPTV - UDP/RTP).
+ */
+ long iptvPacketsReceived;
+
+ /**
+ * Packets Lost (IPTV - RTP).
+ */
+ long iptvPacketsLost;
+
+ /**
+ * Worst jitter (milliseconds).
+ */
+ int iptvWorstJitterMs;
+
+ /**
+ * Average jitter (milliseconds).
+ */
+ int iptvAverageJitterMs;
}
diff --git a/tv/tuner/aidl/android/hardware/tv/tuner/FrontendStatusType.aidl b/tv/tuner/aidl/android/hardware/tv/tuner/FrontendStatusType.aidl
index 8f3f2c5..6804b2d 100644
--- a/tv/tuner/aidl/android/hardware/tv/tuner/FrontendStatusType.aidl
+++ b/tv/tuner/aidl/android/hardware/tv/tuner/FrontendStatusType.aidl
@@ -234,4 +234,29 @@
* and not tuned PLPs for currently watching service.
*/
ATSC3_ALL_PLP_INFO,
+
+ /**
+ * IPTV Content URL.
+ */
+ IPTV_CONTENT_URL,
+
+ /**
+ * Number of packets lost.
+ */
+ IPTV_PACKETS_LOST,
+
+ /**
+ * Number of packets received.
+ */
+ IPTV_PACKETS_RECEIVED,
+
+ /**
+ * Worst jitter (milliseconds).
+ */
+ IPTV_WORST_JITTER_MS,
+
+ /**
+ * Average jitter (milliseconds).
+ */
+ IPTV_AVERAGE_JITTER_MS,
}
diff --git a/tv/tuner/aidl/default/Frontend.cpp b/tv/tuner/aidl/default/Frontend.cpp
index 0573d08..0e32b61 100644
--- a/tv/tuner/aidl/default/Frontend.cpp
+++ b/tv/tuner/aidl/default/Frontend.cpp
@@ -873,6 +873,26 @@
status.set<FrontendStatus::allPlpInfo>(infos);
break;
}
+ case FrontendStatusType::IPTV_CONTENT_URL: {
+ status.set<FrontendStatus::iptvContentUrl>("");
+ break;
+ }
+ case FrontendStatusType::IPTV_PACKETS_LOST: {
+ status.set<FrontendStatus::iptvPacketsLost>(5);
+ break;
+ }
+ case FrontendStatusType::IPTV_PACKETS_RECEIVED: {
+ status.set<FrontendStatus::iptvPacketsReceived>(5);
+ break;
+ }
+ case FrontendStatusType::IPTV_WORST_JITTER_MS: {
+ status.set<FrontendStatus::iptvWorstJitterMs>(5);
+ break;
+ }
+ case FrontendStatusType::IPTV_AVERAGE_JITTER_MS: {
+ status.set<FrontendStatus::iptvAverageJitterMs>(5);
+ break;
+ }
default: {
continue;
}
diff --git a/tv/tuner/aidl/vts/functional/FrontendTests.cpp b/tv/tuner/aidl/vts/functional/FrontendTests.cpp
index 2ff0c3d..b0f614e 100644
--- a/tv/tuner/aidl/vts/functional/FrontendTests.cpp
+++ b/tv/tuner/aidl/vts/functional/FrontendTests.cpp
@@ -434,6 +434,31 @@
expectStatuses[i].get<FrontendStatus::Tag::allPlpInfo>().begin()));
break;
}
+ case FrontendStatusType::IPTV_CONTENT_URL: {
+ ASSERT_TRUE(realStatuses[i].get<FrontendStatus::Tag::iptvContentUrl>() ==
+ expectStatuses[i].get<FrontendStatus::Tag::iptvContentUrl>());
+ break;
+ }
+ case FrontendStatusType::IPTV_PACKETS_LOST: {
+ ASSERT_TRUE(realStatuses[i].get<FrontendStatus::Tag::iptvPacketsLost>() ==
+ expectStatuses[i].get<FrontendStatus::Tag::iptvPacketsLost>());
+ break;
+ }
+ case FrontendStatusType::IPTV_PACKETS_RECEIVED: {
+ ASSERT_TRUE(realStatuses[i].get<FrontendStatus::Tag::iptvPacketsReceived>() ==
+ expectStatuses[i].get<FrontendStatus::Tag::iptvPacketsReceived>());
+ break;
+ }
+ case FrontendStatusType::IPTV_WORST_JITTER_MS: {
+ ASSERT_TRUE(realStatuses[i].get<FrontendStatus::Tag::iptvWorstJitterMs>() ==
+ expectStatuses[i].get<FrontendStatus::Tag::iptvWorstJitterMs>());
+ break;
+ }
+ case FrontendStatusType::IPTV_AVERAGE_JITTER_MS: {
+ ASSERT_TRUE(realStatuses[i].get<FrontendStatus::Tag::iptvAverageJitterMs>() ==
+ expectStatuses[i].get<FrontendStatus::Tag::iptvAverageJitterMs>());
+ break;
+ }
default: {
continue;
}