MM_CAM_STREAM_DATA_YUV420SP, /**< YUV420 SemiPlannar type - 2 planes */
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_ENCODED, /**< Encoded data type - 1 plane */
+ MM_CAM_STREAM_DATA_DEPTH /**< Depth data type - 1 plane */
} MMCamStreamData;
struct {
unsigned char *data;
unsigned int length_data;
- } encoded;
+ } encoded, depth;
} data; /**< pointer of captured stream */
MMCamStreamData data_type; /**< data type */
unsigned int length_total; /**< total length of stream buffer (in byte)*/
gst_memory_unmap(metaBlock, &mapinfo);
metaBlock = NULL;
}
+
gst_memory_map(dataBlock, &mapinfo, GST_MAP_READWRITE);
- if (stream.format == MM_PIXEL_FORMAT_YUYV ||
- stream.format == MM_PIXEL_FORMAT_UYVY ||
- stream.format == MM_PIXEL_FORMAT_422P ||
- stream.format == MM_PIXEL_FORMAT_ITLV_JPEG_UYVY) {
+
+ switch (stream.format) {
+ case MM_PIXEL_FORMAT_YUYV:
+ case MM_PIXEL_FORMAT_UYVY:
+ case MM_PIXEL_FORMAT_422P:
+ case MM_PIXEL_FORMAT_ITLV_JPEG_UYVY:
stream.data_type = MM_CAM_STREAM_DATA_YUV422;
stream.data.yuv422.yuv = mapinfo.data;
stream.data.yuv422.length_yuv = stream.length_total;
stream.stride[0] = stream.width << 1;
stream.elevation[0] = stream.height;
- } else if (stream.format == MM_PIXEL_FORMAT_ENCODED_H264) {
- stream.data_type = MM_CAM_STREAM_DATA_ENCODED;
- stream.data.encoded.data = mapinfo.data;
- stream.data.encoded.length_data = stream.length_total;
- /*
- _mmcam_dbg_log("H264[num_planes:%d] [0]p:%p,size:%d",
- stream.num_planes, stream.data.encoded.data, stream.data.encoded.length_data);
- */
- } else {
+ break;
+ case MM_PIXEL_FORMAT_ENCODED_H264:
+ stream.data_type = MM_CAM_STREAM_DATA_ENCODED;
+ stream.data.encoded.data = mapinfo.data;
+ stream.data.encoded.length_data = stream.length_total;
+ /*
+ _mmcam_dbg_log("H264[num_planes:%d] [0]p:%p,size:%d",
+ stream.num_planes, stream.data.encoded.data, stream.data.encoded.length_data);
+ */
+ break;
+ case MM_PIXEL_FORMAT_INVZ:
+ stream.data_type = MM_CAM_STREAM_DATA_DEPTH;
+ stream.data.depth.data = mapinfo.data;
+ stream.data.depth.length_data = stream.length_total;
+ stream.stride[0] = stream.width << 1;
+ stream.elevation[0] = stream.height;
+ break;
+ default:
stream.data_type = MM_CAM_STREAM_DATA_YUV420;
stream.data.yuv420.yuv = mapinfo.data;
stream.data.yuv420.length_yuv = stream.length_total;
stream.stride[0] = (stream.width * 3) >> 1;
stream.elevation[0] = stream.height;
+ break;
}
stream.num_planes = 1;
if (hcamcorder->camera_resource == NULL) {
ret = mm_resource_manager_mark_for_acquire(hcamcorder->resource_manager,
MM_RESOURCE_MANAGER_RES_TYPE_CAMERA,
- MM_RESOURCE_MANAGER_RES_VOLUME_FULL,
+ 1,
&hcamcorder->camera_resource);
if (ret != MM_RESOURCE_MANAGER_ERROR_NONE) {
_mmcam_dbg_err("could not prepare for camera resource");
case MM_PIXEL_FORMAT_ENCODED_H264:
fourcc = GST_MAKE_FOURCC('H', '2', '6', '4');
break;
+ case MM_PIXEL_FORMAT_INVZ:
+ fourcc = GST_MAKE_FOURCC('I', 'N', 'V', 'Z');
+ break;
default:
_mmcam_dbg_log("Not proper pixel type[%d]. Set default - I420", pixtype);
if (use_zero_copy_format)
case GST_MAKE_FOURCC('H', '2', '6', '4'):
pixtype = MM_PIXEL_FORMAT_ENCODED_H264;
break;
+ case GST_MAKE_FOURCC('I', 'N', 'V', 'Z'):
+ pixtype = MM_PIXEL_FORMAT_INVZ;
+ break;
default:
_mmcam_dbg_log("Not supported fourcc type(%c%c%c%c)", fourcc, fourcc>>8, fourcc>>16, fourcc>>24);
pixtype = MM_PIXEL_FORMAT_INVALID;