summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packaging/capi-media-camera.spec2
-rw-r--r--src/camera.c52
2 files changed, 27 insertions, 27 deletions
diff --git a/packaging/capi-media-camera.spec b/packaging/capi-media-camera.spec
index 5a8a3a9..62af3e8 100644
--- a/packaging/capi-media-camera.spec
+++ b/packaging/capi-media-camera.spec
@@ -1,6 +1,6 @@
Name: capi-media-camera
Summary: A Camera API
-Version: 0.2.73
+Version: 0.2.74
Release: 0
Group: Multimedia/API
License: Apache-2.0
diff --git a/src/camera.c b/src/camera.c
index 78bf839..567a3be 100644
--- a/src/camera.c
+++ b/src/camera.c
@@ -1088,6 +1088,7 @@ static void _camera_client_user_callback(camera_cb_info_s *cb_info, char *recv_m
camera_stream_data_s *stream = NULL;
camera_media_packet_data *mp_data = NULL;
media_packet_h pkt = NULL;
+ media_packet_h pkt_evas = NULL;
muse_camera_msg_get(tbm_key, recv_msg);
muse_camera_msg_get(num_buffer_key, recv_msg);
@@ -1152,52 +1153,51 @@ static void _camera_client_user_callback(camera_cb_info_s *cb_info, char *recv_m
cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_PREVIEW]);
}
- /* call media packet callback */
- if (cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_MEDIA_PACKET_PREVIEW]) {
+ if (CHECK_PREVIEW_CB(cb_info, PREVIEW_CB_TYPE_EVAS)) {
+#ifdef TIZEN_FEATURE_EVAS_RENDERER
ret = _camera_media_packet_data_create(tbm_key, num_buffer_key, bo, buffer_bo, data_bo, &mp_data);
if (ret == CAMERA_ERROR_NONE) {
- ret = _camera_media_packet_create(cb_info, stream, mp_data, &pkt);
-
- if (ret == CAMERA_ERROR_NONE) {
- ((camera_media_packet_preview_cb)cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_MEDIA_PACKET_PREVIEW])(pkt,
- cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_MEDIA_PACKET_PREVIEW]);
- } else {
+ ret = _camera_media_packet_create(cb_info, stream, mp_data, &pkt_evas);
+ if (ret != CAMERA_ERROR_NONE) {
+ LOGE("create pkt for evas failed");
_camera_media_packet_data_release(mp_data, cb_info);
mp_data = NULL;
}
}
+#else /* TIZEN_FEATURE_EVAS_RENDERER */
+ LOGW("evas renderer is not supported");
+#endif /* TIZEN_FEATURE_EVAS_RENDERER */
}
- /* call evas renderer */
- if (CHECK_PREVIEW_CB(cb_info, PREVIEW_CB_TYPE_EVAS)) {
-#ifdef TIZEN_FEATURE_EVAS_RENDERER
+ /* call media packet callback */
+ if (cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_MEDIA_PACKET_PREVIEW]) {
ret = _camera_media_packet_data_create(tbm_key, num_buffer_key, bo, buffer_bo, data_bo, &mp_data);
if (ret == CAMERA_ERROR_NONE) {
ret = _camera_media_packet_create(cb_info, stream, mp_data, &pkt);
if (ret == CAMERA_ERROR_NONE) {
- g_mutex_lock(&cb_info->evas_mutex);
-
- if (cb_info->run_evas_render) {
- mm_evas_renderer_write(pkt, cb_info->evas_info);
- } else {
- LOGW("evas renderer is stopped, skip this buffer...");
- media_packet_destroy(pkt);
- }
-
- pkt = NULL;
-
- g_mutex_unlock(&cb_info->evas_mutex);
+ ((camera_media_packet_preview_cb)cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_MEDIA_PACKET_PREVIEW])(pkt,
+ cb_info->user_data[MUSE_CAMERA_EVENT_TYPE_MEDIA_PACKET_PREVIEW]);
} else {
_camera_media_packet_data_release(mp_data, cb_info);
mp_data = NULL;
}
}
-#else /* TIZEN_FEATURE_EVAS_RENDERER */
- LOGW("evas renderer is not supported");
-#endif /* TIZEN_FEATURE_EVAS_RENDERER */
+ }
+
+ /* call evas renderer */
+ if (pkt_evas) {
+ g_mutex_lock(&cb_info->evas_mutex);
+ if (cb_info->run_evas_render) {
+ mm_evas_renderer_write(pkt_evas, cb_info->evas_info);
+ } else {
+ LOGW("evas renderer is stopped, skip this buffer...");
+ media_packet_destroy(pkt_evas);
+ }
+ pkt_evas = NULL;
+ g_mutex_unlock(&cb_info->evas_mutex);
}
/* send message for preview callback return */