Add new field to frame meta for lux index 96/316996/1 accepted/tizen_unified accepted/tizen_unified_dev accepted/tizen_unified_x tizen accepted/tizen/unified/20240903.110743 accepted/tizen/unified/dev/20240910.111503 accepted/tizen/unified/x/20240904.025244
authorJeongmo Yang <jm80.yang@samsung.com>
Thu, 29 Aug 2024 07:44:57 +0000 (16:44 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Mon, 2 Sep 2024 08:55:07 +0000 (17:55 +0900)
[Version] 1.3.0
[Issue Type] New feature

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

index fdae282..40e4bf6 100755 (executable)
@@ -1,6 +1,6 @@
 Name:       libmm-camcorder
 Summary:    Camera and recorder library
-Version:    1.2.6
+Version:    1.3.0
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0
index 58408ff..1144228 100644 (file)
@@ -1907,6 +1907,7 @@ typedef struct {
        unsigned long long td_aux;
        unsigned long long seqnum;
        unsigned long long flags;
+       unsigned long long lux_index;
 } MMCamcorderFrameMeta;
 
 
index b0a5662..ffb67a0 100644 (file)
@@ -131,7 +131,20 @@ static gboolean videocodec_fileformat_compatibility_table[MM_VIDEO_CODEC_NUM][MM
 #define _MMCAMCORDER_NANOSEC_PER_1MILISEC         1000
 #define _MMCAMCORDER_SIGNAL_REQUEST_CODEC_CONFIG  "request-codec-config"
 #define _MMCAMCORDER_CROP_ARRAY_LENGTH            4
-#define META_TIMESTAMP_FIELD_LENGTH               7
+
+#define FRAME_META_TS_SOE       "ts_soe"
+#define FRAME_META_TS_EOE       "ts_eoe"
+#define FRAME_META_TS_SOF       "ts_sof"
+#define FRAME_META_TS_EOF       "ts_eof"
+#define FRAME_META_TS_HAL       "ts_hal"
+#define FRAME_META_TS_QMF       "ts_qmf"
+#define FRAME_META_TS_GST       "ts_gst"
+#define FRAME_META_TD_EXP       "td_exp"
+#define FRAME_META_TS_AUX       "ts_aux"
+#define FRAME_META_TD_AUX       "td_aux"
+#define FRAME_META_SEQNUM       "seqnum"
+#define FRAME_META_FLAGS        "flags"
+#define FRAME_META_LUX_INDEX    "lux_index"
 
 
 /*-----------------------------------------------------------------------
@@ -410,42 +423,45 @@ static gboolean __mmcamcorder_frame_meta_foreach_func(GQuark field_id, const GVa
 
        frame_meta = &stream->frame_meta;
 
-       if (!strncmp("ts_soe", field_name, META_TIMESTAMP_FIELD_LENGTH)) {
+       if (!strncmp(FRAME_META_TS_SOE, field_name, strlen(FRAME_META_TS_SOE) + 1)) {
                frame_meta->ts_soe = field_value;
                MMCAM_LOG_VERBOSE("[TS] SOE -> %llu", frame_meta->ts_soe);
-       } else if (!strncmp("ts_eoe", field_name, META_TIMESTAMP_FIELD_LENGTH)) {
+       } else if (!strncmp(FRAME_META_TS_EOE, field_name, strlen(FRAME_META_TS_EOE) + 1)) {
                frame_meta->ts_eoe = field_value;
                MMCAM_LOG_VERBOSE("[TS] EOE -> %llu", frame_meta->ts_eoe);
-       } else if (!strncmp("ts_sof", field_name, META_TIMESTAMP_FIELD_LENGTH)) {
+       } else if (!strncmp(FRAME_META_TS_SOF, field_name, strlen(FRAME_META_TS_SOF) + 1)) {
                frame_meta->ts_sof = field_value;
                MMCAM_LOG_VERBOSE("[TS] SOF -> %llu", frame_meta->ts_sof);
-       } else if (!strncmp("ts_eof", field_name, META_TIMESTAMP_FIELD_LENGTH)) {
+       } else if (!strncmp(FRAME_META_TS_EOF, field_name, strlen(FRAME_META_TS_EOF) + 1)) {
                frame_meta->ts_eof = field_value;
                MMCAM_LOG_VERBOSE("[TS] EOF -> %llu", frame_meta->ts_eof);
-       } else if (!strncmp("ts_hal", field_name, META_TIMESTAMP_FIELD_LENGTH)) {
+       } else if (!strncmp(FRAME_META_TS_HAL, field_name, strlen(FRAME_META_TS_HAL) + 1)) {
                frame_meta->ts_hal = field_value;
                MMCAM_LOG_VERBOSE("[TS] HAL -> %llu", frame_meta->ts_hal);
-       } else if (!strncmp("ts_qmf", field_name, META_TIMESTAMP_FIELD_LENGTH)) {
+       } else if (!strncmp(FRAME_META_TS_QMF, field_name, strlen(FRAME_META_TS_QMF) + 1)) {
                frame_meta->ts_qmf = field_value;
                MMCAM_LOG_VERBOSE("[TS] QMF -> %llu", frame_meta->ts_qmf);
-       } else if (!strncmp("ts_gst", field_name, META_TIMESTAMP_FIELD_LENGTH)) {
+       } else if (!strncmp(FRAME_META_TS_GST, field_name, strlen(FRAME_META_TS_GST) + 1)) {
                frame_meta->ts_gst = field_value;
                MMCAM_LOG_VERBOSE("[TS] GST -> %llu", frame_meta->ts_gst);
-       } else if (!strncmp("td_exp", field_name, META_TIMESTAMP_FIELD_LENGTH)) {
+       } else if (!strncmp(FRAME_META_TD_EXP, field_name, strlen(FRAME_META_TD_EXP) + 1)) {
                frame_meta->td_exp = field_value;
                MMCAM_LOG_VERBOSE("[TD] EXP -> %llu", frame_meta->td_exp);
-       } else if (!strncmp("ts_aux", field_name, META_TIMESTAMP_FIELD_LENGTH)) {
+       } else if (!strncmp(FRAME_META_TS_AUX, field_name, strlen(FRAME_META_TS_AUX) + 1)) {
                frame_meta->ts_aux = field_value;
                MMCAM_LOG_VERBOSE("[TS] AUX -> %llu", frame_meta->ts_aux);
-       } else if (!strncmp("td_aux", field_name, META_TIMESTAMP_FIELD_LENGTH)) {
+       } else if (!strncmp(FRAME_META_TD_AUX, field_name, strlen(FRAME_META_TD_AUX) + 1)) {
                frame_meta->td_aux = field_value;
                MMCAM_LOG_VERBOSE("[TD] AUX -> %llu", frame_meta->td_aux);
-       } else if (!strncmp("seqnum", field_name, META_TIMESTAMP_FIELD_LENGTH)) {
+       } else if (!strncmp(FRAME_META_SEQNUM, field_name, strlen(FRAME_META_SEQNUM) + 1)) {
                frame_meta->seqnum = field_value;
                MMCAM_LOG_VERBOSE("SEQNUM -> %llu", frame_meta->seqnum);
-       } else if (!strncmp("flags", field_name, META_TIMESTAMP_FIELD_LENGTH)) {
+       } else if (!strncmp(FRAME_META_FLAGS, field_name, strlen(FRAME_META_FLAGS) + 1)) {
                frame_meta->flags = field_value;
                MMCAM_LOG_VERBOSE("FLAGS -> %llu", frame_meta->flags);
+       } else if (!strncmp(FRAME_META_LUX_INDEX, field_name, strlen(FRAME_META_LUX_INDEX) + 1)) {
+               frame_meta->lux_index = field_value;
+               MMCAM_LOG_VERBOSE("LUX Index -> %llu", frame_meta->lux_index);
        }
 
        return TRUE;