From f611a975fc0ed148af70e7ab9596e4998dda9180 Mon Sep 17 00:00:00 2001 From: YoungHun Kim Date: Wed, 12 Jun 2024 15:26:43 +0900 Subject: [PATCH] Enable resource manager commonization [Version] 1.1.3 [Issue Type] Update Change-Id: I59fa7e33da9d7cebe8d9508093322c41e3d7742f --- configure.ac | 53 +++---- packaging/libmm-camcorder.spec | 11 +- src/Makefile.am | 5 - src/include/mm_camcorder.h | 16 +-- src/include/mm_camcorder_internal.h | 23 --- src/mm_camcorder_exifinfo.c | 2 +- src/mm_camcorder_internal.c | 214 +--------------------------- src/mm_camcorder_platform.c | 2 +- src/mm_camcorder_videorec.c | 58 -------- 9 files changed, 46 insertions(+), 338 deletions(-) diff --git a/configure.ac b/configure.ac index 8f3cb73..cc398fb 100644 --- a/configure.ac +++ b/configure.ac @@ -1,8 +1,8 @@ AC_PREREQ(2.52) m4_define([PACAKGE_MAJOR], [1]) -m4_define([PACKAGE_MINOR], [0]) -m4_define([PACKAGE_MICRO], [0]) +m4_define([PACKAGE_MINOR], [1]) +m4_define([PACKAGE_MICRO], [2]) AC_INIT([libmm-camcorder], [PACKAGE_MAJOR.PACKAGE_MINOR.PACKAGE_MICRO]) AM_INIT_AUTOMAKE([-Wall -Werror foreign]) @@ -59,21 +59,6 @@ PKG_CHECK_MODULES(MM_COMMON, mm-common) AC_SUBST(MM_COMMON_CFLAGS) AC_SUBST(MM_COMMON_LIBS) -AC_ARG_ENABLE(mm-resource-manager, AC_HELP_STRING([--enable-mm-resource-manager], [enable mm-resource-manager]), -[ - case "${enableval}" in - yes) MM_RESOURCE_MANAGER_SUPPORT=yes ;; - no) MM_RESOURCE_MANAGER_SUPPORT=no ;; - *) AC_MSG_ERROR(bad value ${enableval} for --enable-mm-resource-manager) ;; - esac -],[MM_RESOURCE_MANAGER_SUPPORT=no]) -if test "x$MM_RESOURCE_MANAGER_SUPPORT" = "xyes"; then -PKG_CHECK_MODULES(MM_RESOURCE_MANAGER, mm-resource-manager) -AC_SUBST(MM_RESOURCE_MANAGER_CFLAGS) -AC_SUBST(MM_RESOURCE_MANAGER_LIBS) -fi -AM_CONDITIONAL([MM_RESOURCE_MANAGER_SUPPORT], [test "x$MM_RESOURCE_MANAGER_SUPPORT" = "xyes"]) - PKG_CHECK_MODULES(EXIF, libexif) AC_SUBST(EXIF_CFLAGS) AC_SUBST(EXIF_LIBS) @@ -106,6 +91,14 @@ PKG_CHECK_MODULES(TBM, libtbm) AC_SUBST(TBM_CFLAGS) AC_SUBST(TBM_LIBS) +PKG_CHECK_MODULES(AUL, aul) +AC_SUBST(AUL_CFLAGS) +AC_SUBST(AUL_LIBS) + +PKG_CHECK_MODULES(RC, resource-center-api) +AC_SUBST(RC_CFLAGS) +AC_SUBST(RC_LIBS) + AC_ARG_ENABLE(rm, AC_HELP_STRING([--enable-rm], [enable rm]), [ case "${enableval}" in @@ -119,17 +112,29 @@ PKG_CHECK_MODULES(RM, tv-resource-manager) AC_SUBST(RM_CFLAGS) AC_SUBST(RM_LIBS) -PKG_CHECK_MODULES(AUL, aul) -AC_SUBST(AUL_CFLAGS) -AC_SUBST(AUL_LIBS) - PKG_CHECK_MODULES(RI, tv-resource-information) AC_SUBST(RI_CFLAGS) AC_SUBST(RI_LIBS) +fi -PKG_CHECK_MODULES(RC, resource-center-api) -AC_SUBST(RC_CFLAGS) -AC_SUBST(RC_LIBS) +AM_CONDITIONAL([RM_SUPPORT], [test "x$RM_SUPPORT" = "xyes"]) + +AC_ARG_ENABLE(rm-common, AC_HELP_STRING([--enable-rm-common], [enable rm common]), +[ + case "${enableval}" in + yes) RM_SUPPORT=yes ;; + no) RM_SUPPORT=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for --enable-rm-common) ;; + esac +],[RM_SUPPORT=no]) +if test "x$RM_SUPPORT" = "xyes"; then +PKG_CHECK_MODULES(RM, resource-manager) +AC_SUBST(RM_CFLAGS) +AC_SUBST(RM_LIBS) + +PKG_CHECK_MODULES(RI, resource-information) +AC_SUBST(RI_CFLAGS) +AC_SUBST(RI_LIBS) fi AM_CONDITIONAL([RM_SUPPORT], [test "x$RM_SUPPORT" = "xyes"]) diff --git a/packaging/libmm-camcorder.spec b/packaging/libmm-camcorder.spec index 5d8714f..317028e 100755 --- a/packaging/libmm-camcorder.spec +++ b/packaging/libmm-camcorder.spec @@ -1,6 +1,6 @@ Name: libmm-camcorder Summary: Camera and recorder library -Version: 1.1.2 +Version: 1.1.3 Release: 0 Group: Multimedia/Libraries License: Apache-2.0 @@ -22,17 +22,18 @@ BuildRequires: pkgconfig(gstreamer-app-1.0) BuildRequires: pkgconfig(vconf) BuildRequires: pkgconfig(libtbm) BuildRequires: pkgconfig(storage) +BuildRequires: pkgconfig(aul) +BuildRequires: pkgconfig(resource-center-api) %if "%{tizen_profile_name}" == "tv" BuildRequires: pkgconfig(tv-resource-manager) BuildRequires: pkgconfig(tv-resource-information) -BuildRequires: pkgconfig(aul) -BuildRequires: pkgconfig(resource-center-api) BuildRequires: pkgconfig(capi-boost-tv) %if (("%{_vd_cfg_product_type}" != "AUDIO") && ("%{_vd_cfg_target_repository}" != "emulator")) BuildRequires: pkgconfig(camera-conf-mgr-tv) %endif %else -BuildRequires: pkgconfig(mm-resource-manager) +BuildRequires: pkgconfig(resource-manager) +BuildRequires: pkgconfig(resource-information) %endif BuildRequires: pkgconfig(ttrace) BuildRequires: pkgconfig(libtzplatform-config) @@ -76,7 +77,7 @@ export CFLAGS+=" -D_LARGEFILE64_SOURCE -DGST_USE_UNSTABLE_API -DSYSCONFDIR=\\\"% --enable-camera-conf-mgr-tv \ %endif %else - --enable-mm-resource-manager \ + --enable-rm-common \ %endif %if "%{gtests}" == "1" --enable-gtests \ diff --git a/src/Makefile.am b/src/Makefile.am index f990e10..b4ff0d7 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -84,11 +84,6 @@ libmmfcamcorder_la_CFLAGS += -fdata-sections -ffunction-sections -Wl,--gc-sectio libmmfcamcorder_la_LDFLAGS = -Wl,--gc-sections -version-number $(SO_VERSION) libmmfcamcorder_la_LIBADD += $(SYSTEMINFO_LIBS) -if MM_RESOURCE_MANAGER_SUPPORT -libmmfcamcorder_la_CFLAGS += $(MM_RESOURCE_MANAGER_CFLAGS) -D_MMCAMCORDER_MM_RM_SUPPORT -libmmfcamcorder_la_LIBADD += $(MM_RESOURCE_MANAGER_LIBS) -endif - if RM_SUPPORT libmmfcamcorder_la_CFLAGS += $(RM_CFLAGS) $(RI_CFLAGS) $(AUL_CFLAGS) $(RC_CFLAGS) -D_MMCAMCORDER_RM_SUPPORT libmmfcamcorder_la_LIBADD += $(RM_LIBS) $(RI_LIBS) $(AUL_LIBS) $(RC_LIBS) diff --git a/src/include/mm_camcorder.h b/src/include/mm_camcorder.h index 400c16f..58408ff 100644 --- a/src/include/mm_camcorder.h +++ b/src/include/mm_camcorder.h @@ -2230,7 +2230,7 @@ gboolean initialize_image_capture() int err; MMCamPreset cam_info; char *err_attr_name = NULL; - void * hdisplay = NULL; + void *hdisplay = NULL; int hsize = 0; //Set video device as 'camera0' (main camera device) @@ -2288,7 +2288,7 @@ gboolean initialize_video_capture() int err; MMCamPreset cam_info; char *err_attr_name = NULL; - void * hdisplay = NULL; + void *hdisplay = NULL; int hsize = 0; //Set video device as 'camera0' (main camera device) @@ -2349,7 +2349,7 @@ gboolean initialize_audio_capture() int err; MMCamPreset cam_info; char *err_attr_name = NULL; - void * hdisplay = NULL; + void *hdisplay = NULL; int hsize = 0; //Set no video device, because audio recording doesn't need video input. @@ -2463,7 +2463,7 @@ gboolean initialize_image_capture() int err; MMCamPreset cam_info; char *err_attr_name = NULL; - void * hdisplay = NULL; + void *hdisplay = NULL; int hsize = 0; //Set video device as 'camera0' (main camera device) @@ -2528,7 +2528,7 @@ gboolean initialize_video_capture() int err; MMCamPreset cam_info; char *err_attr_name = NULL; - void * hdisplay = NULL; + void *hdisplay = NULL; int hsize = 0; //Set video device as 'camera0' (main camera device) @@ -2596,7 +2596,7 @@ gboolean initialize_audio_capture() int err; MMCamPreset cam_info; char *err_attr_name = NULL; - void * hdisplay = NULL; + void *hdisplay = NULL; int hsize = 0; //Set no video device, because audio recording doesn't need video input. @@ -3235,7 +3235,7 @@ gboolean getting_attribute() int err; MMCamPreset cam_info; char *err_attr_name = NULL; - void * hdisplay = NULL; + void *hdisplay = NULL; int hsize = 0; hdisplay = &ad.xid; //xid of xwindow. This value can be different depending on your environment. @@ -3283,7 +3283,7 @@ gboolean setting_attribute() int err; MMCamPreset cam_info; char *err_attr_name = NULL; - void * hdisplay = NULL; + void *hdisplay = NULL; int hsize = 0; hdisplay = &ad.xid; //xid of xwindow. This value can be different depending on your environment. diff --git a/src/include/mm_camcorder_internal.h b/src/include/mm_camcorder_internal.h index be6f5a6..c7706e1 100644 --- a/src/include/mm_camcorder_internal.h +++ b/src/include/mm_camcorder_internal.h @@ -42,10 +42,6 @@ #include "mm_camcorder.h" -#ifdef _MMCAMCORDER_MM_RM_SUPPORT -#include -#endif /* _MMCAMCORDER_MM_RM_SUPPORT */ - /* camcorder sub module */ #include "mm_camcorder_attribute.h" #include "mm_camcorder_platform.h" @@ -448,13 +444,6 @@ do { \ #define _MMCAMCORDER_TRYLOCK_VEDECISION_CALLBACK(handle) _MMCAMCORDER_TRYLOCK_FUNC(_MMCAMCORDER_GET_VEDECISION_CALLBACK_LOCK(handle)) #define _MMCAMCORDER_UNLOCK_VEDECISION_CALLBACK(handle) _MMCAMCORDER_UNLOCK_FUNC(_MMCAMCORDER_GET_VEDECISION_CALLBACK_LOCK(handle)) -#ifdef _MMCAMCORDER_MM_RM_SUPPORT -/* for resource conflict */ -#define _MMCAMCORDER_GET_RESOURCE_LOCK(handle) (_MMCAMCORDER_CAST_MTSAFE(handle).resource_lock) -#define _MMCAMCORDER_LOCK_RESOURCE(handle) _MMCAMCORDER_LOCK_FUNC(_MMCAMCORDER_GET_RESOURCE_LOCK(handle)) -#define _MMCAMCORDER_UNLOCK_RESOURCE(handle) _MMCAMCORDER_UNLOCK_FUNC(_MMCAMCORDER_GET_RESOURCE_LOCK(handle)) -#endif /* _MMCAMCORDER_MM_RM_SUPPORT */ - /** * Caster of main handle (camcorder) */ @@ -676,9 +665,6 @@ typedef struct { GMutex astream_cb_lock; /**< Mutex (for audio stream callback) */ GMutex mstream_cb_lock; /**< Mutex (for muxed stream callback) */ GMutex vedecision_cb_lock; /**< Mutex (for video encode decision callback) */ -#ifdef _MMCAMCORDER_MM_RM_SUPPORT - GMutex resource_lock; /**< Mutex (for resource check) */ -#endif /* _MMCAMCORDER_MM_RM_SUPPORT */ } _MMCamcorderMTSafe; /** @@ -849,15 +835,6 @@ typedef struct mmf_camcorder { GCond task_thread_cond; /**< cond for task thread */ _MMCamcorderTaskThreadState task_thread_state; /**< state of task thread */ -#ifdef _MMCAMCORDER_MM_RM_SUPPORT - /* resource manager for H/W resources */ - mm_resource_manager_h resource_manager; - mm_resource_manager_res_h camera_resource; - mm_resource_manager_res_h video_overlay_resource; - mm_resource_manager_res_h video_encoder_resource; - gboolean is_release_cb_calling; -#endif /* _MMCAMCORDER_MM_RM_SUPPORT */ - /* gdbus */ GDBusConnection *gdbus_conn; /**< gdbus connection */ _MMCamcorderGDbusCbInfo *gdbus_info_sound; /**< Information for the gdbus cb of sound play */ diff --git a/src/mm_camcorder_exifinfo.c b/src/mm_camcorder_exifinfo.c index a594460..be2e209 100644 --- a/src/mm_camcorder_exifinfo.c +++ b/src/mm_camcorder_exifinfo.c @@ -79,7 +79,7 @@ typedef struct _mm_exif_entry_t { * local functions. */ static void -_exif_set_uint16(int is_motorola, void * out, unsigned short in) +_exif_set_uint16(int is_motorola, void *out, unsigned short in) { if (is_motorola) { ((unsigned char *)out)[0] = in & 0x00ff; diff --git a/src/mm_camcorder_internal.c b/src/mm_camcorder_internal.c index 8496cc1..2f9115c 100644 --- a/src/mm_camcorder_internal.c +++ b/src/mm_camcorder_internal.c @@ -86,10 +86,6 @@ static gint __mmcamcorder_gst_handle_library_error(MMHandleType handle, int static gint __mmcamcorder_gst_handle_core_error(MMHandleType handle, int code, GstMessage *message); static gint __mmcamcorder_gst_handle_resource_warning(MMHandleType handle, GstMessage *message , GError *error); static gboolean __mmcamcorder_handle_gst_warning(MMHandleType handle, GstMessage *message, GError *error); -#ifdef _MMCAMCORDER_MM_RM_SUPPORT -static int __mmcamcorder_resource_release_cb(mm_resource_manager_h rm, - mm_resource_manager_res_h res, void *user_data); -#endif /* _MMCAMCORDER_MM_RM_SUPPORT */ /*======================================================================================= | FUNCTION DEFINITIONS | @@ -140,9 +136,6 @@ static gint __mmcamcorder_init_handle(mmf_camcorder_t **hcamcorder, int device_t g_mutex_init(&(new_handle->mtsafe).astream_cb_lock); g_mutex_init(&(new_handle->mtsafe).mstream_cb_lock); g_mutex_init(&(new_handle->mtsafe).vedecision_cb_lock); -#ifdef _MMCAMCORDER_MM_RM_SUPPORT - g_mutex_init(&(new_handle->mtsafe).resource_lock); -#endif /* _MMCAMCORDER_MM_RM_SUPPORT */ g_mutex_init(&new_handle->restart_preview_lock); @@ -252,9 +245,6 @@ static void __mmcamcorder_deinit_handle(mmf_camcorder_t *hcamcorder) g_mutex_clear(&(hcamcorder->mtsafe).astream_cb_lock); g_mutex_clear(&(hcamcorder->mtsafe).mstream_cb_lock); g_mutex_clear(&(hcamcorder->mtsafe).vedecision_cb_lock); -#ifdef _MMCAMCORDER_MM_RM_SUPPORT - g_mutex_clear(&(hcamcorder->mtsafe).resource_lock); -#endif /* _MMCAMCORDER_MM_RM_SUPPORT */ g_mutex_clear(&hcamcorder->snd_info.open_mutex); g_cond_clear(&hcamcorder->snd_info.open_cond); @@ -736,18 +726,6 @@ int _mmcamcorder_create(MMHandleType *handle, MMCamPreset *info) MMCAM_LOG_INFO("DPM camera changed cb id %d", hcamcorder->dpm_camera_cb_id); } - -#ifdef _MMCAMCORDER_MM_RM_SUPPORT - /* initialize resource manager */ - ret = mm_resource_manager_create(MM_RESOURCE_MANAGER_APP_CLASS_MEDIA, - __mmcamcorder_resource_release_cb, hcamcorder, - &hcamcorder->resource_manager); - if (ret != MM_RESOURCE_MANAGER_ERROR_NONE) { - MMCAM_LOG_ERROR("failed to initialize resource manager"); - ret = MM_ERROR_CAMCORDER_INTERNAL; - goto _ERR_DEFAULT_VALUE_INIT; - } -#endif /* _MMCAMCORDER_MM_RM_SUPPORT */ } else { ret = __mmcamcorder_init_configure_audio(hcamcorder); if (ret != MM_ERROR_NONE) @@ -782,11 +760,6 @@ int _mmcamcorder_create(MMHandleType *handle, MMCamPreset *info) return MM_ERROR_NONE; _ERR_DEFAULT_VALUE_INIT: -#ifdef _MMCAMCORDER_MM_RM_SUPPORT - /* de-initialize resource manager */ - if (hcamcorder->resource_manager != NULL) - mm_resource_manager_destroy(hcamcorder->resource_manager); -#endif /* _MMCAMCORDER_MM_RM_SUPPORT */ /* release DPM related handle */ if (hcamcorder->dpm_handle) { @@ -870,19 +843,6 @@ int _mmcamcorder_destroy(MMHandleType handle) hcamcorder->sub_context = NULL; } -#ifdef _MMCAMCORDER_MM_RM_SUPPORT - /* de-initialize resource manager */ - _MMCAMCORDER_LOCK_RESOURCE(hcamcorder); - - if (hcamcorder->resource_manager != NULL) { - ret = mm_resource_manager_destroy(hcamcorder->resource_manager); - if (ret != MM_RESOURCE_MANAGER_ERROR_NONE) - MMCAM_LOG_ERROR("failed to de-initialize resource manager 0x%x", ret); - } - - _MMCAMCORDER_UNLOCK_RESOURCE(hcamcorder); -#endif /* _MMCAMCORDER_MM_RM_SUPPORT */ - /* Remove messages which are not called yet */ _mmcamcorder_remove_message_all(handle); @@ -1078,53 +1038,6 @@ int _mmcamcorder_realize(MMHandleType handle) MMCAM_LOG_WARNING("NULL dpm_handle"); } -#ifdef _MMCAMCORDER_MM_RM_SUPPORT - _MMCAMCORDER_LOCK_RESOURCE(hcamcorder); - /* prepare resource manager for camera */ - if (hcamcorder->camera_resource == NULL) { - ret = mm_resource_manager_mark_for_acquire(hcamcorder->resource_manager, - MM_RESOURCE_MANAGER_RES_TYPE_CAMERA, - 1, - &hcamcorder->camera_resource); - if (ret != MM_RESOURCE_MANAGER_ERROR_NONE) { - MMCAM_LOG_ERROR("could not prepare for camera resource"); - ret = MM_ERROR_RESOURCE_INTERNAL; - _MMCAMCORDER_UNLOCK_RESOURCE(hcamcorder); - goto _ERR_CAMCORDER_CMD_PRECON_AFTER_LOCK; - } - } else { - MMCAM_LOG_INFO("camera already acquired"); - } - - /* prepare resource manager for "video_overlay only if display surface is X" */ - if (display_surface_type == MM_DISPLAY_SURFACE_OVERLAY) { - if (hcamcorder->video_overlay_resource == NULL) { - ret = mm_resource_manager_mark_for_acquire(hcamcorder->resource_manager, - MM_RESOURCE_MANAGER_RES_TYPE_VIDEO_OVERLAY, - MM_RESOURCE_MANAGER_RES_VOLUME_FULL, - &hcamcorder->video_overlay_resource); - if (ret != MM_RESOURCE_MANAGER_ERROR_NONE) { - MMCAM_LOG_ERROR("could not prepare for overlay resource"); - ret = MM_ERROR_RESOURCE_INTERNAL; - _MMCAMCORDER_UNLOCK_RESOURCE(hcamcorder); - goto _ERR_CAMCORDER_CMD_PRECON_AFTER_LOCK; - } - } else { - MMCAM_LOG_INFO("overlay already acquired"); - } - } - - /* acquire resources */ - ret = mm_resource_manager_commit(hcamcorder->resource_manager); - if (ret != MM_RESOURCE_MANAGER_ERROR_NONE) { - MMCAM_LOG_ERROR("could not acquire resources"); - ret = MM_ERROR_RESOURCE_INTERNAL; - _MMCAMCORDER_UNLOCK_RESOURCE(hcamcorder); - goto _ERR_CAMCORDER_CMD_PRECON_AFTER_LOCK; - } - _MMCAMCORDER_UNLOCK_RESOURCE(hcamcorder); -#endif /* _MMCAMCORDER_MM_RM_SUPPORT */ - #ifdef _MMCAMCORDER_RM_SUPPORT ret = _mmcamcorder_rm_create(handle); if (ret != MM_ERROR_NONE) { @@ -1176,24 +1089,7 @@ int _mmcamcorder_realize(MMHandleType handle) return MM_ERROR_NONE; _ERR_CAMCORDER_CMD: -#ifdef _MMCAMCORDER_MM_RM_SUPPORT - /* release hw resources */ - _MMCAMCORDER_LOCK_RESOURCE(hcamcorder); - if (hcamcorder->type == MM_CAMCORDER_MODE_VIDEO_CAPTURE) { - if (hcamcorder->camera_resource != NULL) { - mm_resource_manager_mark_for_release(hcamcorder->resource_manager, - hcamcorder->camera_resource); - hcamcorder->camera_resource = NULL; - } - if (hcamcorder->video_overlay_resource != NULL) { - mm_resource_manager_mark_for_release(hcamcorder->resource_manager, - hcamcorder->video_overlay_resource); - hcamcorder->video_overlay_resource = NULL; - } - mm_resource_manager_commit(hcamcorder->resource_manager); - } - _MMCAMCORDER_UNLOCK_RESOURCE(hcamcorder); -#endif /* _MMCAMCORDER_MM_RM_SUPPORT */ + #ifdef _MMCAMCORDER_RM_SUPPORT _mmcamcorder_rm_deallocate(handle); _mmcamcorder_rm_release(handle); @@ -1246,62 +1142,6 @@ int _mmcamcorder_unrealize(MMHandleType handle) hcamcorder->sub_context = NULL; } -#ifdef _MMCAMCORDER_MM_RM_SUPPORT - _MMCAMCORDER_LOCK_RESOURCE(hcamcorder); - MMCAM_LOG_WARNING("lock resource - cb calling %d", hcamcorder->is_release_cb_calling); - - if (hcamcorder->type == MM_CAMCORDER_MODE_VIDEO_CAPTURE && - hcamcorder->state_change_by_system != _MMCAMCORDER_STATE_CHANGE_BY_RM && - hcamcorder->is_release_cb_calling == FALSE) { - - /* release resource */ - if (hcamcorder->camera_resource != NULL) { - ret = mm_resource_manager_mark_for_release(hcamcorder->resource_manager, - hcamcorder->camera_resource); - if (ret != MM_RESOURCE_MANAGER_ERROR_NONE) { - MMCAM_LOG_ERROR("could not mark camera resource for release"); - ret = MM_ERROR_CAMCORDER_INTERNAL; - _MMCAMCORDER_UNLOCK_RESOURCE(hcamcorder); - MMCAM_LOG_INFO("unlock resource"); - goto _ERR_CAMCORDER_CMD_PRECON_AFTER_LOCK; - } - } - - if (hcamcorder->video_overlay_resource != NULL) { - ret = mm_resource_manager_mark_for_release(hcamcorder->resource_manager, - hcamcorder->video_overlay_resource); - if (ret != MM_RESOURCE_MANAGER_ERROR_NONE) { - MMCAM_LOG_ERROR("could not mark overlay resource for release"); - ret = MM_ERROR_CAMCORDER_INTERNAL; - _MMCAMCORDER_UNLOCK_RESOURCE(hcamcorder); - MMCAM_LOG_INFO("unlock resource"); - goto _ERR_CAMCORDER_CMD_PRECON_AFTER_LOCK; - } - } - - ret = mm_resource_manager_commit(hcamcorder->resource_manager); - - if (ret != MM_RESOURCE_MANAGER_ERROR_NONE) { - MMCAM_LOG_ERROR("failed to release resource, ret(0x%x)", ret); - ret = MM_ERROR_CAMCORDER_INTERNAL; - - _MMCAMCORDER_UNLOCK_RESOURCE(hcamcorder); - MMCAM_LOG_INFO("unlock resource"); - - goto _ERR_CAMCORDER_CMD_PRECON_AFTER_LOCK; - } else { - if (hcamcorder->camera_resource != NULL) - hcamcorder->camera_resource = NULL; - if (hcamcorder->video_overlay_resource != NULL) - hcamcorder->video_overlay_resource = NULL; - } - } - - _MMCAMCORDER_UNLOCK_RESOURCE(hcamcorder); - - MMCAM_LOG_WARNING("unlock resource"); -#endif /* _MMCAMCORDER_MM_RM_SUPPORT */ - #ifdef _MMCAMCORDER_RM_SUPPORT _mmcamcorder_rm_deallocate(handle); #endif /* _MMCAMCORDER_RM_SUPPORT*/ @@ -3886,58 +3726,6 @@ void _mmcamcorder_emit_signal(MMHandleType handle, const char *object_name, } -#ifdef _MMCAMCORDER_MM_RM_SUPPORT -static int __mmcamcorder_resource_release_cb(mm_resource_manager_h rm, - mm_resource_manager_res_h res, void *user_data) -{ - mmf_camcorder_t *hcamcorder = (mmf_camcorder_t *) user_data; - - mmf_return_val_if_fail(hcamcorder, FALSE); - - MMCAM_LOG_WARNING("enter"); - - _MMCAMCORDER_LOCK_RESOURCE(hcamcorder); - - /* set flag for resource release callback */ - hcamcorder->is_release_cb_calling = TRUE; - - _MMCAMCORDER_UNLOCK_RESOURCE(hcamcorder); - - _MMCAMCORDER_LOCK_INTERRUPT(hcamcorder); - - if (res == hcamcorder->video_encoder_resource) { - /* Stop video recording */ - if (_mmcamcorder_commit((MMHandleType)hcamcorder) != MM_ERROR_NONE) { - MMCAM_LOG_ERROR("commit failed, cancel it"); - _mmcamcorder_cancel((MMHandleType)hcamcorder); - } - } else { - /* Stop camera */ - __mmcamcorder_force_stop(hcamcorder, _MMCAMCORDER_STATE_CHANGE_BY_RM); - } - - _MMCAMCORDER_UNLOCK_INTERRUPT(hcamcorder); - - _MMCAMCORDER_LOCK_RESOURCE(hcamcorder); - - if (res == hcamcorder->camera_resource) - hcamcorder->camera_resource = NULL; - else if (res == hcamcorder->video_overlay_resource) - hcamcorder->video_overlay_resource = NULL; - else if (res == hcamcorder->video_encoder_resource) - hcamcorder->video_encoder_resource = NULL; - - /* restore flag for resource release callback */ - hcamcorder->is_release_cb_calling = FALSE; - - _MMCAMCORDER_UNLOCK_RESOURCE(hcamcorder); - - MMCAM_LOG_WARNING("leave"); - - return TRUE; -} -#endif /* _MMCAMCORDER_MM_RM_SUPPORT */ - int _mmcamcorder_manage_external_storage_state(MMHandleType handle, int storage_state) { int ret = MM_ERROR_NONE; diff --git a/src/mm_camcorder_platform.c b/src/mm_camcorder_platform.c index 10dc4fa..5f220e2 100644 --- a/src/mm_camcorder_platform.c +++ b/src/mm_camcorder_platform.c @@ -695,7 +695,7 @@ static _MMCamcorderInfoConverting g_caminfo_convert[CAMINFO_CONVERT_NUM] = { | LOCAL FUNCTION PROTOTYPES: | ---------------------------------------------------------------------------*/ /* STATIC INTERNAL FUNCTION */ -static int __mmcamcorder_get_valid_array(int * original_array, int original_count, int ** valid_array, int * valid_default); +static int __mmcamcorder_get_valid_array(int *original_array, int original_count, int **valid_array, int *valid_default); /*=========================================================================================== | | diff --git a/src/mm_camcorder_videorec.c b/src/mm_camcorder_videorec.c index 687da30..32cb955 100644 --- a/src/mm_camcorder_videorec.c +++ b/src/mm_camcorder_videorec.c @@ -434,9 +434,6 @@ int _mmcamcorder_remove_encode_pipeline(MMHandleType handle) GstPad *reqpad = NULL; mmf_camcorder_t *hcamcorder = MMF_CAMCORDER(handle); _MMCamcorderSubContext *sc = NULL; -#ifdef _MMCAMCORDER_MM_RM_SUPPORT - int ret = MM_ERROR_NONE; -#endif /* _MMCAMCORDER_MM_RM_SUPPORT */ mmf_return_val_if_fail(hcamcorder, MM_ERROR_CAMCORDER_NOT_INITIALIZED); @@ -475,30 +472,6 @@ int _mmcamcorder_remove_encode_pipeline(MMHandleType handle) _MMCAMCORDER_ENCODE_MAIN_PIPE, _MMCAMCORDER_ENCSINK_SINK); */ MMCAM_LOG_WARNING("Encoder pipeline removed"); - -#ifdef _MMCAMCORDER_MM_RM_SUPPORT - _MMCAMCORDER_LOCK_RESOURCE(hcamcorder); - - MMCAM_LOG_WARNING("lock resource - cb calling %d", hcamcorder->is_release_cb_calling); - - if (hcamcorder->is_release_cb_calling == FALSE) { - /* release resource */ - ret = mm_resource_manager_mark_for_release(hcamcorder->resource_manager, - hcamcorder->video_encoder_resource); - if (ret == MM_RESOURCE_MANAGER_ERROR_NONE) - hcamcorder->video_encoder_resource = NULL; - - MMCAM_LOG_WARNING("mark resource for release 0x%x", ret); - - ret = mm_resource_manager_commit(hcamcorder->resource_manager); - - MMCAM_LOG_WARNING("commit resource release 0x%x", ret); - } - - _MMCAMCORDER_UNLOCK_RESOURCE(hcamcorder); - - MMCAM_LOG_WARNING("unlock resource"); -#endif /* _MMCAMCORDER_MM_RM_SUPPORT */ } return MM_ERROR_NONE; @@ -610,37 +583,6 @@ int _mmcamcorder_video_command(MMHandleType handle, int command) /* Recording */ MMCAM_LOG_INFO("Record Start - dual stream %d", info->support_dual_stream); -#ifdef _MMCAMCORDER_MM_RM_SUPPORT - _MMCAMCORDER_LOCK_RESOURCE(hcamcorder); - - /* prepare resource manager for H/W encoder */ - if (hcamcorder->video_encoder_resource == NULL) { - ret = mm_resource_manager_mark_for_acquire(hcamcorder->resource_manager, - MM_RESOURCE_MANAGER_RES_TYPE_VIDEO_ENCODER, - MM_RESOURCE_MANAGER_RES_VOLUME_FULL, - &hcamcorder->video_encoder_resource); - if (ret != MM_RESOURCE_MANAGER_ERROR_NONE) { - MMCAM_LOG_ERROR("could not prepare for encoder resource"); - ret = MM_ERROR_RESOURCE_INTERNAL; - _MMCAMCORDER_UNLOCK_RESOURCE(hcamcorder); - goto _ERR_CAMCORDER_VIDEO_COMMAND; - } - } else { - MMCAM_LOG_INFO("encoder already acquired"); - } - - /* acquire resources */ - ret = mm_resource_manager_commit(hcamcorder->resource_manager); - if (ret != MM_RESOURCE_MANAGER_ERROR_NONE) { - MMCAM_LOG_ERROR("could not acquire resources"); - ret = MM_ERROR_RESOURCE_INTERNAL; - _MMCAMCORDER_UNLOCK_RESOURCE(hcamcorder); - goto _ERR_CAMCORDER_VIDEO_COMMAND; - } - - _MMCAMCORDER_UNLOCK_RESOURCE(hcamcorder); -#endif /* _MMCAMCORDER_MM_RM_SUPPORT */ - /* init record_dual_stream */ info->record_dual_stream = FALSE; -- 2.34.1