Home | History | Annotate | Download | only in arc
      1 /*
      2  * Copyright 2016 The Chromium OS Authors. All rights reserved.
      3  * Use of this source code is governed by a BSD-style license that can be
      4  * found in the LICENSE file.
      5  */
      6 
      7 #ifndef HAL_USB_COMMON_TYPES_H_
      8 #define HAL_USB_COMMON_TYPES_H_
      9 
     10 #include <string>
     11 #include <vector>
     12 
     13 namespace arc {
     14 
     15 struct DeviceInfo {
     16   // ex: /dev/video0
     17   std::string device_path;
     18   // USB vender id
     19   std::string usb_vid;
     20   // USB product id
     21   std::string usb_pid;
     22   // Some cameras need to wait several frames to output correct images.
     23   uint32_t frames_to_skip_after_streamon;
     24 
     25   // Member definitions can be found in https://developer.android.com/
     26   // reference/android/hardware/camera2/CameraCharacteristics.html
     27   uint32_t lens_facing;
     28   int32_t sensor_orientation;
     29   float horizontal_view_angle_16_9;
     30   float horizontal_view_angle_4_3;
     31   std::vector<float> lens_info_available_focal_lengths;
     32   float lens_info_minimum_focus_distance;
     33   float lens_info_optimal_focus_distance;
     34   float vertical_view_angle_16_9;
     35   float vertical_view_angle_4_3;
     36 };
     37 
     38 typedef std::vector<DeviceInfo> DeviceInfos;
     39 
     40 struct SupportedFormat {
     41   uint32_t width;
     42   uint32_t height;
     43   uint32_t fourcc;
     44   // All the supported frame rates in fps with given width, height, and
     45   // pixelformat. This is not sorted. For example, suppose width, height, and
     46   // fourcc are 640x480 YUYV. If frameRates are 15.0 and 30.0, the camera
     47   // supports outputting 640X480 YUYV in 15fps or 30fps.
     48   std::vector<float> frameRates;
     49 };
     50 
     51 typedef std::vector<SupportedFormat> SupportedFormats;
     52 
     53 }  // namespace arc
     54 
     55 #endif  // HAL_USB_COMMON_TYPES_H_
     56