diff --git a/tv/tuner/aidl/vts/functional/FilterTests.cpp b/tv/tuner/aidl/vts/functional/FilterTests.cpp
index 381475a..c53adb2 100644
--- a/tv/tuner/aidl/vts/functional/FilterTests.cpp
+++ b/tv/tuner/aidl/vts/functional/FilterTests.cpp
@@ -118,8 +118,8 @@
 }
 
 bool FilterCallback::dumpAvData(const DemuxFilterMediaEvent& event) {
-    int32_t length = event.dataLength;
-    int32_t offset = event.offset;
+    int64_t length = event.dataLength;
+    int64_t offset = event.offset;
     int av_fd;
     // read data from buffer pointed by a handle
     if (event.avMemory.fds.size() == 0) {
diff --git a/tv/tuner/aidl/vts/functional/FrontendTests.cpp b/tv/tuner/aidl/vts/functional/FrontendTests.cpp
index 93b7976..7dce4fb 100644
--- a/tv/tuner/aidl/vts/functional/FrontendTests.cpp
+++ b/tv/tuner/aidl/vts/functional/FrontendTests.cpp
@@ -120,7 +120,7 @@
 
 void FrontendCallback::scanTest(std::shared_ptr<IFrontend>& frontend, FrontendConfig config,
                                 FrontendScanType type) {
-    int32_t targetFrequency = getTargetFrequency(config.settings);
+    int64_t targetFrequency = getTargetFrequency(config.settings);
     if (type == FrontendScanType::SCAN_BLIND) {
         // reset the frequency in the scan configuration to test blind scan. The settings param of
         // passed in means the real input config on the transponder connected to the DUT.
@@ -176,7 +176,7 @@
     mScanMsgProcessed = true;
 }
 
-int32_t FrontendCallback::getTargetFrequency(FrontendSettings& settings) {
+int64_t FrontendCallback::getTargetFrequency(FrontendSettings& settings) {
     switch (settings.getTag()) {
         case FrontendSettings::Tag::analog:
             return settings.get<FrontendSettings::Tag::analog>().frequency;
@@ -202,7 +202,7 @@
 }
 
 void FrontendCallback::resetBlindScanStartingFrequency(FrontendConfig& config,
-                                                       int32_t resetingFreq) {
+                                                       int64_t resetingFreq) {
     switch (config.settings.getTag()) {
         case FrontendSettings::Tag::analog:
             config.settings.get<FrontendSettings::Tag::analog>().frequency = resetingFreq;
diff --git a/tv/tuner/aidl/vts/functional/FrontendTests.h b/tv/tuner/aidl/vts/functional/FrontendTests.h
index b65704f..e5a9cd3 100644
--- a/tv/tuner/aidl/vts/functional/FrontendTests.h
+++ b/tv/tuner/aidl/vts/functional/FrontendTests.h
@@ -53,8 +53,8 @@
                   FrontendScanType type);
 
     // Helper methods
-    int32_t getTargetFrequency(FrontendSettings& settings);
-    void resetBlindScanStartingFrequency(FrontendConfig& config, int32_t resetingFreq);
+    int64_t getTargetFrequency(FrontendSettings& settings);
+    void resetBlindScanStartingFrequency(FrontendConfig& config, int64_t resetingFreq);
 
   private:
     void readFrontendScanMessage_Modulation(FrontendModulation modulation);
@@ -113,7 +113,7 @@
                 .lowThreshold = 0x1000,
                 .highThreshold = 0x07fff,
                 .dataFormat = DataFormat::ES,
-                .packetSize = static_cast<int8_t>(188),
+                .packetSize = static_cast<int64_t>(188),
         };
         dvrConfig.type = DvrType::PLAYBACK;
         dvrConfig.playbackInputFile = "/data/local/tmp/test.es";
