QCamera2: HAL3: Avoid shutter recovery for reprocess requests

Handling of pending requests that contain input buffers is separate
from the regular metadata&shutter logic. Currently the input buffer
will return along with the metadata/result immediately after offline
processing completes. This depending on scheduling can happen at any
point in time and we shouldn't try to recover shutter events for such
requests. If recovery gets triggered, then the shutter timestamp will
not match the sensor timestamp from the reprocess result. This will
likely get detected at client side and may lead to instabilities.

Bug: 66948164
Test: Complete CTS
adb shell am instrument -w -r   -e waitIntervalMs 1000 -e timeout_msec
7200000 -e iterations 1 -e class
com.android.mediaframeworktest.stress.Camera2ReprocessCaptureTest#testMixedBurstReprocessing
com.android.mediaframeworktest/com.android.mediaframeworktest.Camera2InstrumentationTestRunner

Change-Id: I4c33c5dd8212bd8d14f552b3c62c87decf7e409a
diff --git a/msm8998/QCamera2/HAL3/QCamera3HWI.cpp b/msm8998/QCamera2/HAL3/QCamera3HWI.cpp
index a71a79e..4edd809 100644
--- a/msm8998/QCamera2/HAL3/QCamera3HWI.cpp
+++ b/msm8998/QCamera2/HAL3/QCamera3HWI.cpp
@@ -3839,7 +3839,7 @@
         if (pendingRequest.frame_number < frame_number) {
             // Workaround for case where shutter is missing due to dropped
             // metadata
-            if (!pendingRequest.hdrplus) {
+            if (!pendingRequest.hdrplus && (pendingRequest.input_buffer == nullptr)) {
                 mShutterDispatcher.markShutterReady(pendingRequest.frame_number, capture_time);
             }
         } else if (pendingRequest.frame_number == frame_number) {