Merge "add tuner delay hint to TunerFilter"
diff --git a/services/tuner/TunerFilter.cpp b/services/tuner/TunerFilter.cpp
index db8e462..fb5bfa3 100644
--- a/services/tuner/TunerFilter.cpp
+++ b/services/tuner/TunerFilter.cpp
@@ -405,6 +405,17 @@
return ::ndk::ScopedAStatus::ok();
}
+::ndk::ScopedAStatus TunerFilter::setDelayHint(const FilterDelayHint& in_hint) {
+ Mutex::Autolock _l(mLock);
+ if (mFilter == nullptr) {
+ ALOGE("IFilter is not initialized");
+ return ::ndk::ScopedAStatus::fromServiceSpecificError(
+ static_cast<int32_t>(Result::UNAVAILABLE));
+ }
+
+ return mFilter->setDelayHint(in_hint);
+}
+
bool TunerFilter::isSharedFilterAllowed(int callingPid) {
return mShared && mClientPid != callingPid;
}
diff --git a/services/tuner/TunerFilter.h b/services/tuner/TunerFilter.h
index 46686d6..529c191 100644
--- a/services/tuner/TunerFilter.h
+++ b/services/tuner/TunerFilter.h
@@ -23,6 +23,7 @@
#include <aidl/android/hardware/tv/tuner/DemuxFilterSettings.h>
#include <aidl/android/hardware/tv/tuner/DemuxFilterStatus.h>
#include <aidl/android/hardware/tv/tuner/DemuxFilterType.h>
+#include <aidl/android/hardware/tv/tuner/FilterDelayHint.h>
#include <aidl/android/hardware/tv/tuner/IFilter.h>
#include <aidl/android/media/tv/tuner/BnTunerFilter.h>
#include <aidl/android/media/tv/tuner/ITunerFilterCallback.h>
@@ -37,6 +38,7 @@
using ::aidl::android::hardware::tv::tuner::DemuxFilterSettings;
using ::aidl::android::hardware::tv::tuner::DemuxFilterStatus;
using ::aidl::android::hardware::tv::tuner::DemuxFilterType;
+using ::aidl::android::hardware::tv::tuner::FilterDelayHint;
using ::aidl::android::hardware::tv::tuner::IFilter;
using ::aidl::android::media::tv::tuner::BnTunerFilter;
using ::android::Mutex;
@@ -94,6 +96,7 @@
::ndk::ScopedAStatus acquireSharedFilterToken(string* _aidl_return) override;
::ndk::ScopedAStatus freeSharedFilterToken(const string& in_filterToken) override;
::ndk::ScopedAStatus getFilterType(DemuxFilterType* _aidl_return) override;
+ ::ndk::ScopedAStatus setDelayHint(const FilterDelayHint& in_hint) override;
bool isSharedFilterAllowed(int32_t pid);
void attachSharedFilterCallback(const shared_ptr<ITunerFilterCallback>& in_cb);
diff --git a/services/tuner/aidl/android/media/tv/tuner/ITunerFilter.aidl b/services/tuner/aidl/android/media/tv/tuner/ITunerFilter.aidl
index f009655..dc40f03 100644
--- a/services/tuner/aidl/android/media/tv/tuner/ITunerFilter.aidl
+++ b/services/tuner/aidl/android/media/tv/tuner/ITunerFilter.aidl
@@ -23,6 +23,7 @@
import android.hardware.tv.tuner.DemuxFilterType;
import android.hardware.tv.tuner.AvStreamType;
import android.hardware.tv.tuner.DemuxFilterMonitorEventType;
+import android.hardware.tv.tuner.FilterDelayHint;
/**
* Tuner Filter interface handles tuner related operations.
@@ -121,4 +122,6 @@
* @return filter type.
*/
DemuxFilterType getFilterType();
+
+ void setDelayHint(in FilterDelayHint hint);
}
diff --git a/services/tuner/hidl/TunerHidlFilter.cpp b/services/tuner/hidl/TunerHidlFilter.cpp
index 0e9568b..7b76093 100644
--- a/services/tuner/hidl/TunerHidlFilter.cpp
+++ b/services/tuner/hidl/TunerHidlFilter.cpp
@@ -582,6 +582,12 @@
return ::ndk::ScopedAStatus::ok();
}
+::ndk::ScopedAStatus TunerHidlFilter::setDelayHint(const FilterDelayHint&) {
+ // setDelayHint is not supported in HIDL HAL
+ return ::ndk::ScopedAStatus::fromServiceSpecificError(
+ static_cast<int32_t>(Result::UNAVAILABLE));
+}
+
bool TunerHidlFilter::isSharedFilterAllowed(int callingPid) {
return mShared && mClientPid != callingPid;
}
diff --git a/services/tuner/hidl/TunerHidlFilter.h b/services/tuner/hidl/TunerHidlFilter.h
index 62bab26..b8fad22 100644
--- a/services/tuner/hidl/TunerHidlFilter.h
+++ b/services/tuner/hidl/TunerHidlFilter.h
@@ -52,6 +52,7 @@
using ::aidl::android::hardware::tv::tuner::DemuxFilterStatus;
using ::aidl::android::hardware::tv::tuner::DemuxFilterType;
using ::aidl::android::hardware::tv::tuner::DemuxIpAddressIpAddress;
+using ::aidl::android::hardware::tv::tuner::FilterDelayHint;
using ::aidl::android::media::tv::tuner::BnTunerFilter;
using ::aidl::android::media::tv::tuner::ITunerFilterCallback;
using ::android::Mutex;
@@ -185,6 +186,7 @@
::ndk::ScopedAStatus acquireSharedFilterToken(string* _aidl_return) override;
::ndk::ScopedAStatus freeSharedFilterToken(const string& in_filterToken) override;
::ndk::ScopedAStatus getFilterType(DemuxFilterType* _aidl_return) override;
+ ::ndk::ScopedAStatus setDelayHint(const FilterDelayHint& in_hint) override;
bool isSharedFilterAllowed(int32_t pid);
void attachSharedFilterCallback(const shared_ptr<ITunerFilterCallback>& in_cb);