Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1104)

Unified Diff: media/capture/video/chromeos/camera_device_delegate.h

Issue 2936373002: Revert of media: add video capture device for ARC++ camera HAL v3 (Closed)
Patch Set: Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: media/capture/video/chromeos/camera_device_delegate.h
diff --git a/media/capture/video/chromeos/camera_device_delegate.h b/media/capture/video/chromeos/camera_device_delegate.h
deleted file mode 100644
index 212dec5a9a190e0646e91d81e427befbef31a035..0000000000000000000000000000000000000000
--- a/media/capture/video/chromeos/camera_device_delegate.h
+++ /dev/null
@@ -1,173 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef MEDIA_CAPTURE_VIDEO_CHROMEOS_CAMERA_DEVICE_DELEGATE_H_
-#define MEDIA_CAPTURE_VIDEO_CHROMEOS_CAMERA_DEVICE_DELEGATE_H_
-
-#include <memory>
-
-#include "base/macros.h"
-#include "base/memory/weak_ptr.h"
-#include "media/capture/video/chromeos/mojo/arc_camera3.mojom.h"
-#include "media/capture/video/video_capture_device.h"
-#include "media/capture/video_capture_types.h"
-
-namespace media {
-
-class CameraHalDelegate;
-class CameraDeviceContext;
-class StreamBufferManager;
-
-// The interface to register buffer with and send capture request to the
-// camera HAL.
-class CAPTURE_EXPORT StreamCaptureInterface {
- public:
- struct Plane {
- Plane();
- ~Plane();
- mojo::ScopedHandle fd;
- uint32_t stride;
- uint32_t offset;
- };
-
- virtual ~StreamCaptureInterface() {}
-
- // Registers a buffer to the camera HAL.
- virtual void RegisterBuffer(uint64_t buffer_id,
- arc::mojom::Camera3DeviceOps::BufferType type,
- uint32_t drm_format,
- arc::mojom::HalPixelFormat hal_pixel_format,
- uint32_t width,
- uint32_t height,
- std::vector<Plane> planes,
- base::OnceCallback<void(int32_t)> callback);
-
- // Sends a capture request to the camera HAL.
- virtual void ProcessCaptureRequest(
- arc::mojom::Camera3CaptureRequestPtr request,
- base::OnceCallback<void(int32_t)> callback);
-};
-
-// CameraDeviceDelegate is instantiated on the capture thread where
-// AllocateAndStart of VideoCaptureDeviceArcChromeOS runs on. All the methods
-// in CameraDeviceDelegate run on |ipc_task_runner_| and hence all the
-// access to member variables is sequenced.
-class CAPTURE_EXPORT CameraDeviceDelegate final {
- public:
- CameraDeviceDelegate(
- VideoCaptureDeviceDescriptor device_descriptor,
- scoped_refptr<CameraHalDelegate> camera_hal_delegate,
- scoped_refptr<base::SingleThreadTaskRunner> ipc_task_runner);
-
- ~CameraDeviceDelegate();
-
- // Delegation methods for the VideoCaptureDevice interface.
- void AllocateAndStart(const VideoCaptureParams& params,
- std::unique_ptr<VideoCaptureDevice::Client> client);
- void StopAndDeAllocate(base::Closure device_close_callback);
- void TakePhoto(VideoCaptureDevice::TakePhotoCallback callback);
- void GetPhotoState(VideoCaptureDevice::GetPhotoStateCallback callback);
- void SetPhotoOptions(mojom::PhotoSettingsPtr settings,
- VideoCaptureDevice::SetPhotoOptionsCallback callback);
-
- // Sets the frame rotation angle in |rotation_|. |rotation_| is clockwise
- // rotation in degrees, and is passed to |client_| along with the captured
- // frames.
- void SetRotation(int rotation);
-
- base::WeakPtr<CameraDeviceDelegate> GetWeakPtr();
-
- private:
- class StreamCaptureInterfaceImpl;
-
- friend class CameraDeviceDelegateTest;
-
- // Mojo connection error handler.
- void OnMojoConnectionError();
-
- // Callback method for the Close Mojo IPC call. This method resets the Mojo
- // connection and closes the camera device.
- void OnClosed(int32_t result);
-
- // Resets the Mojo interface and bindings.
- void ResetMojoInterface();
-
- // Sets |static_metadata_| from |camera_info|.
- void OnGotCameraInfo(int32_t result, arc::mojom::CameraInfoPtr camera_info);
-
- // Creates the Mojo connection to the camera device.
- void OnOpenedDevice(int32_t result);
-
- // Initializes the camera HAL. Initialize sets up the Camera3CallbackOps with
- // the camera HAL. OnInitialized continues to ConfigureStreams if the
- // Initialize call succeeds.
- void Initialize();
- void OnInitialized(int32_t result);
-
- // ConfigureStreams sets up stream context in |streams_| and configure the
- // streams with the camera HAL. OnConfiguredStreams updates |streams_| with
- // the stream config returned, and allocates buffers as per |updated_config|
- // indicates. If there's no error OnConfiguredStreams notifies
- // |client_| the capture has started by calling OnStarted, and proceeds to
- // ConstructDefaultRequestSettings.
- void ConfigureStreams();
- void OnConfiguredStreams(
- int32_t result,
- arc::mojom::Camera3StreamConfigurationPtr updated_config);
-
- // ConstructDefaultRequestSettings asks the camera HAL for the default request
- // settings of the stream in |stream_context_|.
- // OnConstructedDefaultRequestSettings sets the request settings in
- // |streams_context_|. If there's no error
- // OnConstructedDefaultRequestSettings calls StartCapture to start the video
- // capture loop.
- void ConstructDefaultRequestSettings();
- void OnConstructedDefaultRequestSettings(
- arc::mojom::CameraMetadataPtr settings);
-
- // StreamCaptureInterface implementations. These methods are called by
- // |stream_buffer_manager_| on |ipc_task_runner_|.
- void RegisterBuffer(uint64_t buffer_id,
- arc::mojom::Camera3DeviceOps::BufferType type,
- uint32_t drm_format,
- arc::mojom::HalPixelFormat hal_pixel_format,
- uint32_t width,
- uint32_t height,
- std::vector<StreamCaptureInterface::Plane> planes,
- base::OnceCallback<void(int32_t)> callback);
- void ProcessCaptureRequest(arc::mojom::Camera3CaptureRequestPtr request,
- base::OnceCallback<void(int32_t)> callback);
-
- const VideoCaptureDeviceDescriptor device_descriptor_;
-
- int32_t camera_id_;
-
- const scoped_refptr<CameraHalDelegate> camera_hal_delegate_;
-
- VideoCaptureParams chrome_capture_params_;
-
- std::unique_ptr<CameraDeviceContext> device_context_;
-
- std::unique_ptr<StreamBufferManager> stream_buffer_manager_;
-
- // Stores the static camera characteristics of the camera device. E.g. the
- // supported formats and resolution, various available exposure and apeture
- // settings, etc.
- arc::mojom::CameraMetadataPtr static_metadata_;
-
- arc::mojom::Camera3DeviceOpsPtr device_ops_;
-
- // Where all the Mojo IPC calls takes place.
- const scoped_refptr<base::SingleThreadTaskRunner> ipc_task_runner_;
-
- base::Closure device_close_callback_;
-
- base::WeakPtrFactory<CameraDeviceDelegate> weak_ptr_factory_;
-
- DISALLOW_IMPLICIT_CONSTRUCTORS(CameraDeviceDelegate);
-};
-
-} // namespace media
-
-#endif // MEDIA_CAPTURE_VIDEO_CHROMEOS_CAMERA_DEVICE_DELEGATE_H_
« no previous file with comments | « media/capture/video/chromeos/camera_device_context.cc ('k') | media/capture/video/chromeos/camera_device_delegate.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698