[Release version 0.2.23] Add module initialize function 51/83151/1 accepted/tizen/common/20160811.145646 accepted/tizen/ivi/20160812.010630 accepted/tizen/mobile/20160812.010652 accepted/tizen/tv/20160812.010607 accepted/tizen/wearable/20160812.010533 submit/tizen/20160810.075454 submit/tizen/20160811.023523
authorJeongmo Yang <jm80.yang@samsung.com>
Tue, 9 Aug 2016 09:28:05 +0000 (18:28 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Tue, 9 Aug 2016 09:28:05 +0000 (18:28 +0900)
Change-Id: Ie2ae1bf27d4ee363d4c9728803765685e82d97d7
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
legacy/src/legacy_recorder.c
muse/CMakeLists.txt
muse/src/muse_recorder_dispatcher.c
packaging/mmsvc-recorder.spec

index b089ec0..3218202 100644 (file)
@@ -304,6 +304,7 @@ static int __mm_recorder_msg_cb(int message, void *param, void *user_data)
                case MM_ERROR_CAMCORDER_DEVICE_TIMEOUT:
                case MM_ERROR_CAMCORDER_DEVICE_WRONG_JPEG:
                        recorder_error = RECORDER_ERROR_DEVICE;
+                       LOGE("ERROR_DEVICE : 0x%x", m->code);
                        break;
                case MM_ERROR_CAMCORDER_GST_CORE:
                case MM_ERROR_CAMCORDER_GST_LIBRARY:
@@ -320,24 +321,31 @@ static int __mm_recorder_msg_cb(int message, void *param, void *user_data)
                case MM_ERROR_FILE_NOT_FOUND:
                case MM_ERROR_FILE_READ:
                        recorder_error = RECORDER_ERROR_INVALID_OPERATION;
+                       LOGE("INVALID_OPERATION : 0x%x", m->code);
                        break;
                case MM_ERROR_CAMCORDER_LOW_MEMORY:
                case MM_ERROR_CAMCORDER_MNOTE_MALLOC:
                        recorder_error = RECORDER_ERROR_OUT_OF_MEMORY;
+                       LOGE("OUT_OF_MEMORY : 0x%x", m->code);
                        break;
                case MM_ERROR_CAMCORDER_DEVICE_REG_TROUBLE:
                        recorder_error = RECORDER_ERROR_ESD;
+                       LOGE("ESD : 0x%x", m->code);
                        break;
                case MM_ERROR_OUT_OF_STORAGE:
                        recorder_error = RECORDER_ERROR_OUT_OF_STORAGE;
+                       LOGE("OUT_OF_STORAGE : 0x%x", m->code);
                        break;
                default:
                        recorder_error = RECORDER_ERROR_INVALID_OPERATION;
+                       LOGE("INVALID_OPERATION : 0x%x", m->code);
                        break;
                }
 
-               if (recorder_error != 0 && handle->user_cb[_RECORDER_EVENT_TYPE_ERROR])
+               if (handle->user_cb[_RECORDER_EVENT_TYPE_ERROR])
                        ((recorder_error_cb)handle->user_cb[_RECORDER_EVENT_TYPE_ERROR])(recorder_error, handle->state, handle->user_data[_RECORDER_EVENT_TYPE_ERROR]);
+               else
+                       LOGW("ERROR cb was not set");
                break;
        case MM_MESSAGE_CAMCORDER_CURRENT_VOLUME:
                if (handle->last_max_input_level < m->rec_volume_dB)
index 99449f0..d626f0f 100644 (file)
@@ -2,7 +2,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
 SET(service "muse")
 SET(submodule "recorder")
 
-SET(dependents "dlog mused mm-common glib-2.0")
+SET(dependents "dlog mused mm-common glib-2.0 gstreamer-1.0")
 SET(fw_name "${service}-${submodule}")
 
 PROJECT(${fw_name})
@@ -28,6 +28,7 @@ ENDIF("${ARCH}" STREQUAL "arm")
 
 ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
 ADD_DEFINITIONS("-DTIZEN_DEBUG")
+ADD_DEFINITIONS("-DLIBDIR=\"${LIBDIR}\"")
 
 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -Wl,--rpath=${LIB_INSTALL_DIR}")
 
index ad1e483..bf6b941 100644 (file)
@@ -29,6 +29,7 @@
 #include <muse_camera_internal.h>
 #include <mm_types.h>
 #include <dlog.h>
+#include <gst/gst.h>
 #include "legacy_recorder_internal.h"
 
 #ifdef LOG_TAG
@@ -1939,6 +1940,37 @@ int (*dispatcher[MUSE_RECORDER_API_MAX]) (muse_module_h module) = {
 /******************/
 /* cmd dispatcher */
 /******************/
+static int recorder_cmd_dispatcher_initialize(muse_module_h module)
+{
+       int item_count = 0;
+       int i = 0;
+       GstPlugin *plugin = NULL;
+
+       const char *load_list[] = {
+               LIBDIR"/gstreamer-1.0/libgstencodebin.so",
+       };
+
+       item_count = sizeof(load_list) / sizeof(load_list[0]);
+
+       LOGD("item count %d", item_count);
+
+       for (i = 0 ; i < item_count ; i++) {
+               plugin = gst_plugin_load_file(load_list[i], NULL);
+               if (plugin) {
+                       LOGD("%s loaded", load_list[i]);
+                       gst_object_unref(plugin);
+                       plugin = NULL;
+               } else {
+                       LOGW("failed to load %s", load_list[i]);
+               }
+       }
+
+       LOGD("done");
+
+       return MUSE_RECORDER_ERROR_NONE;
+}
+
+
 static int recorder_cmd_dispatcher_shutdown(muse_module_h module)
 {
        recorder_state_e state = RECORDER_STATE_NONE;
@@ -1984,7 +2016,9 @@ static int recorder_cmd_dispatcher_shutdown(muse_module_h module)
 }
 
 int (*cmd_dispatcher[MUSE_MODULE_COMMAND_MAX])(muse_module_h module) = {
-       NULL, /* MUSE_MODULE_COMMAND_INITIALIZE */
+       recorder_cmd_dispatcher_initialize, /* MUSE_MODULE_COMMAND_INITIALIZE */
        recorder_cmd_dispatcher_shutdown, /* MUSE_MODULE_COMMAND_SHUTDOWN */
        NULL, /* MUSE_MODULE_COMMAND_DEBUG_INFO_DUMP */
+       NULL, /* MUSE_MODULE_COMMAND_CREATE_SERVER_ACK */
+       NULL  /* MUSE_MODULE_COMMAND_RESOURCE_NOT_AVAILABLE */
 };
index 0d493e5..6a014cd 100644 (file)
@@ -1,11 +1,12 @@
 Name:       mmsvc-recorder
 Summary:    A Recorder module for muse server
-Version:    0.2.22
+Version:    0.2.23
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0
 Source0:    %{name}-%{version}.tar.gz
 BuildRequires:  cmake
+BuildRequires:  pkgconfig(gstreamer-1.0)
 BuildRequires:  pkgconfig(dlog)
 BuildRequires:  pkgconfig(mm-camcorder)
 BuildRequires:  pkgconfig(capi-base-common)
@@ -36,7 +37,7 @@ Development related files of a recorder module for muse server.
 
 %build
 MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
-%cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DFULLVER=%{version} -DMAJORVER=${MAJORVER}
+%cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DFULLVER=%{version} -DMAJORVER=${MAJORVER} -DLIBDIR=%{_libdir}
 make %{?jobs:-j%jobs}