QCamera: HAL3: Use free running index mode for internal streams
For internally managed streams which dont have framenumber to idx
association use free running Q mode
Ack-by: Mansoor Aftab
BUG=28911334
Change-Id: I878173009f1a21d451f0f2b9a18fb1f3ff0a43ba
diff --git a/QCamera2/HAL3/QCamera3HWI.cpp b/QCamera2/HAL3/QCamera3HWI.cpp
index f5d20de..f1d0650 100644
--- a/QCamera2/HAL3/QCamera3HWI.cpp
+++ b/QCamera2/HAL3/QCamera3HWI.cpp
@@ -3896,8 +3896,9 @@
}
if (blob_request && mRawDumpChannel) {
LOGD("Trigger Raw based on blob request if Raw dump is enabled");
- streamsArray.stream_request[streamsArray.num_streams++].streamID =
+ streamsArray.stream_request[streamsArray.num_streams].streamID =
mRawDumpChannel->getStreamID(mRawDumpChannel->getStreamTypeMask());
+ streamsArray.stream_request[streamsArray.num_streams++].buf_index = CAM_FREERUN_IDX;
}
if(request->input_buffer == NULL) {
@@ -4107,7 +4108,7 @@
for (j = 0; j < streamsArray.num_streams; j++) {
if (streamsArray.stream_request[j].streamID == streamId) {
if (mOpMode == CAMERA3_STREAM_CONFIGURATION_CONSTRAINED_HIGH_SPEED_MODE)
- streamsArray.stream_request[j].buf_index = 0xFFFFFFFF;
+ streamsArray.stream_request[j].buf_index = CAM_FREERUN_IDX;
else
streamsArray.stream_request[j].buf_index = indexUsed;
break;
@@ -4138,7 +4139,7 @@
for (j = 0; j < streamsArray.num_streams; j++) {
if (streamsArray.stream_request[j].streamID == streamId) {
if (mOpMode == CAMERA3_STREAM_CONFIGURATION_CONSTRAINED_HIGH_SPEED_MODE)
- streamsArray.stream_request[j].buf_index = 0xFFFFFFFF;
+ streamsArray.stream_request[j].buf_index = CAM_FREERUN_IDX;
else
streamsArray.stream_request[j].buf_index = indexUsed;
break;
@@ -4165,7 +4166,7 @@
for (j = 0; j < streamsArray.num_streams; j++) {
if (streamsArray.stream_request[j].streamID == streamId) {
if (mOpMode == CAMERA3_STREAM_CONFIGURATION_CONSTRAINED_HIGH_SPEED_MODE)
- streamsArray.stream_request[j].buf_index = 0xFFFFFFFF;
+ streamsArray.stream_request[j].buf_index = CAM_FREERUN_IDX;
else
streamsArray.stream_request[j].buf_index = indexUsed;
break;
diff --git a/QCamera2/stack/common/cam_types.h b/QCamera2/stack/common/cam_types.h
index b41938c..ed71c24 100644
--- a/QCamera2/stack/common/cam_types.h
+++ b/QCamera2/stack/common/cam_types.h
@@ -145,6 +145,9 @@
/* Defines the number of columns in the color correction matrix (CCM) */
#define AWB_NUM_CCM_COLS (3)
+/* Index to switch H/W to consume to free-run Q*/
+#define CAM_FREERUN_IDX 0xFFFFFFFF
+
typedef uint64_t cam_feature_mask_t;
typedef enum {