Fix crash on device state changed callback and update recorder_test code
[platform/core/api/recorder.git] / test / recorder_test.c
index 7a22a0c..0b81fa6 100644 (file)
@@ -627,7 +627,7 @@ static void print_menu()
                g_print("\n\t=======================================\n");
                g_print("\t   RECORDER_TESTSUIT\n");
                g_print("\t=======================================\n");
-               g_print("\t   '1' Video Capture - Rear Camera\n");
+               g_print("\t   '1' Video Recording - Rear Camera\n");
                g_print("\t   '2' Audio Recording - MIC\n");
                g_print("\t   '3' Audio Recording - MODEM\n");
                g_print("\t   '4' Add recorder device changed callback\n");
@@ -750,6 +750,15 @@ static void main_menu(gchar buf)
                                break;
 
                        case 'b': /* back */
+                               recorder_unprepare(hcamcorder->recorder);
+                               recorder_destroy(hcamcorder->recorder);
+                               hcamcorder->recorder = NULL;
+
+                               if (hcamcorder->camera) {
+                                       camera_destroy(hcamcorder->camera);
+                                       hcamcorder->camera = NULL;
+                               }
+
                                hcamcorder->menu_state = MENU_STATE_INIT;
                                print_menu();
                                break;
@@ -825,6 +834,10 @@ static void main_menu(gchar buf)
                                break;
 
                        case 'b': /* back */
+                               recorder_unprepare(hcamcorder->recorder);
+                               recorder_destroy(hcamcorder->recorder);
+                               hcamcorder->recorder = NULL;
+
                                hcamcorder->menu_state = MENU_STATE_INIT;
                                print_menu();
                                break;
@@ -1543,14 +1556,6 @@ static gboolean mode_change(gchar buf)
                        return FALSE;
                }
 
-               err = camera_start_preview(hcamcorder->camera);
-               if (err != CAMERA_ERROR_NONE) {
-                       g_print("start preview failed 0x%d\n", err);
-                       camera_destroy(hcamcorder->camera);
-                       hcamcorder->camera = NULL;
-                       return FALSE;
-               }
-
                err = recorder_create_videorecorder(hcamcorder->camera, &hcamcorder->recorder);
                if (err != RECORDER_ERROR_NONE) {
                        g_print("video recorder create failed 0x%d\n", err);