Return RECORDER_STATE_READY for recorder_get_state while destroying pipeline 26/119226/1
authorJeongmo Yang <jm80.yang@samsung.com>
Wed, 15 Mar 2017 23:29:41 +0000 (08:29 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Thu, 16 Mar 2017 05:12:48 +0000 (14:12 +0900)
[Version] 0.2.37
[Profile] Common
[Issue Type] Update
[Dependency module] N/A
[Test] [M(T) - Boot=(OK), sdb=(OK), Home=(OK), Touch=(OK), Version=tizen-3.0-mobile_20170315.2]

Change-Id: Ibbece968818be75c1714a117041373e20f302c28
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
legacy/src/legacy_recorder.c
packaging/mmsvc-recorder.spec

index 405e8e0..74d8f1b 100644 (file)
@@ -193,7 +193,7 @@ int __convert_recorder_error_code(const char *func, int code)
 }
 
 
-static recorder_state_e __recorder_state_convert(MMCamcorderStateType mm_state)
+static recorder_state_e __recorder_state_convert(MMCamcorderStateType mm_state, MMCamcorderStateType mm_old_state)
 {
        recorder_state_e state = RECORDER_STATE_NONE;
        switch (mm_state) {
@@ -204,7 +204,13 @@ static recorder_state_e __recorder_state_convert(MMCamcorderStateType mm_state)
                state = RECORDER_STATE_CREATED;
                break;
        case MM_CAMCORDER_STATE_READY:
-               state = RECORDER_STATE_CREATED;
+               if (mm_old_state == MM_CAMCORDER_STATE_PREPARE) {
+                       state = RECORDER_STATE_READY;
+                       LOGW("destroying pipeline now");
+               } else {
+                       state = RECORDER_STATE_CREATED;
+                       LOGW("preparing pipeline now");
+               }
                break;
        case MM_CAMCORDER_STATE_PREPARE:
                state = RECORDER_STATE_READY;
@@ -247,7 +253,7 @@ static int __mm_recorder_msg_cb(int message, void *param, void *user_data)
                static int interrupt_state = -1;
 
                previous_state = handle->state;
-               handle->state = __recorder_state_convert(m->state.current);
+               handle->state = __recorder_state_convert(m->state.current, m->state.previous);
                recorder_policy_e policy = RECORDER_POLICY_NONE;
                if (message == MM_MESSAGE_CAMCORDER_STATE_CHANGED_BY_ASM) {
                        switch (m->state.code) {
@@ -700,7 +706,8 @@ int legacy_recorder_create_audiorecorder(recorder_h *recorder)
 int legacy_recorder_get_state(recorder_h recorder, recorder_state_e *state)
 {
        int ret = MM_ERROR_NONE;
-       MMCamcorderStateType mmstate;
+       MMCamcorderStateType mm_state = MM_CAMCORDER_STATE_NONE;
+       MMCamcorderStateType mm_old_state = MM_CAMCORDER_STATE_NONE;
 
        if (recorder == NULL) {
                LOGE("NULL pointer handle");
@@ -713,11 +720,11 @@ int legacy_recorder_get_state(recorder_h recorder, recorder_state_e *state)
 
        recorder_s *handle = (recorder_s*)recorder;
 
-       ret = mm_camcorder_get_state(handle->mm_handle, &mmstate);
+       ret = mm_camcorder_get_state2(handle->mm_handle, &mm_state, &mm_old_state);
        if (ret != MM_ERROR_NONE)
                return __convert_recorder_error_code(__func__, ret);
 
-       *state = __recorder_state_convert(mmstate);
+       *state = __recorder_state_convert(mm_state, mm_old_state);
 
        return RECORDER_ERROR_NONE;
 }
index 73a18b7..c3c2a5f 100644 (file)
@@ -1,6 +1,6 @@
 Name:       mmsvc-recorder
 Summary:    A Recorder module for muse server
-Version:    0.2.36
+Version:    0.2.37
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0