From: Jeongmo Yang Date: Mon, 10 Sep 2018 08:05:14 +0000 (+0900) Subject: Update code for RGB data handling in preview callback X-Git-Tag: submit/tizen/20180913.075210 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Ftags%2Fsubmit%2Ftizen%2F20180913.075210;hp=9586339c11df0cc2f5bf16e2ccf9bd720956bc4a;p=platform%2Fcore%2Fmultimedia%2Flibmm-camcorder.git Update code for RGB data handling in preview callback [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 --- diff --git a/packaging/libmm-camcorder.spec b/packaging/libmm-camcorder.spec index 76c5dde..1a84d80 100644 --- a/packaging/libmm-camcorder.spec +++ b/packaging/libmm-camcorder.spec @@ -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 diff --git a/src/include/mm_camcorder.h b/src/include/mm_camcorder.h index ad53612..9ad8416 100644 --- a/src/include/mm_camcorder.h +++ b/src/include/mm_camcorder.h @@ -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)*/ diff --git a/src/mm_camcorder_gstcommon.c b/src/mm_camcorder_gstcommon.c index 2204baf..922625b 100644 --- a/src/mm_camcorder_gstcommon.c +++ b/src/mm_camcorder_gstcommon.c @@ -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; diff --git a/src/mm_camcorder_util.c b/src/mm_camcorder_util.c index 49c6ebf..8647211 100644 --- a/src/mm_camcorder_util.c +++ b/src/mm_camcorder_util.c @@ -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');