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:
@@ -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
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions are
|
* 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;
|
data->cvpMetadata.size = cvpMetadata->size;
|
||||||
memcpy(data->cvpMetadata.payload, cvpMetadata->payload,
|
memcpy(data->cvpMetadata.payload, cvpMetadata->payload,
|
||||||
cvpMetadata->size);
|
cvpMetadata->size);
|
||||||
|
data->cvpMetadata.capture_frame_rate = cvpMetadata->capture_frame_rate;
|
||||||
|
data->cvpMetadata.cvp_frame_rate = cvpMetadata->cvp_frame_rate;
|
||||||
} else {
|
} else {
|
||||||
data->operation &= ~(paramType);
|
data->operation &= ~(paramType);
|
||||||
ALOGE("%s: cvp metadata length %d is more than max size %d",
|
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;
|
cvpMetadata->size = data->cvpMetadata.size;
|
||||||
memcpy(cvpMetadata->payload, data->cvpMetadata.payload,
|
memcpy(cvpMetadata->payload, data->cvpMetadata.payload,
|
||||||
data->cvpMetadata.size);
|
data->cvpMetadata.size);
|
||||||
|
cvpMetadata->capture_frame_rate = data->cvpMetadata.capture_frame_rate;
|
||||||
|
cvpMetadata->cvp_frame_rate = data->cvpMetadata.cvp_frame_rate;
|
||||||
ret = 0;
|
ret = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -123,6 +123,15 @@ struct VideoHistogramMetadata {
|
|||||||
typedef struct CVPMetadata {
|
typedef struct CVPMetadata {
|
||||||
uint32_t size; /* payload size in bytes */
|
uint32_t size; /* payload size in bytes */
|
||||||
uint8_t payload[CVP_METADATA_SIZE];
|
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;
|
} CVPMetadata;
|
||||||
|
|
||||||
struct MetaData_t {
|
struct MetaData_t {
|
||||||
|
|||||||
Reference in New Issue
Block a user