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.
20 #include <media/camera.h>
24 #define MY_ASSERT( fun , test , msg ) \
27 dts_fail(fun , msg ); \
30 static GMainLoop *g_mainloop = NULL;
31 static GThread *event_thread;
35 static void startup(void);
36 static void cleanup(void);
38 void (*tet_startup)(void) = startup;
39 void (*tet_cleanup)(void) = cleanup;
41 static void utc_media_camera_attribute_test(void);
42 static void utc_media_camera_preview_test(void);
43 static void utc_media_camera_state_change_test(void);
44 static void utc_media_camera_capture_test(void);
45 static void utc_media_capture_resolution_test(void);
47 struct tet_testlist tet_testlist[] = {
48 { utc_media_camera_attribute_test , 1 },
49 { utc_media_camera_preview_test, 2} ,
50 { utc_media_camera_state_change_test , 3 },
51 { utc_media_camera_capture_test , 4 },
52 { utc_media_capture_resolution_test , 5 },
57 gpointer GmainThread(gpointer data){
58 g_mainloop = g_main_loop_new (NULL, 0);
59 g_main_loop_run (g_mainloop);
65 static void startup(void)
67 if( !g_thread_supported() )
73 event_thread = g_thread_create(GmainThread, NULL, 1, &gerr);
76 static void cleanup(void)
78 g_main_loop_quit (g_mainloop);
79 g_thread_join(event_thread);
83 void state_cb(camera_state_e previous , camera_state_e current , int by_asm, void *user_data){
84 char *state_table[] ={
85 "CAMERA_STATE_NONE", /**< camera is not created yet */
86 "CAMERA_STATE_CREATED", /**< camera is created, but not initialized yet */
87 "CAMERA_STATE_PREVIEW", /**< camera is prepared to capture (Preview) */
88 "CAMERA_STATE_CAPTURING", /**< While capturing*/
89 "CAMERA_STATE_CAPTURED", /**< camera is now recording */
90 "CAMERA_STATE_NUM", /**< Number of camera states */
92 printf("%s\n", state_table[current]);
95 void capture_cb(void *image_buffer, int buffer_size, int width, int height, camera_pixel_format_e format, void *user_data)
97 char * filepath = (char*)user_data;
98 FILE* f = fopen(filepath, "w+");
100 if(f!=NULL && image_buffer !=NULL)
102 fwrite(image_buffer,1, buffer_size, f);
103 printf("capture(%s) %dx%d, buffer_size=%d\n", filepath, width, height, buffer_size);
114 int capture_complete(void *user_data){
115 camera_h cam = (camera_h)user_data;
117 printf("capture_complete!!\n");
119 camera_start_preview(cam);
125 bool g_preview_fps_pass;
126 bool _preview_fps_cb(camera_attr_fps_e fps, void *user_data){
128 camera_attr_fps_e get_fps;
129 camera_h camera = (camera_h) user_data;
130 ret = camera_attr_set_preview_fps(camera, fps);
131 printf("-set preview fps %d\tret=%x\n", fps, ret);
132 ret = camera_attr_get_preview_fps(camera, &get_fps);
133 printf("-get preview fps %d\tret=%x", get_fps, ret);
136 printf("\t\t\tpass\n");
138 printf("\t\t\tfail\n");
139 g_preview_fps_pass = false;
146 int preview_fps_test(camera_h camera)
148 g_preview_fps_pass = true;
149 printf("------------- PREVIEW FPS TEST -------------\n");
150 camera_attr_foreach_supported_fps(camera, _preview_fps_cb,(void*)camera);
151 printf("--------------------------------------------\n");
152 if( g_preview_fps_pass ){
153 printf("PREVIEW FPS TEST PASS\n\n");
156 printf("PREVIEW FPS TEST FAIL\n\n");
161 int image_quality_test(camera_h camera){
165 printf("------------- IMAGE QUALITY TEST -------------\n");
166 for( i =-10; i <= 110 ; i+=10){
168 ret1 = camera_attr_set_image_quality(camera,i);
169 printf("-set image quality %d\tret=%x\n",i,ret1);
170 ret2 = camera_attr_get_image_quality(camera,&quality);
171 printf("-get image quality %d\tret=%x",quality,ret2);
173 if( i >=0 && i <= 100){
175 printf("\t\t\tpass\n");
178 printf("\t\t\tfail\n");
181 }else{ //out of bound error
183 printf("\t\t\tfail\n");
186 printf("\t\t\tpass\n");
191 printf("--------------------------------------------\n");
192 printf("IMAGE QUALITY TEST PASS\n\n");
197 int zoom_test(camera_h camera){
202 printf("------------- ZOOM TEST -------------\n");
203 camera_attr_get_zoom_range(camera, &min, &max);
206 for( i = min ; i <= max; i+=5 ){
208 ret1 = camera_attr_set_zoom(camera, i);
209 printf("-set zoom %d\tret=%x\n",i, ret1);
210 ret2 = camera_attr_get_zoom(camera,&zoom);
211 printf("-get zoom %d\tret=%x",zoom, ret2);
213 if( i >=min && i <= max ){
215 printf("\t\t\tpass\n");
217 printf("\t\t\tfail\n");
222 printf("\t\t\tfail\n");
225 printf("\t\t\tpass\n");
229 printf("--------------------------------------------\n");
230 printf("ZOOM TEST PASS\n\n");
232 camera_attr_set_zoom(camera, 10);
236 bool g_af_test_pass ;
237 bool _af_mode_test_cb(camera_attr_af_mode_e mode, void *user_data){
238 camera_h camera = (camera_h) user_data;
240 camera_attr_af_mode_e get_mode;
241 ret= camera_attr_set_af_mode(camera, mode);
242 printf("-set af mode %d\tret=%x\n", mode, ret);
243 ret= camera_attr_get_af_mode(camera, &get_mode);
244 printf("-get af mode %d\tret=%x", get_mode, ret);
245 if( mode != get_mode ){
246 printf("\t\t\tFAIL\n");
247 g_af_test_pass= false;
250 printf("\t\t\tPASS\n");
254 int af_mode_test(camera_h camera){
255 g_af_test_pass = true;
256 camera_attr_foreach_supported_af_mode(camera, _af_mode_test_cb, camera);
257 return g_af_test_pass ? 0 : -1;
260 bool g_exposure_mode_pass;
261 bool _exposure_mode_test_cb(camera_attr_exposure_mode_e mode, void *user_data){
262 camera_h camera = (camera_h) user_data;
264 camera_attr_exposure_mode_e get_mode;
266 ret = camera_attr_set_exposure_mode(camera, mode);
267 printf("-set exposure mode %d\tret=%x\n", mode,ret);
268 ret = camera_attr_get_exposure_mode(camera,&get_mode);
269 printf("-get exposure mode %d\tret=%x\n", get_mode,ret);
270 if( get_mode != mode ){
271 g_exposure_mode_pass = false;
277 int exposure_mode_test(camera_h camera){
278 g_exposure_mode_pass = true;
279 camera_attr_foreach_supported_exposure_mode(camera,_exposure_mode_test_cb, camera);
280 camera_attr_set_exposure_mode(camera, CAMERA_ATTR_EXPOSURE_MODE_ALL);
282 return g_exposure_mode_pass ? 0 : -1;
285 int exposure_test(camera_h camera){
290 ret1 = camera_attr_get_exposure(camera, &default_value );
291 camera_attr_get_exposure_range(camera, &min, &max);
292 printf("exposure range %d~%d\n", min, max);
295 for( i = 1; i < 13 ; i++ ){
297 ret1 = camera_attr_set_exposure(camera, i );
298 printf("-set exposure %d\tret=%x\n",i,ret1);
299 ret2 = camera_attr_get_exposure(camera, &value);
300 printf("-get exposure %d\tret=%x\n",value,ret2);
301 if( i >= min && i <= max ){
304 }else{ // out of bound error
309 ret1 = camera_attr_set_exposure(camera, default_value );
313 bool g_iso_test_pass ;
314 bool _iso_test_cb(camera_attr_iso_e iso, void *user_data){
315 camera_h camera = (camera_h) user_data;
317 camera_attr_iso_e get_iso;
318 ret = camera_attr_set_iso(camera, iso);
319 printf("-set iso %d\tret=%x\n", iso, ret);
320 ret = camera_attr_get_iso(camera,&get_iso);
321 printf("-get iso %d\tret=%x\n", get_iso, ret);
322 if( get_iso != iso ){
323 g_iso_test_pass = false;
329 int iso_test(camera_h camera){
330 g_iso_test_pass = true;
331 camera_attr_foreach_supported_iso(camera,_iso_test_cb, camera);
332 return g_iso_test_pass ? 0 : -1;
335 int brightness_test(camera_h camera){
340 ret1 = camera_attr_get_brightness(camera, &default_value );
341 camera_attr_get_brightness_range(camera, &min, &max);
344 for( i = 1; i < 13 ; i++ ){
346 ret1 = camera_attr_set_brightness(camera, i );
347 printf("-set brightness %d\tret=%x\n",i,ret1);
348 ret2 = camera_attr_get_brightness(camera, &value);
349 printf("-get brightness %d\tret=%x\n",value,ret2);
351 if( i >= min && i <= max ){
354 }else{ // out of bound error
360 ret1 = camera_attr_set_brightness(camera, default_value );
365 int contrast_test(camera_h camera){
370 ret1 = camera_attr_get_contrast (camera, &default_value );
371 camera_attr_get_contrast_range(camera, &min, &max);
374 for( i = 1; i < 13 ; i++ ){
376 ret1 = camera_attr_set_contrast (camera, i );
377 printf("-set contrast %d\tret=%x\n",i,ret1);
378 ret2 = camera_attr_get_contrast (camera, &value);
379 printf("-get contrast %d\tret=%x\n",value,ret2);
381 if( i >= min && i <= max ){
384 }else{ // out of bound error
389 ret1 = camera_attr_set_contrast (camera, default_value );
393 bool _whitebalance_test_cb(camera_attr_whitebalance_e wb, void *user_data){
394 camera_h camera = (camera_h) user_data;
396 ret = camera_attr_set_whitebalance(camera, wb);
397 printf("-set whitebalance %d\tret=%x\n", wb,ret);
398 ret = camera_attr_get_whitebalance(camera,&wb);
399 printf("-get whitebalance %d\tret=%x\n", wb,ret);
404 int whitebalance_test(camera_h camera){
405 camera_attr_foreach_supported_whitebalance(camera, _whitebalance_test_cb ,camera);
409 bool _effect_test_cb(camera_attr_effect_mode_e effect, void *user_data){
410 camera_h camera = (camera_h) user_data;
412 ret = camera_attr_set_effect(camera, effect);
413 printf("-set effect %d\tret=%x\n", effect,ret);
414 ret = camera_attr_get_effect(camera,&effect);
415 printf("-get effect %d\tret=%x\n", effect,ret);
420 int effect_test(camera_h camera){
421 camera_attr_foreach_supported_effect(camera, _effect_test_cb, camera);
426 bool _scene_mode_test_cb (camera_attr_scene_mode_e mode, void *user_data){
427 camera_h camera = (camera_h) user_data;
429 ret = camera_attr_set_scene_mode(camera, mode);
430 printf("-set scene %d\tret=%x\n", mode,ret);
431 ret = camera_attr_get_scene_mode(camera,&mode);
432 printf("-get scene %d\tret=%x\n", mode,ret);
436 int scene_mode_test(camera_h camera){
437 camera_attr_foreach_supported_scene_mode(camera, _scene_mode_test_cb, camera);
441 int tag_enable_test(camera_h camera){
444 ret = camera_attr_enable_tag(camera, true);
445 printf("-set enable tag true\tret=%x\n",ret);
446 ret = camera_attr_is_enabled_tag(camera, &enable);
447 printf("-get enable tag %d\tret=%x\n",enable, ret);
451 int tag_orientation_test(camera_h camera){
453 camera_attr_tag_orientation_e orientation;
455 ret = camera_attr_set_tag_orientation(camera, 1);
456 printf("-set tag orientation %d\tret=%x\n",1 ,ret);
457 ret= camera_attr_get_tag_orientation(camera, &orientation);
458 printf("-get tag orientation %d\tret=%x\n",orientation,ret);
461 ret |= camera_attr_set_tag_orientation(camera, 2 );
462 printf("-set tag orientation %d\tret=%x\n",2 ,ret);
463 ret |= camera_attr_get_tag_orientation(camera, &orientation);
464 printf("-get tag orientation %d\tret=%x\n",orientation,ret);
466 ret |= camera_attr_set_tag_orientation(camera, 3 );
467 printf("-set tag orientation %d\tret=%x\n",3 ,ret);
468 ret |= camera_attr_get_tag_orientation(camera, &orientation);
469 printf("-get tag orientation %d\tret=%x\n",orientation,ret);
471 ret |= camera_attr_set_tag_orientation(camera, 4 );
472 printf("-set tag orientation %d\tret=%x\n",4 ,ret);
473 ret |= camera_attr_get_tag_orientation(camera, &orientation);
474 printf("-get tag orientation %d\tret=%x\n",orientation,ret);
476 ret |= camera_attr_set_tag_orientation(camera, 5 );
477 printf("-set tag orientation %d\tret=%x\n",5 ,ret);
478 ret |= camera_attr_get_tag_orientation(camera, &orientation);
479 printf("-get tag orientation %d\tret=%x\n",orientation,ret);
481 ret |= camera_attr_set_tag_orientation(camera, 6 );
482 printf("-set tag orientation %d\tret=%x\n",6 ,ret);
483 ret |= camera_attr_get_tag_orientation(camera, &orientation);
484 printf("-get tag orientation %d\tret=%x\n",orientation,ret);
486 ret |= camera_attr_set_tag_orientation(camera, 7 );
487 printf("-set tag orientation %d\tret=%x\n",7 ,ret);
488 ret |= camera_attr_get_tag_orientation(camera, &orientation);
489 printf("-get tag orientation %d\tret=%x\n",orientation,ret);
491 ret |= camera_attr_set_tag_orientation(camera, 8 );
492 printf("-set tag orientation %d\tret=%x\n",8 ,ret);
493 ret |= camera_attr_get_tag_orientation(camera, &orientation);
494 printf("-get tag orientation %d\tret=%x\n",orientation,ret);
496 return ret == 0 ? 0 : -1;
500 int tag_image_description_test(camera_h camera){
503 ret = camera_attr_set_tag_image_description(camera, "hello capi");
504 printf("-set tag image description \"hello capi\"\tret=%x\n", ret);
505 ret = camera_attr_get_tag_image_description(camera, &buffer);
506 printf("-get tag image description \"%s\"\tret=%x\n", buffer, ret);
508 ret = camera_attr_set_tag_image_description(camera, "12345678901234567890");
509 printf("-set tag image description \"12345678901234567890\"\tret=%x\n", ret);
510 ret = camera_attr_get_tag_image_description(camera, &buffer);
511 printf("-get tag image description \"%s\"\tret=%x\n", buffer, ret);
516 int tag_software_test(camera_h camera){
519 ret = camera_attr_set_tag_software(camera, "hello capi");
520 printf("-set tag software \"hello capi\"\tret=%x\n", ret);
521 ret = camera_attr_get_tag_software(camera, &buffer);
522 printf("-get tag software \"%s\"\tret=%x\n", buffer, ret);
525 ret = camera_attr_set_tag_software(camera, "12345678901234567890");
526 printf("-set tag software \"12345678901234567890\"\tret=%x\n", ret);
527 ret = camera_attr_get_tag_software(camera, &buffer);
528 printf("-get tag software \"%s\"\tret=%x\n", buffer, ret);
534 bool _flash_mode_test_cb(camera_attr_flash_mode_e mode, void *user_data){
535 camera_h camera = (camera_h) user_data;
537 ret = camera_attr_set_flash_mode(camera, mode);
538 printf("-set flash mode %d\tret=%x\n", mode,ret);
539 ret = camera_attr_get_flash_mode(camera,&mode);
540 printf("-get flash mode %d\tret=%x\n", mode,ret);
545 int flash_mode_test(camera_h camera){
546 camera_attr_foreach_supported_flash_mode(camera, _flash_mode_test_cb,camera);
550 int gps_test(camera_h camera){
555 ret = camera_attr_set_geotag(camera, lat, lng , alt );
558 ret = camera_attr_get_geotag(camera, &lat , &lng , &alt);
565 void utc_media_camera_attribute_test(void)
570 camera_create(CAMERA_DEVICE_CAMERA0 , &camera);
571 camera_set_display(camera, CAMERA_DISPLAY_TYPE_X11, GET_DISPLAY(preview_win));
572 camera_set_x11_display_rotation(camera, CAMERA_ROTATION_270);
573 printf("-----------------------create camera-----------------------------\n");
575 ret = preview_fps_test(camera);
576 printf("preview_fps_test %d\n", ret);
577 ret += image_quality_test(camera);
578 printf("image_quality_test %d\n", ret);
580 ret2 = camera_start_preview(camera);
581 printf("--------------------------preview-started----------%x-------------------------\n", ret2);
582 ret += zoom_test(camera);
583 printf("zoom_test %d\n", ret);
584 ret += af_mode_test(camera);
585 printf("af_mode_test %d\n", ret);
586 ret += exposure_mode_test(camera);
587 printf("exposure_mode_test %d\n", ret);
588 ret += exposure_test(camera);
589 printf("exposure_test %d\n", ret);
590 ret += iso_test(camera);
591 printf("iso_test %d\n", ret);
592 ret += brightness_test(camera);
593 printf("brightness_test %d\n", ret);
594 ret += contrast_test(camera);
595 printf("contrast_test %d\n", ret);
596 ret += whitebalance_test(camera);
597 printf("whitebalance_test %d\n", ret);
598 ret += effect_test(camera);
599 printf("effect_test %d\n", ret);
600 ret += scene_mode_test(camera);
601 printf("scene_mode_test %d\n", ret);
602 ret += tag_enable_test(camera);
603 printf("tag_enable_test %d\n", ret);
604 ret += tag_orientation_test(camera);
605 printf("tag_orientation_test %d\n", ret);
606 ret += tag_image_description_test(camera);
607 printf("tag_image_description_test %d\n", ret);
608 ret += tag_software_test(camera);
609 printf("tag_software_test %d\n", ret);
610 ret += flash_mode_test(camera);
611 printf("flash_mode_test %d\n", ret);
612 ret += gps_test(camera);
613 printf("gps_test %d\n", ret);
615 camera_stop_preview(camera);
616 camera_destroy(camera);
618 MY_ASSERT(__func__, ret == 0 , "error attribute get set test");
619 dts_pass(__func__, "PASS");
626 camera_pixel_format_e in_format;
629 } camera_preview_test_s;
631 void _camera_preview_test_cb(void *stream_buffer, int buffer_size, int width, int height, camera_pixel_format_e format, void *user_data){
632 camera_preview_test_s * data = (camera_preview_test_s*)user_data;
633 data->iscalled = true;
634 if( format == data->in_format )
639 bool _preview_format_test_cb(camera_pixel_format_e format, void *user_data){
640 int *table = (int*)user_data;
646 void utc_media_camera_preview_test(void)
651 camera_preview_test_s preview_test_data;
652 int enable_preview_format[CAMERA_PIXEL_FORMAT_JPEG+1] = {0,};
655 camera_create(CAMERA_DEVICE_CAMERA0 , &camera);
656 camera_set_display(camera, CAMERA_DISPLAY_TYPE_X11, GET_DISPLAY(preview_win));
657 camera_set_x11_display_rotation(camera, CAMERA_ROTATION_270);
658 camera_set_preview_cb(camera, _camera_preview_test_cb , &preview_test_data);
660 ret = camera_foreach_supported_preview_format(camera, _preview_format_test_cb,enable_preview_format);
662 printf("-----------------------PREVIEW FORMAT TEST-----------------------------\n");
664 for(i =0; i<= CAMERA_PIXEL_FORMAT_JPEG ; i++){
665 if( enable_preview_format[i] ){
666 preview_test_data.in_format = i;
667 preview_test_data.camera = camera;
668 preview_test_data.iscalled = false;
669 preview_test_data.result = false;
670 camera_set_preview_format(camera, i);
671 printf("-------------PREVIEW FORMAT %d TEST--------------------\n", i);
672 camera_start_preview(camera);
674 camera_stop_preview(camera);
675 if( preview_test_data.iscalled && preview_test_data.result ){
679 camera_destroy(camera);
680 dts_fail("CAMERA_PREVIEW_TEST", "preview cb is not called");
687 camera_destroy(camera);
689 dts_pass(__func__,"PASS");
701 camera_state_e state;
704 void _state_change_test_cb(camera_state_e previous , camera_state_e current , bool by_asm, void *user_data){
705 state_change_data * data = (state_change_data*)user_data;
706 data->iscalled = true;
707 if( current == CAMERA_STATE_PREVIEW )
708 data->ispreviewed = true;
709 if( current == CAMERA_STATE_CAPTURED )
710 data->iscaptured = true;
711 if( current == CAMERA_STATE_CAPTURING )
712 data->iscapturing = true;
713 data->state = current;
716 void _capture_test_cb(camera_image_data_s* image, camera_image_data_s* postview, camera_image_data_s* thumbnail, void *user_data){
721 void utc_media_camera_state_change_test(void){
723 state_change_data data;
726 camera_create(CAMERA_DEVICE_CAMERA0 , &camera);
727 camera_set_display(camera, CAMERA_DISPLAY_TYPE_X11, GET_DISPLAY(preview_win));
728 camera_set_x11_display_rotation(camera, CAMERA_ROTATION_270);
729 camera_set_state_changed_cb(camera, _state_change_test_cb, &data);
731 printf("------------------- PREVIEW STATE Change test------------------\n");
732 data.iscalled = false;
734 camera_start_preview(camera);
736 if( data.iscalled && data.state == CAMERA_STATE_PREVIEW )
744 printf("------------------- CREATED STATE Change test------------------\n");
746 data.iscalled = false;
748 camera_stop_preview(camera);
750 if( data.iscalled && data.state == CAMERA_STATE_CREATED)
758 printf("------------------- CAPTURED STATE Change test------------------\n");
760 camera_start_preview(camera);
762 data.iscalled = false;
764 data.iscaptured = false;
765 data.ispreviewed= false;
766 data.iscapturing = false;
767 camera_start_capture(camera, _capture_test_cb, NULL, NULL);
769 if( data.iscalled && data.iscaptured && data.iscapturing && data.state == CAMERA_STATE_CAPTURED)
776 camera_start_preview(camera);
777 camera_stop_preview(camera);
778 camera_destroy(camera);
779 MY_ASSERT(__func__, ispass , "camera_state_change_test FAIL");
780 dts_pass(__func__, "PASS");
784 void _capture_test2_cb(camera_image_data_s* image, camera_image_data_s* postview, camera_image_data_s* thumbnail, void *user_data){
785 int *iscalled = (int*)user_data;
789 void utc_media_camera_capture_test(void){
792 camera_state_e state ;
796 printf("---------------------CAPTURE Test -----------------\n");
798 camera_create(CAMERA_DEVICE_CAMERA0 , &camera);
799 camera_set_display(camera, CAMERA_DISPLAY_TYPE_X11, GET_DISPLAY(preview_win));
800 camera_set_x11_display_rotation(camera, CAMERA_ROTATION_270);
801 camera_start_preview(camera);
803 camera_start_capture(camera, _capture_test2_cb,NULL, &iscalled);
805 while( timeout-- >0 && camera_get_state(camera, &state ) == 0 && state != CAMERA_STATE_CAPTURED)
816 camera_start_preview(camera);
817 camera_stop_preview(camera);
818 camera_destroy(camera);
820 MY_ASSERT(__func__, ispass,"capture test fail");
821 dts_pass(__func__, "PASS");
834 bool capture_resolution_test_cb(int width, int height, void *user_data){
835 resolution_stack *data = (resolution_stack*)user_data;
836 data->width[data->count] = width;
837 data->height[data->count] = height;
840 printf("%dx%d\n",width, height);
850 void _capture_test3_cb(camera_image_data_s* image, camera_image_data_s* postview, camera_image_data_s* thumbnail, void *user_data){
851 preview_test_data *data = (preview_test_data*)user_data;
852 if( data->expected_height == image->height && data->expected_width == image->width )
858 void utc_media_capture_resolution_test(void){
860 resolution_stack resolution_list;
862 camera_state_e state ;
865 camera_create(CAMERA_DEVICE_CAMERA0 , &camera);
866 camera_set_display(camera, CAMERA_DISPLAY_TYPE_X11, GET_DISPLAY(preview_win));
867 camera_set_x11_display_rotation(camera, CAMERA_ROTATION_270);
868 resolution_list.count = 0;
869 camera_foreach_supported_capture_resolution(camera, capture_resolution_test_cb, &resolution_list);
870 //camera_set_state_changed_cb(camera, state_cb, NULL);
872 printf("-----------------CAPTURE RESOLUTION TEST---------------------\n");
874 for(i =0 ; i < resolution_list.count ; i++){
875 preview_test_data data;
877 data.expected_width = resolution_list.width[i];
878 data.expected_height = resolution_list.height[i];
881 printf("-----------------CAPTURE RESOLUTION (%dx%d)---------------------\n",data.expected_width ,data.expected_height);
883 printf("resolution set test %x\n", (unsigned int)camera_set_capture_resolution(camera,data.expected_width ,data.expected_height));
885 camera_start_preview(camera);
887 camera_start_capture(camera, _capture_test3_cb, NULL , &data);
889 while( timeout-- > 0 && camera_get_state(camera, &state ) == 0 && state != CAMERA_STATE_CAPTURED ){
893 camera_start_preview(camera);
894 camera_stop_preview(camera);
903 MY_ASSERT(__func__,ret == 0, "capture resolution test fail");
904 dts_pass(__func__, "PASS");