From eca728593616eac92d7fd370cdf3685f3b0d01e1 Mon Sep 17 00:00:00 2001 From: Jeongmo Yang Date: Thu, 6 Oct 2016 15:24:36 +0900 Subject: [PATCH 1/1] Fix crash on device state changed callback and update recorder_test code 1. Fix crash - user_data from user is not set 2. Update recorder_test code - Video recording test is failed because of invalid API usage. - Fix typo [Version] 0.2.39 [Profile] Common [Issue Type] Bug fix [Dependency module] N/A [Dependency commit] N/A [Test] [M(T) - Boot=(OK), sdb=(OK), Home=(OK), Touch=(OK), Version=tizen-mobile_20161006.1] Change-Id: I63905d7e59ac2318b34132044139b6932bc3231d Signed-off-by: Jeongmo Yang --- packaging/capi-media-recorder.spec | 2 +- src/recorder.c | 1 + test/recorder_test.c | 23 ++++++++++++++--------- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/packaging/capi-media-recorder.spec b/packaging/capi-media-recorder.spec index cdd8f1d..aad428f 100644 --- a/packaging/capi-media-recorder.spec +++ b/packaging/capi-media-recorder.spec @@ -1,6 +1,6 @@ Name: capi-media-recorder Summary: A Recorder API -Version: 0.2.38 +Version: 0.2.39 Release: 0 Group: Multimedia/API License: Apache-2.0 diff --git a/src/recorder.c b/src/recorder.c index c8d52c2..869ccd1 100644 --- a/src/recorder.c +++ b/src/recorder.c @@ -3202,6 +3202,7 @@ int recorder_add_device_state_changed_cb(recorder_device_state_changed_cb callba info->id = ++g_rec_dev_state_changed_cb_id; info->callback = (void *)callback; + info->user_data = user_data; *cb_id = info->id; diff --git a/test/recorder_test.c b/test/recorder_test.c index 7a22a0c..0b81fa6 100644 --- a/test/recorder_test.c +++ b/test/recorder_test.c @@ -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); -- 2.7.4