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
diff --git a/libqdmetadata/qdMetaData.cpp b/libqdmetadata/qdMetaData.cpp
index 91dbc7a..0f3cd1e 100644
--- a/libqdmetadata/qdMetaData.cpp
+++ b/libqdmetadata/qdMetaData.cpp
@@ -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 @@
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 @@
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;
}
}
diff --git a/libqdmetadata/qdMetaData.h b/libqdmetadata/qdMetaData.h
index 1cc3712..c8b3446 100644
--- a/libqdmetadata/qdMetaData.h
+++ b/libqdmetadata/qdMetaData.h
@@ -123,6 +123,15 @@
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 {