Loading media/jni/tuner/DemuxClient.cpp +35 −8 Original line number Diff line number Diff line Loading @@ -88,12 +88,19 @@ sp<FilterClient> DemuxClient::openFilter(DemuxFilterType type, int bufferSize, } sp<TimeFilterClient> DemuxClient::openTimeFilter() { // TODO: pending aidl interface if (mTunerDemux != NULL) { shared_ptr<ITunerTimeFilter> tunerTimeFilter; Status s = mTunerDemux->openTimeFilter(&tunerTimeFilter); if (ClientHelper::getServiceSpecificErrorCode(s) != Result::SUCCESS) { return NULL; } return new TimeFilterClient(tunerTimeFilter); } if (mDemux != NULL) { sp<ITimeFilter> hidlTimeFilter = openHidlTimeFilter(); if (hidlTimeFilter != NULL) { sp<TimeFilterClient> timeFilterClient = new TimeFilterClient(); sp<TimeFilterClient> timeFilterClient = new TimeFilterClient(NULL); timeFilterClient->setHidlTimeFilter(hidlTimeFilter); return timeFilterClient; } Loading @@ -103,7 +110,14 @@ sp<TimeFilterClient> DemuxClient::openTimeFilter() { } int DemuxClient::getAvSyncHwId(sp<FilterClient> filterClient) { // pending aidl interface if (mTunerDemux != NULL) { int hwId; Status s = mTunerDemux->getAvSyncHwId(filterClient->getAidlFilter(), &hwId); if (ClientHelper::getServiceSpecificErrorCode(s) != Result::SUCCESS) { return INVALID_AV_SYNC_HW_ID; } return hwId; } if (mDemux != NULL) { uint32_t avSyncHwId; Loading @@ -119,11 +133,18 @@ int DemuxClient::getAvSyncHwId(sp<FilterClient> filterClient) { } } return -1; return INVALID_AV_SYNC_HW_ID; } long DemuxClient::getAvSyncTime(int avSyncHwId) { // pending aidl interface if (mTunerDemux != NULL) { int64_t time; Status s = mTunerDemux->getAvSyncTime(avSyncHwId, &time); if (ClientHelper::getServiceSpecificErrorCode(s) != Result::SUCCESS) { return INVALID_AV_SYNC_TIME; } return time; } if (mDemux != NULL) { uint64_t time; Loading @@ -138,7 +159,7 @@ long DemuxClient::getAvSyncTime(int avSyncHwId) { } } return -1; return INVALID_AV_SYNC_TIME; } sp<DvrClient> DemuxClient::openDvr(DvrType dvbType, int bufferSize, sp<DvrClientCallback> cb) { Loading Loading @@ -167,7 +188,10 @@ sp<DvrClient> DemuxClient::openDvr(DvrType dvbType, int bufferSize, sp<DvrClient } Result DemuxClient::connectCiCam(int ciCamId) { // pending aidl interface if (mTunerDemux != NULL) { Status s = mTunerDemux->connectCiCam(ciCamId); return ClientHelper::getServiceSpecificErrorCode(s); } if (mDemux != NULL) { return mDemux->connectCiCam(static_cast<uint32_t>(ciCamId)); Loading @@ -177,7 +201,10 @@ Result DemuxClient::connectCiCam(int ciCamId) { } Result DemuxClient::disconnectCiCam() { // pending aidl interface if (mTunerDemux != NULL) { Status s = mTunerDemux->disconnectCiCam(); return ClientHelper::getServiceSpecificErrorCode(s); } if (mDemux != NULL) { return mDemux->disconnectCiCam(); Loading media/jni/tuner/DemuxClient.h +5 −0 Original line number Diff line number Diff line Loading @@ -31,7 +31,9 @@ using Status = ::ndk::ScopedAStatus; using ::aidl::android::media::tv::tuner::ITunerDemux; using ::aidl::android::media::tv::tuner::ITunerTimeFilter; using ::android::hardware::tv::tuner::V1_0::IDemux; using ::android::hardware::tv::tuner::V1_0::DemuxFilterType; using ::android::hardware::tv::tuner::V1_0::DvrType; using ::android::hardware::tv::tuner::V1_0::IDemux; Loading @@ -39,6 +41,9 @@ using ::android::hardware::tv::tuner::V1_0::ITimeFilter; using namespace std; const int64_t INVALID_AV_SYNC_TIME = -1; const int INVALID_AV_SYNC_HW_ID = -1; namespace android { struct DemuxClient : public RefBase { Loading media/jni/tuner/TimeFilterClient.cpp +35 −12 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ #include <android-base/logging.h> #include <utils/Log.h> #include "ClientHelper.h" #include "TimeFilterClient.h" using ::android::hardware::tv::tuner::V1_0::Result; Loading @@ -28,13 +29,12 @@ namespace android { /////////////// TimeFilterClient /////////////////////// // TODO: pending aidl interface TimeFilterClient::TimeFilterClient() { //mTunerTimeFilter = tunerTimeFilter; TimeFilterClient::TimeFilterClient(shared_ptr<ITunerTimeFilter> tunerTimeFilter) { mTunerTimeFilter = tunerTimeFilter; } TimeFilterClient::~TimeFilterClient() { //mTunerTimeFilter = NULL; mTunerTimeFilter = NULL; mTimeFilter = NULL; } Loading @@ -44,7 +44,10 @@ void TimeFilterClient::setHidlTimeFilter(sp<ITimeFilter> timeFilter) { } Result TimeFilterClient::setTimeStamp(long timeStamp) { // TODO: pending aidl interface if (mTunerTimeFilter != NULL) { Status s = mTunerTimeFilter->setTimeStamp(timeStamp); return ClientHelper::getServiceSpecificErrorCode(s); } if (mTimeFilter != NULL) { return mTimeFilter->setTimeStamp(timeStamp); Loading @@ -54,7 +57,10 @@ Result TimeFilterClient::setTimeStamp(long timeStamp) { } Result TimeFilterClient::clearTimeStamp() { // TODO: pending aidl interface if (mTunerTimeFilter != NULL) { Status s = mTunerTimeFilter->clearTimeStamp(); return ClientHelper::getServiceSpecificErrorCode(s); } if (mTimeFilter != NULL) { return mTimeFilter->clearTimeStamp(); Loading @@ -64,7 +70,14 @@ Result TimeFilterClient::clearTimeStamp() { } long TimeFilterClient::getTimeStamp() { // TODO: pending aidl interface if (mTunerTimeFilter != NULL) { int64_t timeStamp; Status s = mTunerTimeFilter->getTimeStamp(&timeStamp); if (ClientHelper::getServiceSpecificErrorCode(s) != Result::SUCCESS) { return (long)Constant64Bit::INVALID_PRESENTATION_TIME_STAMP; } return timeStamp; } if (mTimeFilter != NULL) { Result res; Loading @@ -84,27 +97,37 @@ long TimeFilterClient::getTimeStamp() { } long TimeFilterClient::getSourceTime() { // TODO: pending aidl interface if (mTunerTimeFilter != NULL) { int64_t sourceTime; Status s = mTunerTimeFilter->getTimeStamp(&sourceTime); if (ClientHelper::getServiceSpecificErrorCode(s) != Result::SUCCESS) { return (long)Constant64Bit::INVALID_PRESENTATION_TIME_STAMP; } return sourceTime; } if (mTimeFilter != NULL) { Result res; long timestamp; long sourceTime; mTimeFilter->getSourceTime( [&](Result r, uint64_t t) { res = r; timestamp = t; sourceTime = t; }); if (res != Result::SUCCESS) { return (long)Constant64Bit::INVALID_PRESENTATION_TIME_STAMP; } return timestamp; return sourceTime; } return (long)Constant64Bit::INVALID_PRESENTATION_TIME_STAMP; } Result TimeFilterClient::close() { // TODO: pending aidl interface if (mTunerTimeFilter != NULL) { Status s = mTunerTimeFilter->close(); return ClientHelper::getServiceSpecificErrorCode(s); } if (mTimeFilter != NULL) { return mTimeFilter->close(); Loading media/jni/tuner/TimeFilterClient.h +5 −6 Original line number Diff line number Diff line Loading @@ -17,12 +17,13 @@ #ifndef _ANDROID_MEDIA_TV_TIME_FILTER_CLIENT_H_ #define _ANDROID_MEDIA_TV_TIME_FILTER_CLIENT_H_ //#include <aidl/android/media/tv/tuner/ITunerTimeFilter.h> #include <aidl/android/media/tv/tuner/ITunerTimeFilter.h> #include <android/hardware/tv/tuner/1.0/ITimeFilter.h> #include <android/hardware/tv/tuner/1.1/types.h> //using ::aidl::android::media::tv::tuner::ITunerTimeFilter; using ::aidl::android::media::tv::tuner::ITunerTimeFilter; using Status = ::ndk::ScopedAStatus; using ::android::hardware::Return; using ::android::hardware::Void; using ::android::hardware::hidl_vec; Loading @@ -36,8 +37,7 @@ namespace android { struct TimeFilterClient : public RefBase { public: // TODO: add TunerTimeFilter as parameter. TimeFilterClient(); TimeFilterClient(shared_ptr<ITunerTimeFilter> tunerTimeFilter); ~TimeFilterClient(); // TODO: remove after migration to Tuner Service is done. Loading Loading @@ -73,8 +73,7 @@ private: * An AIDL Tuner TimeFilter Singleton assigned at the first time the Tuner Client * opens an TimeFilter. Default null when time filter is not opened. */ // TODO: pending on aidl interface //shared_ptr<ITunerTimeFilter> mTunerTimeFilter; shared_ptr<ITunerTimeFilter> mTunerTimeFilter; /** * A TimeFilter HAL interface that is ready before migrating to the TunerTimeFilter. Loading media/jni/tuner/TunerClient.cpp +28 −1 Original line number Diff line number Diff line Loading @@ -200,7 +200,14 @@ sp<DemuxClient> TunerClient::openDemux(int demuxHandle) { } shared_ptr<DemuxCapabilities> TunerClient::getDemuxCaps() { // pending aidl interface if (mTunerService != NULL) { TunerDemuxCapabilities aidlCaps; Status s = mTunerService->getDemuxCaps(&aidlCaps); if (ClientHelper::getServiceSpecificErrorCode(s) != Result::SUCCESS) { return NULL; } return make_shared<DemuxCapabilities>(getHidlDemuxCaps(aidlCaps)); } if (mTuner != NULL) { Result res; Loading Loading @@ -459,6 +466,26 @@ sp<IDescrambler> TunerClient::openHidlDescrambler() { return descrambler; } DemuxCapabilities TunerClient::getHidlDemuxCaps(TunerDemuxCapabilities& aidlCaps) { DemuxCapabilities caps{ .numDemux = (uint32_t)aidlCaps.numDemux, .numRecord = (uint32_t)aidlCaps.numRecord, .numPlayback = (uint32_t)aidlCaps.numPlayback, .numTsFilter = (uint32_t)aidlCaps.numTsFilter, .numSectionFilter = (uint32_t)aidlCaps.numSectionFilter, .numAudioFilter = (uint32_t)aidlCaps.numAudioFilter, .numVideoFilter = (uint32_t)aidlCaps.numVideoFilter, .numPesFilter = (uint32_t)aidlCaps.numPesFilter, .numPcrFilter = (uint32_t)aidlCaps.numPcrFilter, .numBytesInSectionFilter = (uint32_t)aidlCaps.numBytesInSectionFilter, .filterCaps = (uint32_t)aidlCaps.filterCaps, .bTimeFilter = aidlCaps.bTimeFilter, }; caps.linkCaps.resize(aidlCaps.linkCaps.size()); copy(aidlCaps.linkCaps.begin(), aidlCaps.linkCaps.end(), caps.linkCaps.begin()); return caps; } FrontendInfo TunerClient::FrontendInfoAidlToHidl(TunerFrontendInfo aidlFrontendInfo) { FrontendInfo hidlFrontendInfo { .type = static_cast<FrontendType>(aidlFrontendInfo.type), Loading Loading
media/jni/tuner/DemuxClient.cpp +35 −8 Original line number Diff line number Diff line Loading @@ -88,12 +88,19 @@ sp<FilterClient> DemuxClient::openFilter(DemuxFilterType type, int bufferSize, } sp<TimeFilterClient> DemuxClient::openTimeFilter() { // TODO: pending aidl interface if (mTunerDemux != NULL) { shared_ptr<ITunerTimeFilter> tunerTimeFilter; Status s = mTunerDemux->openTimeFilter(&tunerTimeFilter); if (ClientHelper::getServiceSpecificErrorCode(s) != Result::SUCCESS) { return NULL; } return new TimeFilterClient(tunerTimeFilter); } if (mDemux != NULL) { sp<ITimeFilter> hidlTimeFilter = openHidlTimeFilter(); if (hidlTimeFilter != NULL) { sp<TimeFilterClient> timeFilterClient = new TimeFilterClient(); sp<TimeFilterClient> timeFilterClient = new TimeFilterClient(NULL); timeFilterClient->setHidlTimeFilter(hidlTimeFilter); return timeFilterClient; } Loading @@ -103,7 +110,14 @@ sp<TimeFilterClient> DemuxClient::openTimeFilter() { } int DemuxClient::getAvSyncHwId(sp<FilterClient> filterClient) { // pending aidl interface if (mTunerDemux != NULL) { int hwId; Status s = mTunerDemux->getAvSyncHwId(filterClient->getAidlFilter(), &hwId); if (ClientHelper::getServiceSpecificErrorCode(s) != Result::SUCCESS) { return INVALID_AV_SYNC_HW_ID; } return hwId; } if (mDemux != NULL) { uint32_t avSyncHwId; Loading @@ -119,11 +133,18 @@ int DemuxClient::getAvSyncHwId(sp<FilterClient> filterClient) { } } return -1; return INVALID_AV_SYNC_HW_ID; } long DemuxClient::getAvSyncTime(int avSyncHwId) { // pending aidl interface if (mTunerDemux != NULL) { int64_t time; Status s = mTunerDemux->getAvSyncTime(avSyncHwId, &time); if (ClientHelper::getServiceSpecificErrorCode(s) != Result::SUCCESS) { return INVALID_AV_SYNC_TIME; } return time; } if (mDemux != NULL) { uint64_t time; Loading @@ -138,7 +159,7 @@ long DemuxClient::getAvSyncTime(int avSyncHwId) { } } return -1; return INVALID_AV_SYNC_TIME; } sp<DvrClient> DemuxClient::openDvr(DvrType dvbType, int bufferSize, sp<DvrClientCallback> cb) { Loading Loading @@ -167,7 +188,10 @@ sp<DvrClient> DemuxClient::openDvr(DvrType dvbType, int bufferSize, sp<DvrClient } Result DemuxClient::connectCiCam(int ciCamId) { // pending aidl interface if (mTunerDemux != NULL) { Status s = mTunerDemux->connectCiCam(ciCamId); return ClientHelper::getServiceSpecificErrorCode(s); } if (mDemux != NULL) { return mDemux->connectCiCam(static_cast<uint32_t>(ciCamId)); Loading @@ -177,7 +201,10 @@ Result DemuxClient::connectCiCam(int ciCamId) { } Result DemuxClient::disconnectCiCam() { // pending aidl interface if (mTunerDemux != NULL) { Status s = mTunerDemux->disconnectCiCam(); return ClientHelper::getServiceSpecificErrorCode(s); } if (mDemux != NULL) { return mDemux->disconnectCiCam(); Loading
media/jni/tuner/DemuxClient.h +5 −0 Original line number Diff line number Diff line Loading @@ -31,7 +31,9 @@ using Status = ::ndk::ScopedAStatus; using ::aidl::android::media::tv::tuner::ITunerDemux; using ::aidl::android::media::tv::tuner::ITunerTimeFilter; using ::android::hardware::tv::tuner::V1_0::IDemux; using ::android::hardware::tv::tuner::V1_0::DemuxFilterType; using ::android::hardware::tv::tuner::V1_0::DvrType; using ::android::hardware::tv::tuner::V1_0::IDemux; Loading @@ -39,6 +41,9 @@ using ::android::hardware::tv::tuner::V1_0::ITimeFilter; using namespace std; const int64_t INVALID_AV_SYNC_TIME = -1; const int INVALID_AV_SYNC_HW_ID = -1; namespace android { struct DemuxClient : public RefBase { Loading
media/jni/tuner/TimeFilterClient.cpp +35 −12 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ #include <android-base/logging.h> #include <utils/Log.h> #include "ClientHelper.h" #include "TimeFilterClient.h" using ::android::hardware::tv::tuner::V1_0::Result; Loading @@ -28,13 +29,12 @@ namespace android { /////////////// TimeFilterClient /////////////////////// // TODO: pending aidl interface TimeFilterClient::TimeFilterClient() { //mTunerTimeFilter = tunerTimeFilter; TimeFilterClient::TimeFilterClient(shared_ptr<ITunerTimeFilter> tunerTimeFilter) { mTunerTimeFilter = tunerTimeFilter; } TimeFilterClient::~TimeFilterClient() { //mTunerTimeFilter = NULL; mTunerTimeFilter = NULL; mTimeFilter = NULL; } Loading @@ -44,7 +44,10 @@ void TimeFilterClient::setHidlTimeFilter(sp<ITimeFilter> timeFilter) { } Result TimeFilterClient::setTimeStamp(long timeStamp) { // TODO: pending aidl interface if (mTunerTimeFilter != NULL) { Status s = mTunerTimeFilter->setTimeStamp(timeStamp); return ClientHelper::getServiceSpecificErrorCode(s); } if (mTimeFilter != NULL) { return mTimeFilter->setTimeStamp(timeStamp); Loading @@ -54,7 +57,10 @@ Result TimeFilterClient::setTimeStamp(long timeStamp) { } Result TimeFilterClient::clearTimeStamp() { // TODO: pending aidl interface if (mTunerTimeFilter != NULL) { Status s = mTunerTimeFilter->clearTimeStamp(); return ClientHelper::getServiceSpecificErrorCode(s); } if (mTimeFilter != NULL) { return mTimeFilter->clearTimeStamp(); Loading @@ -64,7 +70,14 @@ Result TimeFilterClient::clearTimeStamp() { } long TimeFilterClient::getTimeStamp() { // TODO: pending aidl interface if (mTunerTimeFilter != NULL) { int64_t timeStamp; Status s = mTunerTimeFilter->getTimeStamp(&timeStamp); if (ClientHelper::getServiceSpecificErrorCode(s) != Result::SUCCESS) { return (long)Constant64Bit::INVALID_PRESENTATION_TIME_STAMP; } return timeStamp; } if (mTimeFilter != NULL) { Result res; Loading @@ -84,27 +97,37 @@ long TimeFilterClient::getTimeStamp() { } long TimeFilterClient::getSourceTime() { // TODO: pending aidl interface if (mTunerTimeFilter != NULL) { int64_t sourceTime; Status s = mTunerTimeFilter->getTimeStamp(&sourceTime); if (ClientHelper::getServiceSpecificErrorCode(s) != Result::SUCCESS) { return (long)Constant64Bit::INVALID_PRESENTATION_TIME_STAMP; } return sourceTime; } if (mTimeFilter != NULL) { Result res; long timestamp; long sourceTime; mTimeFilter->getSourceTime( [&](Result r, uint64_t t) { res = r; timestamp = t; sourceTime = t; }); if (res != Result::SUCCESS) { return (long)Constant64Bit::INVALID_PRESENTATION_TIME_STAMP; } return timestamp; return sourceTime; } return (long)Constant64Bit::INVALID_PRESENTATION_TIME_STAMP; } Result TimeFilterClient::close() { // TODO: pending aidl interface if (mTunerTimeFilter != NULL) { Status s = mTunerTimeFilter->close(); return ClientHelper::getServiceSpecificErrorCode(s); } if (mTimeFilter != NULL) { return mTimeFilter->close(); Loading
media/jni/tuner/TimeFilterClient.h +5 −6 Original line number Diff line number Diff line Loading @@ -17,12 +17,13 @@ #ifndef _ANDROID_MEDIA_TV_TIME_FILTER_CLIENT_H_ #define _ANDROID_MEDIA_TV_TIME_FILTER_CLIENT_H_ //#include <aidl/android/media/tv/tuner/ITunerTimeFilter.h> #include <aidl/android/media/tv/tuner/ITunerTimeFilter.h> #include <android/hardware/tv/tuner/1.0/ITimeFilter.h> #include <android/hardware/tv/tuner/1.1/types.h> //using ::aidl::android::media::tv::tuner::ITunerTimeFilter; using ::aidl::android::media::tv::tuner::ITunerTimeFilter; using Status = ::ndk::ScopedAStatus; using ::android::hardware::Return; using ::android::hardware::Void; using ::android::hardware::hidl_vec; Loading @@ -36,8 +37,7 @@ namespace android { struct TimeFilterClient : public RefBase { public: // TODO: add TunerTimeFilter as parameter. TimeFilterClient(); TimeFilterClient(shared_ptr<ITunerTimeFilter> tunerTimeFilter); ~TimeFilterClient(); // TODO: remove after migration to Tuner Service is done. Loading Loading @@ -73,8 +73,7 @@ private: * An AIDL Tuner TimeFilter Singleton assigned at the first time the Tuner Client * opens an TimeFilter. Default null when time filter is not opened. */ // TODO: pending on aidl interface //shared_ptr<ITunerTimeFilter> mTunerTimeFilter; shared_ptr<ITunerTimeFilter> mTunerTimeFilter; /** * A TimeFilter HAL interface that is ready before migrating to the TunerTimeFilter. Loading
media/jni/tuner/TunerClient.cpp +28 −1 Original line number Diff line number Diff line Loading @@ -200,7 +200,14 @@ sp<DemuxClient> TunerClient::openDemux(int demuxHandle) { } shared_ptr<DemuxCapabilities> TunerClient::getDemuxCaps() { // pending aidl interface if (mTunerService != NULL) { TunerDemuxCapabilities aidlCaps; Status s = mTunerService->getDemuxCaps(&aidlCaps); if (ClientHelper::getServiceSpecificErrorCode(s) != Result::SUCCESS) { return NULL; } return make_shared<DemuxCapabilities>(getHidlDemuxCaps(aidlCaps)); } if (mTuner != NULL) { Result res; Loading Loading @@ -459,6 +466,26 @@ sp<IDescrambler> TunerClient::openHidlDescrambler() { return descrambler; } DemuxCapabilities TunerClient::getHidlDemuxCaps(TunerDemuxCapabilities& aidlCaps) { DemuxCapabilities caps{ .numDemux = (uint32_t)aidlCaps.numDemux, .numRecord = (uint32_t)aidlCaps.numRecord, .numPlayback = (uint32_t)aidlCaps.numPlayback, .numTsFilter = (uint32_t)aidlCaps.numTsFilter, .numSectionFilter = (uint32_t)aidlCaps.numSectionFilter, .numAudioFilter = (uint32_t)aidlCaps.numAudioFilter, .numVideoFilter = (uint32_t)aidlCaps.numVideoFilter, .numPesFilter = (uint32_t)aidlCaps.numPesFilter, .numPcrFilter = (uint32_t)aidlCaps.numPcrFilter, .numBytesInSectionFilter = (uint32_t)aidlCaps.numBytesInSectionFilter, .filterCaps = (uint32_t)aidlCaps.filterCaps, .bTimeFilter = aidlCaps.bTimeFilter, }; caps.linkCaps.resize(aidlCaps.linkCaps.size()); copy(aidlCaps.linkCaps.begin(), aidlCaps.linkCaps.end(), caps.linkCaps.begin()); return caps; } FrontendInfo TunerClient::FrontendInfoAidlToHidl(TunerFrontendInfo aidlFrontendInfo) { FrontendInfo hidlFrontendInfo { .type = static_cast<FrontendType>(aidlFrontendInfo.type), Loading