ISDB-T Multi-Layer Backward Compatible.
*) Query modulation and codeRate from AIDL Layer Settings.
*) Set Capabilities default values.
Bug: 171537116
Test: atest VtsHalTvTunerTargetTest
Test: atest android.media.tv.tuner.cts on AIDL and HAL HALs
Change-Id: Ic2792fb0152c5c1c321033ba7777fe76fe48301a
diff --git a/services/tuner/hidl/TunerHidlFrontend.cpp b/services/tuner/hidl/TunerHidlFrontend.cpp
index bbfc90f..1f28406 100644
--- a/services/tuner/hidl/TunerHidlFrontend.cpp
+++ b/services/tuner/hidl/TunerHidlFrontend.cpp
@@ -1158,12 +1158,19 @@
}
case FrontendSettings::isdbt: {
const FrontendIsdbtSettings& isdbt = aidlSettings.get<FrontendSettings::isdbt>();
+ HidlFrontendIsdbtModulation modulation = HidlFrontendIsdbtModulation::UNDEFINED;
+ HidlFrontendIsdbtCoderate coderate = HidlFrontendIsdbtCoderate::UNDEFINED;
+ if (isdbt.layerSettings.size() > 0) {
+ modulation =
+ static_cast<HidlFrontendIsdbtModulation>(isdbt.layerSettings[0].modulation);
+ coderate = static_cast<HidlFrontendIsdbtCoderate>(isdbt.layerSettings[0].coderate);
+ }
settings.isdbt({
.frequency = static_cast<uint32_t>(isdbt.frequency),
- .modulation = static_cast<HidlFrontendIsdbtModulation>(isdbt.modulation),
+ .modulation = modulation,
.bandwidth = static_cast<HidlFrontendIsdbtBandwidth>(isdbt.bandwidth),
.mode = static_cast<HidlFrontendIsdbtMode>(isdbt.mode),
- .coderate = static_cast<HidlFrontendIsdbtCoderate>(isdbt.coderate),
+ .coderate = coderate,
.guardInterval = static_cast<HidlFrontendIsdbtGuardInterval>(isdbt.guardInterval),
.serviceAreaId = static_cast<uint32_t>(isdbt.serviceAreaId),
});
diff --git a/services/tuner/hidl/TunerHidlService.cpp b/services/tuner/hidl/TunerHidlService.cpp
index 8d4053a..f4b0cde 100644
--- a/services/tuner/hidl/TunerHidlService.cpp
+++ b/services/tuner/hidl/TunerHidlService.cpp
@@ -19,6 +19,7 @@
#include "TunerHidlService.h"
+#include <aidl/android/hardware/tv/tuner/FrontendIsdbtTimeInterleaveMode.h>
#include <aidl/android/hardware/tv/tuner/Result.h>
#include <android/binder_manager.h>
#include <binder/IPCThreadState.h>
@@ -42,6 +43,7 @@
using ::aidl::android::hardware::tv::tuner::FrontendIsdbs3Capabilities;
using ::aidl::android::hardware::tv::tuner::FrontendIsdbsCapabilities;
using ::aidl::android::hardware::tv::tuner::FrontendIsdbtCapabilities;
+using ::aidl::android::hardware::tv::tuner::FrontendIsdbtTimeInterleaveMode;
using ::aidl::android::hardware::tv::tuner::FrontendType;
using ::aidl::android::hardware::tv::tuner::Result;
using ::aidl::android::media::tv::tunerresourcemanager::TunerFrontendInfo;
@@ -618,6 +620,10 @@
static_cast<int32_t>(halInfo.frontendCaps.isdbtCaps().coderateCap),
.guardIntervalCap =
static_cast<int32_t>(halInfo.frontendCaps.isdbtCaps().guardIntervalCap),
+ .timeInterleaveCap =
+ static_cast<int32_t>(FrontendIsdbtTimeInterleaveMode::UNDEFINED),
+ .isSegmentAuto = false,
+ .isFullSegment = false,
};
caps.set<FrontendCapabilities::isdbtCaps>(isdbtCaps);
}