From: Jeongmo Yang Date: Tue, 26 Oct 2021 12:43:03 +0000 (+0900) Subject: Add new fields to MMCamcorderVideoStreamDataType for metadata X-Git-Tag: submit/tizen/20211110.120232~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=208efa4f0a60869e7ddbb9e90ddcc39dab37f5bf;p=platform%2Fcore%2Fmultimedia%2Flibmm-camcorder.git Add new fields to MMCamcorderVideoStreamDataType for metadata [Version] 0.10.248 [Issue Type] New feature Change-Id: Ic58d433867b4826cd85887a70ae9678e0aeefd04 Signed-off-by: Jeongmo Yang --- diff --git a/packaging/libmm-camcorder.spec b/packaging/libmm-camcorder.spec index d1d7efc..13eb2d1 100755 --- 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.247 +Version: 0.10.248 Release: 0 Group: Multimedia/Libraries License: Apache-2.0 diff --git a/src/include/mm_camcorder.h b/src/include/mm_camcorder.h index c6b915b..a7d35c4 100644 --- a/src/include/mm_camcorder.h +++ b/src/include/mm_camcorder.h @@ -1855,6 +1855,10 @@ typedef struct { int stride[BUFFER_MAX_PLANE_NUM]; /**< Stride of each plane */ int elevation[BUFFER_MAX_PLANE_NUM]; /**< Elevation of each plane */ int extra_stream_id; /**< ID of extra preview stream */ + int focus_state; /**< Focus state */ + int facing_direction; /**< Facing direction */ + int flip; /**< Flip */ + int rotation; /**< Rotation */ } MMCamcorderVideoStreamDataType; diff --git a/src/include/mm_camcorder_internal.h b/src/include/mm_camcorder_internal.h index b875239..e9400f4 100644 --- a/src/include/mm_camcorder_internal.h +++ b/src/include/mm_camcorder_internal.h @@ -858,6 +858,8 @@ typedef struct mmf_camcorder { int support_extra_preview; _MMCamcorderExtraPreviewStreamFormat extra_preview_format[MM_CAMCORDER_EXTRA_PREVIEW_STREAM_NUM]; + GQuark buffer_quark; /**< Quark for buffer */ + int reserved[4]; /**< reserved */ } mmf_camcorder_t; diff --git a/src/mm_camcorder_gstcommon.c b/src/mm_camcorder_gstcommon.c index 6e708b2..c820bcc 100755 --- a/src/mm_camcorder_gstcommon.c +++ b/src/mm_camcorder_gstcommon.c @@ -352,6 +352,17 @@ gboolean _mmcamcorder_invoke_video_stream_cb(MMHandleType handle, GstSample *sam return FALSE; } + structure = gst_mini_object_get_qdata(GST_MINI_OBJECT_CAST(buffer), hcamcorder->buffer_quark); + if (structure) { + gst_structure_get_int(structure, "focus-state", &stream.focus_state); + gst_structure_get_int(structure, "facing-direction", &stream.facing_direction); + gst_structure_get_int(structure, "flip", &stream.flip); + gst_structure_get_int(structure, "rotation", &stream.rotation); + + MMCAM_LOG_VERBOSE("structure[%p], [fs:%d,fd:%d,f:%d,r:%d]", structure, + stream.focus_state, stream.facing_direction, stream.flip, stream.rotation); + } + /* set zero-copy related information */ if (hcamcorder->use_zero_copy_format) { t_surface = (tbm_surface_h)gst_tizen_memory_get_surface(memory); @@ -549,13 +560,14 @@ int _mmcamcorder_create_preview_elements(MMHandleType handle) */ MMCAMCORDER_G_OBJECT_SET_POINTER(sc->element[_MMCAMCORDER_VIDEOSRC_SRC].gst, "hal-name", hcamcorder->network_hal_name); - /* set camera properties */ + /* camera properties */ MMCAMCORDER_G_OBJECT_SET(sc->element[_MMCAMCORDER_VIDEOSRC_SRC].gst, "high-speed-fps", 0); MMCAMCORDER_G_OBJECT_SET(sc->element[_MMCAMCORDER_VIDEOSRC_SRC].gst, "capture-width", capture_width); MMCAMCORDER_G_OBJECT_SET(sc->element[_MMCAMCORDER_VIDEOSRC_SRC].gst, "capture-height", capture_height); MMCAMCORDER_G_OBJECT_SET(sc->element[_MMCAMCORDER_VIDEOSRC_SRC].gst, "capture-jpg-quality", capture_jpg_quality); MMCAMCORDER_G_OBJECT_SET(sc->element[_MMCAMCORDER_VIDEOSRC_SRC].gst, "hdr-capture", sc->info_image->hdr_capture_mode); MMCAMCORDER_G_OBJECT_SET(sc->element[_MMCAMCORDER_VIDEOSRC_SRC].gst, "extra-preview", extra_preview_enable); + MMCAMCORDER_G_OBJECT_GET(sc->element[_MMCAMCORDER_VIDEOSRC_SRC].gst, "buffer-quark", &hcamcorder->buffer_quark); _MMCAMCORDER_ELEMENT_MAKE(sc, sc->element, _MMCAMCORDER_VIDEOSRC_QUE, "queue", "videosrc_queue", element_list, err);