qdMetadata: Remove unused metadata types

This change removes metadata types which are not set. The color
space is also set through ColorMetadata, with helpers to convert
to/from the legacy type ColorSpace_t.

CRs-Fixed: 2606686
Change-Id: I2dd67c0082a31ca6900fe845c13d0519a2289060
This commit is contained in:
Tharaga Balachandran
2020-01-20 13:58:43 -05:00
committed by Gerrit - the friendly Code Review server
parent d5010db9e1
commit a6480a48d4
2 changed files with 68 additions and 50 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2012-2019, The Linux Foundation. All rights reserved.
* Copyright (c) 2012-2020, The Linux Foundation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -35,6 +35,61 @@
#include <gralloc_priv.h>
#include "qdMetaData.h"
static int colorMetaDataToColorSpace(ColorMetaData in, ColorSpace_t *out) {
if (in.colorPrimaries == ColorPrimaries_BT601_6_525 ||
in.colorPrimaries == ColorPrimaries_BT601_6_625) {
if (in.range == Range_Full) {
*out = ITU_R_601_FR;
} else {
*out = ITU_R_601;
}
} else if (in.colorPrimaries == ColorPrimaries_BT2020) {
if (in.range == Range_Full) {
*out = ITU_R_2020_FR;
} else {
*out = ITU_R_2020;
}
} else if (in.colorPrimaries == ColorPrimaries_BT709_5) {
*out = ITU_R_709;
} else {
ALOGE("Cannot convert ColorMetaData to ColorSpace_t");
return -1;
}
return 0;
}
static int colorSpaceToColorMetadata(ColorSpace_t in, ColorMetaData *out) {
out->transfer = Transfer_sRGB;
switch (in) {
case ITU_R_601:
out->colorPrimaries = ColorPrimaries_BT601_6_525;
out->range = Range_Limited;
break;
case ITU_R_601_FR:
out->colorPrimaries = ColorPrimaries_BT601_6_525;
out->range = Range_Full;
break;
case ITU_R_709:
out->colorPrimaries = ColorPrimaries_BT709_5;
out->range = Range_Limited;
break;
case ITU_R_2020:
out->colorPrimaries = ColorPrimaries_BT2020;
out->range = Range_Limited;
break;
case ITU_R_2020_FR:
out->colorPrimaries = ColorPrimaries_BT2020;
out->range = Range_Full;
break;
default:
ALOGE("Cannot convert ColorSpace_t to ColorMetaData");
return -1;
break;
}
return 0;
}
unsigned long getMetaDataSize() {
return static_cast<unsigned long>(ROUND_UP_PAGESIZE(sizeof(MetaData_t)));
}
@@ -102,9 +157,13 @@ int setMetaDataVa(MetaData_t *data, DispParamType paramType,
case UPDATE_REFRESH_RATE:
data->refreshrate = *((float *)param);
break;
case UPDATE_COLOR_SPACE:
data->colorSpace = *((ColorSpace_t *)param);
break;
case UPDATE_COLOR_SPACE: {
ColorMetaData color;
if (!colorSpaceToColorMetadata(*((ColorSpace_t *)param), &color)) {
data->color = color;
}
break;
}
case MAP_SECURE_BUFFER:
data->mapSecureBuffer = *((int32_t *)param);
break;
@@ -114,15 +173,9 @@ int setMetaDataVa(MetaData_t *data, DispParamType paramType,
case LINEAR_FORMAT:
data->linearFormat = *((uint32_t *)param);
break;
case SET_IGC:
data->igc = *((IGC_t *)param);
break;
case SET_SINGLE_BUFFER_MODE:
data->isSingleBufferMode = *((uint32_t *)param);
break;
case SET_S3D_COMP:
data->s3dComp = *((S3DGpuComp_t *)param);
break;
case SET_VT_TIMESTAMP:
data->vtTimeStamp = *((uint64_t *)param);
break;
@@ -205,10 +258,6 @@ int clearMetaDataVa(MetaData_t *data, DispParamType paramType) {
return -EINVAL;
data->operation &= ~paramType;
switch (paramType) {
case SET_S3D_COMP:
data->s3dComp.displayId = -1;
data->s3dComp.s3dMode = 0;
break;
case SET_VIDEO_PERF_MODE:
data->isVideoPerfMode = 0;
break;
@@ -264,7 +313,10 @@ int getMetaDataVa(MetaData_t *data, DispFetchParamType paramType,
break;
case GET_COLOR_SPACE:
if (data->operation & UPDATE_COLOR_SPACE) {
*((ColorSpace_t *)param) = data->colorSpace;
ColorSpace_t color_space;
if (!colorMetaDataToColorSpace(data->color, &color_space)) {
*((ColorSpace_t *)param) = color_space;
}
ret = 0;
}
break;
@@ -286,24 +338,12 @@ int getMetaDataVa(MetaData_t *data, DispFetchParamType paramType,
ret = 0;
}
break;
case GET_IGC:
if (data->operation & SET_IGC) {
*((IGC_t *)param) = data->igc;
ret = 0;
}
break;
case GET_SINGLE_BUFFER_MODE:
if (data->operation & SET_SINGLE_BUFFER_MODE) {
*((uint32_t *)param) = data->isSingleBufferMode;
ret = 0;
}
break;
case GET_S3D_COMP:
if (data->operation & SET_S3D_COMP) {
*((S3DGpuComp_t *)param) = data->s3dComp;
ret = 0;
}
break;
case GET_VT_TIMESTAMP:
if (data->operation & SET_VT_TIMESTAMP) {
*((uint64_t *)param) = data->vtTimeStamp;

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2012-2019, The Linux Foundation. All rights reserved.
* Copyright (c) 2012-2020, The Linux Foundation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -48,18 +48,6 @@ enum ColorSpace_t{
ITU_R_2020_FR,
};
enum IGC_t {
IGC_NotSpecified,
IGC_sRGB,
};
struct HSICData_t {
int32_t hue;
float saturation;
int32_t intensity;
float contrast;
};
struct BufferDim_t {
int32_t sliceWidth;
int32_t sliceHeight;
@@ -96,11 +84,6 @@ struct UBWCStats {
};
};
struct S3DGpuComp_t {
int32_t displayId; /* on which display S3D is composed by client */
uint32_t s3dMode; /* the S3D format of this layer to be accessed by client */
};
typedef struct GraphicsMetadata {
uint32_t size;
uint32_t data[GRAPHICS_METADATA_SIZE];
@@ -147,8 +130,6 @@ struct MetaData_t {
int32_t interlaced;
struct BufferDim_t bufferDim;
float refreshrate;
enum ColorSpace_t colorSpace;
enum IGC_t igc;
/* Gralloc sets PRIV_SECURE_BUFFER flag to inform that the buffers are from
* ION_SECURE. which should not be mapped. However, for GPU post proc
* feature, GFX needs to map this buffer, in the client context and in SF
@@ -164,9 +145,6 @@ struct MetaData_t {
/* Set by graphics to indicate that this buffer will be written to but not
* swapped out */
uint32_t isSingleBufferMode;
/* Indicate GPU to draw S3D layer on dedicate display device */
struct S3DGpuComp_t s3dComp;
/* Set by camera to program the VT Timestamp */
uint64_t vtTimeStamp;
/* Color Aspects + HDR info */