Allow Descrambler.add/removePid to pass a nullable optional filter

Test: make
Bug: 184851519
Change-Id: Icf7d9526fa15dc11b23e9f73dbfceee748640772
This commit is contained in:
Amy Zhang
2021-04-08 12:24:04 -07:00
parent f5042bcc1b
commit 316b045b9a
2 changed files with 16 additions and 9 deletions

View File

@@ -3970,7 +3970,7 @@ static jint android_media_tv_Tuner_descrambler_add_pid(
if (descramblerClient == NULL) { if (descramblerClient == NULL) {
return (jint) Result::NOT_INITIALIZED; return (jint) Result::NOT_INITIALIZED;
} }
sp<FilterClient> filterClient = getFilterClient(env, filter); sp<FilterClient> filterClient = (filter == NULL) ? NULL : getFilterClient(env, filter);
Result result = descramblerClient->addPid(getDemuxPid((int)pidType, (int)pid), filterClient); Result result = descramblerClient->addPid(getDemuxPid((int)pidType, (int)pid), filterClient);
return (jint) result; return (jint) result;
} }
@@ -3981,7 +3981,7 @@ static jint android_media_tv_Tuner_descrambler_remove_pid(
if (descramblerClient == NULL) { if (descramblerClient == NULL) {
return (jint) Result::NOT_INITIALIZED; return (jint) Result::NOT_INITIALIZED;
} }
sp<FilterClient> filterClient = getFilterClient(env, filter); sp<FilterClient> filterClient = (filter == NULL) ? NULL : getFilterClient(env, filter);
Result result = descramblerClient->removePid(getDemuxPid((int)pidType, (int)pid), filterClient); Result result = descramblerClient->removePid(getDemuxPid((int)pidType, (int)pid), filterClient);
return (jint) result; return (jint) result;
} }

View File

@@ -73,26 +73,33 @@ Result DescramblerClient::setKeyToken(vector<uint8_t> keyToken) {
Result DescramblerClient::addPid(DemuxPid pid, sp<FilterClient> optionalSourceFilter) { Result DescramblerClient::addPid(DemuxPid pid, sp<FilterClient> optionalSourceFilter) {
if (mTunerDescrambler != NULL) { if (mTunerDescrambler != NULL) {
Status s = mTunerDescrambler->addPid( shared_ptr<ITunerFilter> aidlFilter = (optionalSourceFilter == NULL)
getAidlDemuxPid(pid), optionalSourceFilter->getAidlFilter()); ? NULL : optionalSourceFilter->getAidlFilter();
Status s = mTunerDescrambler->addPid(getAidlDemuxPid(pid), aidlFilter);
return ClientHelper::getServiceSpecificErrorCode(s); return ClientHelper::getServiceSpecificErrorCode(s);
} }
if (mDescrambler != NULL) { if (mDescrambler != NULL) {
return mDescrambler->addPid(pid, optionalSourceFilter->getHalFilter()); sp<IFilter> halFilter = (optionalSourceFilter == NULL)
? NULL : optionalSourceFilter->getHalFilter();
return mDescrambler->addPid(pid, halFilter);
} }
return Result::INVALID_STATE;} return Result::INVALID_STATE;
}
Result DescramblerClient::removePid(DemuxPid pid, sp<FilterClient> optionalSourceFilter) { Result DescramblerClient::removePid(DemuxPid pid, sp<FilterClient> optionalSourceFilter) {
if (mTunerDescrambler != NULL) { if (mTunerDescrambler != NULL) {
Status s = mTunerDescrambler->removePid( shared_ptr<ITunerFilter> aidlFilter = (optionalSourceFilter == NULL)
getAidlDemuxPid(pid), optionalSourceFilter->getAidlFilter()); ? NULL : optionalSourceFilter->getAidlFilter();
Status s = mTunerDescrambler->removePid(getAidlDemuxPid(pid), aidlFilter);
return ClientHelper::getServiceSpecificErrorCode(s); return ClientHelper::getServiceSpecificErrorCode(s);
} }
if (mDescrambler != NULL) { if (mDescrambler != NULL) {
return mDescrambler->removePid(pid, optionalSourceFilter->getHalFilter()); sp<IFilter> halFilter = (optionalSourceFilter == NULL)
? NULL : optionalSourceFilter->getHalFilter();
return mDescrambler->removePid(pid, halFilter);
} }
return Result::INVALID_STATE; return Result::INVALID_STATE;