+ /* alloc default attribute info */
+ hcamcorder->cam_attrs_const_info = (mm_cam_attr_construct_info *)malloc(sizeof(mm_cam_attr_construct_info) * attr_count);
+ if (hcamcorder->cam_attrs_const_info == NULL) {
+ _mmcam_dbg_err("failed to alloc default attribute info");
+ free(attrs_const_info);
+ attrs_const_info = NULL;
+ return 0;
+ }
+
+ /* basic attributes' info */
+ mm_cam_attr_construct_info temp_info[] = {
+ /* 0 */
+ {
+ MM_CAM_MODE, /* ID */
+ "mode", /* Name */
+ MMF_VALUE_TYPE_INT, /* Type */
+ MM_ATTRS_FLAG_RW, /* Flag */
+ {(void*)MM_CAMCORDER_MODE_VIDEO_CAPTURE}, /* Default value */
+ MM_ATTRS_VALID_TYPE_INT_RANGE, /* Validity type */
+ {.int_min = MM_CAMCORDER_MODE_VIDEO_CAPTURE}, /* Validity val1 (min, *array,...) */
+ {.int_max = MM_CAMCORDER_MODE_AUDIO}, /* Validity val2 (max, count, ...) */
+ NULL, /* Runtime setting function of the attribute */
+ },
+ {
+ MM_CAM_AUDIO_DEVICE,
+ "audio-device",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)MM_AUDIO_DEVICE_MIC},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {NULL},
+ {0},
+ NULL,
+ },
+ {
+ MM_CAM_CAMERA_DEVICE_COUNT,
+ "camera-device-count",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)MM_VIDEO_DEVICE_NUM},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = MM_VIDEO_DEVICE_NONE},
+ {.int_max = MM_VIDEO_DEVICE_NUM},
+ NULL,
+ },
+ {
+ MM_CAM_AUDIO_ENCODER,
+ "audio-encoder",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)MM_AUDIO_CODEC_AMR},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {NULL},
+ {0},
+ NULL,
+ },
+ {
+ MM_CAM_VIDEO_ENCODER,
+ "video-encoder",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)MM_VIDEO_CODEC_MPEG4},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {NULL},
+ {0},
+ NULL,
+ },
+ {
+ MM_CAM_IMAGE_ENCODER,
+ "image-encoder",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)MM_IMAGE_CODEC_JPEG},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {NULL},
+ {0},
+ NULL,
+ },
+ {
+ MM_CAM_FILE_FORMAT,
+ "file-format",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)MM_FILE_FORMAT_MP4},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {NULL},
+ {0},
+ NULL,
+ },
+ {
+ MM_CAM_CAMERA_DEVICE_NAME,
+ "camera-device-name",
+ MMF_VALUE_TYPE_STRING,
+ MM_ATTRS_FLAG_RW,
+ {(void*)NULL},
+ MM_ATTRS_VALID_TYPE_NONE,
+ {0},
+ {0},
+ NULL,
+ },
+ {
+ MM_CAM_AUDIO_SAMPLERATE,
+ "audio-samplerate",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)8000},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = _MMCAMCORDER_MAX_INT},
+ NULL,
+ },
+ {
+ MM_CAM_AUDIO_FORMAT,
+ "audio-format",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)MM_CAMCORDER_AUDIO_FORMAT_PCM_S16_LE},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {depth},
+ {ARRAY_SIZE(depth)},
+ NULL,
+ },
+ /* 10 */
+ {
+ MM_CAM_AUDIO_CHANNEL,
+ "audio-channel",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)2},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 1},
+ {.int_max = 2},
+ NULL,
+ },
+ {
+ MM_CAM_AUDIO_VOLUME,
+ "audio-volume",
+ MMF_VALUE_TYPE_DOUBLE,
+ MM_ATTRS_FLAG_RW,
+ {(void*)1},
+ MM_ATTRS_VALID_TYPE_DOUBLE_RANGE,
+ {.double_min = 0.0},
+ {.double_max = 10.0},
+ _mmcamcorder_commit_audio_volume,
+ },
+ {
+ MM_CAM_AUDIO_INPUT_ROUTE,
+ "audio-input-route",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)MM_AUDIOROUTE_USE_EXTERNAL_SETTING},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = MM_AUDIOROUTE_USE_EXTERNAL_SETTING},
+ {.int_max = MM_AUDIOROUTE_CAPTURE_STEREOMIC_ONLY},
+ _mmcamcorder_commit_audio_input_route,
+ },
+ {
+ MM_CAM_FILTER_SCENE_MODE,
+ "filter-scene-mode",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {0},
+ {0},
+ _mmcamcorder_commit_filter_scene_mode,
+ },
+ {
+ MM_CAM_FILTER_BRIGHTNESS,
+ "filter-brightness",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)1},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = -1},
+ _mmcamcorder_commit_filter,
+ },
+ {
+ MM_CAM_FILTER_CONTRAST,
+ "filter-contrast",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = -1},
+ _mmcamcorder_commit_filter,
+ },
+ {
+ MM_CAM_FILTER_WB,
+ "filter-wb",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {0},
+ {0},
+ _mmcamcorder_commit_filter,
+ },
+ {
+ MM_CAM_FILTER_COLOR_TONE,
+ "filter-color-tone",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {0},
+ {0},
+ _mmcamcorder_commit_filter,
+ },
+ {
+ MM_CAM_FILTER_SATURATION,
+ "filter-saturation",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = -1},
+ _mmcamcorder_commit_filter,
+ },
+ {
+ MM_CAM_FILTER_HUE,
+ "filter-hue",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = -1},
+ _mmcamcorder_commit_filter,
+ },
+ /* 20 */
+ {
+ MM_CAM_FILTER_SHARPNESS,
+ "filter-sharpness",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = -1},
+ _mmcamcorder_commit_filter,
+ },
+ {
+ MM_CAM_CAMERA_FORMAT,
+ "camera-format",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)MM_PIXEL_FORMAT_YUYV},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {0},
+ {0},
+ _mmcamcorder_commit_camera_format,
+ },
+ {
+ MM_CAM_CAMERA_RECORDING_MOTION_RATE,
+ "camera-recording-motion-rate",
+ MMF_VALUE_TYPE_DOUBLE,
+ MM_ATTRS_FLAG_RW,
+ {(void*)1},
+ MM_ATTRS_VALID_TYPE_DOUBLE_RANGE,
+ {.double_min = 0.0},
+ {.double_max = _MMCAMCORDER_MAX_DOUBLE},
+ _mmcamcorder_commit_camera_recording_motion_rate,
+ },
+ {
+ MM_CAM_CAMERA_FPS,
+ "camera-fps",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)30},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {0},
+ {1024},
+ _mmcamcorder_commit_camera_fps,
+ },
+ {
+ MM_CAM_CAMERA_WIDTH,
+ "camera-width",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)MMCAMCORDER_DEFAULT_CAMERA_WIDTH},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {0},
+ {0},
+ _mmcamcorder_commit_camera_width,
+ },
+ {
+ MM_CAM_CAMERA_HEIGHT,
+ "camera-height",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)MMCAMCORDER_DEFAULT_CAMERA_HEIGHT},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {0},
+ {0},
+ _mmcamcorder_commit_camera_height,
+ },
+ {
+ MM_CAM_CAMERA_DIGITAL_ZOOM,
+ "camera-digital-zoom",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)10},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = -1},
+ _mmcamcorder_commit_camera_zoom,
+ },
+ {
+ MM_CAM_CAMERA_OPTICAL_ZOOM,
+ "camera-optical-zoom",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = -1},
+ _mmcamcorder_commit_camera_zoom,
+ },
+ {
+ MM_CAM_CAMERA_FOCUS_MODE,
+ "camera-focus-mode",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)MM_CAMCORDER_FOCUS_MODE_NONE},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {0},
+ {0},
+ _mmcamcorder_commit_camera_focus_mode,
+ },
+ {
+ MM_CAM_CAMERA_AF_SCAN_RANGE,
+ "camera-af-scan-range",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {0},
+ {0},
+ _mmcamcorder_commit_camera_af_scan_range,
+ },
+ /* 30 */
+ {
+ MM_CAM_CAMERA_EXPOSURE_MODE,
+ "camera-exposure-mode",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {0},
+ {0},
+ _mmcamcorder_commit_camera_capture_mode,
+ },
+ {
+ MM_CAM_CAMERA_EXPOSURE_VALUE,
+ "camera-exposure-value",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = -1},
+ _mmcamcorder_commit_camera_capture_mode,
+ },
+ {
+ MM_CAM_CAMERA_F_NUMBER,
+ "camera-f-number",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {0},
+ {0},
+ _mmcamcorder_commit_camera_capture_mode,
+ },
+ {
+ MM_CAM_CAMERA_SHUTTER_SPEED,
+ "camera-shutter-speed",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {0},
+ {0},
+ _mmcamcorder_commit_camera_capture_mode,
+ },
+ {
+ MM_CAM_CAMERA_ISO,
+ "camera-iso",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {0},
+ {0},
+ _mmcamcorder_commit_camera_capture_mode,
+ },
+ {
+ MM_CAM_CAMERA_WDR,
+ "camera-wdr",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {0},
+ {0},
+ _mmcamcorder_commit_camera_wdr,
+ },
+ {
+ MM_CAM_CAMERA_ANTI_HANDSHAKE,
+ "camera-anti-handshake",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {0},
+ {0},
+ _mmcamcorder_commit_camera_anti_handshake,
+ },
+ {
+ MM_CAM_CAMERA_FPS_AUTO,
+ "camera-fps-auto",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)FALSE},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = 1},
+ _mmcamcorder_commit_camera_fps,
+ },
+ {
+ MM_CAM_CAMERA_DELAY_ATTR_SETTING,
+ "camera-delay-attr-setting",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)FALSE},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = 1},
+ NULL,
+ },
+ {
+ MM_CAM_AUDIO_ENCODER_BITRATE,
+ "audio-encoder-bitrate",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = _MMCAMCORDER_MAX_INT},
+ _mmcamcorder_commit_encoder_bitrate,
+ },
+ /* 40 */
+ {
+ MM_CAM_VIDEO_ENCODER_BITRATE,
+ "video-encoder-bitrate",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = _MMCAMCORDER_MAX_INT},
+ _mmcamcorder_commit_encoder_bitrate,
+ },
+ {
+ MM_CAM_IMAGE_ENCODER_QUALITY,
+ "image-encoder-quality",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)95},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = -1},
+ _mmcamcorder_commit_image_encoder_quality,
+ },
+ {
+ MM_CAM_CAPTURE_FORMAT,
+ "capture-format",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)MM_PIXEL_FORMAT_ENCODED},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {0},
+ {0},
+ NULL,
+ },
+ {
+ MM_CAM_CAPTURE_WIDTH,
+ "capture-width",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)1600},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {0},
+ {0},
+ _mmcamcorder_commit_capture_width ,
+ },
+ {
+ MM_CAM_CAPTURE_HEIGHT,
+ "capture-height",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)1200},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {0},
+ {0},
+ _mmcamcorder_commit_capture_height,
+ },
+ {
+ MM_CAM_CAPTURE_COUNT,
+ "capture-count",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)1},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = -1},
+ _mmcamcorder_commit_capture_count,
+ },
+ {
+ MM_CAM_CAPTURE_INTERVAL,
+ "capture-interval",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = _MMCAMCORDER_MAX_INT},
+ NULL,
+ },
+ {
+ MM_CAM_CAPTURE_BREAK_CONTINUOUS_SHOT,
+ "capture-break-cont-shot",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)FALSE},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = 1},
+ _mmcamcorder_commit_capture_break_cont_shot,
+ },
+ {
+ MM_CAM_DISPLAY_HANDLE,
+ "display-handle",
+ MMF_VALUE_TYPE_DATA,
+ MM_ATTRS_FLAG_RW,
+ {(void*)NULL},
+ MM_ATTRS_VALID_TYPE_NONE,
+ {0},
+ {0},
+ _mmcamcorder_commit_display_handle,
+ },
+ {
+ MM_CAM_DISPLAY_DEVICE,
+ "display-device",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)MM_DISPLAY_DEVICE_MAINLCD},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {0},
+ {0},
+ NULL,
+ },
+ /* 50 */
+ {
+ MM_CAM_DISPLAY_SURFACE,
+ "display-surface",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)MM_DISPLAY_SURFACE_OVERLAY},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {0},
+ {0},
+ NULL,
+ },
+ {
+ MM_CAM_DISPLAY_RECT_X,
+ "display-rect-x",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = _MMCAMCORDER_MAX_INT},
+ _mmcamcorder_commit_display_rect,
+ },
+ {
+ MM_CAM_DISPLAY_RECT_Y,
+ "display-rect-y",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = _MMCAMCORDER_MAX_INT},
+ _mmcamcorder_commit_display_rect,
+ },
+ {
+ MM_CAM_DISPLAY_RECT_WIDTH,
+ "display-rect-width",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 1},
+ {.int_max = _MMCAMCORDER_MAX_INT},
+ _mmcamcorder_commit_display_rect,
+ },
+ {
+ MM_CAM_DISPLAY_RECT_HEIGHT,
+ "display-rect-height",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 1},
+ {.int_max = _MMCAMCORDER_MAX_INT},
+ _mmcamcorder_commit_display_rect,
+ },
+ {
+ MM_CAM_DISPLAY_SOURCE_X,
+ "display-src-x",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = _MMCAMCORDER_MAX_INT},
+ NULL,
+ },
+ {
+ MM_CAM_DISPLAY_SOURCE_Y,
+ "display-src-y",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = _MMCAMCORDER_MAX_INT},
+ NULL,
+ },
+ {
+ MM_CAM_DISPLAY_SOURCE_WIDTH,
+ "display-src-width",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = _MMCAMCORDER_MAX_INT},
+ NULL,
+ },
+ {
+ MM_CAM_DISPLAY_SOURCE_HEIGHT,
+ "display-src-height",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = _MMCAMCORDER_MAX_INT},
+ NULL,
+ },
+ {
+ MM_CAM_DISPLAY_ROTATION,
+ "display-rotation",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)MM_DISPLAY_ROTATION_NONE},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = MM_DISPLAY_ROTATION_NONE},
+ {.int_max = MM_DISPLAY_ROTATION_270},
+ _mmcamcorder_commit_display_rotation,
+ },
+ /* 60 */
+ {
+ MM_CAM_DISPLAY_VISIBLE,
+ "display-visible",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)1},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {visible_values},
+ {ARRAY_SIZE(visible_values)},
+ _mmcamcorder_commit_display_visible,
+ },
+ {
+ MM_CAM_DISPLAY_SCALE,
+ "display-scale",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = MM_DISPLAY_SCALE_DEFAULT},
+ {.int_max = MM_DISPLAY_SCALE_TRIPLE_LENGTH},
+ _mmcamcorder_commit_display_scale,
+ },
+ {
+ MM_CAM_DISPLAY_GEOMETRY_METHOD,
+ "display-geometry-method",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = MM_DISPLAY_METHOD_LETTER_BOX},
+ {.int_max = MM_DISPLAY_METHOD_CUSTOM_ROI},
+ _mmcamcorder_commit_display_geometry_method,
+ },
+ {
+ MM_CAM_TARGET_FILENAME,
+ "target-filename",
+ MMF_VALUE_TYPE_STRING,
+ MM_ATTRS_FLAG_RW,
+ {(void*)NULL},
+ MM_ATTRS_VALID_TYPE_NONE,
+ {0},
+ {0},
+ _mmcamcorder_commit_target_filename,
+ },
+ {
+ MM_CAM_TARGET_MAX_SIZE,
+ "target-max-size",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = _MMCAMCORDER_MAX_INT},
+ _mmcamcorder_commit_recording_max_limit,
+ },
+ {
+ MM_CAM_TARGET_TIME_LIMIT,
+ "target-time-limit",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = _MMCAMCORDER_MAX_INT},
+ _mmcamcorder_commit_recording_max_limit,
+ },
+ {
+ MM_CAM_TAG_ENABLE,
+ "tag-enable",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = 1},
+ _mmcamcorder_commit_tag,
+ },
+ {
+ MM_CAM_TAG_IMAGE_DESCRIPTION,
+ "tag-image-description",
+ MMF_VALUE_TYPE_STRING,
+ MM_ATTRS_FLAG_RW,
+ {(void*)NULL},
+ MM_ATTRS_VALID_TYPE_NONE,
+ {0},
+ {0},
+ _mmcamcorder_commit_tag,
+ },
+ {
+ MM_CAM_TAG_ORIENTATION,
+ "tag-orientation",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)1},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {tag_orientation_values},
+ {ARRAY_SIZE(tag_orientation_values)},
+ _mmcamcorder_commit_tag,
+ },
+ {
+ MM_CAM_TAG_SOFTWARE,
+ "tag-software",
+ MMF_VALUE_TYPE_STRING,
+ MM_ATTRS_FLAG_RW,
+ {(void*)NULL},
+ MM_ATTRS_VALID_TYPE_NONE,
+ {0},
+ {0},
+ _mmcamcorder_commit_tag,
+ },
+ /* 70 */
+ {
+ MM_CAM_TAG_LATITUDE,
+ "tag-latitude",
+ MMF_VALUE_TYPE_DOUBLE,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_DOUBLE_RANGE,
+ {.double_min = -360.0},
+ {.double_max = 360.0},
+ _mmcamcorder_commit_tag,
+ },
+ {
+ MM_CAM_TAG_LONGITUDE,
+ "tag-longitude",
+ MMF_VALUE_TYPE_DOUBLE,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_DOUBLE_RANGE,
+ {.double_min = -360.0},
+ {.double_max = 360.0},
+ _mmcamcorder_commit_tag,
+ },
+ {
+ MM_CAM_TAG_ALTITUDE,
+ "tag-altitude",
+ MMF_VALUE_TYPE_DOUBLE,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_DOUBLE_RANGE,
+ {.double_min = -999999.0},
+ {.double_max = 999999.0},
+ _mmcamcorder_commit_tag,
+ },
+ {
+ MM_CAM_STROBE_CONTROL,
+ "strobe-control",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = -1},
+ _mmcamcorder_commit_strobe,
+ },
+ {
+ MM_CAM_STROBE_CAPABILITIES,
+ "strobe-capabilities",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = -1},
+ _mmcamcorder_commit_strobe,
+ },
+ {
+ MM_CAM_STROBE_MODE,
+ "strobe-mode",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {0},
+ {0},
+ _mmcamcorder_commit_strobe,
+ },
+ {
+ MM_CAM_DETECT_MODE,
+ "detect-mode",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {0},
+ {0},
+ _mmcamcorder_commit_detect,
+ },
+ {
+ MM_CAM_DETECT_NUMBER,
+ "detect-number",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = -1},
+ _mmcamcorder_commit_detect,
+ },
+ {
+ MM_CAM_DETECT_FOCUS_SELECT,
+ "detect-focus-select",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = -1},
+ _mmcamcorder_commit_detect,
+ },
+ {
+ MM_CAM_DETECT_SELECT_NUMBER,
+ "detect-select-number",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = -1},
+ _mmcamcorder_commit_detect,
+ },
+ /* 80 */
+ {
+ MM_CAM_DETECT_STATUS,
+ "detect-status",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {0},
+ {0},
+ _mmcamcorder_commit_detect,
+ },
+ {
+ MM_CAM_CAPTURE_ZERO_SYSTEMLAG,
+ "capture-zero-systemlag",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)FALSE},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = 1},
+ NULL,
+ },
+ {
+ MM_CAM_CAMERA_AF_TOUCH_X,
+ "camera-af-touch-x",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = _MMCAMCORDER_MAX_INT},
+ _mmcamcorder_commit_camera_af_touch_area,
+ },
+ {
+ MM_CAM_CAMERA_AF_TOUCH_Y,
+ "camera-af-touch-y",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = _MMCAMCORDER_MAX_INT},
+ _mmcamcorder_commit_camera_af_touch_area,
+ },
+ {
+ MM_CAM_CAMERA_AF_TOUCH_WIDTH,
+ "camera-af-touch-width",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = _MMCAMCORDER_MAX_INT},
+ _mmcamcorder_commit_camera_af_touch_area,
+ },
+ {
+ MM_CAM_CAMERA_AF_TOUCH_HEIGHT,
+ "camera-af-touch-height",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = _MMCAMCORDER_MAX_INT},
+ _mmcamcorder_commit_camera_af_touch_area,
+ },
+ {
+ MM_CAM_CAMERA_FOCAL_LENGTH,
+ "camera-focal-length",
+ MMF_VALUE_TYPE_DOUBLE,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_DOUBLE_RANGE,
+ {.double_min = 0.0},
+ {.double_max = 1000.0},
+ _mmcamcorder_commit_camera_capture_mode,
+ },
+ {
+ MM_CAM_RECOMMEND_PREVIEW_FORMAT_FOR_CAPTURE,
+ "recommend-preview-format-for-capture",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)MM_PIXEL_FORMAT_YUYV},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = MM_PIXEL_FORMAT_NV12},
+ {.int_max = (MM_PIXEL_FORMAT_NUM-1)},
+ NULL,
+ },
+ {
+ MM_CAM_RECOMMEND_PREVIEW_FORMAT_FOR_RECORDING,
+ "recommend-preview-format-for-recording",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)MM_PIXEL_FORMAT_NV12},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = MM_PIXEL_FORMAT_NV12},
+ {.int_max = (MM_PIXEL_FORMAT_NUM-1)},
+ NULL,
+ },
+ {
+ MM_CAM_TAG_GPS_ENABLE,
+ "tag-gps-enable",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)FALSE},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = 1},
+ _mmcamcorder_commit_tag,
+ },
+ /* 90 */
+ {
+ MM_CAM_TAG_GPS_TIME_STAMP,
+ "tag-gps-time-stamp",
+ MMF_VALUE_TYPE_DOUBLE,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_NONE,
+ {0},
+ {0},
+ _mmcamcorder_commit_tag,
+ },
+ {
+ MM_CAM_TAG_GPS_DATE_STAMP,
+ "tag-gps-date-stamp",
+ MMF_VALUE_TYPE_STRING,
+ MM_ATTRS_FLAG_RW,
+ {(void*)NULL},
+ MM_ATTRS_VALID_TYPE_NONE,
+ {0},
+ {0},
+ _mmcamcorder_commit_tag,
+ },
+ {
+ MM_CAM_TAG_GPS_PROCESSING_METHOD,
+ "tag-gps-processing-method",
+ MMF_VALUE_TYPE_STRING,
+ MM_ATTRS_FLAG_RW,
+ {(void*)NULL},
+ MM_ATTRS_VALID_TYPE_NONE,
+ {0},
+ {0},
+ _mmcamcorder_commit_tag,
+ },
+ {
+ MM_CAM_CAMERA_ROTATION,
+ "camera-rotation",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)MM_VIDEO_INPUT_ROTATION_NONE},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {rotation_list},
+ {ARRAY_SIZE(rotation_list)},
+ _mmcamcorder_commit_camera_rotate,
+ },
+ {
+ MM_CAM_CAPTURED_SCREENNAIL,
+ "captured-screennail",
+ MMF_VALUE_TYPE_DATA,
+ MM_ATTRS_FLAG_READABLE,
+ {(void*)NULL},
+ MM_ATTRS_VALID_TYPE_NONE,
+ {0},
+ {0},
+ NULL,
+ },
+ {
+ MM_CAM_CAPTURE_SOUND_ENABLE,
+ "capture-sound-enable",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)TRUE},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = 1},
+ _mmcamcorder_commit_capture_sound_enable,
+ },
+ {
+ MM_CAM_RECOMMEND_DISPLAY_ROTATION,
+ "recommend-display-rotation",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)MM_DISPLAY_ROTATION_270},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = MM_DISPLAY_ROTATION_NONE},
+ {.int_max = MM_DISPLAY_ROTATION_270},
+ NULL,
+ },
+ {
+ MM_CAM_CAMERA_FLIP,
+ "camera-flip",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)MM_FLIP_NONE},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {flip_list},
+ {ARRAY_SIZE(flip_list)},
+ _mmcamcorder_commit_camera_flip,
+ },
+ {
+ MM_CAM_CAMERA_HDR_CAPTURE,
+ "camera-hdr-capture",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)FALSE},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {0},
+ {0},
+ _mmcamcorder_commit_camera_hdr_capture,
+ },
+ {
+ MM_CAM_DISPLAY_MODE,
+ "display-mode",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)MM_DISPLAY_MODE_DEFAULT},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {0},
+ {0},
+ _mmcamcorder_commit_display_mode,
+ },
+ /* 100 */
+ {
+ MM_CAM_AUDIO_DISABLE,
+ "audio-disable",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)FALSE},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = FALSE},
+ {.int_max = TRUE},
+ _mmcamcorder_commit_audio_disable,
+ },
+ {
+ MM_CAM_RECOMMEND_CAMERA_WIDTH,
+ "recommend-camera-width",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)MMCAMCORDER_DEFAULT_CAMERA_WIDTH},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {0},
+ {0},
+ NULL,
+ },
+ {
+ MM_CAM_RECOMMEND_CAMERA_HEIGHT,
+ "recommend-camera-height",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)MMCAMCORDER_DEFAULT_CAMERA_HEIGHT},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {0},
+ {0},
+ NULL,
+ },
+ {
+ MM_CAM_CAPTURED_EXIF_RAW_DATA,
+ "captured-exif-raw-data",
+ MMF_VALUE_TYPE_DATA,
+ MM_ATTRS_FLAG_READABLE,
+ {(void*)NULL},
+ MM_ATTRS_VALID_TYPE_NONE,
+ {0},
+ {0},
+ NULL,
+ },
+ {
+ MM_CAM_DISPLAY_EVAS_SURFACE_SINK,
+ "display-evas-surface-sink",
+ MMF_VALUE_TYPE_STRING,
+ MM_ATTRS_FLAG_READABLE,
+ {(void*)NULL},
+ MM_ATTRS_VALID_TYPE_NONE,
+ {0},
+ {0},
+ NULL,
+ },
+ {
+ MM_CAM_DISPLAY_EVAS_DO_SCALING,
+ "display-evas-do-scaling",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)TRUE},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = FALSE},
+ {.int_max = TRUE},
+ _mmcamcorder_commit_display_evas_do_scaling,
+ },
+ {
+ MM_CAM_CAMERA_FACING_DIRECTION,
+ "camera-facing-direction",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)MM_CAMCORDER_CAMERA_FACING_DIRECTION_REAR},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = MM_CAMCORDER_CAMERA_FACING_DIRECTION_REAR},
+ {.int_max = MM_CAMCORDER_CAMERA_FACING_DIRECTION_FRONT},
+ NULL,
+ },
+ {
+ MM_CAM_DISPLAY_FLIP,
+ "display-flip",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)MM_FLIP_NONE},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = MM_FLIP_NONE},
+ {.int_max = MM_FLIP_BOTH},
+ _mmcamcorder_commit_display_flip,
+ },
+ {
+ MM_CAM_CAMERA_VIDEO_STABILIZATION,
+ "camera-video-stabilization",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)MM_CAMCORDER_VIDEO_STABILIZATION_OFF},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {0},
+ {0},
+ _mmcamcorder_commit_camera_video_stabilization,
+ },
+ {
+ MM_CAM_TAG_VIDEO_ORIENTATION,
+ "tag-video-orientation",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)MM_CAMCORDER_TAG_VIDEO_ORT_NONE},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = MM_CAMCORDER_TAG_VIDEO_ORT_NONE},
+ {.int_max = MM_CAMCORDER_TAG_VIDEO_ORT_270},
+ NULL,
+ },
+ /* 110 */
+ {
+ MM_CAM_CAMERA_PAN_MECHA,
+ "camera-pan-mecha",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = -1},
+ _mmcamcorder_commit_camera_pan,
+ },
+ {
+ MM_CAM_CAMERA_PAN_ELEC,
+ "camera-pan-elec",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = -1},
+ _mmcamcorder_commit_camera_pan,
+ },
+ {
+ MM_CAM_CAMERA_TILT_MECHA,
+ "camera-tilt-mecha",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = -1},
+ _mmcamcorder_commit_camera_tilt,
+ },
+ {
+ MM_CAM_CAMERA_TILT_ELEC,
+ "camera-tilt-elec",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = -1},
+ _mmcamcorder_commit_camera_tilt,
+ },
+ {
+ MM_CAM_CAMERA_PTZ_TYPE,
+ "camera-ptz-type",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {0},
+ {0},
+ _mmcamcorder_commit_camera_ptz_type,
+ },
+ {
+ MM_CAM_VIDEO_WIDTH,
+ "video-width",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {0},
+ {0},
+ _mmcamcorder_commit_video_size,
+ },
+ {
+ MM_CAM_VIDEO_HEIGHT,
+ "video-height",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_ARRAY,
+ {0},
+ {0},
+ _mmcamcorder_commit_video_size,
+ },
+ {
+ MM_CAM_SUPPORT_ZSL_CAPTURE,
+ "support-zsl-capture",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)FALSE},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = FALSE},
+ {.int_max = TRUE},
+ NULL,
+ },
+ {
+ MM_CAM_SUPPORT_ZERO_COPY_FORMAT,
+ "support-zero-copy-format",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)FALSE},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = FALSE},
+ {.int_max = TRUE},
+ NULL,
+ },
+ {
+ MM_CAM_SUPPORT_MEDIA_PACKET_PREVIEW_CB,
+ "support-media-packet-preview-cb",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)FALSE},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = FALSE},
+ {.int_max = TRUE},
+ NULL,
+ },
+ /* 120 */
+ {
+ MM_CAM_ENCODED_PREVIEW_BITRATE,
+ "encoded-preview-bitrate",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)MMCAMCORDER_DEFAULT_ENCODED_PREVIEW_BITRATE},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = _MMCAMCORDER_MAX_INT},
+ _mmcamcorder_commit_encoded_preview_bitrate,
+ },
+ {
+ MM_CAM_ENCODED_PREVIEW_GOP_INTERVAL,
+ "encoded-preview-gop-interval",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)MMCAMCORDER_DEFAULT_ENCODED_PREVIEW_GOP_INTERVAL},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = _MMCAMCORDER_MAX_INT},
+ _mmcamcorder_commit_encoded_preview_gop_interval,
+ },
+ {
+ MM_CAM_RECORDER_TAG_ENABLE,
+ "recorder-tag-enable",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)FALSE},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = FALSE},
+ {.int_max = TRUE},
+ NULL,
+ },
+ {
+ MM_CAM_DISPLAY_SOCKET_PATH,
+ "display-socket-path",
+ MMF_VALUE_TYPE_STRING,
+ MM_ATTRS_FLAG_RW,
+ {(void*)NULL},
+ MM_ATTRS_VALID_TYPE_NONE,
+ {0},
+ {0},
+ NULL,
+ },
+ {
+ MM_CAM_PID_FOR_SOUND_FOCUS,
+ "pid-for-sound-focus",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)0},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = 0},
+ {.int_max = _MMCAMCORDER_MAX_INT},
+ _mmcamcorder_commit_pid_for_sound_focus,
+ },
+ {
+ MM_CAM_ROOT_DIRECTORY,
+ "root-directory",
+ MMF_VALUE_TYPE_STRING,
+ MM_ATTRS_FLAG_RW,
+ {(void*)NULL},
+ MM_ATTRS_VALID_TYPE_NONE,
+ {0},
+ {0},
+ NULL,
+ },
+ {
+ MM_CAM_SOUND_STREAM_TYPE,
+ "sound-stream-type",
+ MMF_VALUE_TYPE_STRING,
+ MM_ATTRS_FLAG_RW,
+ {(void*)NULL},
+ MM_ATTRS_VALID_TYPE_NONE,
+ {0},
+ {0},
+ NULL,
+ },
+ {
+ MM_CAM_SOUND_STREAM_INDEX,
+ "sound-stream-index",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)-1},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = -1},
+ {.int_max = _MMCAMCORDER_MAX_INT},
+ _mmcamcorder_commit_sound_stream_info,
+ },
+ {
+ MM_CAM_DISPLAY_REUSE_HINT,
+ "display-reuse-hint",
+ MMF_VALUE_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ {(void*)FALSE},
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ {.int_min = FALSE},
+ {.int_max = TRUE},
+ NULL,
+ },
+ {
+ MM_CAM_DISPLAY_REUSE_ELEMENT,
+ "display-reuse-element",
+ MMF_VALUE_TYPE_DATA,
+ MM_ATTRS_FLAG_RW,
+ {(void*)NULL},
+ MM_ATTRS_VALID_TYPE_NONE,
+ {0},
+ {0},
+ NULL,
+ }
+ };
+
+ memcpy(hcamcorder->cam_attrs_const_info, temp_info, sizeof(mm_cam_attr_construct_info) * attr_count);
+