diff options
| -rw-r--r-- | native/android/surface_control.cpp | 18 | 
1 files changed, 13 insertions, 5 deletions
diff --git a/native/android/surface_control.cpp b/native/android/surface_control.cpp index 8fe4fecceeb5..53c01226ca1a 100644 --- a/native/android/surface_control.cpp +++ b/native/android/surface_control.cpp @@ -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;  |