Camera3: Add error stream ID for buffer drop errors
To enable passing buffer drop errors to API users
Bug: 24168122
Change-Id: I2769d0ba1fbd9a09494d5904eac511cecea3e6a8
diff --git a/camera/CaptureResult.cpp b/camera/CaptureResult.cpp
index 58d9b43..0a447e7 100644
--- a/camera/CaptureResult.cpp
+++ b/camera/CaptureResult.cpp
@@ -38,6 +38,7 @@
parcel->readInt32(&precaptureTriggerId);
parcel->readInt64(&frameNumber);
parcel->readInt32(&partialResultCount);
+ parcel->readInt32(&errorStreamId);
return OK;
}
@@ -54,6 +55,7 @@
parcel->writeInt32(precaptureTriggerId);
parcel->writeInt64(frameNumber);
parcel->writeInt32(partialResultCount);
+ parcel->writeInt32(errorStreamId);
return OK;
}
diff --git a/include/camera/CaptureResult.h b/include/camera/CaptureResult.h
index ff0e3d3..45e4518 100644
--- a/include/camera/CaptureResult.h
+++ b/include/camera/CaptureResult.h
@@ -64,6 +64,12 @@
int32_t partialResultCount;
/**
+ * For buffer drop errors, the stream ID for the stream that lost a buffer.
+ * Otherwise -1.
+ */
+ int32_t errorStreamId;
+
+ /**
* Constructor initializes object as invalid by setting requestId to be -1.
*/
CaptureResultExtras()
@@ -72,7 +78,8 @@
afTriggerId(0),
precaptureTriggerId(0),
frameNumber(0),
- partialResultCount(0) {
+ partialResultCount(0),
+ errorStreamId(-1) {
}
/**
diff --git a/services/camera/libcameraservice/device3/Camera3Device.cpp b/services/camera/libcameraservice/device3/Camera3Device.cpp
index ee84ff0..2b2808c 100644
--- a/services/camera/libcameraservice/device3/Camera3Device.cpp
+++ b/services/camera/libcameraservice/device3/Camera3Device.cpp
@@ -2640,6 +2640,7 @@
resultExtras.frameNumber);
}
}
+ resultExtras.errorStreamId = streamId;
if (listener != NULL) {
listener->notifyError(errorCode, resultExtras);
} else {