* 2. EVAS display rendering
* 3. media bridge is set
*/
+
+ g_mutex_lock(&cb_info->bridge_lock);
+
if (cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_MEDIA_PACKET_PREVIEW] ||
cb_info->is_evas_render ||
cb_info->bridge) {
ret = __camera_create_media_packet_data(ret_fd, tfd, num_buffer_fd, bo, buffer_bo, data_bo, &mp_data);
if (ret != CAMERA_ERROR_NONE) {
+ g_mutex_unlock(&cb_info->bridge_lock);
CAM_LOG_ERROR("__camera_create_media_packet_data failed[0x%x]", ret);
goto _PREVIEW_CB_HANDLER_DONE;
}
ret = __camera_create_media_packet(cb_info, stream, mp_data, &pkt);
if (ret != CAMERA_ERROR_NONE) {
+ g_mutex_unlock(&cb_info->bridge_lock);
CAM_LOG_ERROR("__camera_create_media_packet failed[0x%x]", ret);
__camera_release_media_packet_data(mp_data, cb_info);
mp_data = NULL;
goto _PREVIEW_CB_HANDLER_DONE;
}
+
+//LCOV_EXCL_START
+ /* 3. media bridge */
+ if (cb_info->bridge) {
+ media_packet_ref(pkt);
+ ret = media_bridge_push_packet(cb_info->bridge, pkt);
+ if (ret != MEDIA_BRIDGE_ERROR_NONE) {
+ CAM_LOG_ERROR("push packet to bridge failed[0x%x]", ret);
+ media_packet_unref(pkt);
+ }
+ }
+//LCOV_EXCL_STOP
}
+ g_mutex_unlock(&cb_info->bridge_lock);
+
/* 1. media packet preview callback */
if (cb_info->user_cb[MUSE_CAMERA_EVENT_TYPE_MEDIA_PACKET_PREVIEW]) {
media_packet_ref(pkt);
}
}
-//LCOV_EXCL_START
- /* 3. media bridge */
- g_mutex_lock(&cb_info->bridge_lock);
-
- if (cb_info->bridge) {
- media_packet_ref(pkt);
- ret = media_bridge_push_packet(cb_info->bridge, pkt);
- if (ret != MEDIA_BRIDGE_ERROR_NONE) {
- CAM_LOG_ERROR("push packet to bridge failed[0x%x]", ret);
- media_packet_unref(pkt);
- }
- }
-//LCOV_EXCL_STOP
-
- g_mutex_unlock(&cb_info->bridge_lock);
-
_PREVIEW_CB_HANDLER_DONE:
/* send PREVIEW_CB_RETURN message if zero copy buffer is used(num_buffer_fd is bigger than 0)
and preview callback(normal or media packet) is set. */