Loading media/jni/tuner/DemuxClient.h +5 −0 Original line number Diff line number Diff line Loading @@ -100,6 +100,11 @@ public: */ Result close(); /** * Get the Aidl demux to set as source. */ shared_ptr<ITunerDemux> getAidlDemux() { return mTunerDemux; } void setId(int id) { mId = id; } int getId() { return mId; } Loading media/jni/tuner/DescramblerClient.cpp +40 −11 Original line number Diff line number Diff line Loading @@ -27,13 +27,12 @@ namespace android { /////////////// DescramblerClient /////////////////////// // TODO: pending aidl interface DescramblerClient::DescramblerClient() { //mTunerDescrambler = tunerDescrambler; DescramblerClient::DescramblerClient(shared_ptr<ITunerDescrambler> tunerDescrambler) { mTunerDescrambler = tunerDescrambler; } DescramblerClient::~DescramblerClient() { //mTunerDescrambler = NULL; mTunerDescrambler = NULL; mDescrambler = NULL; } Loading @@ -47,7 +46,10 @@ Result DescramblerClient::setDemuxSource(sp<DemuxClient> demuxClient) { return Result::INVALID_ARGUMENT; } // TODO: pending aidl interface if (mTunerDescrambler != NULL) { Status s = mTunerDescrambler->setDemuxSource(demuxClient->getAidlDemux()); return ClientHelper::getServiceSpecificErrorCode(s); } if (mDescrambler != NULL) { return mDescrambler->setDemuxSource(demuxClient->getId()); Loading @@ -57,7 +59,10 @@ Result DescramblerClient::setDemuxSource(sp<DemuxClient> demuxClient) { } Result DescramblerClient::setKeyToken(vector<uint8_t> keyToken) { // TODO: pending aidl interface if (mTunerDescrambler != NULL) { Status s = mTunerDescrambler->setKeyToken(keyToken); return ClientHelper::getServiceSpecificErrorCode(s); } if (mDescrambler != NULL) { return mDescrambler->setKeyToken(keyToken); Loading @@ -67,7 +72,11 @@ Result DescramblerClient::setKeyToken(vector<uint8_t> keyToken) { } Result DescramblerClient::addPid(DemuxPid pid, sp<FilterClient> optionalSourceFilter) { // TODO: pending aidl interface if (mTunerDescrambler != NULL) { Status s = mTunerDescrambler->addPid( getAidlDemuxPid(pid), optionalSourceFilter->getAidlFilter()); return ClientHelper::getServiceSpecificErrorCode(s); } if (mDescrambler != NULL) { return mDescrambler->addPid(pid, optionalSourceFilter->getHalFilter()); Loading @@ -76,16 +85,24 @@ Result DescramblerClient::addPid(DemuxPid pid, sp<FilterClient> optionalSourceFi return Result::INVALID_STATE;} Result DescramblerClient::removePid(DemuxPid pid, sp<FilterClient> optionalSourceFilter) { // TODO: pending aidl interface if (mTunerDescrambler != NULL) { Status s = mTunerDescrambler->removePid( getAidlDemuxPid(pid), optionalSourceFilter->getAidlFilter()); return ClientHelper::getServiceSpecificErrorCode(s); } if (mDescrambler != NULL) { return mDescrambler->addPid(pid, optionalSourceFilter->getHalFilter()); return mDescrambler->removePid(pid, optionalSourceFilter->getHalFilter()); } return Result::INVALID_STATE;} return Result::INVALID_STATE; } Result DescramblerClient::close() { // TODO: pending aidl interface if (mTunerDescrambler != NULL) { Status s = mTunerDescrambler->close(); return ClientHelper::getServiceSpecificErrorCode(s); } if (mDescrambler != NULL) { return mDescrambler->close(); Loading @@ -95,4 +112,16 @@ Result DescramblerClient::close() { /////////////// DescramblerClient Helper Methods /////////////////////// TunerDemuxPid DescramblerClient::getAidlDemuxPid(DemuxPid& pid) { TunerDemuxPid aidlPid; switch (pid.getDiscriminator()) { case DemuxPid::hidl_discriminator::tPid: aidlPid.set<TunerDemuxPid::tPid>((int)pid.tPid()); break; case DemuxPid::hidl_discriminator::mmtpPid: aidlPid.set<TunerDemuxPid::mmtpPid>((int)pid.mmtpPid()); break; } return aidlPid; } } // namespace android media/jni/tuner/DescramblerClient.h +7 −6 Original line number Diff line number Diff line Loading @@ -17,14 +17,15 @@ #ifndef _ANDROID_MEDIA_TV_DESCRAMBLER_CLIENT_H_ #define _ANDROID_MEDIA_TV_DESCRAMBLER_CLIENT_H_ //#include <aidl/android/media/tv/tuner/ITunerDescrambler.h> #include <aidl/android/media/tv/tuner/ITunerDescrambler.h> #include <android/hardware/tv/tuner/1.0/IDescrambler.h> #include <android/hardware/tv/tuner/1.1/types.h> #include "DemuxClient.h" #include "FilterClient.h" //using ::aidl::android::media::tv::tuner::ITunerDescrambler; using ::aidl::android::media::tv::tuner::ITunerDescrambler; using ::aidl::android::media::tv::tuner::TunerDemuxPid; using ::android::hardware::tv::tuner::V1_0::IDescrambler; using ::android::hardware::tv::tuner::V1_0::Result; Loading @@ -37,8 +38,7 @@ namespace android { struct DescramblerClient : public RefBase { public: // TODO: pending hidl interface DescramblerClient(); DescramblerClient(shared_ptr<ITunerDescrambler> tunerDescrambler); ~DescramblerClient(); // TODO: remove after migration to Tuner Service is done. Loading Loading @@ -70,12 +70,13 @@ public: Result close(); private: TunerDemuxPid getAidlDemuxPid(DemuxPid& pid); /** * An AIDL Tuner Descrambler Singleton assigned at the first time the Tuner Client * opens a descrambler. Default null when descrambler is not opened. */ // TODO: pending on aidl interface //shared_ptr<ITunerDescrambler> mTunerDescrambler; shared_ptr<ITunerDescrambler> mTunerDescrambler; /** * A Descrambler HAL interface that is ready before migrating to the TunerDescrambler. Loading media/jni/tuner/TunerClient.cpp +8 −7 Original line number Diff line number Diff line Loading @@ -224,17 +224,18 @@ shared_ptr<DemuxCapabilities> TunerClient::getDemuxCaps() { return NULL; } sp<DescramblerClient> TunerClient::openDescrambler(int /*descramblerHandle*/) { sp<DescramblerClient> TunerClient::openDescrambler(int descramblerHandle) { if (mTunerService != NULL) { // TODO: handle error code /*shared_ptr<ITunerDescrambler> tunerDescrambler; mTunerService->openDescrambler(demuxHandle, &tunerDescrambler); return new DescramblerClient(tunerDescrambler);*/ shared_ptr<ITunerDescrambler> tunerDescrambler; Status s = mTunerService->openDescrambler(descramblerHandle, &tunerDescrambler); if (ClientHelper::getServiceSpecificErrorCode(s) != Result::SUCCESS) { return NULL; } return new DescramblerClient(tunerDescrambler); } if (mTuner != NULL) { // TODO: pending aidl interface sp<DescramblerClient> descramblerClient = new DescramblerClient(); sp<DescramblerClient> descramblerClient = new DescramblerClient(NULL); sp<IDescrambler> hidlDescrambler = openHidlDescrambler(); if (hidlDescrambler != NULL) { descramblerClient->setHidlDescrambler(hidlDescrambler); Loading Loading
media/jni/tuner/DemuxClient.h +5 −0 Original line number Diff line number Diff line Loading @@ -100,6 +100,11 @@ public: */ Result close(); /** * Get the Aidl demux to set as source. */ shared_ptr<ITunerDemux> getAidlDemux() { return mTunerDemux; } void setId(int id) { mId = id; } int getId() { return mId; } Loading
media/jni/tuner/DescramblerClient.cpp +40 −11 Original line number Diff line number Diff line Loading @@ -27,13 +27,12 @@ namespace android { /////////////// DescramblerClient /////////////////////// // TODO: pending aidl interface DescramblerClient::DescramblerClient() { //mTunerDescrambler = tunerDescrambler; DescramblerClient::DescramblerClient(shared_ptr<ITunerDescrambler> tunerDescrambler) { mTunerDescrambler = tunerDescrambler; } DescramblerClient::~DescramblerClient() { //mTunerDescrambler = NULL; mTunerDescrambler = NULL; mDescrambler = NULL; } Loading @@ -47,7 +46,10 @@ Result DescramblerClient::setDemuxSource(sp<DemuxClient> demuxClient) { return Result::INVALID_ARGUMENT; } // TODO: pending aidl interface if (mTunerDescrambler != NULL) { Status s = mTunerDescrambler->setDemuxSource(demuxClient->getAidlDemux()); return ClientHelper::getServiceSpecificErrorCode(s); } if (mDescrambler != NULL) { return mDescrambler->setDemuxSource(demuxClient->getId()); Loading @@ -57,7 +59,10 @@ Result DescramblerClient::setDemuxSource(sp<DemuxClient> demuxClient) { } Result DescramblerClient::setKeyToken(vector<uint8_t> keyToken) { // TODO: pending aidl interface if (mTunerDescrambler != NULL) { Status s = mTunerDescrambler->setKeyToken(keyToken); return ClientHelper::getServiceSpecificErrorCode(s); } if (mDescrambler != NULL) { return mDescrambler->setKeyToken(keyToken); Loading @@ -67,7 +72,11 @@ Result DescramblerClient::setKeyToken(vector<uint8_t> keyToken) { } Result DescramblerClient::addPid(DemuxPid pid, sp<FilterClient> optionalSourceFilter) { // TODO: pending aidl interface if (mTunerDescrambler != NULL) { Status s = mTunerDescrambler->addPid( getAidlDemuxPid(pid), optionalSourceFilter->getAidlFilter()); return ClientHelper::getServiceSpecificErrorCode(s); } if (mDescrambler != NULL) { return mDescrambler->addPid(pid, optionalSourceFilter->getHalFilter()); Loading @@ -76,16 +85,24 @@ Result DescramblerClient::addPid(DemuxPid pid, sp<FilterClient> optionalSourceFi return Result::INVALID_STATE;} Result DescramblerClient::removePid(DemuxPid pid, sp<FilterClient> optionalSourceFilter) { // TODO: pending aidl interface if (mTunerDescrambler != NULL) { Status s = mTunerDescrambler->removePid( getAidlDemuxPid(pid), optionalSourceFilter->getAidlFilter()); return ClientHelper::getServiceSpecificErrorCode(s); } if (mDescrambler != NULL) { return mDescrambler->addPid(pid, optionalSourceFilter->getHalFilter()); return mDescrambler->removePid(pid, optionalSourceFilter->getHalFilter()); } return Result::INVALID_STATE;} return Result::INVALID_STATE; } Result DescramblerClient::close() { // TODO: pending aidl interface if (mTunerDescrambler != NULL) { Status s = mTunerDescrambler->close(); return ClientHelper::getServiceSpecificErrorCode(s); } if (mDescrambler != NULL) { return mDescrambler->close(); Loading @@ -95,4 +112,16 @@ Result DescramblerClient::close() { /////////////// DescramblerClient Helper Methods /////////////////////// TunerDemuxPid DescramblerClient::getAidlDemuxPid(DemuxPid& pid) { TunerDemuxPid aidlPid; switch (pid.getDiscriminator()) { case DemuxPid::hidl_discriminator::tPid: aidlPid.set<TunerDemuxPid::tPid>((int)pid.tPid()); break; case DemuxPid::hidl_discriminator::mmtpPid: aidlPid.set<TunerDemuxPid::mmtpPid>((int)pid.mmtpPid()); break; } return aidlPid; } } // namespace android
media/jni/tuner/DescramblerClient.h +7 −6 Original line number Diff line number Diff line Loading @@ -17,14 +17,15 @@ #ifndef _ANDROID_MEDIA_TV_DESCRAMBLER_CLIENT_H_ #define _ANDROID_MEDIA_TV_DESCRAMBLER_CLIENT_H_ //#include <aidl/android/media/tv/tuner/ITunerDescrambler.h> #include <aidl/android/media/tv/tuner/ITunerDescrambler.h> #include <android/hardware/tv/tuner/1.0/IDescrambler.h> #include <android/hardware/tv/tuner/1.1/types.h> #include "DemuxClient.h" #include "FilterClient.h" //using ::aidl::android::media::tv::tuner::ITunerDescrambler; using ::aidl::android::media::tv::tuner::ITunerDescrambler; using ::aidl::android::media::tv::tuner::TunerDemuxPid; using ::android::hardware::tv::tuner::V1_0::IDescrambler; using ::android::hardware::tv::tuner::V1_0::Result; Loading @@ -37,8 +38,7 @@ namespace android { struct DescramblerClient : public RefBase { public: // TODO: pending hidl interface DescramblerClient(); DescramblerClient(shared_ptr<ITunerDescrambler> tunerDescrambler); ~DescramblerClient(); // TODO: remove after migration to Tuner Service is done. Loading Loading @@ -70,12 +70,13 @@ public: Result close(); private: TunerDemuxPid getAidlDemuxPid(DemuxPid& pid); /** * An AIDL Tuner Descrambler Singleton assigned at the first time the Tuner Client * opens a descrambler. Default null when descrambler is not opened. */ // TODO: pending on aidl interface //shared_ptr<ITunerDescrambler> mTunerDescrambler; shared_ptr<ITunerDescrambler> mTunerDescrambler; /** * A Descrambler HAL interface that is ready before migrating to the TunerDescrambler. Loading
media/jni/tuner/TunerClient.cpp +8 −7 Original line number Diff line number Diff line Loading @@ -224,17 +224,18 @@ shared_ptr<DemuxCapabilities> TunerClient::getDemuxCaps() { return NULL; } sp<DescramblerClient> TunerClient::openDescrambler(int /*descramblerHandle*/) { sp<DescramblerClient> TunerClient::openDescrambler(int descramblerHandle) { if (mTunerService != NULL) { // TODO: handle error code /*shared_ptr<ITunerDescrambler> tunerDescrambler; mTunerService->openDescrambler(demuxHandle, &tunerDescrambler); return new DescramblerClient(tunerDescrambler);*/ shared_ptr<ITunerDescrambler> tunerDescrambler; Status s = mTunerService->openDescrambler(descramblerHandle, &tunerDescrambler); if (ClientHelper::getServiceSpecificErrorCode(s) != Result::SUCCESS) { return NULL; } return new DescramblerClient(tunerDescrambler); } if (mTuner != NULL) { // TODO: pending aidl interface sp<DescramblerClient> descramblerClient = new DescramblerClient(); sp<DescramblerClient> descramblerClient = new DescramblerClient(NULL); sp<IDescrambler> hidlDescrambler = openHidlDescrambler(); if (hidlDescrambler != NULL) { descramblerClient->setHidlDescrambler(hidlDescrambler); Loading