Merge "Do not crash on invalid dataspace"

This commit is contained in:
Valerie Hau
2019-08-27 15:32:01 +00:00
committed by Android (Google) Code Review

View File

@@ -100,7 +100,11 @@ static bool isDataSpaceValid(const sp<SurfaceControl>& surfaceControl, ADataSpac
return getWideColorSupport(surfaceControl);
// These data space need HDR support.
case HAL_DATASPACE_BT2020_PQ:
return getHdrSupport(surfaceControl);
if (!getHdrSupport(surfaceControl)) {
ALOGE("Invalid dataspace - device does not support hdr");
return false;
}
return true;
default:
return false;
}
@@ -458,10 +462,11 @@ void ASurfaceTransaction_setBufferDataSpace(ASurfaceTransaction* aSurfaceTransac
CHECK_NOT_NULL(aSurfaceControl);
sp<SurfaceControl> surfaceControl = ASurfaceControl_to_SurfaceControl(aSurfaceControl);
LOG_ALWAYS_FATAL_IF(!isDataSpaceValid(surfaceControl, aDataSpace), "invalid dataspace");
if (!isDataSpaceValid(surfaceControl, aDataSpace)) {
ALOGE("Failed to set buffer dataspace - invalid dataspace");
return;
}
Transaction* transaction = ASurfaceTransaction_to_Transaction(aSurfaceTransaction);
transaction->setDataspace(surfaceControl, static_cast<ui::Dataspace>(aDataSpace));
}
@@ -527,7 +532,10 @@ void ASurfaceTransaction_setColor(ASurfaceTransaction* aSurfaceTransaction,
CHECK_NOT_NULL(aSurfaceControl);
sp<SurfaceControl> surfaceControl = ASurfaceControl_to_SurfaceControl(aSurfaceControl);
LOG_ALWAYS_FATAL_IF(!isDataSpaceValid(surfaceControl, dataspace), "invalid dataspace");
if (!isDataSpaceValid(surfaceControl, dataspace)) {
ALOGE("Failed to set buffer dataspace - invalid dataspace");
return;
}
Transaction* transaction = ASurfaceTransaction_to_Transaction(aSurfaceTransaction);
half3 color;