qdmetadata: Add support for additional video cvp stats

Add support to receive capture rate and cvp frame rate to video
driver to help configure HFI_PROPERTY_CONFIG_CVP_FRAME_RATE_HINT
property.

Change-Id: Ia87f4762a63a3dfcc5e6613c6e0369a28f246fdc
This commit is contained in:
Akshata Sahukar
2019-07-30 13:57:25 -07:00
parent cb83f643a2
commit aab1e5670f
2 changed files with 14 additions and 1 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
* Copyright (c) 2012-2019, 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
@@ -153,6 +153,8 @@ int setMetaDataVa(MetaData_t *data, DispParamType paramType,
data->cvpMetadata.size = cvpMetadata->size;
memcpy(data->cvpMetadata.payload, cvpMetadata->payload,
cvpMetadata->size);
data->cvpMetadata.capture_frame_rate = cvpMetadata->capture_frame_rate;
data->cvpMetadata.cvp_frame_rate = cvpMetadata->cvp_frame_rate;
} else {
data->operation &= ~(paramType);
ALOGE("%s: cvp metadata length %d is more than max size %d",
@@ -341,6 +343,8 @@ int getMetaDataVa(MetaData_t *data, DispFetchParamType paramType,
cvpMetadata->size = data->cvpMetadata.size;
memcpy(cvpMetadata->payload, data->cvpMetadata.payload,
data->cvpMetadata.size);
cvpMetadata->capture_frame_rate = data->cvpMetadata.capture_frame_rate;
cvpMetadata->cvp_frame_rate = data->cvpMetadata.cvp_frame_rate;
ret = 0;
}
}

View File

@@ -123,6 +123,15 @@ struct VideoHistogramMetadata {
typedef struct CVPMetadata {
uint32_t size; /* payload size in bytes */
uint8_t payload[CVP_METADATA_SIZE];
uint32_t capture_frame_rate;
/* Frame rate in Q16 format.
Eg: fps = 7.5, then
capture_frame_rate = 7 << 16 --> Upper 16 bits to represent 7
capture_frame_rate |= 5 -------> Lower 16 bits to represent 5
If size > 0, framerate is valid
If size = 0, invalid data, so ignore all parameters */
uint32_t cvp_frame_rate;
} CVPMetadata;
struct MetaData_t {