jrtc 未完成,先提交
authorzhihuishixun4 <2393524978@qq.com>
Tue, 11 Jul 2023 06:54:47 +0000 (14:54 +0800)
committerzhihuishixun4 <2393524978@qq.com>
Tue, 11 Jul 2023 06:54:47 +0000 (14:54 +0800)
MS_Code/MS_MMI_Main/source/mmi_app/app/jrtc_video_call/c/mmi_jrtc_client.c
MS_Code/MS_MMI_Main/source/mmi_app/app/jrtc_video_call/c/mmi_video_call.c

index a0fe228..1c82ef3 100644 (file)
@@ -36,7 +36,6 @@ typedef struct
 } video_call_jrtc_t;
 
 
-extern MMI_VIDEO_CALL_PARAMS_T s_video_call_params;
 static video_call_jrtc_t s_video_call_jrtc = {0};
 
 
@@ -169,7 +168,7 @@ static void mmi_video_call_jrtc_clean_up(void)
 
     memset(&s_video_call_jrtc, 0x0, sizeof(video_call_jrtc_t));
        
-       if ((MMI_VIDEO_CALL_STATE_ACTIVE == s_video_call_params.state) && (MMI_VIDEO_CALL_TYPE_VIDEO == s_video_call_params.calltype))
+       if ((MMI_VIDEO_CALL_STATE_ACTIVE == mmi_video_call_state_get()) && (MMI_VIDEO_CALL_TYPE_VIDEO == mmi_video_call_calltype_get()))
        {
                //lcd
        }
@@ -191,10 +190,14 @@ static void lcd_show(video_call_jrtc_image_t * image)
        uint32 i;
        BLOCKCFG_T cfg;
        
+       SCI_TRACE_LOW("[@CHENG_VIDEO_CALL][%s][%d]: \n", __FUNCTION__, __LINE__);
+       
        LCD_DisableAllBlock(MAIN_LCD_ID);
        LCD_EnterSleep(MAIN_LCD_ID, FALSE);
        GPIO_SetLcdBackLight(TRUE);
        
+       SCI_TRACE_LOW("[@CHENG_VIDEO_CALL][%s][%d]: \n", __FUNCTION__, __LINE__);
+       
        cfg.end_x = 240-1;
        cfg.start_x = cfg.end_x + 1 - width;
        cfg.start_y = 0;
@@ -204,14 +207,17 @@ static void lcd_show(video_call_jrtc_image_t * image)
                case 0://I420
                        cfg.resolution = LCD_RESOLUTION_YUV420;
                        cfg.width = width;
+                       SCI_TRACE_LOW("[@CHENG_VIDEO_CALL][%s][%d]: \n", __FUNCTION__, __LINE__);
                        break;
                        
                case 2://UYVY
                        cfg.resolution = LCD_RESOLUTION_YUV422;
                        cfg.width = width * 2;
+                       SCI_TRACE_LOW("[@CHENG_VIDEO_CALL][%s][%d]: \n", __FUNCTION__, __LINE__);
                        break;
                        
                default:
+                       SCI_TRACE_LOW("[@CHENG_VIDEO_CALL][%s][%d]: \n", __FUNCTION__, __LINE__);
                        return;
        }
        cfg.colorkey_en = FALSE;
@@ -221,13 +227,19 @@ static void lcd_show(video_call_jrtc_image_t * image)
        cfg.type = 1; //0:OSD; 1:image
        cfg.rotation = 0;
        
+       SCI_TRACE_LOW("[@CHENG_VIDEO_CALL][%s][%d]: \n", __FUNCTION__, __LINE__);
+       
        if (LCD_RESOLUTION_YUV420 == cfg.resolution)
        {
+               SCI_TRACE_LOW("[@CHENG_VIDEO_CALL][%s][%d]: \n", __FUNCTION__, __LINE__);
+               
                LCD_SetBlockBuffer(MAIN_LCD_ID, 0, (uint32*)yuv_addr);
                LCD_SetUVBuffer(MAIN_LCD_ID, 0, (uint32*)(yuv_addr + width * height));//YUV420p
        }
        else if (LCD_RESOLUTION_YUV422 == cfg.resolution)
        { 
+               SCI_TRACE_LOW("[@CHENG_VIDEO_CALL][%s][%d]: \n", __FUNCTION__, __LINE__);
+               
                //LCD_SetBlockBuffer(0, 0, yuv_addr->yaddr);//UYVY
                LCD_SetBlockBuffer(0, 0, yuv_addr);//UYVY
        }
@@ -282,14 +294,23 @@ static void mmi_video_call_jrtc_on_state(uint32 in)
                break;
 
            case JRTC_TALKING:
-               if(MMI_VIDEO_CALL_STATE_ACTIVE != s_video_call_params.state) 
                        {
-                   mmi_video_call_connect();
-               }
+                       video_call_jrtc_image_t * img = &(s_video_call_jrtc.video_frame);
+                       
+                       SCI_TRACE_LOW("[@CHENG_VIDEO_CALL][%s][%d]: \n", __FUNCTION__, __LINE__);
+                       
+               //if(MMI_VIDEO_CALL_STATE_ACTIVE != mmi_video_call_state_get()) 
+                       //{
+               //    mmi_video_call_connect();
+               //}
 
