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>
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
/* 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,
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
"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);
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;
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)
{