MM_CAM_SUPPORT_ZSL_CAPTURE,
MM_CAM_SUPPORT_ZERO_COPY_FORMAT,
MM_CAM_SUPPORT_MEDIA_PACKET_PREVIEW_CB,
- MM_CAM_PLATFORM_PRIVILEGE_CAMERA
+ MM_CAM_PLATFORM_PRIVILEGE_CAMERA,
+ MM_CAM_VIDEOSRC_ELEMENT_NAME,
+ MM_CAM_AUDIOSRC_ELEMENT_NAME
};
/*-----------------------------------------------------------------------
{.int_min = 0},
{.int_max = -1},
_mmcamcorder_commit_strobe,
+ },
+ {
+ MM_CAM_VIDEOSRC_ELEMENT_NAME,
+ "videosrc-element-name",
+ MM_ATTRS_TYPE_STRING,
+ MM_ATTRS_FLAG_RW,
+ {NULL},
+ MM_ATTRS_VALID_TYPE_NONE,
+ {0},
+ {0},
+ NULL,
+ },
+ {
+ MM_CAM_AUDIOSRC_ELEMENT_NAME,
+ "audiosrc-element-name",
+ MM_ATTRS_TYPE_STRING,
+ MM_ATTRS_FLAG_RW,
+ {NULL},
+ MM_ATTRS_VALID_TYPE_NONE,
+ {0},
+ {0},
+ NULL,
}
};
{
int current_state = 0;
int ivalue = 0;
- const char *videosrc_name = NULL;
- mmf_camcorder_t *hcamcorder = MMF_CAMCORDER(handle);
_MMCamcorderSubContext *sc = NULL;
_MMCamcorderImageInfo *info = NULL;
GstCameraControl *control = NULL;
- type_element *VideosrcElement = NULL;
mmf_return_val_if_fail(handle && value, FALSE);
current_state = _mmcamcorder_get_state(handle);
ivalue = value->value.i_val;
- _mmcamcorder_conf_get_element(handle, hcamcorder->conf_main,
- CONFIGURE_CATEGORY_MAIN_VIDEO_INPUT,
- "VideosrcElement",
- &VideosrcElement);
- _mmcamcorder_conf_get_value_element_name(VideosrcElement, &videosrc_name);
-
sc = MMF_CAMCORDER_SUBCONTEXT(handle);
if (!sc)
return TRUE;
static void __mmcamcorder_deinit_handle(mmf_camcorder_t *hcamcorder);
static gint __mmcamcorder_init_configure_video_capture(mmf_camcorder_t *hcamcorder);
static gint __mmcamcorder_init_configure_audio(mmf_camcorder_t *hcamcorder);
+static gint __mmcamcorder_init_configure_common(mmf_camcorder_t *hcamcorder);
static void __mmcamcorder_deinit_configure(mmf_camcorder_t *hcamcorder);
static gboolean __mmcamcorder_init_gstreamer(camera_conf *conf);
static void __mmcamcorder_get_system_info(mmf_camcorder_t *hcamcorder);
int rcmd_fmt_recording = MM_PIXEL_FORMAT_NV12;
int rcmd_dpy_rotation = MM_DISPLAY_ROTATION_270;
int play_capture_sound = TRUE;
- int camera_device_count = MM_VIDEO_DEVICE_NUM;
int camera_default_flip = MM_FLIP_NONE;
int camera_facing_direction = MM_CAMCORDER_CAMERA_FACING_DIRECTION_REAR;
char *err_attr_name = NULL;
"PlayCaptureSound",
&play_capture_sound);
- _mmcamcorder_conf_get_value_int((MMHandleType)hcamcorder, hcamcorder->conf_main,
- CONFIGURE_CATEGORY_MAIN_VIDEO_INPUT,
- "DeviceCount",
- &camera_device_count);
-
_mmcamcorder_conf_get_value_int((MMHandleType)hcamcorder, hcamcorder->conf_ctrl,
CONFIGURE_CATEGORY_CTRL_CAMERA,
"FacingDirection",
"SupportZSL",
&hcamcorder->support_zsl_capture);
- MMCAM_LOG_INFO("Recommend fmt[cap:%d,rec:%d], dpy rot %d, cap snd %d, dev cnt %d, cam facing dir %d, step denom %d, support zsl %d",
+ MMCAM_LOG_INFO("Recommend fmt[cap:%d,rec:%d], dpy rot %d, cap snd %d, cam facing dir %d, step denom %d, support zsl %d",
rcmd_fmt_capture, rcmd_fmt_recording, rcmd_dpy_rotation,
- play_capture_sound, camera_device_count, camera_facing_direction,
+ play_capture_sound, camera_facing_direction,
hcamcorder->brightness_step_denominator, hcamcorder->support_zsl_capture);
_mmcamcorder_conf_get_value_int((MMHandleType)hcamcorder, hcamcorder->conf_main,
}
ret = mm_camcorder_set_attributes((MMHandleType)hcamcorder, &err_attr_name,
- MMCAM_CAMERA_DEVICE_COUNT, camera_device_count,
MMCAM_CAMERA_FACING_DIRECTION, camera_facing_direction,
MMCAM_RECOMMEND_PREVIEW_FORMAT_FOR_CAPTURE, rcmd_fmt_capture,
MMCAM_RECOMMEND_PREVIEW_FORMAT_FOR_RECORDING, rcmd_fmt_recording,
static gint __mmcamcorder_init_configure_audio(mmf_camcorder_t *hcamcorder)
{
int ret = MM_ERROR_NONE;
- int camera_device_count = 0;
if (!hcamcorder) {
MMCAM_LOG_ERROR("NULL handle");
return MM_ERROR_CAMCORDER_NOT_INITIALIZED;
}
+ ret = _mmcamcorder_init_attr_from_configure((MMHandleType)hcamcorder, MM_CAMCONVERT_CATEGORY_AUDIO);
+ if (ret != MM_ERROR_NONE) {
+ MMCAM_LOG_ERROR("there is no audio device");
+ return MM_ERROR_CAMCORDER_NOT_SUPPORTED;
+ }
+
+ return ret;
+}
+
+
+static gint __mmcamcorder_init_configure_common(mmf_camcorder_t *hcamcorder)
+{
+ int ret = MM_ERROR_NONE;
+ int device_count = 0;
+ const char *videosrc_name = NULL;
+ const char *audiosrc_name = NULL;
+ type_element *SrcElement = NULL;
+
+ if (!hcamcorder) {
+ MMCAM_LOG_ERROR("NULL handle");
+ return MM_ERROR_CAMCORDER_NOT_INITIALIZED;
+ }
+
+ /* Device count */
_mmcamcorder_conf_get_value_int((MMHandleType)hcamcorder, hcamcorder->conf_main,
CONFIGURE_CATEGORY_MAIN_VIDEO_INPUT,
"DeviceCount",
- &camera_device_count);
+ &device_count);
+
+ /* Videosrc element name */
+ _mmcamcorder_conf_get_element((MMHandleType)hcamcorder, hcamcorder->conf_main,
+ CONFIGURE_CATEGORY_MAIN_VIDEO_INPUT,
+ "VideosrcElement",
+ &SrcElement);
+ _mmcamcorder_conf_get_value_element_name(SrcElement, &videosrc_name);
+
+ /* Audiosrc element name */
+ _mmcamcorder_conf_get_element((MMHandleType)hcamcorder, hcamcorder->conf_main,
+ CONFIGURE_CATEGORY_MAIN_AUDIO_INPUT,
+ "AudiosrcElement",
+ &SrcElement);
+ _mmcamcorder_conf_get_value_element_name(SrcElement, &audiosrc_name);
+
+ MMCAM_LOG_INFO("Device count[%d], Videosrc[%s], Audiosrc[%s]",
+ device_count, videosrc_name, audiosrc_name);
ret = mm_camcorder_set_attributes((MMHandleType)hcamcorder, NULL,
- MMCAM_CAMERA_DEVICE_COUNT, camera_device_count,
+ MMCAM_CAMERA_DEVICE_COUNT, device_count,
+ MMCAM_VIDEOSRC_ELEMENT_NAME, videosrc_name, videosrc_name ? strlen(videosrc_name) : 0,
+ MMCAM_AUDIOSRC_ELEMENT_NAME, audiosrc_name, audiosrc_name ? strlen(audiosrc_name) : 0,
NULL);
- if (ret != MM_ERROR_NONE) {
- MMCAM_LOG_ERROR("Set device count FAILED");
- return MM_ERROR_CAMCORDER_INTERNAL;
- }
-
- ret = _mmcamcorder_init_attr_from_configure((MMHandleType)hcamcorder, MM_CAMCONVERT_CATEGORY_AUDIO);
- if (ret != MM_ERROR_NONE) {
- MMCAM_LOG_ERROR("there is no audio device");
- return MM_ERROR_CAMCORDER_NOT_SUPPORTED;
- }
+ if (ret != MM_ERROR_NONE)
+ MMCAM_LOG_ERROR("Set FAILED[0x%x]", ret);
return ret;
}
MMCAM_LOG_WARNING("DPM handle %p", hcamcorder->dpm_handle);
+ ret = __mmcamcorder_init_configure_common(hcamcorder);
+ if (ret != MM_ERROR_NONE)
+ goto _ERR_DEFAULT_VALUE_INIT;
+
if (hcamcorder->device_type != MM_VIDEO_DEVICE_NONE) {
ret = __mmcamcorder_init_configure_video_capture(hcamcorder);
- if (ret != MM_ERROR_NONE) {
+ if (ret != MM_ERROR_NONE)
goto _ERR_DEFAULT_VALUE_INIT;
- }
/* add DPM camera policy changed callback */
if (hcamcorder->dpm_handle) {
#endif /* _MMCAMCORDER_MM_RM_SUPPORT */
} else {
ret = __mmcamcorder_init_configure_audio(hcamcorder);
- if (ret != MM_ERROR_NONE) {
+ if (ret != MM_ERROR_NONE)
goto _ERR_DEFAULT_VALUE_INIT;
- }
}
traceBegin(TTRACE_TAG_CAMERA, "MMCAMCORDER:CREATE:INIT_GSTREAMER");
int is_modified_size = FALSE;
int tag_orientation = 0;
unsigned int cap_fourcc = 0;
-
char *err_name = NULL;
- const char *videosrc_name = NULL;
GstCameraControl *control = NULL;
mmf_camcorder_t *hcamcorder = MMF_CAMCORDER(handle);
_MMCamcorderImageInfo *info = NULL;
_MMCamcorderSubContext *sc = NULL;
- type_element *VideosrcElement = NULL;
MMCamcorderStateType current_state = MM_CAMCORDER_STATE_NONE;
mmf_return_val_if_fail(hcamcorder, MM_ERROR_CAMCORDER_NOT_INITIALIZED);
"UseCaptureMode",
&UseCaptureMode);
- _mmcamcorder_conf_get_element(handle, hcamcorder->conf_main,
- CONFIGURE_CATEGORY_MAIN_VIDEO_INPUT,
- "VideosrcElement",
- &VideosrcElement);
-
- _mmcamcorder_conf_get_value_element_name(VideosrcElement, &videosrc_name);
-
/* get current state */
mm_camcorder_get_state(handle, ¤t_state);
int current_state = MM_CAMCORDER_STATE_NONE;
gboolean fps_auto = FALSE;
char *err_name = NULL;
- const char *videosrc_name = NULL;
GstState state;
GstElement *pipeline = NULL;
mmf_camcorder_t *hcamcorder = MMF_CAMCORDER(handle);
_MMCamcorderImageInfo *info = NULL;
_MMCamcorderSubContext *sc = NULL;
- type_element *VideosrcElement = NULL;
mmf_return_val_if_fail(hcamcorder, MM_ERROR_CAMCORDER_NOT_INITIALIZED);
pipeline = sc->element[_MMCAMCORDER_MAIN_PIPE].gst;
info = sc->info_image;
- _mmcamcorder_conf_get_element(handle, hcamcorder->conf_main,
- CONFIGURE_CATEGORY_MAIN_VIDEO_INPUT,
- "VideosrcElement",
- &VideosrcElement);
-
- _mmcamcorder_conf_get_value_element_name(VideosrcElement, &videosrc_name);
-
sc->display_interval = 0;
sc->previous_slot_time = 0;