-               if (MMI_VIDEO_CALL_TYPE_VIDEO == s_video_call_params.calltype) 
+                       SCI_TRACE_LOW("[@CHENG_VIDEO_CALL][%s][%d]: %d,%d,%d\n", __FUNCTION__, __LINE__, img->format, img->get, img->put);
+                       
+               if (MMI_VIDEO_CALL_TYPE_VIDEO == mmi_video_call_calltype_get()) 
                        {
-                               video_call_jrtc_image_t * img = &(s_video_call_jrtc.video_frame);
+                               //video_call_jrtc_image_t * img = &(s_video_call_jrtc.video_frame);
+                               
+                               SCI_TRACE_LOW("[@CHENG_VIDEO_CALL][%s][%d]: get=%d,put=%d\n", __FUNCTION__, __LINE__, img->get, img->put);
                                
                                if (img->get != img->put) 
                                {
@@ -297,6 +318,7 @@ static void mmi_video_call_jrtc_on_state(uint32 in)
                                        img->get = img->put; // reset
                                }
                }
+               }
                break;
 
            default:
@@ -315,14 +337,16 @@ static int8 mmi_video_call_jrtc_open(const char* roomid, MMI_VIDEO_CALL_TYPE_E c
        {
            if (MMI_VIDEO_CALL_TYPE_VIDEO == calltype) 
                {
-               s_video_call_jrtc.video_frame.width  = s_video_call_jrtc.camera_frame.width  = 176; // 240; // 176;
-               s_video_call_jrtc.video_frame.height = s_video_call_jrtc.camera_frame.height = 144; // 320; // 144;
-               s_video_call_jrtc.video_frame.fps    = s_video_call_jrtc.camera_frame.fps    = 8; // 10;
+               s_video_call_jrtc.video_frame.width  = s_video_call_jrtc.camera_frame.width  = 176;
+               s_video_call_jrtc.video_frame.height = s_video_call_jrtc.camera_frame.height = 176; // 144;
+               s_video_call_jrtc.video_frame.fps    = s_video_call_jrtc.camera_frame.fps    = 10;
                s_video_call_jrtc.video_frame.kbps   = s_video_call_jrtc.camera_frame.kbps   = 120; // 240;
 
                        //mci_videocall_camera_set_sensor(1); // 0:rear camera; 1:front camera
+                       Sensor_SetCurId(1);
                        
                s_video_call_jrtc.jrtc_ptr = jrtc_open(roomid, 0, &s_video_call_jrtc.video_frame, &s_video_call_jrtc.camera_frame);
+                       //jrtc_set_camera (s_video_call_jrtc.jrtc_ptr, 1, NULL);
            } 
                else 
                {
@@ -380,7 +404,7 @@ int8 mmi_video_call_answer(void)
        SCI_TRACE_LOW("[@CHENG_VIDEO_CALL][%s][%d]: %p\n", __FUNCTION__, __LINE__, s_video_call_jrtc.jrtc_ptr);
        
     if (NULL == s_video_call_jrtc.jrtc_ptr)
-        ret = mmi_video_call_jrtc_open(s_video_call_params.number, s_video_call_params.calltype);
+        ret = mmi_video_call_jrtc_open(mmi_video_call_number_get(), mmi_video_call_calltype_get());
 
     return ret;
 }
index 843781f..750c896 100644 (file)
@@ -574,9 +574,24 @@ PUBLIC void MMIAPI_StopVideoCallRing(void)
 static VC_CONTACTS_DATA_T s_video_call_contact_info = {0};
 static uint8 s_video_call_contact_index = 0;
 static uint8 s_video_call_win_status = 0; // 0-contact list menu; 1-call button select
-MMI_VIDEO_CALL_PARAMS_T s_video_call_params = {0};
+static MMI_VIDEO_CALL_PARAMS_T s_video_call_params = {0};
 
 
+MMI_VIDEO_CALL_STATE_E mmi_video_call_state_get(void)
+{
+       return s_video_call_params.state;
+}
+
+MMI_VIDEO_CALL_TYPE_E mmi_video_call_calltype_get(void)
+{
+       return s_video_call_params.calltype;
+}
+
+char * mmi_video_call_number_get(void)
+{
+       return s_video_call_params.number;
+}
+
 void mmi_video_call_connect(void)
 {
        s_video_call_params.state = MMI_VIDEO_CALL_STATE_ACTIVE;
@@ -1027,11 +1042,11 @@ static void mmi_video_call_main_win_display(MMI_WIN_ID_T win_id, MMI_CTRL_ID_T c
        GUI_LCD_DEV_INFO lcd_dev_info = {GUI_MAIN_LCD_ID, GUI_BLOCK_MAIN};
        GUI_RECT_T full_rect = MMITHEME_GetFullScreenRect();
 
-       //background
-       GUI_FillRect(&lcd_dev_info, full_rect, MMI_BLACK_COLOR);
        GUIAPICTRL_SetState(ctrl_id, GUICTRL_STATE_INVISIBLE, TRUE);
        GUIAPICTRL_SetState(button_ctrl0, GUICTRL_STATE_INVISIBLE, TRUE);
        GUIAPICTRL_SetState(button_ctrl1, GUICTRL_STATE_INVISIBLE, TRUE);
+       //background
+       GUI_FillRect(&lcd_dev_info, full_rect, MMI_BLACK_COLOR);
 
        if(0 == s_video_call_win_status)
        {