Correctly process streams

The reference implementation stream validation/setting
was all out of whack, particularly the handling of "reuse"
streams. This CL does away with that, and plugs in the
static_properties/request_tracker validation/tracking of
configured streams.

Implementation specific features, such as gralloc flags,
are moved down into the V4L2Camera class out of the Camera class.

BUG: https://b/33057320, https://b/31044638
TEST: unit tests pass, some previously failing CTS tests are passing
(and no regressions), simple test camera preview app runs.

Change-Id: Ie8568239a1348dac45bf829ef928e500e01fdcda
diff --git a/modules/camera/3_4/v4l2_camera.h b/modules/camera/3_4/v4l2_camera.h
index 3dae649..1db8d40 100644
--- a/modules/camera/3_4/v4l2_camera.h
+++ b/modules/camera/3_4/v4l2_camera.h
@@ -67,17 +67,13 @@
   void initDeviceInfo(camera_info_t* info) override;
   // Extra initialization of device when opened.
   int initDevice() override;
-  // Verify stream configuration is device-compatible.
-  bool isSupportedStreamSet(default_camera_hal::Stream** streams,
-                            int count,
-                            uint32_t mode) override;
-  // Set up the device for a stream, and get the maximum number of
-  // buffers that stream can handle (max_buffers is an output parameter).
-  int setupStream(default_camera_hal::Stream* stream,
-                  uint32_t* max_buffers) override;
+  // Verify stream configuration dataspaces and rotation values
+  bool validateDataspacesAndRotations(
+      const camera3_stream_configuration_t* stream_config) override;
+  // Set up the streams, including seting usage & max_buffers
+  int setupStreams(camera3_stream_configuration_t* stream_config) override;
   // Verify settings are valid for a capture or reprocessing.
-  bool isValidRequest(
-      const default_camera_hal::CaptureRequest& request) override;
+  bool isValidRequestSettings(const android::CameraMetadata& settings) override;
   // Enqueue a request to receive data from the camera.
   int enqueueRequest(
       std::shared_ptr<default_camera_hal::CaptureRequest> request) override;