media.c2 aidl: apply IConfigrable interface change
IConfigrable interface is changed to return result status instead of
throwing. Apply this changes.
Bug: 254050314
Test: m
Change-Id: I73b0e4f5e655cd1f1a53574e6967c809716970a0
diff --git a/media/codec2/hal/aidl/Configurable.cpp b/media/codec2/hal/aidl/Configurable.cpp
index 0326263..051e38a 100644
--- a/media/codec2/hal/aidl/Configurable.cpp
+++ b/media/codec2/hal/aidl/Configurable.cpp
@@ -61,7 +61,7 @@
ScopedAStatus CachedConfigurable::query(
const std::vector<int32_t>& indices,
bool mayBlock,
- Params* params) {
+ QueryResult *queryResult) {
typedef C2Param::Index Index;
std::vector<Index> c2heapParamIndices(
(Index*)indices.data(),
@@ -72,13 +72,11 @@
mayBlock ? C2_MAY_BLOCK : C2_DONT_BLOCK,
&c2heapParams);
- if (!CreateParamsBlob(params, c2heapParams)) {
+ if (!CreateParamsBlob(&(queryResult->params), c2heapParams)) {
LOG(WARNING) << "query -- invalid output params.";
}
- if (c2res == C2_OK) {
- return ScopedAStatus::ok();
- }
- return ScopedAStatus::fromServiceSpecificError(c2res);
+ queryResult->status.status = c2res;
+ return ScopedAStatus::ok();
}
ScopedAStatus CachedConfigurable::config(
@@ -115,10 +113,8 @@
if (!CreateParamsBlob(&result->params, c2params)) {
LOG(DEBUG) << "config -- invalid output params.";
}
- if (c2res == C2_OK) {
- return ScopedAStatus::ok();
- }
- return ScopedAStatus::fromServiceSpecificError(c2res);
+ result->status.status = c2res;
+ return ScopedAStatus::ok();
}
ScopedAStatus CachedConfigurable::querySupportedParams(
@@ -153,7 +149,7 @@
ScopedAStatus CachedConfigurable::querySupportedValues(
const std::vector<FieldSupportedValuesQuery>& fields,
bool mayBlock,
- std::vector<FieldSupportedValuesQueryResult>* result) {
+ QuerySupportedValuesResult *queryValues) {
std::vector<C2FieldSupportedValuesQuery> c2fields;
{
// C2FieldSupportedValuesQuery objects are restricted in that some
@@ -173,22 +169,20 @@
c2_status_t c2res = mIntf->querySupportedValues(
c2fields,
mayBlock ? C2_MAY_BLOCK : C2_DONT_BLOCK);
- result->resize(fields.size());
+ queryValues->values.resize(fields.size());
size_t dstIx = 0;
for (const C2FieldSupportedValuesQuery &res : c2fields) {
- if (ToAidl(&(*result)[dstIx], res)) {
+ if (ToAidl(&(queryValues->values[dstIx]), res)) {
++dstIx;
} else {
- result->resize(dstIx);
+ queryValues->values.resize(dstIx);
c2res = C2_CORRUPTED;
LOG(WARNING) << "querySupportedValues -- invalid output params.";
break;
}
}
- if (c2res == C2_OK) {
- return ScopedAStatus::ok();
- }
- return ScopedAStatus::fromServiceSpecificError(c2res);
+ queryValues->status.status = c2res;
+ return ScopedAStatus::ok();
}
} // namespace utils
diff --git a/media/codec2/hal/aidl/include/codec2/aidl/Configurable.h b/media/codec2/hal/aidl/include/codec2/aidl/Configurable.h
index 6cc2c1b..96d3516 100644
--- a/media/codec2/hal/aidl/include/codec2/aidl/Configurable.h
+++ b/media/codec2/hal/aidl/include/codec2/aidl/Configurable.h
@@ -111,7 +111,7 @@
virtual ::ndk::ScopedAStatus query(
const std::vector<int32_t>& indices,
bool mayBlock,
- Params* params) override;
+ QueryResult* result) override;
virtual ::ndk::ScopedAStatus config(
const ::aidl::android::hardware::media::c2::Params& params,
@@ -126,7 +126,7 @@
virtual ::ndk::ScopedAStatus querySupportedValues(
const std::vector<FieldSupportedValuesQuery>& fields,
bool mayBlock,
- std::vector<FieldSupportedValuesQueryResult>* result) override;
+ QuerySupportedValuesResult* result) override;
protected:
// Common Codec2.0 interface wrapper
diff --git a/media/codec2/hal/client/client.cpp b/media/codec2/hal/client/client.cpp
index 2d19ecc..b872cea 100644
--- a/media/codec2/hal/client/client.cpp
+++ b/media/codec2/hal/client/client.cpp
@@ -635,15 +635,16 @@
if (heapParams) {
heapParams->reserve(heapParams->size() + numIndices);
}
- c2_aidl::Params result;
+ c2_aidl::IConfigurable::QueryResult result;
ndk::ScopedAStatus transStatus = mBase->query(indices, (mayBlock == C2_MAY_BLOCK), &result);
c2_status_t status = GetC2Status(transStatus, "query");
if (status != C2_OK) {
return status;
}
+ status = static_cast<c2_status_t>(result.status.status);
std::vector<C2Param*> paramPointers;
- if (!c2_aidl::utils::ParseParamsBlob(¶mPointers, result)) {
+ if (!c2_aidl::utils::ParseParamsBlob(¶mPointers, result.params)) {
LOG(ERROR) << "query -- error while parsing params.";
return C2_CORRUPTED;
}
@@ -714,6 +715,7 @@
if (status != C2_OK) {
return status;
}
+ status = static_cast<c2_status_t>(result.status.status);
size_t i = failures->size();
failures->resize(i + result.failures.size());
for (const c2_aidl::SettingResult& sf : result.failures) {
@@ -764,21 +766,23 @@
}
}
- std::vector<c2_aidl::FieldSupportedValuesQueryResult> result;
+ c2_aidl::IConfigurable::QuerySupportedValuesResult result;
+
ndk::ScopedAStatus transStatus = mBase->querySupportedValues(
inFields, (mayBlock == C2_MAY_BLOCK), &result);
c2_status_t status = GetC2Status(transStatus, "querySupportedValues");
if (status != C2_OK) {
return status;
}
- if (result.size() != fields.size()) {
+ status = static_cast<c2_status_t>(result.status.status);
+ if (result.values.size() != fields.size()) {
LOG(ERROR) << "querySupportedValues -- "
"input and output lists "
"have different sizes.";
return C2_CORRUPTED;
}
for (size_t i = 0; i < fields.size(); ++i) {
- if (!c2_aidl::utils::FromAidl(&fields[i], inFields[i], result[i])) {
+ if (!c2_aidl::utils::FromAidl(&fields[i], inFields[i], result.values[i])) {
LOG(ERROR) << "querySupportedValues -- "
"invalid returned value.";
return C2_CORRUPTED;