diff --git a/media/codec2/sfplugin/CCodec.cpp b/media/codec2/sfplugin/CCodec.cpp
index 16398a4..db7b3b6 100644
--- a/media/codec2/sfplugin/CCodec.cpp
+++ b/media/codec2/sfplugin/CCodec.cpp
@@ -1572,8 +1572,25 @@
 
     // configure dataspace
     static_assert(sizeof(int32_t) == sizeof(android_dataspace), "dataspace size mismatch");
-    android_dataspace dataSpace = HAL_DATASPACE_UNKNOWN;
-    (void)config->mInputFormat->findInt32("android._dataspace", (int32_t*)&dataSpace);
+
+    // The output format contains app-configured color aspects, and the input format
+    // has the default color aspects. Use the default for the unspecified params.
+    ColorAspects inputColorAspects, outputColorAspects;
+    getColorAspectsFromFormat(config->mOutputFormat, outputColorAspects);
+    getColorAspectsFromFormat(config->mInputFormat, inputColorAspects);
+    if (outputColorAspects.mRange == ColorAspects::RangeUnspecified) {
+        outputColorAspects.mRange = inputColorAspects.mRange;
+    }
+    if (outputColorAspects.mPrimaries == ColorAspects::PrimariesUnspecified) {
+        outputColorAspects.mPrimaries = inputColorAspects.mPrimaries;
+    }
+    if (outputColorAspects.mTransfer == ColorAspects::TransferUnspecified) {
+        outputColorAspects.mTransfer = inputColorAspects.mTransfer;
+    }
+    if (outputColorAspects.mMatrixCoeffs == ColorAspects::MatrixUnspecified) {
+        outputColorAspects.mMatrixCoeffs = inputColorAspects.mMatrixCoeffs;
+    }
+    android_dataspace dataSpace = getDataSpaceForColorAspects(outputColorAspects, false);
     surface->setDataSpace(dataSpace);
 
     status_t err = mChannel->setInputSurface(surface);
