Support new extra preview mode
[platform/core/multimedia/libmm-camcorder.git] / src / mm_camcorder_gstcommon.c
index b6deab8..05384d3 100644 (file)
@@ -550,7 +550,7 @@ int _mmcamcorder_create_preview_elements(MMHandleType handle)
 
        mmf_camcorder_t *hcamcorder = MMF_CAMCORDER(handle);
        _MMCamcorderSubContext *sc = NULL;
-       type_element *VideosrcElement = NULL;
+       type_element *videosrc_element = NULL;
        type_int_array *input_index = NULL;
 
        mmf_return_val_if_fail(hcamcorder, MM_ERROR_CAMCORDER_NOT_INITIALIZED);
@@ -620,12 +620,9 @@ int _mmcamcorder_create_preview_elements(MMHandleType handle)
        /* Get fourcc from picture format */
        sc->fourcc = _mmcamcorder_get_fourcc(sc->info_image->preview_format, codectype, hcamcorder->use_zero_copy_format);
 
-       /* Get videosrc element and its name from configure */
-       _mmcamcorder_conf_get_element(handle, hcamcorder->conf_main,
-               CONFIGURE_CATEGORY_MAIN_VIDEO_INPUT,
-               "VideosrcElement",
-               &VideosrcElement);
-       _mmcamcorder_conf_get_value_element_name(VideosrcElement, &videosrc_name);
+       _mmcamcorder_conf_get_element_and_name((MMHandleType)hcamcorder,
+               CONFIGURE_CATEGORY_MAIN_VIDEO_INPUT, "VideosrcElement",
+               &videosrc_element, &videosrc_name);
 
        /**
         * Create child element
@@ -665,7 +662,7 @@ int _mmcamcorder_create_preview_elements(MMHandleType handle)
                MMCAMCORDER_G_OBJECT_SET(sc->element[_MMCAMCORDER_VIDEOSRC_SRC].gst, "high-speed-fps", fps);
 
        /* Set basic information of videosrc element */
-       _mmcamcorder_conf_set_value_element_property(sc->element[_MMCAMCORDER_VIDEOSRC_SRC].gst, VideosrcElement);
+       _mmcamcorder_conf_set_value_element_property(sc->element[_MMCAMCORDER_VIDEOSRC_SRC].gst, videosrc_element);
 
        /* Set video device index */
        if (hcamcorder->is_network) {
@@ -887,7 +884,7 @@ int _mmcamcorder_create_audiosrc_bin(MMHandleType handle)
        mmf_camcorder_t *hcamcorder = MMF_CAMCORDER(handle);
        _MMCamcorderSubContext *sc = NULL;
        _MMCamcorderGstElement *last_element = NULL;
-       type_element *AudiosrcElement = NULL;
+       type_element *audiosrc_element = NULL;
 
        mmf_return_val_if_fail(hcamcorder, MM_ERROR_CAMCORDER_NOT_INITIALIZED);
 
@@ -944,11 +941,9 @@ int _mmcamcorder_create_audiosrc_bin(MMHandleType handle)
                goto pipeline_creation_error;
        }
 
-       _mmcamcorder_conf_get_element(handle, hcamcorder->conf_main,
-               CONFIGURE_CATEGORY_MAIN_AUDIO_INPUT,
-               cat_name,
-               &AudiosrcElement);
-       _mmcamcorder_conf_get_value_element_name(AudiosrcElement, &audiosrc_name);
+       _mmcamcorder_conf_get_element_and_name((MMHandleType)hcamcorder,
+               CONFIGURE_CATEGORY_MAIN_AUDIO_INPUT, cat_name,
+               &audiosrc_element, &audiosrc_name);
 
        free(cat_name);
        cat_name = NULL;
@@ -961,7 +956,7 @@ int _mmcamcorder_create_audiosrc_bin(MMHandleType handle)
        _mmcamcorder_set_sound_stream_info(sc->encode_element[_MMCAMCORDER_AUDIOSRC_SRC].gst, stream_type, stream_index);
 
        /* set audiosrc properties in ini configuration */
-       _mmcamcorder_conf_set_value_element_property(sc->encode_element[_MMCAMCORDER_AUDIOSRC_SRC].gst, AudiosrcElement);
+       _mmcamcorder_conf_set_value_element_property(sc->encode_element[_MMCAMCORDER_AUDIOSRC_SRC].gst, audiosrc_element);
 
        /* set block size */
        _mmcamcorder_conf_get_value_int((MMHandleType)hcamcorder, hcamcorder->conf_main,
@@ -1749,6 +1744,20 @@ int _mmcamcorder_create_preview_pipeline(MMHandleType handle)
        gst_object_unref(bus);
        bus = NULL;
 
+       /* capture mode */
+       err = _mmcamcorder_initialize_capture_mode(handle);
+       if (err != MM_ERROR_NONE) {
+               MMCAM_LOG_ERROR("initialize capture mode[%d] failed", hcamcorder->capture_mode);
+               goto pipeline_creation_error;
+       }
+
+       /* extra preview mode */
+       err = _mmcamcorder_initialize_extra_preview_mode(handle);
+       if (err != MM_ERROR_NONE) {
+               MMCAM_LOG_ERROR("initialize extra preview mode[%d] failed", hcamcorder->extra_preview.mode);
+               goto pipeline_creation_error;
+       }
+
        return MM_ERROR_NONE;
 
 pipeline_creation_error: