X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fmm_camcorder_client.c;h=a57cb83b859a9f564e24465ec06f1c8875a6daf6;hb=1f695c046648c0285a0e5cacd1f5655405f5a08c;hp=bde0d8252f9c811893a6f068eedb13bb9bb4635e;hpb=f2a91b8b0cea506866e5ba8b1e335421c9c35412;p=platform%2Fcore%2Fmultimedia%2Flibmm-camcorder.git diff --git a/src/mm_camcorder_client.c b/src/mm_camcorder_client.c index bde0d82..a57cb83 100644 --- a/src/mm_camcorder_client.c +++ b/src/mm_camcorder_client.c @@ -47,6 +47,37 @@ #include +static _MMCamcorderInfoConverting g_client_display_info[] = { + { + CONFIGURE_TYPE_MAIN, + CONFIGURE_CATEGORY_MAIN_VIDEO_OUTPUT, + MM_CAM_CLIENT_DISPLAY_DEVICE, + MM_CAMCORDER_ATTR_NONE, + "DisplayDevice", + MM_CAMCONVERT_TYPE_INT_ARRAY, + NULL, + }, + { + CONFIGURE_TYPE_MAIN, + CONFIGURE_CATEGORY_MAIN_VIDEO_OUTPUT, + MM_CAM_CLIENT_DISPLAY_MODE, + MM_CAMCORDER_ATTR_NONE, + "DisplayMode", + MM_CAMCONVERT_TYPE_INT_ARRAY, + NULL, + }, + { + CONFIGURE_TYPE_MAIN, + CONFIGURE_CATEGORY_MAIN_VIDEO_OUTPUT, + MM_CAM_CLIENT_DISPLAY_SURFACE, + MM_CAMCORDER_ATTR_NONE, + "Videosink", + MM_CAMCONVERT_TYPE_INT_ARRAY, + NULL, + }, +}; + + static int _storage_device_supported_cb(int storage_id, storage_type_e type, storage_state_e state, const char *path, void *user_data) { char **root_directory = (char **)user_data; @@ -702,8 +733,31 @@ int _mmcamcorder_client_videosink_window_set(MMHandleType handle, type_element* return MM_ERROR_NONE; } -MMHandleType -_mmcamcorder_client_alloc_attribute(MMHandleType handle) +int _mmcamcorder_client_init_attr_from_configure(MMHandleType handle) +{ + mmf_camcorder_t *hcamcorder = MMF_CAMCORDER(handle); + _MMCamcorderInfoConverting *info = NULL; + + int table_size = 0; + int ret = MM_ERROR_NONE; + + mmf_return_val_if_fail(hcamcorder, MM_ERROR_CAMCORDER_NOT_INITIALIZED); + + /* Initialize attribute related to display */ + info = g_client_display_info; + table_size = sizeof(g_client_display_info) / sizeof(_MMCamcorderInfoConverting); + ret = __mmcamcorder_set_info_to_attr(handle, info, table_size); + if (ret != MM_ERROR_NONE) { + _mmcam_dbg_err("display info set error : 0x%x", ret); + return ret; + } + + _mmcam_dbg_log("done"); + + return ret; +} + +MMHandleType _mmcamcorder_client_alloc_attribute(MMHandleType handle) { _mmcam_dbg_log( "" ); @@ -1178,9 +1232,9 @@ int _mmcamcorder_client_create_preview_elements(MMHandleType handle, const char _mmcam_dbg_err("shm src socket path : %s", socket_path); g_object_set(sc->element[_MMCAMCORDER_CLIENT_VIDEOSRC_SRC].gst, - "socket-path", socket_path, - "is-live", TRUE, - NULL); + "socket-path", socket_path, + "is-live", TRUE, + NULL); /* Making Video sink from here */ _MMCAMCORDER_ELEMENT_MAKE(sc, sc->element, _MMCAMCORDER_CLIENT_VIDEOSINK_QUE, "queue", "videosink_queue", element_list, ret); @@ -1501,6 +1555,13 @@ int mm_camcorder_client_create(MMHandleType *handle) goto _ERR_DEFAULT_VALUE_INIT; } + ret = _mmcamcorder_client_init_attr_from_configure((MMHandleType)hcamcorder); + if (ret != MM_ERROR_NONE) { + _mmcam_dbg_warn("client_init_attr_from_configure error!!"); + ret = MM_ERROR_CAMCORDER_INTERNAL; + goto _ERR_DEFAULT_VALUE_INIT; + } + /* Set initial state */ _mmcamcorder_set_state((MMHandleType)hcamcorder, MM_CAMCORDER_STATE_NULL);