16f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev/*
26f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan MalchevCopyright (c) 2012, The Linux Foundation. All rights reserved.
36f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
46f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan MalchevRedistribution and use in source and binary forms, with or without
56f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevmodification, are permitted provided that the following conditions are
66f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevmet:
76f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    * Redistributions of source code must retain the above copyright
86f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev      notice, this list of conditions and the following disclaimer.
96f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    * Redistributions in binary form must reproduce the above
106f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev      copyright notice, this list of conditions and the following
116f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev      disclaimer in the documentation and/or other materials provided
126f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev      with the distribution.
136f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    * Neither the name of The Linux Foundation nor the names of its
146f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev      contributors may be used to endorse or promote products derived
156f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev      from this software without specific prior written permission.
166f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
176f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan MalchevTHIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
186f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan MalchevWARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
196f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan MalchevMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
206f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan MalchevARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
216f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan MalchevBE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
226f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan MalchevCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
236f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan MalchevSUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
246f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan MalchevBUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
256f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan MalchevWHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
266f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan MalchevOR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
276f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan MalchevIF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
286f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev*/
296f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
306f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev#include <pthread.h>
316f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev#include "mm_camera_dbg.h"
326f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev#include <errno.h>
336f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev#include <sys/ioctl.h>
346f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev#include <sys/types.h>
356f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev#include <sys/stat.h>
366f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev#include <fcntl.h>
376f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev#include <poll.h>
386f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev#include "mm_qcamera_unit_test.h"
396f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
406f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev#define MM_QCAMERA_APP_UTEST_MAX_MAIN_LOOP 4
416f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev#define MM_QCAM_APP_TEST_NUM 128
426f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
436f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev#define MM_QCAMERA_APP_WAIT_TIME 1000000000
446f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
456f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevextern int system_dimension_set(int cam_id);
466f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevextern int stopPreview(int cam_id);
476f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevextern int takePicture_yuv(int cam_id);
486f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevextern int takePicture_rdi(int cam_id);
496f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevextern int startRdi(int cam_id);
506f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevextern int stopRdi(int cam_id);
516f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevextern int startStats(int cam_id);
526f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevextern int stopStats(int cam_id);
536f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
546f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
556f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev/*
566f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev* 1. open back
576f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev* 2. open front
586f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev* 3. start back
596f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev* 4. start front
606f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev* 5. stop back
616f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev* 6. stop front
626f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev* 7. close back
636f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev* 8. close front
646f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev* 9. take picture
656f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev* a. start recording
666f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev* b. stop recording
676f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev* c. take picture rdi
686f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev*/
696f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevstatic mm_app_tc_t mm_app_tc[MM_QCAM_APP_TEST_NUM];
706f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevstatic int num_test_cases = 0;
716f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevstruct test_case_params {
726f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev  uint16_t launch;
736f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev  uint16_t preview;
746f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev  uint16_t recording;
756f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev  uint16_t snapshot;
766f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev};
776f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
786f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev/*  Test case 12436857 :*/
796f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
806f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevint mm_app_dtc_0(mm_camera_app_t *cam_apps)
816f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev{
826f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int rc = MM_CAMERA_OK;
836f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int i,j;
846f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int result = 0;
856f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int front_camera = 1;
866f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int back_camera = 0;
876f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
886f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        printf("\n Verifying Preview on back Camera and RDI on Front camera 0...\n");
896f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL open back camera \n");
906f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(mm_app_open(back_camera) != MM_CAMERA_OK) {
916f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_open() back camera err=%d\n",__func__, rc);
926f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
936f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
946f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
956f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(system_dimension_set(back_camera) != MM_CAMERA_OK){
966f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
976f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
986f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
996f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
1006f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
1016f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL open front camera \n");
1026f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(mm_app_open(front_camera) != MM_CAMERA_OK) {
1036f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_open() front camera err=%d\n",__func__, rc);
1046f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
1056f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
1066f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
1076f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
1086f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(system_dimension_set(front_camera) != MM_CAMERA_OK){
1096f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
1106f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
1116f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
1126f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
1136f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
1146f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL start camera Rdi for front \n");
1156f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = startRdi(front_camera))) {
1166f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev               CDBG_ERROR("%s: back camera startPreview() err=%d\n", __func__, rc);
1176f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
1186f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
1196f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        mm_camera_app_wait();
1206f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        sleep(1);
1216f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
1226f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL start camera Preview for back \n");
1236f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = startPreview(back_camera))) {
1246f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s: startPreview() backcamera err=%d\n", __func__, rc);
1256f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
1266f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
1276f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        mm_camera_app_wait();
1286f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        sleep(1);
1296f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
1306f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL stop camera Rdi for front \n");
1316f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = stopRdi(front_camera))) {
1326f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s: startPreview() backcamera err=%d\n", __func__, rc);
1336f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
1346f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
1356f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        usleep(10*1000);
1366f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
1376f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL close front camera\n");
1386f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( mm_app_close(front_camera) != MM_CAMERA_OK) {
1396f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_close() err=%d\n",__func__, rc);
1406f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
1416f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
1426f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
1436f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        sleep(1);
1446f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL stop camera Preview for back \n");
1456f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = stopPreview(back_camera))) {
1466f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG("%s: startPreview() err=%d\n", __func__, rc);
1476f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
1486f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
1496f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        usleep(10*1000);
1506f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL close back camera \n");
1516f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( mm_app_close(back_camera) != MM_CAMERA_OK) {
1526f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_close() err=%d\n",__func__, rc);
1536f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
1546f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
1556f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
1566f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL end \n");
1576f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
1586f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevend:
1596f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(rc == 0) {
1606f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                printf("\nPassed\n");
1616f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }else{
1626f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                printf("\nFailed\n");
1636f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
1646f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG("%s:END, rc = %d\n", __func__, rc);
1656f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        return rc;
1666f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev}
1676f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
1686f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev/*  Test case 12436587 :*/
1696f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
1706f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevint mm_app_dtc_1(mm_camera_app_t *cam_apps)
1716f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev{
1726f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int rc = MM_CAMERA_OK;
1736f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int i,j;
1746f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int result = 0;
1756f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int front_camera = 1;
1766f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int back_camera = 0;
1776f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
1786f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        printf("\n Verifying Preview on back Camera and RDI on Front camera 1...\n");
1796f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL open back camera \n");
1806f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(mm_app_open(back_camera) != MM_CAMERA_OK) {
1816f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_open() back camera err=%d\n",__func__, rc);
1826f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
1836f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
1846f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
1856f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(system_dimension_set(back_camera) != MM_CAMERA_OK){
1866f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
1876f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
1886f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
1896f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
1906f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
1916f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL open front camera \n");
1926f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(mm_app_open(front_camera) != MM_CAMERA_OK) {
1936f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_open() front camera err=%d\n",__func__, rc);
1946f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
1956f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
1966f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
1976f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
1986f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(system_dimension_set(front_camera) != MM_CAMERA_OK){
1996f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
2006f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
2016f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
2026f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
2036f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
2046f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL start camera Rdi for front \n");
2056f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = startRdi(front_camera))) {
2066f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev               CDBG_ERROR("%s: back camera startPreview() err=%d\n", __func__, rc);
2076f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
2086f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
2096f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        mm_camera_app_wait();
2106f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        sleep(1);
2116f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
2126f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL start camera Preview for back \n");
2136f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
2146f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = startPreview(back_camera))) {
2156f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s: startPreview() backcamera err=%d\n", __func__, rc);
2166f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
2176f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
2186f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        mm_camera_app_wait();
2196f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        sleep(1);
2206f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL end \n");
2216f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
2226f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL stop camera Preview for front \n");
2236f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = stopRdi(front_camera))) {
2246f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s: startPreview() backcamera err=%d\n", __func__, rc);
2256f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
2266f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
2276f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        usleep(10*1000);
2286f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL stop camera Preview for back \n");
2296f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = stopPreview(back_camera))) {
2306f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG("%s: startPreview() err=%d\n", __func__, rc);
2316f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
2326f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
2336f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        usleep(10*1000);
2346f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL close front camera\n");
2356f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( mm_app_close(front_camera) != MM_CAMERA_OK) {
2366f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_close() err=%d\n",__func__, rc);
2376f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
2386f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
2396f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
2406f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL close back camera \n");
2416f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( mm_app_close(back_camera) != MM_CAMERA_OK) {
2426f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_close() err=%d\n",__func__, rc);
2436f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
2446f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
2456f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
2466f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
2476f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevend:
2486f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(rc == 0) {
2496f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                printf("\nPassed\n");
2506f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }else{
2516f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                printf("\nFailed\n");
2526f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
2536f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG("%s:END, rc = %d\n", __func__, rc);
2546f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        return rc;
2556f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev}
2566f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
2576f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev/*  Test case 12436578 :*/
2586f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
2596f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevint mm_app_dtc_2(mm_camera_app_t *cam_apps)
2606f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev{
2616f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int rc = MM_CAMERA_OK;
2626f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int i,j;
2636f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int result = 0;
2646f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int front_camera = 1;
2656f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int back_camera = 0;
2666f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
2676f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        printf("\n Verifying Preview on back Camera and RDI on Front camera 2...\n");
2686f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL open back camera \n");
2696f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(mm_app_open(back_camera) != MM_CAMERA_OK) {
2706f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_open() back camera err=%d\n",__func__, rc);
2716f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
2726f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
2736f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
2746f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(system_dimension_set(back_camera) != MM_CAMERA_OK){
2756f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
2766f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
2776f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
2786f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
2796f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
2806f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL open front camera \n");
2816f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(mm_app_open(front_camera) != MM_CAMERA_OK) {
2826f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_open() front camera err=%d\n",__func__, rc);
2836f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
2846f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
2856f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
2866f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
2876f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(system_dimension_set(front_camera) != MM_CAMERA_OK){
2886f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
2896f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
2906f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
2916f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
2926f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
2936f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL start camera Rdi for front \n");
2946f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = startRdi(front_camera))) {
2956f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev               CDBG_ERROR("%s: back camera startPreview() err=%d\n", __func__, rc);
2966f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
2976f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
2986f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        mm_camera_app_wait();
2996f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        sleep(1);
3006f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
3016f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL start camera Preview for back \n");
3026f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
3036f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = startPreview(back_camera))) {
3046f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s: startPreview() backcamera err=%d\n", __func__, rc);
3056f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
3066f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
3076f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        mm_camera_app_wait();
3086f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        sleep(1);
3096f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL end \n");
3106f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
3116f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL stop camera Preview for front \n");
3126f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = stopRdi(front_camera))) {
3136f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s: startPreview() backcamera err=%d\n", __func__, rc);
3146f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
3156f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
3166f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        usleep(10*1000);
3176f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL stop camera Preview for back \n");
3186f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = stopPreview(back_camera))) {
3196f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG("%s: startPreview() err=%d\n", __func__, rc);
3206f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
3216f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
3226f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        usleep(10*1000);
3236f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL close back camera \n");
3246f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( mm_app_close(back_camera) != MM_CAMERA_OK) {
3256f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_close() err=%d\n",__func__, rc);
3266f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
3276f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
3286f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
3296f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL close front camera\n");
3306f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( mm_app_close(front_camera) != MM_CAMERA_OK) {
3316f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_close() err=%d\n",__func__, rc);
3326f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
3336f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
3346f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
3356f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
3366f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevend:
3376f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(rc == 0) {
3386f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                printf("\nPassed\n");
3396f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }else{
3406f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                printf("\nFailed\n");
3416f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
3426f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG("%s:END, rc = %d\n", __func__, rc);
3436f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        return rc;
3446f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev}
3456f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
3466f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev/*  Test case 241395768 : 1357 * 3, This is performed three times
3476f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev* And for each iteration 9 is performed thrice */
3486f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
3496f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevint mm_app_dtc_3(mm_camera_app_t *cam_apps)
3506f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev{
3516f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int rc = MM_CAMERA_OK;
3526f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int i,j,k;
3536f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int result = 0;
3546f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int front_camera = 1;
3556f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int back_camera = 0;
3566f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
3576f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        printf("\n Verifying Preview and snapshot on back Camera and RDI on Front camera 3...\n");
3586f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL open front camera \n");
3596f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(mm_app_open(front_camera) != MM_CAMERA_OK) {
3606f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_open() front camera err=%d\n",__func__, rc);
3616f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
3626f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
3636f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
3646f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(system_dimension_set(front_camera) != MM_CAMERA_OK){
3656f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
3666f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
3676f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
3686f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
3696f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
3706f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL start camera Preview for front \n");
3716f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
3726f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = startRdi(front_camera))) {
3736f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s: startPreview() frontcamera err=%d\n", __func__, rc);
3746f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
3756f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
3766f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        mm_camera_app_wait();
3776f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        usleep(10*1000);
3786f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
3796f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        for (k = 0; k < MM_QCAMERA_APP_INTERATION ; k++) {
3806f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          CDBG_ERROR("DUAL open back camera %d \n",k);
3816f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          if(mm_app_open(back_camera) != MM_CAMERA_OK) {
3826f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                  CDBG_ERROR("%s:mm_app_open() back camera err=%d\n",__func__, rc);
3836f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                  rc = -1;
3846f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                  goto end;
3856f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          }
3866f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
3876f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          if(system_dimension_set(back_camera) != MM_CAMERA_OK){
3886f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                  CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
3896f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                  rc = -1;
3906f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                  goto end;
3916f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          }
3926f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
3936f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          CDBG_ERROR("DUAL start camera Preview for back \n");
3946f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          if( MM_CAMERA_OK != (rc = startPreview(back_camera))) {
3956f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                 CDBG_ERROR("%s: back camera startPreview() err=%d\n", __func__, rc);
3966f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                  goto end;
3976f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          }
3986f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
3996f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          for (j = 0; j < MM_QCAMERA_APP_INTERATION; j++) {
4006f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev              CDBG_ERROR("DUAL take picture for back \n");
4016f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev              if ( MM_CAMERA_OK != (rc = takePicture_yuv(back_camera))) {
4026f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                  CDBG_ERROR("%s: TakePicture() err=%d\n", __func__, rc);
4036f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                  break;
4046f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev              }
4056f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev              mm_camera_app_wait();
4066f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
4076f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          }
4086f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          usleep(10*1000);
4096f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          CDBG_ERROR("DUAL stop camera Preview for back \n");
4106f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          if( MM_CAMERA_OK != (rc = stopPreview(back_camera))) {
4116f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                  CDBG_ERROR("%s: stopPreview() backcamera err=%d\n", __func__, rc);
4126f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                  goto end;
4136f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          }
4146f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          usleep(10*1000);
4156f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
4166f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          CDBG_ERROR("DUAL close back camera\n");
4176f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          if( mm_app_close(back_camera) != MM_CAMERA_OK) {
4186f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                  CDBG_ERROR("%s:mm_app_close() err=%d\n",__func__, rc);
4196f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                  rc = -1;
4206f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                  goto end;
4216f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          }
4226f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          usleep(20*1000);
4236f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
4246f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL stop camera Preview for Rdi \n");
4256f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = stopRdi(front_camera))) {
4266f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG("%s: stopRdi() err=%d\n", __func__, rc);
4276f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
4286f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
4296f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        usleep(10*1000);
4306f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL close front camera \n");
4316f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( mm_app_close(front_camera) != MM_CAMERA_OK) {
4326f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_close() err=%d\n",__func__, rc);
4336f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
4346f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
4356f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
4366f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL end \n");
4376f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
4386f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevend:
4396f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(rc == 0) {
4406f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                printf("\nPassed\n");
4416f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }else{
4426f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                printf("\nFailed\n");
4436f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
4446f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG("%s:END, rc = %d\n", __func__, rc);
4456f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        return rc;
4466f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev}
4476f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
4486f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev/*  Test case 2413ab5768 : 1357 * 3, This is performed three times
4496f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev* And for each iteration ab is performed thrice */
4506f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
4516f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevint mm_app_dtc_4(mm_camera_app_t *cam_apps)
4526f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev{
4536f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int rc = MM_CAMERA_OK;
4546f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int i,j,k;
4556f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int result = 0;
4566f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int front_camera = 1;
4576f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int back_camera = 0;
4586f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
4596f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        printf("\n Verifying Preview on back Camera and RDI on Front camera 4...\n");
4606f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL open front camera \n");
4616f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(mm_app_open(front_camera) != MM_CAMERA_OK) {
4626f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_open() front camera err=%d\n",__func__, rc);
4636f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
4646f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
4656f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
4666f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(system_dimension_set(front_camera) != MM_CAMERA_OK){
4676f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
4686f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
4696f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
4706f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
4716f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
4726f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL start camera Preview for front \n");
4736f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
4746f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = startRdi(front_camera))) {
4756f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s: startPreview() frontcamera err=%d\n", __func__, rc);
4766f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
4776f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
4786f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        mm_camera_app_wait();
4796f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        usleep(20*1000);
4806f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
4816f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        for (k = 0; k < MM_QCAMERA_APP_INTERATION ; k++){
4826f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          CDBG_ERROR("DUAL open back camera %d \n",k);
4836f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          if(mm_app_open(back_camera) != MM_CAMERA_OK) {
4846f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                 CDBG_ERROR("%s:mm_app_open() back camera err=%d\n",__func__, rc);
4856f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                 rc = -1;
4866f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                 goto end;
4876f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          }
4886f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
4896f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          if(system_dimension_set(back_camera) != MM_CAMERA_OK){
4906f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                 CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
4916f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                 rc = -1;
4926f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                 goto end;
4936f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          }
4946f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
4956f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          CDBG_ERROR("DUAL start camera Preview for back \n");
4966f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          if( MM_CAMERA_OK != (rc = startPreview(back_camera))) {
4976f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s: back camera startPreview() err=%d\n", __func__, rc);
4986f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                 goto end;
4996f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          }
5006f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          usleep(30*1000);
5016f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
5026f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          for (j = 0; j < MM_QCAMERA_APP_INTERATION; j++) {
5036f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev             CDBG_ERROR("DUAL start camera record for back \n");
5046f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev             if ( MM_CAMERA_OK != (rc = startRecording(back_camera))) {
5056f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                 CDBG_ERROR("%s: StartVideorecording() err=%d\n", __func__, rc);
5066f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                 break;
5076f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev             }
5086f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
5096f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev             mm_camera_app_wait();
5106f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev             usleep(15*1000);
5116f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev             CDBG_ERROR("DUAL stop camera record for back \n");
5126f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev             if ( MM_CAMERA_OK != (rc = stopRecording(back_camera))) {
5136f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                 CDBG_ERROR("%s: Stopvideorecording() err=%d\n", __func__, rc);
5146f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                 break;
5156f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev             }
5166f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          }
5176f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          usleep(10*1000);
5186f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
5196f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          CDBG_ERROR("DUAL stop camera Preview for back \n");
5206f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          if( MM_CAMERA_OK != (rc = stopPreview(back_camera))) {
5216f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                 CDBG_ERROR("%s: stopPreview() backcamera err=%d\n", __func__, rc);
5226f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                 goto end;
5236f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          }
5246f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          usleep(10*1000);
5256f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
5266f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          CDBG_ERROR("DUAL close back camera\n");
5276f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          if( mm_app_close(back_camera) != MM_CAMERA_OK) {
5286f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                 CDBG_ERROR("%s:mm_app_close() err=%d\n",__func__, rc);
5296f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                 rc = -1;
5306f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                 goto end;
5316f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          }
5326f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          usleep(20*1000);
5336f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
5346f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL stop camera Preview for Rdi \n");
5356f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = stopRdi(front_camera))) {
5366f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG("%s: stopRdi() err=%d\n", __func__, rc);
5376f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
5386f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
5396f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        usleep(10*1000);
5406f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL close front camera \n");
5416f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( mm_app_close(front_camera) != MM_CAMERA_OK) {
5426f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_close() err=%d\n",__func__, rc);
5436f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
5446f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
5456f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
5466f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL end \n");
5476f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
5486f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevend:
5496f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(rc == 0) {
5506f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                printf("\nPassed\n");
5516f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }else{
5526f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                printf("\nFailed\n");
5536f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
5546f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG("%s:END, rc = %d\n", __func__, rc);
5556f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        return rc;
5566f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev}
5576f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
5586f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev/*  Test case 24135768 : 1357 * 3, This is performed three times*/
5596f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
5606f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevint mm_app_dtc_5(mm_camera_app_t *cam_apps)
5616f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev{
5626f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int rc = MM_CAMERA_OK;
5636f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int i,j,k;
5646f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int result = 0;
5656f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int front_camera = 1;
5666f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int back_camera = 0;
5676f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
5686f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        printf("\n Verifying Preview on back Camera and RDI on Front camera 5...\n");
5696f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL open front camera \n");
5706f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(mm_app_open(front_camera) != MM_CAMERA_OK) {
5716f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_open() front camera err=%d\n",__func__, rc);
5726f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
5736f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
5746f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
5756f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(system_dimension_set(front_camera) != MM_CAMERA_OK){
5766f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
5776f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
5786f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
5796f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
5806f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
5816f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL start camera Preview for front \n");
5826f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
5836f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = startRdi(front_camera))) {
5846f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s: startPreview() frontcamera err=%d\n", __func__, rc);
5856f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
5866f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
5876f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        mm_camera_app_wait();
5886f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        sleep(1);
5896f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
5906f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        for (k = 0; k < 4 ; k++) {
5916f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          CDBG_ERROR("DUAL open back camera %d \n",k);
5926f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          if(mm_app_open(back_camera) != MM_CAMERA_OK) {
5936f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                  CDBG_ERROR("%s:mm_app_open() back camera err=%d\n",__func__, rc);
5946f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                  rc = -1;
5956f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                  goto end;
5966f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          }
5976f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
5986f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          if(system_dimension_set(back_camera) != MM_CAMERA_OK){
5996f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                  CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
6006f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                  rc = -1;
6016f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                  goto end;
6026f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          }
6036f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
6046f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          CDBG_ERROR("DUAL start camera Preview for back \n");
6056f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          if( MM_CAMERA_OK != (rc = startPreview(back_camera))) {
6066f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                 CDBG_ERROR("%s: back camera startPreview() err=%d\n", __func__, rc);
6076f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                  goto end;
6086f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          }
6096f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          mm_camera_app_wait();
6106f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          sleep(1);
6116f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
6126f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          CDBG_ERROR("DUAL stop camera Preview for back \n");
6136f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          if( MM_CAMERA_OK != (rc = stopPreview(back_camera))) {
6146f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                  CDBG_ERROR("%s: stopPreview() backcamera err=%d\n", __func__, rc);
6156f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                  goto end;
6166f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          }
6176f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          usleep(10*1000);
6186f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
6196f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          CDBG_ERROR("DUAL close back camera\n");
6206f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          if( mm_app_close(back_camera) != MM_CAMERA_OK) {
6216f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                  CDBG_ERROR("%s:mm_app_close() err=%d\n",__func__, rc);
6226f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                  rc = -1;
6236f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                  goto end;
6246f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          }
6256f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          sleep(1);
6266f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
6276f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL stop camera Preview for Rdi \n");
6286f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = stopRdi(front_camera))) {
6296f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG("%s: stopRdi() err=%d\n", __func__, rc);
6306f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
6316f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
6326f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        usleep(10*1000);
6336f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL close front camera \n");
6346f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( mm_app_close(front_camera) != MM_CAMERA_OK) {
6356f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_close() err=%d\n",__func__, rc);
6366f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
6376f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
6386f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
6396f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL end \n");
6406f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
6416f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevend:
6426f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(rc == 0) {
6436f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                printf("\nPassed\n");
6446f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }else{
6456f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                printf("\nFailed\n");
6466f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
6476f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG("%s:END, rc = %d\n", __func__, rc);
6486f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        return rc;
6496f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev}
6506f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
6516f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev/*  Test case 13246857 : 2468 * 3, This is performed three times*/
6526f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
6536f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevint mm_app_dtc_6(mm_camera_app_t *cam_apps)
6546f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev{
6556f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int rc = MM_CAMERA_OK;
6566f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int i,j,k;
6576f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int result = 0;
6586f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int front_camera = 1;
6596f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int back_camera = 0;
6606f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
6616f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        printf("\n Verifying Preview on back Camera and RDI on Front camera 6...\n");
6626f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL open back camera \n");
6636f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(mm_app_open(back_camera) != MM_CAMERA_OK) {
6646f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_open() back camera err=%d\n",__func__, rc);
6656f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
6666f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
6676f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
6686f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(system_dimension_set(back_camera) != MM_CAMERA_OK){
6696f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
6706f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
6716f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
6726f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
6736f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
6746f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL start camera Preview for back \n");
6756f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
6766f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = startPreview(back_camera))) {
6776f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s: startPreview() backcamera err=%d\n", __func__, rc);
6786f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
6796f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
6806f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        mm_camera_app_wait();
6816f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        sleep(1);
6826f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
6836f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        for (k = 0; k < 4 ; k++) {
6846f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL open front camera %d \n",k);
6856f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(mm_app_open(front_camera) != MM_CAMERA_OK) {
6866f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_open() front camera err=%d\n",__func__, rc);
6876f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
6886f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
6896f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
6906f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
6916f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(system_dimension_set(front_camera) != MM_CAMERA_OK){
6926f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
6936f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
6946f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
6956f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
6966f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
6976f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL start camera Rdi for front \n");
6986f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = startRdi(front_camera))) {
6996f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev               CDBG_ERROR("%s: back camera startPreview() err=%d\n", __func__, rc);
7006f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
7016f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
7026f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        mm_camera_app_wait();
7036f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        sleep(1);
7046f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
7056f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL stop camera Preview for front \n");
7066f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = stopRdi(front_camera))) {
7076f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s: startPreview() backcamera err=%d\n", __func__, rc);
7086f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
7096f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
7106f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        usleep(10*1000);
7116f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
7126f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL close front camera\n");
7136f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( mm_app_close(front_camera) != MM_CAMERA_OK) {
7146f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_close() err=%d\n",__func__, rc);
7156f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
7166f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
7176f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
7186f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        sleep(1);
7196f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
7206f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL stop camera Preview for back \n");
7216f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = stopPreview(back_camera))) {
7226f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG("%s: startPreview() err=%d\n", __func__, rc);
7236f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
7246f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
7256f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        usleep(10*1000);
7266f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL close back camera \n");
7276f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( mm_app_close(back_camera) != MM_CAMERA_OK) {
7286f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_close() err=%d\n",__func__, rc);
7296f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
7306f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
7316f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
7326f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL end \n");
7336f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
7346f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevend:
7356f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(rc == 0) {
7366f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                printf("\nPassed\n");
7376f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }else{
7386f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                printf("\nFailed\n");
7396f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
7406f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG("%s:END, rc = %d\n", __func__, rc);
7416f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        return rc;
7426f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev}
7436f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
7446f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev/*Multi Threaded Test Cases*/
7456f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevstatic void *front_thread(void *data)
7466f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev{
7476f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int front_camera = 1;
7486f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int rc = MM_CAMERA_OK;
7496f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int i,j,k,m;
7506f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        struct test_case_params params
7516f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          = *((struct test_case_params *)data);
7526f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        for (i = 0; i < params.launch; i++) {
7536f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          CDBG_ERROR("DUAL open front camera %d\n",i);
7546f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          if(mm_app_open(front_camera) != MM_CAMERA_OK) {
7556f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            CDBG_ERROR("%s:mm_app_open() front camera err=%d\n",__func__, rc);
7566f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            rc = -1;
7576f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            goto end;
7586f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          }
7596f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
7606f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          if(system_dimension_set(front_camera) != MM_CAMERA_OK){
7616f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
7626f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            rc = -1;
7636f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            goto end;
7646f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          }
7656f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
7666f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          for (j = 0; j < params.preview; j++) {
7676f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            CDBG_ERROR("DUAL start camera Rdi for front %d ,%d \n",i,j);
7686f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            if( MM_CAMERA_OK != (rc = startRdi(front_camera))) {
7696f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev              CDBG_ERROR("%s: back camera startPreview() err=%d\n", __func__, rc);
7706f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev              goto end;
7716f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            }
7726f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            mm_camera_app_wait();
7736f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            usleep(20*1000);
7746f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            for (k = 0; k < params.snapshot; k++) {
7756f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev              CDBG_ERROR("DUAL take picture for front %d,%d,%d \n",i,j,k);
7766f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev              if ( MM_CAMERA_OK != (rc = takePicture_rdi(front_camera))) {
7776f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s: TakePicture() err=%d\n", __func__, rc);
7786f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
7796f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev              }
7806f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev              mm_camera_app_wait();
7816f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev              usleep(30*1000);
7826f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            }
7836f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            CDBG_ERROR("DUAL stop camera Rdi for front %d,%d\n",i,j);
7846f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            if( MM_CAMERA_OK != (rc = stopRdi(front_camera))) {
7856f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev              CDBG_ERROR("%s: startPreview() backcamera err=%d\n", __func__, rc);
7866f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev              goto end;
7876f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            }
7886f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            usleep(10*1000);
7896f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          }
7906f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
7916f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          CDBG_ERROR("DUAL close front camera %d\n",i);
7926f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          if( mm_app_close(front_camera) != MM_CAMERA_OK) {
7936f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            CDBG_ERROR("%s:mm_app_close() err=%d\n",__func__, rc);
7946f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            rc = -1;
7956f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            goto end;
7966f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          }
7976f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
7986f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevend:
7996f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL front thread close %d",rc);
8006f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        return NULL;
8016f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev}
8026f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
8036f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevstatic void *back_thread(void *data)
8046f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev{
8056f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int rc = MM_CAMERA_OK;
8066f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int back_camera = 0;
8076f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int i,j,k,m;
8086f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        struct test_case_params params
8096f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          = *((struct test_case_params *)data);
8106f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        for (i = 0; i < params.launch; i++) {
8116f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          CDBG_ERROR("DUAL open back camera %d\n",i);
8126f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          if(mm_app_open(back_camera) != MM_CAMERA_OK) {
8136f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            CDBG_ERROR("%s:mm_app_open() back camera err=%d\n",__func__, rc);
8146f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            rc = -1;
8156f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            goto end;
8166f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          }
8176f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          if(system_dimension_set(back_camera) != MM_CAMERA_OK){
8186f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
8196f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            rc = -1;
8206f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            goto end;
8216f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          }
8226f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
8236f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          for (j = 0; j < params.preview; j++) {
8246f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            CDBG_ERROR("DUAL start camera Preview for back %d, %d\n",i,j);
8256f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            if( MM_CAMERA_OK != (rc = startPreview(back_camera))) {
8266f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev              CDBG_ERROR("%s: startPreview() backcamera err=%d\n", __func__, rc);
8276f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev              goto end;
8286f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            }
8296f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            mm_camera_app_wait();
8306f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            usleep(20*1000);
8316f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            for (k = 0; k < params.snapshot; k++) {
8326f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev              CDBG_ERROR("DUAL take picture for back %d, %d, %d\n",i,j,k);
8336f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev              if ( MM_CAMERA_OK != (rc = takePicture_yuv(back_camera))) {
8346f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s: TakePicture() err=%d\n", __func__, rc);
8356f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
8366f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev              }
8376f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev              mm_camera_app_wait();
8386f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev              usleep(30*1000);
8396f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            }
8406f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
8416f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            for (m = 0; m < params.recording; m++) {
8426f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev              CDBG_ERROR("DUAL start record for back %d, %d, %d\n",i,j,m);
8436f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev              if ( MM_CAMERA_OK != (rc = startRecording(back_camera))) {
8446f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s: StartVideorecording() err=%d\n", __func__, rc);
8456f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                break;
8466f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev              }
8476f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
8486f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev              mm_camera_app_wait();
8496f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev              usleep(10*1000);
8506f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev              CDBG_ERROR("DUAL stop camera record for back \n");
8516f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev              if ( MM_CAMERA_OK != (rc = stopRecording(back_camera))) {
8526f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s: Stopvideorecording() err=%d\n", __func__, rc);
8536f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                break;
8546f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev              }
8556f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev              usleep(10*1000);
8566f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            }
8576f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            CDBG_ERROR("DUAL stop camera Preview for back %d, %d\n",i,j);
8586f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            if( MM_CAMERA_OK != (rc = stopPreview(back_camera))) {
8596f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev              CDBG("%s: startPreview() err=%d\n", __func__, rc);
8606f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev              goto end;
8616f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            }
8626f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            usleep(10*1000);
8636f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          }
8646f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
8656f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          CDBG_ERROR("DUAL close back camera %d\n",i);
8666f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          if( mm_app_close(back_camera) != MM_CAMERA_OK) {
8676f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            CDBG_ERROR("%s:mm_app_close() err=%d\n",__func__, rc);
8686f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            rc = -1;
8696f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            goto end;
8706f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          }
8716f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
8726f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevend:
8736f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL back thread close %d",rc);
8746f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        return NULL;
8756f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev}
8766f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
8776f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev/*  Test case m13572468 : Open & start  in 2 concurrent pthread*/
8786f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevint mm_app_dtc_7(mm_camera_app_t *cam_apps)
8796f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev{
8806f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int rc = MM_CAMERA_OK;
8816f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int result = 0;
8826f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        pthread_t back_thread_id, front_thread_id;
8836f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        struct test_case_params params;
8846f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        memset(&params, 0, sizeof(struct test_case_params));
8856f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        params.launch = 5;
8866f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        params.preview = 5;
8876f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        printf("\n Verifying Preview on back Camera and RDI on Front camera 7...\n");
8886f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
8896f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("start back DUAL ");
8906f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        rc = pthread_create(&back_thread_id, NULL, back_thread, &params);
8916f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("start front DUAL ");
8926f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        rc = pthread_create(&front_thread_id, NULL, front_thread, &params);
8936f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        sleep(1);
8946f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("stop back DUAL ");
8956f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        rc = pthread_join(back_thread_id, NULL);
8966f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("stop front DUAL ");
8976f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        rc = pthread_join(front_thread_id, NULL);
8986f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL end \n");
8996f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
9006f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevend:
9016f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(rc == 0) {
9026f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          printf("\nPassed\n");
9036f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }else{
9046f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          printf("\nFailed\n");
9056f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
9066f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG("%s:END, rc = %d\n", __func__, rc);
9076f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        return rc;
9086f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev}
9096f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
9106f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev/*  Test case m139572468 : Open & start in 2 concurrent pthread*/
9116f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevint mm_app_dtc_8(mm_camera_app_t *cam_apps)
9126f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev{
9136f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int rc = MM_CAMERA_OK;
9146f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int result = 0;
9156f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
9166f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        pthread_t back_thread_id, front_thread_id;
9176f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        struct test_case_params bparams, fparams;
9186f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        memset(&bparams, 0, sizeof(struct test_case_params));
9196f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        memset(&fparams, 0, sizeof(struct test_case_params));
9206f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        bparams.launch = 5;
9216f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        bparams.preview = 5;
9226f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        bparams.snapshot= 5;
9236f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        fparams.launch = 5;
9246f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        fparams.preview = 5;
9256f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        printf("\n Verifying Preview on back Camera and RDI on Front camera 8...\n");
9266f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
9276f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("start back DUAL ");
9286f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        rc = pthread_create(&back_thread_id, NULL, back_thread, &bparams);
9296f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("start front DUAL ");
9306f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        rc = pthread_create(&front_thread_id, NULL, front_thread, &fparams);
9316f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        sleep(1);
9326f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("stop back DUAL ");
9336f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        rc = pthread_join(back_thread_id, NULL);
9346f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("stop front DUAL ");
9356f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        rc = pthread_join(front_thread_id, NULL);
9366f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL end \n");
9376f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
9386f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevend:
9396f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(rc == 0)
9406f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          printf("\nPassed\n");
9416f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        else
9426f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          printf("\nFailed\n");
9436f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG("%s:END, rc = %d\n", __func__, rc);
9446f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        return rc;
9456f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev}
9466f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
9476f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev/*  Test case m1395724c68 : Open & start in 2 concurrent pthread*/
9486f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevint mm_app_dtc_9(mm_camera_app_t *cam_apps)
9496f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev{
9506f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int rc = MM_CAMERA_OK;
9516f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int result = 0;
9526f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
9536f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        pthread_t back_thread_id, front_thread_id;
9546f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        struct test_case_params bparams, fparams;
9556f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        memset(&bparams, 0, sizeof(struct test_case_params));
9566f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        memset(&fparams, 0, sizeof(struct test_case_params));
9576f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        bparams.launch = 5;
9586f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        bparams.preview = 5;
9596f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        bparams.snapshot= 5;
9606f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        fparams.launch = 5;
9616f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        fparams.preview = 5;
9626f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        fparams.snapshot = 5;
9636f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        printf("\n Verifying Preview on back Camera and RDI on Front camera 9...\n");
9646f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
9656f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("start back DUAL ");
9666f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        rc = pthread_create(&back_thread_id, NULL, back_thread, &bparams);
9676f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("start front DUAL ");
9686f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        rc = pthread_create(&front_thread_id, NULL, front_thread, &fparams);
9696f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        sleep(1);
9706f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("stop back DUAL ");
9716f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        rc = pthread_join(back_thread_id, NULL);
9726f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("stop front DUAL ");
9736f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        rc = pthread_join(front_thread_id, NULL);
9746f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL end \n");
9756f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
9766f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevend:
9776f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(rc == 0) {
9786f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          printf("\nPassed\n");
9796f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }else{
9806f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          printf("\nFailed\n");
9816f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
9826f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG("%s:END, rc = %d\n", __func__, rc);
9836f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        return rc;
9846f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev}
9856f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
9866f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev/*  Test case m13ab572468 : Open & start in 2 concurrent pthread*/
9876f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevint mm_app_dtc_10(mm_camera_app_t *cam_apps)
9886f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev{
9896f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int rc = MM_CAMERA_OK;
9906f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int result = 0;
9916f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
9926f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        pthread_t back_thread_id, front_thread_id;
9936f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        struct test_case_params bparams, fparams;
9946f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        memset(&bparams, 0, sizeof(struct test_case_params));
9956f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        memset(&fparams, 0, sizeof(struct test_case_params));
9966f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        bparams.launch = 5;
9976f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        bparams.preview = 5;
9986f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        bparams.recording= 5;
9996f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        fparams.launch = 5;
10006f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        fparams.preview = 5;
10016f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        printf("\n Verifying Preview on back Camera and RDI on Front camera 10...\n");
10026f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
10036f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("start back DUAL ");
10046f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        rc = pthread_create(&back_thread_id, NULL, back_thread, &bparams);
10056f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("start front DUAL ");
10066f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        rc = pthread_create(&front_thread_id, NULL, front_thread, &fparams);
10076f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        sleep(1);
10086f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("stop back DUAL ");
10096f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        rc = pthread_join(back_thread_id, NULL);
10106f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("stop front DUAL ");
10116f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        rc = pthread_join(front_thread_id, NULL);
10126f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL end \n");
10136f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevend:
10146f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(rc == 0) {
10156f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          printf("\nPassed\n");
10166f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }else{
10176f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          printf("\nFailed\n");
10186f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
10196f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG("%s:END, rc = %d\n", __func__, rc);
10206f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        return rc;
10216f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev}
10226f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
10236f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev/*  Test case m13ab5724c68 : Open & start in 2 concurrent pthread*/
10246f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevint mm_app_dtc_11(mm_camera_app_t *cam_apps)
10256f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev{
10266f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int rc = MM_CAMERA_OK;
10276f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int result = 0;
10286f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
10296f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        pthread_t back_thread_id, front_thread_id;
10306f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        struct test_case_params bparams, fparams;
10316f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        memset(&bparams, 0, sizeof(struct test_case_params));
10326f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        memset(&fparams, 0, sizeof(struct test_case_params));
10336f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        bparams.launch = 5;
10346f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        bparams.preview = 5;
10356f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        bparams.recording= 5;
10366f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        fparams.launch = 5;
10376f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        fparams.preview = 5;
10386f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        fparams.snapshot = 5;
10396f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        printf("\n Verifying Preview on back Camera and RDI on Front camera 11...\n");
10406f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
10416f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("start back DUAL ");
10426f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        rc = pthread_create(&back_thread_id, NULL, back_thread, &bparams);
10436f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("start front DUAL ");
10446f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        rc = pthread_create(&front_thread_id, NULL, front_thread, &fparams);
10456f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        sleep(1);
10466f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("stop back DUAL ");
10476f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        rc = pthread_join(back_thread_id, NULL);
10486f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("stop front DUAL ");
10496f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        rc = pthread_join(front_thread_id, NULL);
10506f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL end \n");
10516f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
10526f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevend:
10536f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(rc == 0) {
10546f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                printf("\nPassed\n");
10556f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }else{
10566f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                printf("\nFailed\n");
10576f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
10586f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG("%s:END, rc = %d\n", __func__, rc);
10596f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        return rc;
10606f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev}
10616f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
10626f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev/*  Test case m1728 : Open & start in 2 concurrent pthread*/
10636f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevint mm_app_dtc_12(mm_camera_app_t *cam_apps)
10646f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev{
10656f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int rc = MM_CAMERA_OK;
10666f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int result = 0;
10676f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
10686f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        pthread_t back_thread_id, front_thread_id;
10696f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        struct test_case_params bparams, fparams;
10706f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        memset(&bparams, 0, sizeof(struct test_case_params));
10716f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        memset(&fparams, 0, sizeof(struct test_case_params));
10726f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        bparams.launch = 15;
10736f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        fparams.launch = 15;
10746f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        printf("\n Verifying Preview on back Camera and RDI on Front camera 12...\n");
10756f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
10766f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("start back DUAL ");
10776f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        rc = pthread_create(&back_thread_id, NULL, back_thread, &bparams);
10786f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("start front DUAL ");
10796f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        rc = pthread_create(&front_thread_id, NULL, front_thread, &fparams);
10806f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        sleep(1);
10816f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("stop back DUAL ");
10826f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        rc = pthread_join(back_thread_id, NULL);
10836f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("stop front DUAL ");
10846f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        rc = pthread_join(front_thread_id, NULL);
10856f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL end \n");
10866f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
10876f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevend:
10886f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(rc == 0) {
10896f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                printf("\nPassed\n");
10906f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }else{
10916f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                printf("\nFailed\n");
10926f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
10936f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG("%s:END, rc = %d\n", __func__, rc);
10946f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        return rc;
10956f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev}
10966f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
10976f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev/*  Test case 2413(ab)5768
10986f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev *  Test the dual camera usecase. We startPreview on front camera,
10996f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev *  but backend will allocate RDI buffers and start front camera in
11006f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev *  RDI streaming mode. It then diverts RDI frames, converts them into YUV 420
11016f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev *  through C2D and generate preview data in the buffers allocated here.
11026f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev *  Back camera will use the pixel interface as usual.
11036f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev */
11046f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
11056f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevint mm_app_dtc_13(mm_camera_app_t *cam_apps)
11066f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev{
11076f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int rc = MM_CAMERA_OK;
11086f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int i,j,k;
11096f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int result = 0;
11106f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int front_camera = 1;
11116f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int back_camera = 0;
11126f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
11136f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        printf("\n 13. Verifying Preview + Recording on back Camera and Preview(through RDI) on Front camera\n");
11146f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL open front camera \n");
11156f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(mm_app_open(front_camera) != MM_CAMERA_OK) {
11166f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_open() front camera err=%d\n",__func__, rc);
11176f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
11186f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
11196f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
11206f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(system_dimension_set(front_camera) != MM_CAMERA_OK){
11216f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
11226f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
11236f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
11246f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
11256f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
11266f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL start camera Preview for front \n");
11276f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = startPreview(front_camera))) {
11286f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev               CDBG_ERROR("%s: front camera startPreview() err=%d\n", __func__, rc);
11296f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev               goto end;
11306f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
11316f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        mm_camera_app_wait();
11326f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        usleep(20*1000);
11336f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
11346f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        for (k = 0; k < MM_QCAMERA_APP_INTERATION ; k++){
11356f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          CDBG_ERROR("DUAL open back camera %d \n",k);
11366f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          if(mm_app_open(back_camera) != MM_CAMERA_OK) {
11376f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                 CDBG_ERROR("%s:mm_app_open() back camera err=%d\n",__func__, rc);
11386f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                 rc = -1;
11396f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                 goto end;
11406f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          }
11416f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
11426f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          if(system_dimension_set(back_camera) != MM_CAMERA_OK){
11436f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                 CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
11446f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                 rc = -1;
11456f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                 goto end;
11466f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          }
11476f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
11486f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          CDBG_ERROR("DUAL start camera Preview for back \n");
11496f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          if( MM_CAMERA_OK != (rc = startPreview(back_camera))) {
11506f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s: back camera startPreview() err=%d\n", __func__, rc);
11516f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                 goto end;
11526f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          }
11536f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          usleep(30*1000);
11546f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
11556f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          for (j = 0; j < MM_QCAMERA_APP_INTERATION; j++) {
11566f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev             CDBG_ERROR("DUAL start camera record for back Iteration %d \n", j);
11576f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev             if ( MM_CAMERA_OK != (rc = startRecording(back_camera))) {
11586f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                 CDBG_ERROR("%s: StartVideorecording() err=%d\n", __func__, rc);
11596f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                 break;
11606f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev             }
11616f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
11626f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev             mm_camera_app_wait();
11636f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev             usleep(10*1000*1000);
11646f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev             CDBG_ERROR("DUAL stop camera record for back Iteration %d\n", j);
11656f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev             if ( MM_CAMERA_OK != (rc = stopRecording(back_camera))) {
11666f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                 CDBG_ERROR("%s: Stopvideorecording() err=%d\n", __func__, rc);
11676f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                 break;
11686f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev             }
11696f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          }
11706f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          usleep(10*1000);
11716f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
11726f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          CDBG_ERROR("DUAL stop camera Preview for back \n");
11736f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          if( MM_CAMERA_OK != (rc = stopPreview(back_camera))) {
11746f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                 CDBG_ERROR("%s: stopPreview() backcamera err=%d\n", __func__, rc);
11756f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                 goto end;
11766f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          }
11776f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          usleep(10*1000);
11786f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
11796f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          CDBG_ERROR("DUAL close back camera\n");
11806f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          if( mm_app_close(back_camera) != MM_CAMERA_OK) {
11816f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                 CDBG_ERROR("%s:mm_app_close() err=%d\n",__func__, rc);
11826f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                 rc = -1;
11836f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                 goto end;
11846f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          }
11856f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          usleep(20*1000);
11866f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
11876f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL stop camera Preview for Rdi \n");
11886f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = stopPreview(front_camera))) {
11896f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s: stopPreview() frontcamera err=%d\n", __func__, rc);
11906f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
11916f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
11926f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        usleep(10*1000);
11936f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL close front camera \n");
11946f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( mm_app_close(front_camera) != MM_CAMERA_OK) {
11956f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_close() err=%d\n",__func__, rc);
11966f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
11976f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
11986f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
11996f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL end \n");
12006f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
12016f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevend:
12026f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(rc == 0) {
12036f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                printf("\nPassed\n");
12046f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }else{
12056f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                printf("\nFailed\n");
12066f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
12076f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG("%s:END, rc = %d\n", __func__, rc);
12086f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        return rc;
12096f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev}
12106f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
12116f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev/*Below 6  are reference test cases just to test the open path for dual camera*/
12126f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevint mm_app_dtc_1243(mm_camera_app_t *cam_apps)
12136f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev{
12146f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int rc = MM_CAMERA_OK;
12156f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int i,j;
12166f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int result = 0;
12176f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int front_camera = 1;
12186f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int back_camera = 0;
12196f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
12206f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        printf("\n Verifying Preview on back Camera and RDI on Front camera...\n");
12216f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL open back camera \n");
12226f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(mm_app_open(back_camera) != MM_CAMERA_OK) {
12236f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_open() back camera err=%d\n",__func__, rc);
12246f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
12256f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
12266f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
12276f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(system_dimension_set(back_camera) != MM_CAMERA_OK){
12286f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
12296f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
12306f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
12316f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
12326f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
12336f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL open front camera \n");
12346f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(mm_app_open(front_camera) != MM_CAMERA_OK) {
12356f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_open() front camera err=%d\n",__func__, rc);
12366f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
12376f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
12386f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
12396f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
12406f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(system_dimension_set(front_camera) != MM_CAMERA_OK){
12416f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
12426f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
12436f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
12446f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
12456f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
12466f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL start camera Rdi for front \n");
12476f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = startRdi(front_camera))) {
12486f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev               CDBG_ERROR("%s: back camera startPreview() err=%d\n", __func__, rc);
12496f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
12506f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
12516f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        mm_camera_app_wait();
12526f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        sleep(1);
12536f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
12546f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL start camera Preview for back \n");
12556f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
12566f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = startPreview(back_camera))) {
12576f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s: startPreview() backcamera err=%d\n", __func__, rc);
12586f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
12596f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
12606f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        mm_camera_app_wait();
12616f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        sleep(1);
12626f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL end \n");
12636f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
12646f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevend:
12656f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(rc == 0) {
12666f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                printf("\nPassed\n");
12676f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }else{
12686f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                printf("\nFailed\n");
12696f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
12706f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG("%s:END, rc = %d\n", __func__, rc);
12716f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        return rc;
12726f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev}
12736f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
12746f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevint mm_app_dtc_2134(mm_camera_app_t *cam_apps)
12756f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev{
12766f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int rc = MM_CAMERA_OK;
12776f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int i,j;
12786f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int result = 0;
12796f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int front_camera = 1;
12806f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int back_camera = 0;
12816f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
12826f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        printf("\n Verifying Preview on back Camera and RDI on Front camera...\n");
12836f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL open front camera \n");
12846f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(mm_app_open(front_camera) != MM_CAMERA_OK) {
12856f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_open() back camera err=%d\n",__func__, rc);
12866f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
12876f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
12886f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
12896f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(system_dimension_set(front_camera) != MM_CAMERA_OK){
12906f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
12916f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
12926f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
12936f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
12946f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
12956f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL open back camera \n");
12966f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(mm_app_open(back_camera) != MM_CAMERA_OK) {
12976f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_open() front camera err=%d\n",__func__, rc);
12986f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
12996f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
13006f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
13016f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
13026f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(system_dimension_set(back_camera) != MM_CAMERA_OK){
13036f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
13046f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
13056f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
13066f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
13076f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
13086f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL start camera Preview for front \n");
13096f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = startPreview(back_camera))) {
13106f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev               CDBG_ERROR("%s: back camera startPreview() err=%d\n", __func__, rc);
13116f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
13126f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
13136f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        mm_camera_app_wait();
13146f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        sleep(1);
13156f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
13166f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL start camera Rdi for back \n");
13176f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
13186f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = startRdi(front_camera))) {
13196f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s: startPreview() backcamera err=%d\n", __func__, rc);
13206f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
13216f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
13226f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        mm_camera_app_wait();
13236f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        sleep(1);
13246f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL end \n");
13256f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
13266f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevend:
13276f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(rc == 0) {
13286f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                printf("\nPassed\n");
13296f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }else{
13306f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                printf("\nFailed\n");
13316f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
13326f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG("%s:END, rc = %d\n", __func__, rc);
13336f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        return rc;
13346f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev}
13356f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevint mm_app_dtc_2143(mm_camera_app_t *cam_apps)
13366f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev{
13376f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int rc = MM_CAMERA_OK;
13386f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int i,j;
13396f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int result = 0;
13406f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int front_camera = 1;
13416f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int back_camera = 0;
13426f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
13436f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        printf("\n Verifying Preview on back Camera and RDI on Front camera...\n");
13446f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL open front camera \n");
13456f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(mm_app_open(front_camera) != MM_CAMERA_OK) {
13466f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_open() back camera err=%d\n",__func__, rc);
13476f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
13486f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
13496f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
13506f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(system_dimension_set(front_camera) != MM_CAMERA_OK){
13516f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
13526f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
13536f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
13546f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
13556f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
13566f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL open back camera \n");
13576f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(mm_app_open(back_camera) != MM_CAMERA_OK) {
13586f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_open() front camera err=%d\n",__func__, rc);
13596f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
13606f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
13616f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
13626f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
13636f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(system_dimension_set(back_camera) != MM_CAMERA_OK){
13646f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
13656f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
13666f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
13676f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
13686f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
13696f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL start camera rdi for front \n");
13706f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = startRdi(front_camera))) {
13716f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev               CDBG_ERROR("%s: back camera startPreview() err=%d\n", __func__, rc);
13726f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
13736f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
13746f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        mm_camera_app_wait();
13756f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        sleep(1);
13766f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
13776f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL start camera preview for back \n");
13786f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
13796f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = startPreview(back_camera))) {
13806f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s: startPreview() backcamera err=%d\n", __func__, rc);
13816f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
13826f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
13836f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        mm_camera_app_wait();
13846f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        sleep(1);
13856f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL end \n");
13866f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
13876f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevend:
13886f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(rc == 0) {
13896f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                printf("\nPassed\n");
13906f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }else{
13916f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                printf("\nFailed\n");
13926f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
13936f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG("%s:END, rc = %d\n", __func__, rc);
13946f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        return rc;
13956f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev}
13966f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
13976f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevint mm_app_dtc_2413(mm_camera_app_t *cam_apps)
13986f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev{
13996f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int rc = MM_CAMERA_OK;
14006f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int i,j;
14016f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int result = 0;
14026f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int front_camera = 1;
14036f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int back_camera = 0;
14046f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
14056f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        printf("\n Verifying Preview on back Camera and RDI on Front camera...\n");
14066f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL open front camera \n");
14076f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(mm_app_open(front_camera) != MM_CAMERA_OK) {
14086f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_open() back camera err=%d\n",__func__, rc);
14096f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
14106f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
14116f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
14126f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(system_dimension_set(front_camera) != MM_CAMERA_OK){
14136f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
14146f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
14156f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
14166f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
14176f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
14186f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL start camera rdi for front \n");
14196f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = startRdi(front_camera))) {
14206f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev               CDBG_ERROR("%s: back camera startPreview() err=%d\n", __func__, rc);
14216f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
14226f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
14236f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        mm_camera_app_wait();
14246f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        sleep(1);
14256f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
14266f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL open back camera \n");
14276f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(mm_app_open(back_camera) != MM_CAMERA_OK) {
14286f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_open() front camera err=%d\n",__func__, rc);
14296f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
14306f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
14316f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
14326f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
14336f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(system_dimension_set(back_camera) != MM_CAMERA_OK){
14346f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
14356f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
14366f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
14376f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
14386f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
14396f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL start camera preview for back \n");
14406f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
14416f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = startPreview(back_camera))) {
14426f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s: startPreview() backcamera err=%d\n", __func__, rc);
14436f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
14446f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
14456f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        mm_camera_app_wait();
14466f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        sleep(1);
14476f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL end \n");
14486f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
14496f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevend:
14506f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(rc == 0) {
14516f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                printf("\nPassed\n");
14526f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }else{
14536f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                printf("\nFailed\n");
14546f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
14556f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG("%s:END, rc = %d\n", __func__, rc);
14566f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        return rc;
14576f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev}
14586f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
14596f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevint mm_app_dtc_1234(mm_camera_app_t *cam_apps)
14606f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev{
14616f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int rc = MM_CAMERA_OK;
14626f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int i,j;
14636f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int result = 0;
14646f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int front_camera = 1;
14656f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int back_camera = 0;
14666f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
14676f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        printf("\n Verifying Preview on back Camera and RDI on Front camera...\n");
14686f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL open back camera \n");
14696f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(mm_app_open(back_camera) != MM_CAMERA_OK) {
14706f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_open() back camera err=%d\n",__func__, rc);
14716f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
14726f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
14736f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
14746f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(system_dimension_set(back_camera) != MM_CAMERA_OK){
14756f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
14766f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
14776f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
14786f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
14796f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL open front camera \n");
14806f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(mm_app_open(front_camera) != MM_CAMERA_OK) {
14816f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_open() front camera err=%d\n",__func__, rc);
14826f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
14836f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
14846f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
14856f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
14866f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(system_dimension_set(front_camera) != MM_CAMERA_OK){
14876f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
14886f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
14896f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
14906f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
14916f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
14926f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL start camera preview for back \n");
14936f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = startPreview(back_camera))) {
14946f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev               CDBG_ERROR("%s: back camera startPreview() err=%d\n", __func__, rc);
14956f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
14966f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
14976f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        mm_camera_app_wait();
14986f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        sleep(1);
14996f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
15006f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL start camera rdi for front \n");
15016f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
15026f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = startRdi(front_camera))) {
15036f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s: startPreview() backcamera err=%d\n", __func__, rc);
15046f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
15056f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
15066f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        mm_camera_app_wait();
15076f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        sleep(1);
15086f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL end \n");
15096f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
15106f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevend:
15116f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(rc == 0) {
15126f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                printf("\nPassed\n");
15136f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }else{
15146f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                printf("\nFailed\n");
15156f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
15166f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG("%s:END, rc = %d\n", __func__, rc);
15176f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        return rc;
15186f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev}
15196f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
15206f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevint mm_app_dtc_1324(mm_camera_app_t *cam_apps)
15216f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev{
15226f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int rc = MM_CAMERA_OK;
15236f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int i,j;
15246f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int result = 0;
15256f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int front_camera = 1;
15266f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        int back_camera = 0;
15276f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
15286f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        printf("\n Verifying Preview on back Camera and RDI on Front camera...\n");
15296f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL start back camera \n");
15306f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(mm_app_open(back_camera) != MM_CAMERA_OK) {
15316f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_open() back camera err=%d\n",__func__, rc);
15326f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
15336f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
15346f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
15356f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(system_dimension_set(back_camera) != MM_CAMERA_OK){
15366f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
15376f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
15386f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
15396f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
15406f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL start camera preview for back \n");
15416f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = startPreview(back_camera))) {
15426f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s: back camera startPreview() err=%d\n", __func__, rc);
15436f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
15446f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
15456f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        //mm_camera_app_wait();
15466f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        sleep(1);
15476f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL start front camera \n");
15486f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(mm_app_open(front_camera) != MM_CAMERA_OK) {
15496f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:mm_app_open() front camera err=%d\n",__func__, rc);
15506f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
15516f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
15526f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
15536f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
15546f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev       if(system_dimension_set(front_camera) != MM_CAMERA_OK){
15556f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
15566f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                rc = -1;
15576f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
15586f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
15596f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL start rdi preview \n");
15606f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
15616f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = startRdi(front_camera))) {
15626f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s: startPreview() backcamera err=%d\n", __func__, rc);
15636f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                goto end;
15646f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
15656f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        mm_camera_app_wait();
15666f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        sleep(1);
15676f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("DUAL end \n");
15686f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
15696f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevend:
15706f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(rc == 0) {
15716f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          printf("\nPassed\n");
15726f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }else{
15736f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev          printf("\nFailed\n");
15746f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
15756f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG("%s:END, rc = %d\n", __func__, rc);
15766f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        return rc;
15776f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev}
15786f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
15796f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev/* single camera test cases*/
15806f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevint mm_app_dtc_s_0(mm_camera_app_t *cam_apps)
15816f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev{
15826f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    int rc = MM_CAMERA_OK;
15836f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    int i,j;
15846f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    int result = 0;
15856f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    int front_camera = 1;
15866f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    int back_camera = 0;
15876f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
15886f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    printf("\n Verifying Preview on back Camera and RDI on Front camera...\n");
15896f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
15906f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    if(mm_app_open(back_camera) != MM_CAMERA_OK) {
15916f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("%s:mm_app_open() back camera err=%d\n",__func__, rc);
15926f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        rc = -1;
15936f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        goto end;
15946f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    }
15956f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    if(system_dimension_set(back_camera) != MM_CAMERA_OK){
15966f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
15976f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        rc = -1;
15986f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        goto end;
15996f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    }
16006f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
16016f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    if( MM_CAMERA_OK != (rc = startPreview(back_camera))) {
16026f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("%s: back camera startPreview() err=%d\n", __func__, rc);
16036f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        goto end;
16046f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    }
16056f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
16066f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    mm_camera_app_wait();
16076f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    if(mm_app_open(front_camera) != MM_CAMERA_OK) {
16086f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("%s:mm_app_open() front camera err=%d\n",__func__, rc);
16096f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        rc = -1;
16106f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        goto end;
16116f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    }
16126f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    if(system_dimension_set(front_camera) != MM_CAMERA_OK){
16136f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
16146f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        rc = -1;
16156f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        goto end;
16166f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    }
16176f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
16186f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    if( MM_CAMERA_OK != (rc = startRdi(front_camera))) {
16196f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("%s: startPreview() backcamera err=%d\n", __func__, rc);
16206f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        goto end;
16216f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    }
16226f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    mm_camera_app_wait();
16236f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
16246f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    if( MM_CAMERA_OK != (rc = stopRdi(front_camera))) {
16256f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("%s: startPreview() backcamera err=%d\n", __func__, rc);
16266f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        goto end;
16276f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    }
16286f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
16296f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    if( MM_CAMERA_OK != (rc = stopPreview(my_cam_app.cam_open))) {
16306f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG("%s: startPreview() err=%d\n", __func__, rc);
16316f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        goto end;
16326f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    }
16336f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
16346f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    if( mm_app_close(my_cam_app.cam_open) != MM_CAMERA_OK) {
16356f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("%s:mm_app_close() err=%d\n",__func__, rc);
16366f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        rc = -1;
16376f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        goto end;
16386f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    }
16396f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevend:
16406f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    if(rc == 0) {
16416f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        printf("\nPassed\n");
16426f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    }else{
16436f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        printf("\nFailed\n");
16446f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    }
16456f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    CDBG("%s:END, rc = %d\n", __func__, rc);
16466f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    return rc;
16476f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev}
16486f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
16496f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevint mm_app_dtc_s_1(mm_camera_app_t *cam_apps)
16506f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev{
16516f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    int rc = MM_CAMERA_OK;
16526f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    int i,j;
16536f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    int result = 0;
16546f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
16556f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    printf("\n Verifying Snapshot on front and back camera...\n");
16566f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    for(i = 0; i < cam_apps->num_cameras; i++) {
16576f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( mm_app_open(i) != MM_CAMERA_OK) {
16586f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            CDBG_ERROR("%s:mm_app_open() err=%d\n",__func__, rc);
16596f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            rc = -1;
16606f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            goto end;
16616f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
16626f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(system_dimension_set(my_cam_app.cam_open) != MM_CAMERA_OK){
16636f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
16646f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            rc = -1;
16656f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            goto end;
16666f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
16676f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
16686f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = startPreview(my_cam_app.cam_open))) {
16696f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s: startPreview() err=%d\n", __func__, rc);
16706f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                break;
16716f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
16726f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        for(j = 0; j < MM_QCAMERA_APP_INTERATION; j++) {
16736f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            if( MM_CAMERA_OK != (rc = takePicture_yuv(my_cam_app.cam_open))) {
16746f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s: TakePicture() err=%d\n", __func__, rc);
16756f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                break;
16766f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            }
16776f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            /*if(mm_camera_app_timedwait() == ETIMEDOUT) {
16786f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s: Snapshot/Preview Callback not received in time or qbuf Faile\n", __func__);
16796f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                break;
16806f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            }*/
16816f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            mm_camera_app_wait();
16826f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            result++;
16836f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
16846f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = stopPreview(my_cam_app.cam_open))) {
16856f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            CDBG("%s: startPreview() err=%d\n", __func__, rc);
16866f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            break;
16876f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
16886f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( mm_app_close(my_cam_app.cam_open) != MM_CAMERA_OK) {
16896f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            CDBG_ERROR("%s:mm_app_close() err=%d\n",__func__, rc);
16906f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            rc = -1;
16916f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            goto end;
16926f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
16936f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(result != MM_QCAMERA_APP_INTERATION) {
16946f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            printf("%s: Snapshot Start/Stop Fails for Camera %d in %d iteration", __func__, i,j);
16956f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            rc = -1;
16966f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            break;
16976f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
16986f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
16996f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        result = 0;
17006f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    }
17016f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevend:
17026f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    if(rc == 0) {
17036f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        printf("\t***Passed***\n");
17046f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    }else{
17056f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        printf("\t***Failed***\n");
17066f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    }
17076f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    CDBG("%s:END, rc = %d\n", __func__, rc);
17086f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    return rc;
17096f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev}
17106f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
17116f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevint mm_app_dtc_s_2(mm_camera_app_t *cam_apps)
17126f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev{
17136f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    int rc = MM_CAMERA_OK;
17146f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    int i,j;
17156f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    int result = 0;
17166f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
17176f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    printf("\n Verifying Video on front and back camera...\n");
17186f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    for(i = 0; i < cam_apps->num_cameras; i++) {
17196f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( mm_app_open(i) != MM_CAMERA_OK) {
17206f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            CDBG_ERROR("%s:mm_app_open() err=%d\n",__func__, rc);
17216f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            rc = -1;
17226f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            goto end;
17236f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
17246f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(system_dimension_set(my_cam_app.cam_open) != MM_CAMERA_OK){
17256f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
17266f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            rc = -1;
17276f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            goto end;
17286f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
17296f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
17306f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = startPreview(my_cam_app.cam_open))) {
17316f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            CDBG_ERROR("%s: startPreview() err=%d\n", __func__, rc);
17326f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            break;
17336f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
17346f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        for(j = 0; j < MM_QCAMERA_APP_INTERATION; j++) {
17356f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            if( MM_CAMERA_OK != (rc = startRecording(my_cam_app.cam_open))) {
17366f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s: StartVideorecording() err=%d\n", __func__, rc);
17376f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                break;
17386f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            }
17396f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
17406f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            /*if(mm_camera_app_timedwait() == ETIMEDOUT) {
17416f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            CDBG_ERROR("%s: Video Callback not received in time\n", __func__);
17426f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            break;
17436f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            }*/
17446f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            mm_camera_app_wait();
17456f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            if( MM_CAMERA_OK != (rc = stopRecording(my_cam_app.cam_open))) {
17466f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s: Stopvideorecording() err=%d\n", __func__, rc);
17476f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                break;
17486f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            }
17496f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            result++;
17506f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
17516f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( MM_CAMERA_OK != (rc = stopPreview(my_cam_app.cam_open))) {
17526f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            CDBG("%s: startPreview() err=%d\n", __func__, rc);
17536f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            break;
17546f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
17556f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( mm_app_close(my_cam_app.cam_open) != MM_CAMERA_OK) {
17566f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            CDBG_ERROR("%s:mm_app_close() err=%d\n",__func__, rc);
17576f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            rc = -1;
17586f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            goto end;
17596f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
17606f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(result != MM_QCAMERA_APP_INTERATION) {
17616f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            printf("%s: Video Start/Stop Fails for Camera %d in %d iteration", __func__, i,j);
17626f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            rc = -1;
17636f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            break;
17646f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
17656f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
17666f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        result = 0;
17676f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    }
17686f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevend:
17696f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    if(rc == 0) {
17706f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        printf("\nPassed\n");
17716f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    }else{
17726f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        printf("\nFailed\n");
17736f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    }
17746f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    CDBG("%s:END, rc = %d\n", __func__, rc);
17756f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    return rc;
17766f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev}
17776f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
17786f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevint mm_app_dtc_s_3(mm_camera_app_t *cam_apps)
17796f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev{
17806f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    int rc = MM_CAMERA_OK;
17816f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    int i,j;
17826f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    int result = 0;
17836f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
17846f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    printf("\n Verifying RDI Stream on front and back camera...\n");
17856f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    if(cam_apps->num_cameras == 0) {
17866f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("%s:Query Failed: Num of cameras = %d\n",__func__, cam_apps->num_cameras);
17876f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        rc = -1;
17886f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        goto end;
17896f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    }
17906f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    for(i = 0; i < cam_apps->num_cameras; i++) {
17916f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( mm_app_open(i) != MM_CAMERA_OK) {
17926f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            CDBG_ERROR("%s:mm_app_open() err=%d\n",__func__, rc);
17936f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            rc = -1;
17946f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            goto end;
17956f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
17966f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(system_dimension_set(my_cam_app.cam_open) != MM_CAMERA_OK){
17976f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
17986f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            rc = -1;
17996f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            goto end;
18006f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
18016f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        for(j = 0; j < MM_QCAMERA_APP_INTERATION; j++) {
18026f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            if( MM_CAMERA_OK != (rc = startRdi(my_cam_app.cam_open))) {
18036f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s: StartVideorecording() err=%d\n", __func__, rc);
18046f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                break;
18056f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            }
18066f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
18076f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            /*if(mm_camera_app_timedwait() == ETIMEDOUT) {
18086f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            CDBG_ERROR("%s: Video Callback not received in time\n", __func__);
18096f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            break;
18106f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            }*/
18116f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            mm_camera_app_wait();
18126f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            if( MM_CAMERA_OK != (rc = stopRdi(my_cam_app.cam_open))) {
18136f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                CDBG_ERROR("%s: Stopvideorecording() err=%d\n", __func__, rc);
18146f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                break;
18156f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            }
18166f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            result++;
18176f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
18186f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if( mm_app_close(my_cam_app.cam_open) != MM_CAMERA_OK) {
18196f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            CDBG_ERROR("%s:mm_app_close() err=%d\n",__func__, rc);
18206f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            rc = -1;
18216f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            goto end;
18226f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
18236f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(result != MM_QCAMERA_APP_INTERATION) {
18246f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            printf("%s: Video Start/Stop Fails for Camera %d in %d iteration", __func__, i,j);
18256f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            rc = -1;
18266f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            break;
18276f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
18286f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
18296f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        result = 0;
18306f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    }
18316f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevend:
18326f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    if(rc == 0) {
18336f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        printf("\nPassed\n");
18346f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    }else{
18356f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        printf("\nFailed\n");
18366f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    }
18376f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    CDBG("%s:END, rc = %d\n", __func__, rc);
18386f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    return rc;
18396f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev}
18406f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
18416f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev/*Stats Test Case*/
18426f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevint mm_app_dtc_s_5(mm_camera_app_t *cam_apps)
18436f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev{
18446f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    int rc = MM_CAMERA_OK;
18456f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    int i,j;
18466f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    int result = 0;
18476f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    int front_camera = 1;
18486f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    int back_camera = 0;
18496f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
18506f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    printf("\n Verifying Preview on back Camera and RDI on Front camera...\n");
18516f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
18526f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    if(mm_app_open(back_camera) != MM_CAMERA_OK) {
18536f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("%s:mm_app_open() back camera err=%d\n",__func__, rc);
18546f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        rc = -1;
18556f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        goto end;
18566f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    }
18576f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    if(system_dimension_set(back_camera) != MM_CAMERA_OK){
18586f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    CDBG_ERROR("%s:system_dimension_set() err=%d\n",__func__, rc);
18596f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        rc = -1;
18606f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        goto end;
18616f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    }
18626f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
18636f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    if( MM_CAMERA_OK != (rc = startStats(back_camera))) {
18646f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("%s: back camera startPreview() err=%d\n", __func__, rc);
18656f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        goto end;
18666f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    }
18676f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
18686f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    mm_camera_app_wait();
18696f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
18706f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    if( MM_CAMERA_OK != (rc = stopStats(my_cam_app.cam_open))) {
18716f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG("%s: startPreview() err=%d\n", __func__, rc);
18726f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        goto end;
18736f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    }
18746f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
18756f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    if( mm_app_close(my_cam_app.cam_open) != MM_CAMERA_OK) {
18766f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        CDBG_ERROR("%s:mm_app_close() err=%d\n",__func__, rc);
18776f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        rc = -1;
18786f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        goto end;
18796f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    }
18806f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevend:
18816f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    if(rc == 0) {
18826f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        printf("\nPassed\n");
18836f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    }else{
18846f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        printf("\nFailed\n");
18856f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    }
18866f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    CDBG("%s:END, rc = %d\n", __func__, rc);
18876f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    return rc;
18886f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev}
18896f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
18906f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevint mm_app_gen_dual_test_cases()
18916f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev{
18926f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    int tc = 0;
18936f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    memset(mm_app_tc, 0, sizeof(mm_app_tc));
18946f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    if(tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_dtc_0;
18956f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    if(tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_dtc_1;
18966f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    if(tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_dtc_2;
18976f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    if(tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_dtc_3;
18986f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    if(tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_dtc_4;
18996f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    if(tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_dtc_5;
19006f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    if(tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_dtc_6;
19016f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    if(tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_dtc_7;
19026f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    if(tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_dtc_8;
19036f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    if(tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_dtc_9;
19046f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    if(tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_dtc_10;
19056f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    if(tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_dtc_11;
19066f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    if(tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_dtc_12;
19076f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    if(tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_dtc_13;
19086f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
19096f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    return tc;
19106f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev}
19116f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
19126f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevint mm_app_dual_test_entry(mm_camera_app_t *cam_app)
19136f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev{
19146f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    int rc = MM_CAMERA_OK;
19156f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    int i, tc = 0;
19166f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    int cam_id = 0;
19176f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
19186f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    tc = mm_app_gen_dual_test_cases();
19196f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    CDBG("Running %d test cases\n",tc);
19206f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    for(i = 0; i < tc; i++) {
19216f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        mm_app_tc[i].r = mm_app_tc[i].f(cam_app);
19226f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        if(mm_app_tc[i].r != MM_CAMERA_OK) {
19236f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            printf("%s: test case %d error = %d, abort unit testing engine!!!!\n",
19246f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev                    __func__, i, mm_app_tc[i].r);
19256f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            rc = mm_app_tc[i].r;
19266f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev            goto end;
19276f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev        }
19286f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    }
19296f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevend:
19306f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    printf("nTOTAL_TSET_CASE = %d, NUM_TEST_RAN = %d, rc=%d\n", tc, i, rc);
19316f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev    return rc;
19326f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev}
19336f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
19346f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
19356f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
19366f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev
1937