Update code for RGB data handling in preview callback 81/188781/2 accepted/tizen/5.0/unified/20181102.020116 accepted/tizen/unified/20180914.073156 submit/tizen/20180913.075210 submit/tizen_5.0/20181101.000003
authorJeongmo Yang <jm80.yang@samsung.com>
Mon, 10 Sep 2018 08:05:14 +0000 (17:05 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Mon, 10 Sep 2018 10:29:40 +0000 (19:29 +0900)
[Version] 0.10.169
[Profile] Common
[Issue Type] Update
[Dependency module] N/A
[Test] [M(T) - Boot=(OK), sdb=(OK), Home=(OK), Touch=(OK), Version=tizen-unified_20180910.1]

Change-Id: Ied08466a39f1a2b602e0aacf65719473f7847908
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
packaging/libmm-camcorder.spec
src/include/mm_camcorder.h
src/mm_camcorder_gstcommon.c
src/mm_camcorder_util.c

index 76c5dde..1a84d80 100644 (file)
@@ -1,6 +1,6 @@
 Name:       libmm-camcorder
 Summary:    Camera and recorder library
-Version:    0.10.168
+Version:    0.10.169
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0
index ad53612..9ad8416 100644 (file)
@@ -1682,7 +1682,8 @@ typedef enum {
        MM_CAM_STREAM_DATA_YUV420P,             /**< YUV420 Plannar type - 3 planes */
        MM_CAM_STREAM_DATA_YUV422P,             /**< YUV422 Plannar type - 3 planes */
        MM_CAM_STREAM_DATA_ENCODED,             /**< Encoded data type - 1 plane */
-       MM_CAM_STREAM_DATA_DEPTH                /**< Depth data type - 1 plane */
+       MM_CAM_STREAM_DATA_DEPTH,               /**< Depth data type - 1 plane */
+       MM_CAM_STREAM_DATA_RGB                  /**< RGB data type - 1 plane */
 } MMCamStreamData;
 
 
@@ -1784,7 +1785,7 @@ typedef struct {
                struct {
                        unsigned char *data;
                        unsigned int length_data;
-               } encoded, depth;
+               } encoded, depth, rgb;
        } data;                         /**< pointer of captured stream */
        MMCamStreamData data_type;      /**< data type */
        unsigned int length_total;      /**< total length of stream buffer (in byte)*/
index 2204baf..922625b 100644 (file)
@@ -1865,6 +1865,14 @@ static GstPadProbeReturn __mmcamcorder_video_dataprobe_preview(GstPad *pad, GstP
                                stream.stride[0] = stream.width << 1;
                                stream.elevation[0] = stream.height;
                                break;
+                       case MM_PIXEL_FORMAT_RGBA:
+                       case MM_PIXEL_FORMAT_ARGB:
+                               stream.data_type = MM_CAM_STREAM_DATA_RGB;
+                               stream.data.rgb.data = mapinfo.data;
+                               stream.data.rgb.length_data = stream.length_total;
+                               stream.stride[0] = stream.width << 2;
+                               stream.elevation[0] = stream.height;
+                               break;
                        default:
                                stream.data_type = MM_CAM_STREAM_DATA_YUV420;
                                stream.data.yuv420.yuv = mapinfo.data;
@@ -2714,7 +2722,16 @@ bool _mmcamcorder_set_videosrc_caps(MMHandleType handle, unsigned int fourcc, in
                }
 
                if (caps) {
-                       _mmcam_dbg_log("vidoesrc new caps set. %"GST_PTR_FORMAT, caps);
+                       gchar *caps_str = gst_caps_to_string(caps);
+
+                       if (caps_str) {
+                               _mmcam_dbg_log("vidoesrc new caps set [%s]", caps_str);
+                               g_free(caps_str);
+                               caps_str = NULL;
+                       } else {
+                               _mmcam_dbg_warn("caps string failed");
+                       }
+
                        MMCAMCORDER_G_OBJECT_SET_POINTER(sc->element[_MMCAMCORDER_VIDEOSRC_FILT].gst, "caps", caps);
                        gst_caps_unref(caps);
                        caps = NULL;
index 49c6ebf..8647211 100644 (file)
@@ -1546,6 +1546,12 @@ unsigned int _mmcamcorder_get_fourcc(int pixtype, int codectype, int use_zero_co
        case MM_PIXEL_FORMAT_RGB888:
                fourcc = GST_MAKE_FOURCC('R', 'G', 'B', ' ');
                break;
+       case MM_PIXEL_FORMAT_RGBA:
+               fourcc = GST_MAKE_FOURCC('B', 'G', 'R', 'x');
+               break;
+       case MM_PIXEL_FORMAT_ARGB:
+               fourcc = GST_MAKE_FOURCC('x', 'R', 'G', 'B');
+               break;
        case MM_PIXEL_FORMAT_ENCODED:
                if (codectype == MM_IMAGE_CODEC_JPEG) {
                        fourcc = GST_MAKE_FOURCC('J', 'P', 'E', 'G');