Release version 0.10.18 93/51893/3
authorTae-Young Chung <ty83.chung@samsung.com>
Tue, 17 Nov 2015 05:06:02 +0000 (14:06 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Thu, 19 Nov 2015 06:35:37 +0000 (22:35 -0800)
1. Remove _mmcamcorder_filtered_link_elements() and replace it with _mmcamcorder_link_elements()
2. Add capsfilter to preview pipeline

Change-Id: I38a882c44657df0b9f2bca3d66625ff7cb213e03
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
packaging/libmm-camcorder.spec
src/include/mm_camcorder_client.h
src/include/mm_camcorder_util.h
src/mm_camcorder_client.c
src/mm_camcorder_util.c

index c1f17b5..8139b64 100644 (file)
@@ -2,7 +2,7 @@
 
 Name:       libmm-camcorder
 Summary:    Camera and recorder library
-Version:    0.10.17
+Version:    0.10.18
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0
index 8451c5a..bcb3974 100644 (file)
@@ -69,6 +69,9 @@ typedef enum {
        /* Pipeline element of Video input */
        _MMCAMCORDER_CLIENT_VIDEOSRC_SRC,
 
+       /* Pipeline elements of Video Capsfilter */
+       _MMCAMCORDER_CLIENT_VIDEOSRC_FILT,
+
        /* Pipeline element of Video Sink Queue */
        _MMCAMCORDER_CLIENT_VIDEOSINK_QUE,
 
index 7220a2d..fae91e5 100644 (file)
@@ -231,7 +231,6 @@ void _mmcamcorder_remove_all_handlers(MMHandleType handle, _MMCamcorderHandlerCa
 void _mmcamcorder_element_release_noti(gpointer data, GObject *where_the_object_was);
 gboolean _mmcamcorder_add_elements_to_bin(GstBin *bin, GList *element_list);
 gboolean _mmcamcorder_link_elements(GList *element_list);
-gboolean _mmcamcorder_filtered_link_elements(GList *element_list, GstCaps *caps);
 
 /* Message */
 #ifdef _MMCAMCORDER_ENABLE_IDLE_MESSAGE_CALLBACK
index a57cb83..b8b0c00 100644 (file)
@@ -1236,6 +1236,16 @@ int _mmcamcorder_client_create_preview_elements(MMHandleType handle, const char
                     "is-live", TRUE,
                     NULL);
 
+       /* create capsfilter */
+       _MMCAMCORDER_ELEMENT_MAKE(sc, sc->element, _MMCAMCORDER_CLIENT_VIDEOSRC_FILT, "capsfilter", "vidoesrc_filt", element_list, ret);
+
+       caps = gst_caps_from_string(string_caps);
+       MMCAMCORDER_G_OBJECT_SET_POINTER(sc->element[_MMCAMCORDER_CLIENT_VIDEOSRC_FILT].gst, "caps", caps);
+
+       gst_caps_unref(caps);
+
+       caps = NULL;
+
        /* Making Video sink from here */
        _MMCAMCORDER_ELEMENT_MAKE(sc, sc->element, _MMCAMCORDER_CLIENT_VIDEOSINK_QUE, "queue", "videosink_queue", element_list, ret);
 
@@ -1265,9 +1275,8 @@ int _mmcamcorder_client_create_preview_elements(MMHandleType handle, const char
                goto pipeline_creation_error;
        }
 
-       caps = gst_caps_from_string(string_caps);
        /* link elements */
-       if (!_mmcamcorder_filtered_link_elements(element_list, caps)) {
+       if (!_mmcamcorder_link_elements(element_list)) {
                _mmcam_dbg_err( "element link error." );
                ret = MM_ERROR_CAMCORDER_GST_LINK;
                goto pipeline_creation_error;
index c8abf6b..acfc1ef 100644 (file)
@@ -1547,39 +1547,6 @@ gboolean _mmcamcorder_link_elements(GList *element_list)
        return TRUE;
 }
 
-gboolean _mmcamcorder_filtered_link_elements(GList *element_list, GstCaps *caps)
-{
-       GList                  *local_list  = element_list;
-       _MMCamcorderGstElement *element     = NULL;
-       _MMCamcorderGstElement *pre_element = NULL;
-
-       mmf_return_val_if_fail(local_list, FALSE);
-
-       pre_element = (_MMCamcorderGstElement*)local_list->data;
-       local_list = local_list->next;
-
-       while (local_list) {
-               element = (_MMCamcorderGstElement*)local_list->data;
-               if (element && element->gst) {
-                       if (_MM_GST_ELEMENT_LINK_FILTERED(GST_ELEMENT(pre_element->gst), GST_ELEMENT(element->gst), caps)) {
-                               _mmcam_dbg_log("Link [%s] to [%s] OK",
-                                              GST_ELEMENT_NAME(GST_ELEMENT(pre_element->gst)),
-                                              GST_ELEMENT_NAME(GST_ELEMENT(element->gst)));
-                       } else {
-                               _mmcam_dbg_err("Link [%s] to [%s] FAILED",
-                                              GST_ELEMENT_NAME(GST_ELEMENT(pre_element->gst)),
-                                              GST_ELEMENT_NAME(GST_ELEMENT(element->gst)));
-                               return FALSE;
-                       }
-               }
-
-               pre_element = element;
-               local_list = local_list->next;
-       }
-
-       return TRUE;
-}
-
 gboolean _mmcamcorder_resize_frame(unsigned char *src_data, unsigned int src_width, unsigned int src_height, unsigned int src_length, int src_format,
                                    unsigned char **dst_data, unsigned int *dst_width, unsigned int *dst_height, unsigned int *dst_length)
 {