[Release version 0.10.42] Fix capture failure on ARTIK-10 74/65974/2 accepted/tizen/common/20160418.141616 accepted/tizen/ivi/20160418.083226 accepted/tizen/mobile/20160418.083326 accepted/tizen/tv/20160418.083209 accepted/tizen/wearable/20160418.083217 submit/tizen/20160418.020835
authorJeongmo Yang <jm80.yang@samsung.com>
Thu, 14 Apr 2016 08:37:54 +0000 (17:37 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Thu, 14 Apr 2016 09:06:34 +0000 (18:06 +0900)
Change-Id: I3d18aa62a8b76c5c56c5b8ad91b61cbbc30a7c06
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
packaging/libmm-camcorder.spec
src/mm_camcorder_gstcommon.c

index d3cb6b7..bbba8bc 100644 (file)
@@ -2,7 +2,7 @@
 
 Name:       libmm-camcorder
 Summary:    Camera and recorder library
-Version:    0.10.41
+Version:    0.10.42
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0
index 1ba11c6..f7fa967 100644 (file)
@@ -670,26 +670,31 @@ int _mmcamcorder_create_encodesink_bin(MMHandleType handle, MMCamcorderEncodebin
                MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_SRC].gst, "max-bytes", 0); /* unlimited */
 
                /* set capsfilter */
-               if (sc->info_image->preview_format == MM_PIXEL_FORMAT_ENCODED_H264) {
-                       _mmcam_dbg_log("get pad from videosrc_filter");
-                       pad = gst_element_get_static_pad(sc->element[_MMCAMCORDER_VIDEOSRC_FILT].gst, "src");
+               if (profile == MM_CAMCORDER_ENCBIN_PROFILE_VIDEO) {
+                       if (sc->info_image->preview_format == MM_PIXEL_FORMAT_ENCODED_H264) {
+                               _mmcam_dbg_log("get pad from videosrc_filter");
+                               pad = gst_element_get_static_pad(sc->element[_MMCAMCORDER_VIDEOSRC_FILT].gst, "src");
+                       } else {
+                               _mmcam_dbg_log("get pad from videosrc_que");
+                               pad = gst_element_get_static_pad(sc->element[_MMCAMCORDER_VIDEOSRC_QUE].gst, "src");
+                       }
+                       if (!pad) {
+                               _mmcam_dbg_err("get videosrc_que src pad failed");
+                               err = MM_ERROR_CAMCORDER_RESOURCE_CREATION;
+                               goto pipeline_creation_error;
+                       }
+
+                       caps_from_pad = gst_pad_get_allowed_caps(pad);
+                       video_caps = gst_caps_copy(caps_from_pad);
+                       gst_caps_unref(caps_from_pad);
+                       caps_from_pad = NULL;
+                       gst_object_unref(pad);
+                       pad = NULL;
                } else {
-                       _mmcam_dbg_log("get pad from videosrc_que");
-                       pad = gst_element_get_static_pad(sc->element[_MMCAMCORDER_VIDEOSRC_QUE].gst, "src");
-               }
-               if (!pad) {
-                       _mmcam_dbg_err("get videosrc_que src pad failed");
-                       err = MM_ERROR_CAMCORDER_RESOURCE_CREATION;
-                       goto pipeline_creation_error;
+                       /* Image */
+                       MMCAMCORDER_G_OBJECT_GET(sc->element[_MMCAMCORDER_VIDEOSRC_FILT].gst, "caps", &video_caps);
                }
 
-               caps_from_pad = gst_pad_get_allowed_caps(pad);
-               video_caps = gst_caps_copy(caps_from_pad);
-               gst_caps_unref(caps_from_pad);
-               caps_from_pad = NULL;
-               gst_object_unref(pad);
-               pad = NULL;
-
                if (video_caps) {
                        char *caps_str = NULL;