Added fuzz targets for libcamera_client

This patch adds following fuzz
target: camera_fuzzer, camera_c2CaptureRequest_fuzzer,
camera_c2ConcurrentCamera_fuzzer,camera_c2SubmitInfo_fuzzer,
camera_c2SessionConfiguration_fuzzer,
camera_c2OutputConfiguration_fuzzer,
camera_vendorTagDescriptor_fuzzer,camera_Parameters_fuzzer,
camera_SessionStats_fuzzer and camera_captureResult_fuzzer.

Test: ./camera_fuzzer
Test: ./camera_c2CaptureRequest_fuzzer
Test: ./camera_c2ConcurrentCamera_fuzzer
Test: ./camera_c2SubmitInfo_fuzzer
Test: ./camera_c2SessionConfiguration_fuzzer
Test: ./camera_c2OutputConfiguration_fuzzer
Test: ./camera_vendorTagDescriptor_fuzzer
Test: ./camera_Parameters_fuzzer
Test: ./camera_SessionStats_fuzzer
Test: ./camera_captureResult_fuzzer
Bug: 193202080

Change-Id: I24326348f4aa30895fb823050416c7c67df473aa
(cherry picked from commit 3234500f45814a738db1cdf1a2c5e5856864c314)
diff --git a/camera/tests/fuzzer/camera2common.h b/camera/tests/fuzzer/camera2common.h
new file mode 100644
index 0000000..14a1b1b
--- /dev/null
+++ b/camera/tests/fuzzer/camera2common.h
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef CAMERA2COMMON_H
+#define CAMERA2COMMON_H
+
+#include <binder/Parcel.h>
+
+using namespace android;
+
+template <class type>
+void invokeReadWriteNullParcel(type* obj) {
+    Parcel* parcelNull = nullptr;
+    obj->writeToParcel(parcelNull);
+    obj->readFromParcel(parcelNull);
+}
+
+template <class type>
+void invokeReadWriteNullParcelsp(sp<type> obj) {
+    Parcel* parcelNull = nullptr;
+    obj->writeToParcel(parcelNull);
+    obj->readFromParcel(parcelNull);
+}
+
+template <class type>
+void invokeReadWriteParcel(type* obj) {
+    Parcel* parcel = new Parcel();
+    obj->writeToParcel(parcel);
+    parcel->setDataPosition(0);
+    obj->readFromParcel(parcel);
+    delete parcel;
+}
+
+template <class type>
+void invokeReadWriteParcelsp(sp<type> obj) {
+    Parcel* parcel = new Parcel();
+    obj->writeToParcel(parcel);
+    parcel->setDataPosition(0);
+    obj->readFromParcel(parcel);
+    delete parcel;
+}
+
+#endif  // CAMERA2COMMON_H