Add new internal API to get meta
[platform/core/api/camera.git] / src / camera_internal.c
index c994e4d..06e644e 100644 (file)
@@ -417,16 +417,49 @@ int camera_attr_get_preview_frame_meta_timestamp(camera_h camera, camera_meta_ti
                return CAMERA_ERROR_INVALID_OPERATION;
        }
 
-       meta_timestamp->ts_soe = stream->ts_soe;
-       meta_timestamp->ts_eoe = stream->ts_eoe;
-       meta_timestamp->ts_sof = stream->ts_sof;
-       meta_timestamp->ts_eof = stream->ts_eof;
-       meta_timestamp->ts_hal = stream->ts_hal;
-       meta_timestamp->ts_qmf = stream->ts_qmf;
-       meta_timestamp->ts_gst = stream->ts_gst;
-       meta_timestamp->td_exp = stream->td_exp;
-       meta_timestamp->ts_aux = stream->ts_aux;
-       meta_timestamp->td_aux = stream->td_aux;
+       meta_timestamp->ts_soe = stream->frame_meta.ts_soe;
+       meta_timestamp->ts_eoe = stream->frame_meta.ts_eoe;
+       meta_timestamp->ts_sof = stream->frame_meta.ts_sof;
+       meta_timestamp->ts_eof = stream->frame_meta.ts_eof;
+       meta_timestamp->ts_hal = stream->frame_meta.ts_hal;
+       meta_timestamp->ts_qmf = stream->frame_meta.ts_qmf;
+       meta_timestamp->ts_gst = stream->frame_meta.ts_gst;
+       meta_timestamp->td_exp = stream->frame_meta.td_exp;
+       meta_timestamp->ts_aux = stream->frame_meta.ts_aux;
+       meta_timestamp->td_aux = stream->frame_meta.td_aux;
+
+       return CAMERA_ERROR_NONE;
+}
+
+
+int camera_attr_get_preview_frame_meta(camera_h camera, camera_frame_meta_s *frame_meta)
+{
+       camera_cli_s *pc = (camera_cli_s *)camera;
+       MMCamcorderVideoStreamDataType *stream = NULL;
+
+       if (!pc || !pc->cb_info || !frame_meta) {
+               CAM_LOG_ERROR("NULL pointer %p %p", pc, frame_meta);
+               return CAMERA_ERROR_INVALID_PARAMETER;
+       }
+
+       stream = pc->cb_info->stream_data;
+       if (!stream) {
+               CAM_LOG_ERROR("no stream data, maybe it's not in preview callback");
+               return CAMERA_ERROR_INVALID_OPERATION;
+       }
+
+       frame_meta->ts_soe = stream->frame_meta.ts_soe;
+       frame_meta->ts_eoe = stream->frame_meta.ts_eoe;
+       frame_meta->ts_sof = stream->frame_meta.ts_sof;
+       frame_meta->ts_eof = stream->frame_meta.ts_eof;
+       frame_meta->ts_hal = stream->frame_meta.ts_hal;
+       frame_meta->ts_qmf = stream->frame_meta.ts_qmf;
+       frame_meta->ts_gst = stream->frame_meta.ts_gst;
+       frame_meta->td_exp = stream->frame_meta.td_exp;
+       frame_meta->ts_aux = stream->frame_meta.ts_aux;
+       frame_meta->td_aux = stream->frame_meta.td_aux;
+       frame_meta->seqnum = stream->frame_meta.seqnum;
+       frame_meta->flags = stream->frame_meta.flags;
 
        return CAMERA_ERROR_NONE;
 }