2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
21 #include <media/camera.h>
24 #include <media/recorder.h>
26 #define MY_ASSERT( fun , test , msg ) \
29 dts_fail(fun , msg ); \
32 static GMainLoop *g_mainloop = NULL;
33 static GThread *event_thread;
37 static void utc_media_recorder_attribute_test(void);
38 static void utc_media_recorder_state_change_test(void);
39 static void utc_media_recorder_recoding_status_cb_test(void);
40 static void utc_media_recorder_limit_cb_test(void);
43 static void startup(void);
44 static void cleanup(void);
46 void (*tet_startup)(void) = startup;
47 void (*tet_cleanup)(void) = cleanup;
50 struct tet_testlist tet_testlist[] = {
51 { utc_media_recorder_attribute_test, 1 },
52 { utc_media_recorder_state_change_test , 2 },
53 { utc_media_recorder_recoding_status_cb_test , 3 },
54 { utc_media_recorder_limit_cb_test , 4 },
59 gpointer GmainThread(gpointer data){
60 g_mainloop = g_main_loop_new (NULL, 0);
61 g_main_loop_run (g_mainloop);
67 static void startup(void)
69 if( !g_thread_supported() )
75 event_thread = g_thread_create(GmainThread, NULL, 1, &gerr);
78 static void cleanup(void)
80 g_main_loop_quit (g_mainloop);
81 g_thread_join(event_thread);
87 void record_state_cb(recorder_state_e previous , recorder_state_e current , int by_asm, void *user_data){
88 char * state_table[] = {
89 "MEDIARECORDER_STATE_NONE", /**< recorder is not created yet */
90 "MEDIARECORDER_STATE_CREATED", /**< recorder is created, but not initialized yet */
91 "MEDIARECORDER_STATE_READY", /**< ready to record if video recorder is playing preview */
92 "MEDIARECORDER_STATE_RECORDING", /**< While recording */
93 "MEDIARECORDER_STATE_PAUSED", /**< Pause recording */
94 "MEDIARECORDER_STATE_NUM" /**< Number of recorder states */
96 printf("%s\n", state_table[current]);
99 int recording_limit_size_test(recorder_h recorder){
104 printf("-------------limit size test----------------------\n");
105 printf("-nagative test\n");
106 ret = recorder_attr_set_size_limit(recorder, -1);
114 ret = recorder_attr_set_size_limit(recorder, 0);
121 ret = recorder_attr_get_size_limit(recorder,&int_value);
129 printf("-1212 set test\n");
130 ret = recorder_attr_set_size_limit(recorder, 1212);
137 ret = recorder_attr_get_size_limit(recorder,&int_value);
138 if( int_value != 1212){
147 int recording_time_limit_test(recorder_h recorder){
152 printf("-------------limit time test----------------------\n");
154 ret = recorder_attr_set_time_limit(recorder, -1);
162 ret = recorder_attr_set_time_limit(recorder, 0);
169 ret = recorder_attr_get_time_limit(recorder,&int_value);
177 printf("-1212 set test\n");
178 ret = recorder_attr_set_time_limit(recorder, 1212);
185 ret = recorder_attr_get_time_limit(recorder,&int_value);
186 if( int_value != 1212){
196 int fileformat_test_fail = 0;
197 bool _file_format_test_cb(recorder_file_format_e format, void *user_data){
199 recorder_h recorder = (recorder_h)user_data;
200 recorder_file_format_e get_format;
201 ret = recorder_set_file_format(recorder, format);
202 recorder_get_file_format(recorder, &get_format);
204 if( get_format != format){
206 fileformat_test_fail++;
213 int fileformat_test(recorder_h recorder){
214 fileformat_test_fail = 0;
215 printf("----------------file format test ------------------\n");
216 recorder_foreach_supported_file_format(recorder, _file_format_test_cb, recorder);
217 return -fileformat_test_fail;
220 int videoencoder_test_fail = 0;
221 bool _video_encoder_test_cb(recorder_video_codec_e codec, void *user_data){
223 recorder_h recorder = (recorder_h)user_data;
224 recorder_video_codec_e get_codec;
225 ret = recorder_set_video_encoder(recorder, codec);
226 recorder_get_video_encoder(recorder, &get_codec);
229 if( get_codec != codec){
231 videoencoder_test_fail++;
238 int video_encoder_test(recorder_h recorder){
239 videoencoder_test_fail = 0;
240 printf("----------------video encorder test ------------------\n");
241 recorder_foreach_supported_video_encoder(recorder, _video_encoder_test_cb, recorder);
242 return -videoencoder_test_fail;
245 int audioencoder_test_fail = 0;
246 bool _audio_encoder_test_cb(recorder_audio_codec_e codec, void *user_data){
248 recorder_h recorder = (recorder_h)user_data;
249 recorder_audio_codec_e get_codec;
250 ret = recorder_set_audio_encoder(recorder, codec);
251 recorder_get_audio_encoder(recorder, &get_codec);
254 if( get_codec != codec){
256 audioencoder_test_fail++;
263 int audio_encoder_test(recorder_h recorder){
264 audioencoder_test_fail = 0;
265 printf("----------------audio encorder test ------------------\n");
266 recorder_foreach_supported_audio_encoder(recorder, _audio_encoder_test_cb, recorder);
267 return -audioencoder_test_fail;
270 int recording_audio_device_test(recorder_h recorder)
274 recorder_audio_device_e int_value;
276 printf("-------------audio device test----------------------\n");
277 printf("-nagative test\n");
278 ret = recorder_attr_set_audio_device (recorder, -1);
285 printf("-RECORDER_AUDIO_DEVICE_MIC test\n");
286 ret = recorder_attr_set_audio_device(recorder, RECORDER_AUDIO_DEVICE_MIC);
293 ret = recorder_attr_get_audio_device(recorder,&int_value);
294 if( int_value != RECORDER_AUDIO_DEVICE_MIC){
301 printf("-RECORDER_AUDIO_DEVICE_MODEM set test\n");
302 ret = recorder_attr_set_audio_device(recorder, RECORDER_AUDIO_DEVICE_MODEM );
309 ret = recorder_attr_get_audio_device(recorder,&int_value);
310 if( int_value != RECORDER_AUDIO_DEVICE_MODEM){
319 int recording_samplerate_test(recorder_h recorder){
324 printf("-------------samplerate test----------------------\n");
326 ret = recorder_attr_set_audio_samplerate(recorder, -1);
333 printf("-44100 test\n");
334 ret = recorder_attr_set_audio_samplerate(recorder, 44100);
341 ret = recorder_attr_get_audio_samplerate(recorder,&int_value);
342 if( int_value != 44100){
349 printf("-1212 set test\n");
350 ret = recorder_attr_set_audio_samplerate(recorder, 1212);
357 ret = recorder_attr_get_audio_samplerate(recorder,&int_value);
358 if( int_value != 1212){
369 int recording_audio_encoder_bitrate_test(recorder_h recorder){
374 printf("-------------audio encoder bitrate test----------------------\n");
375 printf("-negative test\n");
376 ret = recorder_attr_set_audio_encoder_bitrate (recorder, -2);
383 printf("-12200 test\n");
384 ret = recorder_attr_set_audio_encoder_bitrate (recorder, 12200);
391 ret = recorder_attr_get_audio_encoder_bitrate (recorder,&int_value);
392 if( int_value != 12200){
399 printf("-288000 set test\n");
400 ret = recorder_attr_set_audio_encoder_bitrate (recorder, 288000 );
407 ret = recorder_attr_get_audio_encoder_bitrate (recorder,&int_value);
408 if( int_value != 288000 ){
414 printf("-1212 set test\n");
415 ret = recorder_attr_set_audio_encoder_bitrate (recorder, 1212 );
422 ret = recorder_attr_get_audio_encoder_bitrate (recorder,&int_value);
423 if( int_value != 1212 ){
432 int recording_video_encoder_bitrate_test(recorder_h recorder){
437 printf("-------------video encoder bitrate test----------------------\n");
438 printf("-negative test\n");
439 ret = recorder_attr_set_video_encoder_bitrate (recorder, -2);
446 printf("-12200 test\n");
447 ret = recorder_attr_set_video_encoder_bitrate (recorder, 12200);
454 ret = recorder_attr_get_video_encoder_bitrate (recorder,&int_value);
455 if( int_value != 12200){
462 printf("-288000 set test\n");
463 ret = recorder_attr_set_video_encoder_bitrate (recorder, 288000 );
470 ret = recorder_attr_get_video_encoder_bitrate (recorder,&int_value);
471 if( int_value != 288000 ){
477 printf("-1212 set test\n");
478 ret = recorder_attr_set_video_encoder_bitrate (recorder, 1212 );
485 ret = recorder_attr_get_video_encoder_bitrate (recorder,&int_value);
486 if( int_value != 1212 ){
501 recorder_state_e state;
504 void _state_change_test_cb(recorder_state_e previous, recorder_state_e current, bool by_asm, void *user_data){
505 state_change_data * data = (state_change_data*)user_data;
506 if( current == RECORDER_STATE_READY )
507 data->isready = true;
508 if( current == RECORDER_STATE_RECORDING )
509 data->isrecording = true;
510 if( current == RECORDER_STATE_PAUSED )
511 data->ispaused = true;
513 data->state = current;
515 //printf("state %d\n",current);
519 void utc_media_recorder_state_change_test(void){
521 state_change_data data;
523 recorder_create_audiorecorder(&recorder);
524 data.iscalled = false;
525 data.isready = false;
526 data.isrecording = false;
527 data.ispaused = false;
529 printf("-------------------------recorder state change test -------------------\n");
530 recorder_set_state_changed_cb(recorder, _state_change_test_cb, &data);
531 recorder_set_file_format(recorder, RECORDER_FILE_FORMAT_AMR);
532 recorder_prepare(recorder);
533 ret = recorder_start(recorder);
535 ret = recorder_pause(recorder);
536 ret =recorder_commit(recorder);
539 if( data.isready && data.isrecording && data.ispaused && data.state == RECORDER_STATE_READY ){
543 printf("FAIL data.isready %d, data.isrecording %d, data.ispaused %d, data.state %d \n", data.isready , data.isrecording , data.ispaused , data.state );
547 recorder_unprepare(recorder);
548 recorder_destroy(recorder);
551 MY_ASSERT(__func__, ret == 0 , "Fail state change test");
552 dts_pass(__func__, "PASS");
561 void _recording_status_test_cb(int elapsed_time, int file_size, void *user_data){
562 recording_result *result = (recording_result*)user_data;
563 result->elapsed_time = elapsed_time;
564 result->file_size = file_size;
568 void utc_media_recorder_recoding_status_cb_test(void){
570 recording_result result;
573 printf("--------------recording status cb test-------------------\n");
574 recorder_create_audiorecorder(&recorder);
575 recorder_set_recording_status_cb(recorder,_recording_status_test_cb, &result);
576 recorder_set_file_format(recorder, RECORDER_FILE_FORMAT_AMR);
577 recorder_prepare(recorder);
578 ret = recorder_start(recorder);
579 result.elapsed_time = 0;
580 result.file_size = 0;
582 ret = recorder_cancel(recorder);
583 ret =recorder_unprepare(recorder);
584 ret =recorder_destroy(recorder);
585 if( result.elapsed_time > 0 && result.file_size > 0){
587 dts_pass(__func__, "PASS");
590 dts_fail(__func__, "status cb Fail");
595 void utc_media_recorder_attribute_test(void){
599 ret = recorder_create_audiorecorder(&recorder);
600 fail = recording_limit_size_test(recorder);
601 fail +=recording_time_limit_test(recorder);
602 fail +=fileformat_test(recorder);
603 fail +=video_encoder_test(recorder);
604 fail +=audio_encoder_test(recorder);
605 fail +=recording_audio_device_test(recorder);
606 fail +=recording_samplerate_test(recorder);
607 fail +=recording_audio_encoder_bitrate_test(recorder);
608 fail +=recording_video_encoder_bitrate_test(recorder);
609 MY_ASSERT(__func__, fail == 0 , "Fail recorder attribute");
610 dts_pass(__func__, "PASS");
615 void _recording_status_cb2(int elapsed_time, int file_size, void *user_data){
616 //printf("elapsed time :%d , file_size :%d\n", elapsed_time , file_size);
620 void _recording_limited_reached_cb(recorder_recording_limit_type_e type, void *user_data){
621 printf("limited!! %d\n", type);
622 int *ischeck = (int*)user_data;
627 void utc_media_recorder_limit_cb_test(void){
631 recorder_state_e state;
632 recorder_create_audiorecorder(&recorder);
633 printf("------------------------limit cb test -------------------------\n");
634 //recorder_set_state_change_cb(recorder, record_state_cb, NULL);
635 recorder_set_recording_status_cb(recorder, _recording_status_cb2, NULL);
636 recorder_set_recording_limit_reached_cb(recorder, _recording_limited_reached_cb, &ischeck);
637 recorder_set_file_format(recorder, RECORDER_FILE_FORMAT_AMR);
638 recorder_prepare(recorder);
640 recorder_get_state(recorder, &state);
643 printf("-time limit test\n");
644 recorder_attr_set_time_limit(recorder, 2);
645 recorder_start(recorder);
647 recorder_cancel(recorder);
656 printf("-time unlimit test\n");
657 //recorder_unready(recorder);
658 recorder_attr_set_time_limit(recorder, 0);
659 //recorder_ready(recorder);
661 recorder_start(recorder);
664 recorder_cancel(recorder);
673 printf("-size limit test\n");
675 recorder_attr_set_size_limit(recorder, 2);
676 recorder_start(recorder);
678 recorder_cancel(recorder);
687 printf("-size unlimit test\n");
689 recorder_attr_set_size_limit(recorder, 0);
690 recorder_start(recorder);
692 recorder_cancel(recorder);
702 recorder_unprepare(recorder);
703 recorder_destroy(recorder);
705 MY_ASSERT(__func__, ret == 0 , "fail limit cb");
706 dts_pass(__func__, "PASS");