// LINT: LEGACY_NAMES
syntax = "proto2";

package wireless.android.partner.adl.proto;

option java_package = "com.google.wireless.android.partner.adl.proto";
option java_outer_classname = "CameraDeviceInfoProto";

// Content of this file is generated from $(ANDROID_ROOT)/system/media/camera/doc
// Keep internal protocol buffer definition in sync with this one
// Camera related device information
// Next Id: 9
message CameraDeviceInfo {
  // Supported profiles from CamcorderProfile.hasProfile
  optional bool profile_480p = 1;
  optional bool profile_720p = 2;
  optional bool profile_1080p = 3;
  optional bool profile_cif = 4;
  optional bool profile_qcif = 5;
  optional bool profile_qvga = 6;
  optional int32 num_of_camera = 7;

  message PerCameraInfo {
    message Rational {
        optional int32 numerator = 1;
        optional int32 denominator = 2;
    }

    message Size {
        optional int32 width = 1;
        optional int32 height = 2;
    }

    message SizeF {
        optional float width = 1;
        optional float height = 2;
    }

    message Rect {
        optional int32 left = 1;
        optional int32 right = 2;
        optional int32 top = 3;
        optional int32 bottom = 4;
    }

    message StreamConfigurations {
        message StreamConfig {
            optional int32 format = 1;
            optional int32 width = 2;
            optional int32 height = 3;
            optional bool input = 4;
            optional int64 minFrameDuration = 5;
        }
        repeated StreamConfig availableStreamConfigurations = 1;
    }

    message RangeInt {
        optional int32 lower = 1;
        optional int32 upper = 2;
    }

    message RangeLong {
        optional int64 lower = 1;
        optional int64 upper = 2;
    }

    message ColorSpaceTransform {
        repeated Rational elements = 1;
    }

    message BlackLevelPattern {
        repeated int32 black_level_pattern = 1;
    }

    optional string cameraId = 1;

    // Start of codegen fields
    repeated int32 android_colorCorrection_availableAberrationModes = 65536;
    repeated int32 android_control_aeAvailableAntibandingModes = 131072;
    repeated int32 android_control_aeAvailableModes = 131073;
    repeated RangeInt android_control_aeAvailableTargetFpsRanges = 131074;
    optional RangeInt android_control_aeCompensationRange = 131075;
    optional Rational android_control_aeCompensationStep = 131076;
    repeated int32 android_control_afAvailableModes = 131077;
    repeated int32 android_control_availableEffects = 131078;
    repeated int32 android_control_availableSceneModes = 131079;
    repeated int32 android_control_availableVideoStabilizationModes = 131080;
    repeated int32 android_control_awbAvailableModes = 131081;
    optional int32 android_control_maxRegionsAe = 131082;
    optional int32 android_control_maxRegionsAwb = 131083;
    optional int32 android_control_maxRegionsAf = 131084;
    optional bool android_control_aeLockAvailable = 131085;
    optional bool android_control_awbLockAvailable = 131086;
    repeated int32 android_control_availableModes = 131087;
    optional RangeInt android_control_postRawSensitivityBoostRange = 131088;
    repeated int32 android_edge_availableEdgeModes = 262144;
    optional bool android_flash_info_available = 393216;
    repeated int32 android_hotPixel_availableHotPixelModes = 458752;
    repeated Size android_jpeg_availableThumbnailSizes = 524288;
    optional int32 android_lens_facing = 589824;
    repeated float android_lens_info_availableApertures = 655360;
    repeated float android_lens_info_availableFilterDensities = 655361;
    repeated float android_lens_info_availableFocalLengths = 655362;
    repeated int32 android_lens_info_availableOpticalStabilization = 655363;
    optional float android_lens_info_hyperfocalDistance = 655364;
    optional float android_lens_info_minimumFocusDistance = 655365;
    optional int32 android_lens_info_focusDistanceCalibration = 655366;
    repeated int32 android_noiseReduction_availableNoiseReductionModes = 720896;
    optional int32 android_request_maxNumOutputRaw = 851968;
    optional int32 android_request_maxNumOutputProc = 851969;
    optional int32 android_request_maxNumOutputProcStalling = 851970;
    optional int32 android_request_maxNumInputStreams = 851971;
    optional int32 android_request_pipelineMaxDepth = 851972;
    optional int32 android_request_partialResultCount = 851973;
    repeated int32 android_request_availableCapabilities = 851974;
    optional float android_scaler_availableMaxDigitalZoom = 917504;
    optional StreamConfigurations android_scaler_streamConfigurationMap = 917505;
    optional int32 android_scaler_croppingType = 917506;
    optional int32 android_sensor_referenceIlluminant1 = 983040;
    optional int32 android_sensor_referenceIlluminant2 = 983041;
    optional ColorSpaceTransform android_sensor_calibrationTransform1 = 983042;
    optional ColorSpaceTransform android_sensor_calibrationTransform2 = 983043;
    optional ColorSpaceTransform android_sensor_colorTransform1 = 983044;
    optional ColorSpaceTransform android_sensor_colorTransform2 = 983045;
    optional ColorSpaceTransform android_sensor_forwardMatrix1 = 983046;
    optional ColorSpaceTransform android_sensor_forwardMatrix2 = 983047;
    optional BlackLevelPattern android_sensor_blackLevelPattern = 983048;
    optional int32 android_sensor_maxAnalogSensitivity = 983049;
    optional int32 android_sensor_orientation = 983050;
    repeated int32 android_sensor_availableTestPatternModes = 983051;
    repeated Rect android_sensor_opticalBlackRegions = 983052;
    optional Rect android_sensor_info_activeArraySize = 1048576;
    optional RangeInt android_sensor_info_sensitivityRange = 1048577;
    optional int32 android_sensor_info_colorFilterArrangement = 1048578;
    optional RangeLong android_sensor_info_exposureTimeRange = 1048579;
    optional int64 android_sensor_info_maxFrameDuration = 1048580;
    optional SizeF android_sensor_info_physicalSize = 1048581;
    optional Size android_sensor_info_pixelArraySize = 1048582;
    optional int32 android_sensor_info_whiteLevel = 1048583;
    optional int32 android_sensor_info_timestampSource = 1048584;
    optional bool android_sensor_info_lensShadingApplied = 1048585;
    optional Rect android_sensor_info_preCorrectionActiveArraySize = 1048586;
    repeated int32 android_shading_availableModes = 1114112;
    repeated int32 android_statistics_info_availableFaceDetectModes = 1245184;
    optional int32 android_statistics_info_maxFaceCount = 1245185;
    repeated bool android_statistics_info_availableHotPixelMapModes = 1245186;
    repeated int32 android_statistics_info_availableLensShadingMapModes = 1245187;
    optional int32 android_tonemap_maxCurvePoints = 1310720;
    repeated int32 android_tonemap_availableToneMapModes = 1310721;
    optional int32 android_info_supportedHardwareLevel = 1441792;
    optional int32 android_sync_maxLatency = 1572864;
    optional int32 android_reprocess_maxCaptureStall = 1638400;
    optional bool android_depth_depthIsExclusive = 1703936;
    // End of codegen fields
  }

  // Per camera (front/back) informations
  repeated PerCameraInfo per_camera_info = 8;
} // CameraDeviceInfo