diff --git a/.github/ci/build/build_windows.groovy b/.github/ci/build/build_windows.groovy
index 1f7463e05..e8ba84227 100644
--- a/.github/ci/build/build_windows.groovy
+++ b/.github/ci/build/build_windows.groovy
@@ -50,4 +50,4 @@ def doPublish(buildVariables) {
bat "del /f /Q *.zip"
}
-pipelineLoad(this, "ApiExample", "build", "windows", "apiexample_windows")
\ No newline at end of file
+pipelineLoad(this, "api_examples_shengwang", "build", "windows", "apiexample_windows")
\ No newline at end of file
diff --git a/windows/APIExample/APIExample/APIExample.rc b/windows/APIExample/APIExample/APIExample.rc
index 8efcfb2cc..7c2095e59 100755
--- a/windows/APIExample/APIExample/APIExample.rc
+++ b/windows/APIExample/APIExample/APIExample.rc
@@ -17,7 +17,7 @@
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
-// (壬й) resources
+// ����(���壬�й�) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
@@ -839,6 +839,44 @@ BEGIN
CONTROL "",IDC_SLIDER__SHAPE_AREA_INTENSITY,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,346,35,100,15
END
+IDD_DIALOG_MULTIPATH DIALOGEX 0, 0, 632, 400
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ LTEXT "Role:",IDC_STATIC_ROLE,14,14,25,8
+ COMBOBOX IDC_COMBO_ROLE,45,12,80,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ LTEXT "Channel:",IDC_STATIC_CHANNELNAME,14,35,35,8
+ EDITTEXT IDC_EDIT_CHANNELNAME,55,33,100,14,ES_AUTOHSCROLL
+ PUSHBUTTON "Join Channel",IDC_BUTTON_JOINCHANNEL,170,32,70,16
+ LTEXT "Multipath Mode:",IDC_STATIC_MULTIPATH_MODE,14,56,60,8
+ COMBOBOX IDC_COMBO_MULTIPATH_MODE,80,54,80,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ LTEXT "Enable Multipath:",IDC_STATIC_ENABLE_MULTIPATH,170,56,60,8
+ CONTROL "",IDC_CHECK_ENABLE_MULTIPATH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,240,55,15,10
+ CONTROL "",IDC_STATIC_VIDEO,"Static",SS_BLACKFRAME,14,80,400,200
+ LISTBOX IDC_LIST_INFO_MULTIPATH,430,80,180,200,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
+END
+
+IDD_DIALOG_SIMULCAST DIALOGEX 0, 0, 632, 400
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ LTEXT "",IDC_STATIC_VIDEO,0,0,483,283
+ LISTBOX IDC_LIST_INFO_SIMULCAST,495,0,137,283,LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
+ COMBOBOX IDC_COMBO_ROLE,52,323,60,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ LTEXT "Client Role",IDC_STATIC_ROLE,7,324,41,10
+ LTEXT "Channel Name",IDC_STATIC_CHANNELNAME,16,298,48,8
+ EDITTEXT IDC_EDIT_CHANNELNAME,75,296,129,12,ES_AUTOHSCROLL
+ PUSHBUTTON "JoinChannel",IDC_BUTTON_JOINCHANNEL,211,295,50,14
+
+ LTEXT "Simulcast Layers:",IDC_STATIC_LAYER_TITLE,130,324,70,8
+ CONTROL "Layer 1 (High)",IDC_CHECK_LAYER1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,210,320,70,10
+ CONTROL "Layer 2 (Medium)",IDC_CHECK_LAYER2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,290,320,80,10
+ CONTROL "Layer 3 (Low)",IDC_CHECK_LAYER3,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,210,335,70,10
+ CONTROL "Layer 4 (Ultra Low)",IDC_CHECK_LAYER4,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,290,335,80,10
+
+ LTEXT "Select Layer:",IDC_STATIC_LAYER_SELECT,130,324,50,8
+ COMBOBOX IDC_COMBO_LAYER_SELECT,190,322,80,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+END
/////////////////////////////////////////////////////////////////////////////
//
@@ -1374,12 +1412,12 @@ IDR_TEST_WAVE WAVE "res\\ID_TEST_AUDIO.wav"
IDR_WAVE1 WAVE "res\\audiomixing.wav"
-#endif // (壬й) resources
+#endif // ����(���壬�й�) resources
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
-// Ӣ() resources
+// Ӣ��(����) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
@@ -1505,7 +1543,7 @@ BEGIN
IDS_ABOUTBOX "&About APIExample..."
END
-#endif // Ӣ() resources
+#endif // Ӣ��(����) resources
/////////////////////////////////////////////////////////////////////////////
diff --git a/windows/APIExample/APIExample/APIExample.vcxproj b/windows/APIExample/APIExample/APIExample.vcxproj
index f165aabe2..e64e4d296 100644
--- a/windows/APIExample/APIExample/APIExample.vcxproj
+++ b/windows/APIExample/APIExample/APIExample.vcxproj
@@ -280,8 +280,12 @@ if exist $(SolutionDir)APIExample\res\hdr_1280_720.yuv (copy $(SolutionDir)APIEx
+
+
+
+
@@ -294,6 +298,7 @@ if exist $(SolutionDir)APIExample\res\hdr_1280_720.yuv (copy $(SolutionDir)APIEx
+
@@ -306,6 +311,7 @@ if exist $(SolutionDir)APIExample\res\hdr_1280_720.yuv (copy $(SolutionDir)APIEx
+
@@ -351,6 +357,7 @@ if exist $(SolutionDir)APIExample\res\hdr_1280_720.yuv (copy $(SolutionDir)APIEx
+
@@ -363,6 +370,7 @@ if exist $(SolutionDir)APIExample\res\hdr_1280_720.yuv (copy $(SolutionDir)APIEx
+
diff --git a/windows/APIExample/APIExample/APIExample.vcxproj.filters b/windows/APIExample/APIExample/APIExample.vcxproj.filters
index b012a6003..bc67fbe4b 100644
--- a/windows/APIExample/APIExample/APIExample.vcxproj.filters
+++ b/windows/APIExample/APIExample/APIExample.vcxproj.filters
@@ -118,6 +118,15 @@
{2a74c488-9982-4577-8594-8320c71beb6d}
+
+ {221f9de2-f7b5-4d9f-8275-a660d1259cf0}
+
+
+ {97807267-2591-43c9-b24c-03042bf71158}
+
+
+ {3be0c114-2815-4e14-885d-a666411338db}
+
@@ -282,6 +291,18 @@
Advanced\Beauty
+
+ Advanced\Beauty2.0
+
+
+ Advanced\Beauty2.0
+
+
+ Advanced\Multipath
+
+
+ Advanced\Simulcast
+
@@ -440,6 +461,24 @@
Source Files
+
+ Source Files
+
+
+ Advanced\Beauty2.0
+
+
+ Advanced\Beauty2.0
+
+
+ Source Files
+
+
+ Advanced\Multipath
+
+
+ Advanced\Simulcast
+
diff --git a/windows/APIExample/APIExample/APIExampleDlg.cpp b/windows/APIExample/APIExample/APIExampleDlg.cpp
index bf0030260..a18d54388 100755
--- a/windows/APIExample/APIExample/APIExampleDlg.cpp
+++ b/windows/APIExample/APIExample/APIExampleDlg.cpp
@@ -1,4 +1,3 @@
-
// APIExampleDlg.cpp : implementation file
//
@@ -250,6 +249,7 @@ void CAPIExampleDlg::InitSceneDialog()
m_vecAdvanced.push_back(advancedMediaEncrypt);
m_vecAdvanced.push_back(AdvancedLocalVideoTranscoding);
m_vecAdvanced.push_back(beautyFace);
+ m_vecAdvanced.push_back(beautyFace2);
m_vecAdvanced.push_back(advancedBeautyAudio);
m_vecAdvanced.push_back(SpatialAudio);
m_pMultiChannelDlg = new CAgoraMultiChannelDlg(&m_staMainArea);
@@ -259,6 +259,8 @@ void CAPIExampleDlg::InitSceneDialog()
//transparent bg
m_vecAdvanced.push_back(TransparentBackground);
m_vecAdvanced.push_back(RteUrlPlayer);
+ m_vecAdvanced.push_back(Multipath);
+ m_vecAdvanced.push_back(advancedSimulcast);
//inject
m_pRtmpInjectDlg = new CAgoraRtmpInjectionDlg(&m_staMainArea);
@@ -374,6 +376,10 @@ void CAPIExampleDlg::InitSceneDialog()
m_pDlgBeauty->Create(CDlgBeauty::IDD);
m_pDlgBeauty->MoveWindow(&rcWnd);
+ m_pDlgBeauty2 = new CDlgBeauty2(&m_staMainArea);
+ m_pDlgBeauty2->Create(CDlgBeauty2::IDD);
+ m_pDlgBeauty2->MoveWindow(&rcWnd);
+
// spatial audio
m_pSpatialAudioDlg = new CAgoraSpatialAudioDlg(&m_staMainArea);
@@ -401,6 +407,16 @@ void CAPIExampleDlg::InitSceneDialog()
m_RtePlayer = new CRtePlayerDlg(&m_staMainArea);
m_RtePlayer->Create(CRtePlayerDlg::IDD);
m_RtePlayer->MoveWindow(&rcWnd);
+
+ // mulit path
+ m_pMultipathDlg = new CMultipathDlg(&m_staMainArea);
+ m_pMultipathDlg->Create(CMultipathDlg::IDD);
+ m_pMultipathDlg->MoveWindow(&rcWnd);
+
+ // simulcast
+ m_pSimulcastDlg = new CSimulcastDlg(&m_staMainArea);
+ m_pSimulcastDlg->Create(CSimulcastDlg::IDD);
+ m_pSimulcastDlg->MoveWindow(&rcWnd);
}
@@ -640,6 +656,10 @@ void CAPIExampleDlg::CreateScene(CTreeCtrl& treeScene, CString selectedText)
m_pDlgBeauty->InitAgora();
m_pDlgBeauty->ShowWindow(SW_SHOW);
}
+ else if (selectedText.Compare(beautyFace2) == 0) {
+ m_pDlgBeauty2->InitAgora();
+ m_pDlgBeauty2->ShowWindow(SW_SHOW);
+ }
else if (selectedText.Compare(SpatialAudio) == 0) {
m_pSpatialAudioDlg->InitAgora();
m_pSpatialAudioDlg->ShowWindow(SW_SHOW);
@@ -656,6 +676,14 @@ void CAPIExampleDlg::CreateScene(CTreeCtrl& treeScene, CString selectedText)
m_RtePlayer->InitAgora();
m_RtePlayer->ShowWindow(SW_SHOW);
}
+ else if (selectedText.Compare(Multipath) == 0) {
+ m_pMultipathDlg->InitAgora();
+ m_pMultipathDlg->ShowWindow(SW_SHOW);
+ }
+ else if (selectedText.Compare(advancedSimulcast) == 0) {
+ m_pSimulcastDlg->InitAgora();
+ m_pSimulcastDlg->ShowWindow(SW_SHOW);
+ }
//Sleep(500);
}
@@ -777,6 +805,10 @@ void CAPIExampleDlg::ReleaseScene(CTreeCtrl& treeScene, HTREEITEM& hSelectItem)
m_pDlgBeauty->UnInitAgora();
m_pDlgBeauty->ShowWindow(SW_HIDE);
}
+ else if (str.Compare(beautyFace2) == 0) {
+ m_pDlgBeauty2->UnInitAgora();
+ m_pDlgBeauty2->ShowWindow(SW_HIDE);
+ }
else if (str.Compare(SpatialAudio) == 0) {
m_pSpatialAudioDlg->UnInitAgora();
m_pSpatialAudioDlg->ShowWindow(SW_HIDE);
@@ -793,6 +825,14 @@ void CAPIExampleDlg::ReleaseScene(CTreeCtrl& treeScene, HTREEITEM& hSelectItem)
m_RtePlayer->UnInitAgora();
m_RtePlayer->ShowWindow(SW_HIDE);
}
+ else if (str.Compare(Multipath) == 0) {
+ m_pMultipathDlg->UnInitAgora();
+ m_pMultipathDlg->ShowWindow(SW_HIDE);
+ }
+ else if (str.Compare(advancedSimulcast) == 0) {
+ m_pSimulcastDlg->UnInitAgora();
+ m_pSimulcastDlg->ShowWindow(SW_HIDE);
+ }
//Sleep(500);
}
diff --git a/windows/APIExample/APIExample/APIExampleDlg.h b/windows/APIExample/APIExample/APIExampleDlg.h
index af7a753ed..1f3a9571b 100755
--- a/windows/APIExample/APIExample/APIExampleDlg.h
+++ b/windows/APIExample/APIExample/APIExampleDlg.h
@@ -27,6 +27,7 @@
#include "Advanced/MediaPlayer/CAgoraMediaPlayer.h"
#include "Advanced/LocalVideoTranscoding/CLocalVideoTranscodingDlg.h"
#include "Advanced/Beauty/CDlgBeauty.h"
+#include "Advanced/Beauty2.0/CDlgBeauty2.0.h"
#include "Advanced/BeautyAudio/CAgoraBeautyAudio.h"
#include "Advanced/SpatialAudio/CAgoraSpatialAudioDlg.h"
#include "Advanced/MediaRecorder/CAgoraMediaRecorder.h"
@@ -36,6 +37,8 @@
#include "Advanced/TransparentBg/TransparentBgDialog.h"
#include "Advanced/RtePlayer/RtePlayerDlg.h"
#include "Advanced/CrossChannel/CAgoraCrossChannelDlg.h"
+#include "Advanced/Multipath/CMultipathDlg.h"
+#include "Advanced/Simulcast/CSimulcastDlg.h"
#include
#include
#include