Skip to content

Commit 19bd8b6

Browse files
committed
Pre-release branch
2 parents 82ae3bf + b2b05c8 commit 19bd8b6

20 files changed

+146
-19
lines changed

.github/ISSUE_TEMPLATE/bug_report.md

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
---
2+
name: Bug report
3+
about: Create a report to help us improve
4+
title: "[BUG]"
5+
labels: bug,needs-triage
6+
assignees: ''
7+
8+
---
9+
10+
**Logging**
11+
Add relevent SDK logging. IMPORTANT NOTE: Please make sure to NOT share AWS access credentials under any circumstance! Please make sure they are not in the logs.
12+
13+
**Describe the bug**
14+
A clear and concise description of what the bug is.
15+
16+
**SDK version number**
17+
Include the SDK version you are running. If it is a specific commit on master branch, include that
18+
19+
**Open source building**
20+
If it is a build issue, include 3rd party library version and steps to how you are building it
21+
22+
**To Reproduce**
23+
Steps to reproduce the behavior:
24+
1. Go to '...'
25+
2. Click on '....'
26+
3. Scroll down to '....'
27+
4. See error
28+
29+
**Expected behavior**
30+
A clear and concise description of what you expected to happen.
31+
32+
**Screenshots**
33+
If applicable, add screenshots to help explain your problem.
34+
35+
**Desktop (please complete the following information):**
36+
- OS: [e.g. iOS]
37+
- Browser [e.g. chrome, safari]
38+
- Version [e.g. 22]
39+
40+
**Smartphone (please complete the following information):**
41+
- Device: [e.g. iPhone6]
42+
- OS: [e.g. iOS8.1]
43+
- Browser [e.g. stock browser, safari]
44+
- Version [e.g. 22]
45+
46+
**Additional context**
47+
Add any other context about the problem here.
48+
+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
name: Questions/Help
3+
about: Describe this issue template's purpose here.
4+
title: "[QUESTION]"
5+
labels: question,needs-triage
6+
assignees: ''
7+
8+
---
9+
10+
A one liner description about the use case and what you are trying to achieve
11+
12+
** Logging **
13+
Add relevent SDK logging. IMPORTANT NOTE: Please make sure to NOT share AWS access credentials under any circumstance! Please make sure they are not in the logs.
14+
15+
** Any design considerations/constraints **
16+
Explain in detail how you would like to integrate our SDK into your solution
17+
18+
** If you would not like to open an issue to discuss your solution in open-platform, please email your question to kinesis-video-support@amazon.com **

.github/build_windows.bat

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvars64.bat" amd64
2+
mkdir build
3+
cd build
4+
cmd.exe /c cmake -G "NMake Makefiles" ..
5+
cmake -G "NMake Makefiles" -DBUILD_TEST=TRUE ..
6+
nmake

.github/workflows/ci.yml

-3
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,6 @@ jobs:
9292
cmake .. -DCODE_COVERAGE=TRUE -DBUILD_TEST=TRUE
9393
make
9494
ulimit -c unlimited -S
95-
- name: Run tests
96-
run: |
97-
cd build
9895
timeout --signal=SIGABRT 60m ./tst/webrtc_client_test
9996
- name: Code coverage
10097
run: |

CMake/Dependencies/libkvsCommonLws-CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ include(ExternalProject)
66

77
ExternalProject_Add(libkvsCommonLws-download
88
GIT_REPOSITORY https://github.com/awslabs/amazon-kinesis-video-streams-producer-c.git
9-
GIT_TAG daf742a0a53f72341e5b2df75a05ebe6d2557811
9+
GIT_TAG b0342a72346ec604f2a39a860fff0f7e8ae35914
1010
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/build
1111
CMAKE_ARGS
1212
-DCMAKE_INSTALL_PREFIX=${OPEN_SRC_INSTALL_PREFIX}

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ These would be applicable if the SDK is being linked with system dependencies in
8080

8181
#### Cross-Compilation
8282

83-
If you wish to cross-compile `CC` and `CXX` are respected when building the library and all its dependencies. You will also need to set `BUILD_OPENSSL_PLATFORM`, `BUILD_LIBSRTP_HOST_PLATFORM` and `BUILD_LIBSRTP_DESTINATION_PLATFORM`. See our [.travis.yml](.travis.yml) for an example of this. Every commit is cross compiled to ensure that it continues to work.
83+
If you wish to cross-compile `CC` and `CXX` are respected when building the library and all its dependencies. You will also need to set `BUILD_OPENSSL_PLATFORM`, `BUILD_LIBSRTP_HOST_PLATFORM` and `BUILD_LIBSRTP_DESTINATION_PLATFORM`. See our codecov.io for an example of this. Every commit is cross compiled to ensure that it continues to work.
8484

8585
#### Static Builds
8686

samples/Common.c

+29-1
Original file line numberDiff line numberDiff line change
@@ -377,7 +377,13 @@ STATUS initializePeerConnection(PSampleConfiguration pSampleConfiguration, PRtcP
377377
configuration.iceTransportPolicy = ICE_TRANSPORT_POLICY_ALL;
378378

379379
// Set the STUN server
380-
SNPRINTF(configuration.iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, pSampleConfiguration->channelInfo.pRegion);
380+
PCHAR pKinesisVideoStunUrlPostFix = KINESIS_VIDEO_STUN_URL_POSTFIX;
381+
// If region is in CN, add CN region uri postfix
382+
if (STRSTR(pSampleConfiguration->channelInfo.pRegion, "cn-")) {
383+
pKinesisVideoStunUrlPostFix = KINESIS_VIDEO_STUN_URL_POSTFIX_CN;
384+
}
385+
SNPRINTF(configuration.iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, pSampleConfiguration->channelInfo.pRegion,
386+
pKinesisVideoStunUrlPostFix);
381387

382388
if (pSampleConfiguration->useTurn) {
383389
// Set the URIs from the configuration
@@ -1118,6 +1124,28 @@ STATUS freeSampleConfiguration(PSampleConfiguration* ppSampleConfiguration)
11181124
timerQueueFree(&pSampleConfiguration->timerQueueHandle);
11191125
}
11201126

1127+
if (IS_VALID_TIMER_QUEUE_HANDLE(pSampleConfiguration->timerQueueHandle)) {
1128+
if (pSampleConfiguration->iceCandidatePairStatsTimerId != MAX_UINT32) {
1129+
retStatus = timerQueueCancelTimer(pSampleConfiguration->timerQueueHandle, pSampleConfiguration->iceCandidatePairStatsTimerId,
1130+
(UINT64) pSampleConfiguration);
1131+
if (STATUS_FAILED(retStatus)) {
1132+
DLOGE("Failed to cancel stats timer with: 0x%08x", retStatus);
1133+
}
1134+
pSampleConfiguration->iceCandidatePairStatsTimerId = MAX_UINT32;
1135+
}
1136+
1137+
if (pSampleConfiguration->pregenerateCertTimerId != MAX_UINT32) {
1138+
retStatus = timerQueueCancelTimer(pSampleConfiguration->timerQueueHandle, pSampleConfiguration->pregenerateCertTimerId,
1139+
(UINT64) pSampleConfiguration);
1140+
if (STATUS_FAILED(retStatus)) {
1141+
DLOGE("Failed to cancel certificate pre-generation timer with: 0x%08x", retStatus);
1142+
}
1143+
pSampleConfiguration->pregenerateCertTimerId = MAX_UINT32;
1144+
}
1145+
1146+
timerQueueFree(&pSampleConfiguration->timerQueueHandle);
1147+
}
1148+
11211149
if (pSampleConfiguration->pPendingSignalingMessageForRemoteClient != NULL) {
11221150
// Iterate and free all the pending queues
11231151
stackQueueGetIterator(pSampleConfiguration->pPendingSignalingMessageForRemoteClient, &iterator);

samples/Samples.h

+3
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,9 @@ extern "C" {
5959
// comment out this line to disable the feature
6060
#define KVS_USE_SIGNALING_CHANNEL_THREADPOOL 1
6161

62+
#define MASTER_DATA_CHANNEL_MESSAGE "This message is from the KVS Master"
63+
#define VIEWER_DATA_CHANNEL_MESSAGE "This message is from the KVS Viewer"
64+
6265
/* Uncomment the following line in order to enable IoT credentials checks in the provided samples */
6366
// #define IOT_CORE_ENABLE_CREDENTIALS 1
6467

samples/kvsWebRTCClientMaster.c

+14
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,20 @@ INT32 main(INT32 argc, CHAR* argv[])
6464
// Kick of the termination sequence
6565
ATOMIC_STORE_BOOL(&pSampleConfiguration->appTerminateFlag, TRUE);
6666

67+
if (IS_VALID_MUTEX_VALUE(pSampleConfiguration->sampleConfigurationObjLock)) {
68+
MUTEX_LOCK(pSampleConfiguration->sampleConfigurationObjLock);
69+
}
70+
71+
// Cancel the media thread
72+
if (pSampleConfiguration->mediaThreadStarted) {
73+
DLOGD("Canceling media thread");
74+
THREAD_CANCEL(pSampleConfiguration->mediaSenderTid);
75+
}
76+
77+
if (IS_VALID_MUTEX_VALUE(pSampleConfiguration->sampleConfigurationObjLock)) {
78+
MUTEX_UNLOCK(pSampleConfiguration->sampleConfigurationObjLock);
79+
}
80+
6781
if (pSampleConfiguration->mediaSenderTid != INVALID_TID_VALUE) {
6882
THREAD_JOIN(pSampleConfiguration->mediaSenderTid, NULL);
6983
}

scripts/parse_status.py

+4
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,11 @@
2020
print(example_sums) # {'STATUS_CHILD': "0x5", 'STATUS_PARENT': "0x4"}
2121
'''
2222

23+
<<<<<<< HEAD
2324
pattern = re.compile("#define *(STATUS\_[A-Z_]*) *(([A-Z_]*) *\+ *)?0x([0-9a-fA-F]*)")
25+
=======
26+
pattern = re.compile("#define *(STATUS\_[A-Z_]*) *(([A-Z_]*) *\+ *)?0x([0-9]*)")
27+
>>>>>>> master
2428

2529
def operands_by_name(paragraph):
2630
matches = filter(None, [pattern.match(line) for line in paragraph.splitlines()])

src/include/com/amazonaws/kinesis/video/webrtcclient/Include.h

+3-1
Original file line numberDiff line numberDiff line change
@@ -670,7 +670,9 @@ extern "C" {
670670
/**
671671
* Parameterized string for KVS STUN Server
672672
*/
673-
#define KINESIS_VIDEO_STUN_URL "stun:stun.kinesisvideo.%s.amazonaws.com:443"
673+
#define KINESIS_VIDEO_STUN_URL_POSTFIX "amazonaws.com"
674+
#define KINESIS_VIDEO_STUN_URL_POSTFIX_CN "amazonaws.com.cn"
675+
#define KINESIS_VIDEO_STUN_URL "stun:stun.kinesisvideo.%s.%s:443"
674676

675677
/**
676678
* Default signaling SSL port

src/source/Ice/IceAgent.c

+1
Original file line numberDiff line numberDiff line change
@@ -2306,6 +2306,7 @@ STATUS incomingRelayedDataHandler(UINT64 customData, PSocketConnection pSocketCo
23062306

23072307
CHK(pRelayedCandidate != NULL && pSocketConnection != NULL, STATUS_NULL_ARG);
23082308

2309+
DLOGV("Candidate id: %s", pRelayedCandidate->id);
23092310
CHK_STATUS(turnConnectionIncomingDataHandler(pRelayedCandidate->pTurnConnection, pBuffer, bufferLen, pSrc, pDest, turnChannelData,
23102311
&turnChannelDataCount));
23112312
for (i = 0; i < turnChannelDataCount; ++i) {

src/source/Signaling/ChannelInfo.c

+4
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,10 @@ STATUS createValidateChannelInfo(PChannelInfo pOrigChannelInfo, PChannelInfo* pp
138138
// Create a fully qualified URI
139139
SNPRINTF(pCurPtr, MAX_CONTROL_PLANE_URI_CHAR_LEN, "%s%s.%s%s", CONTROL_PLANE_URI_PREFIX, KINESIS_VIDEO_SERVICE_NAME, pChannelInfo->pRegion,
140140
CONTROL_PLANE_URI_POSTFIX);
141+
// If region is in CN, add CN region uri postfix
142+
if (STRSTR(pChannelInfo->pRegion, "cn-")) {
143+
STRCAT(pCurPtr, ".cn");
144+
}
141145
}
142146

143147
pChannelInfo->pControlPlaneUrl = pCurPtr;

src/source/Signaling/Client.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ STATUS createSignalingClientSync(PSignalingClientInfo pClientInfo, PChannelInfo
6464
UINT64 signalingClientCreationWaitTime;
6565
UINT64 startTime = 0;
6666

67-
DLOGI("Creating Signaling Client Sync");
67+
DLOGV("Creating Signaling Client Sync");
6868
CHK(pSignalingHandle != NULL && pClientInfo != NULL, STATUS_NULL_ARG);
6969

7070
// Convert the client info to the internal structure with empty values

src/source/Signaling/LwsApiCalls.c

-1
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,6 @@ INT32 lwsHttpCallbackRoutine(struct lws* wsi, enum lws_callback_reasons reason,
173173
pLwsCallInfo->callInfo.callResult = SERVICE_CALL_SIGNATURE_NOT_YET_CURRENT;
174174
}
175175
}
176-
177176
} else {
178177
DLOGV("Received client http read response: %s", pLwsCallInfo->callInfo.responseData);
179178
}

src/source/Signaling/Signaling.c

+2
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ STATUS createSignalingSync(PSignalingClientInfoInternal pClientInfo, PChannelInf
4444

4545
pSignalingClient->version = SIGNALING_CLIENT_CURRENT_VERSION;
4646

47+
pSignalingClient->version = SIGNALING_CLIENT_CURRENT_VERSION;
48+
4749
// Set invalid call times
4850
pSignalingClient->describeTime = INVALID_TIMESTAMP_VALUE;
4951
pSignalingClient->createTime = INVALID_TIMESTAMP_VALUE;

tst/PeerConnectionFunctionalityTest.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ TEST_F(PeerConnectionFunctionalityTest, sendDataWithClosedSocketConnectionWithHo
232232
PSocketConnection pSocketConnection;
233233

234234
MEMSET(&configuration, 0x00, SIZEOF(RtcConfiguration));
235-
SNPRINTF(configuration.iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, TEST_DEFAULT_REGION);
235+
SNPRINTF(configuration.iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, TEST_DEFAULT_REGION, TEST_DEFAULT_STUN_URL_POSTFIX);
236236

237237
EXPECT_EQ(createPeerConnection(&configuration, &offerPc), STATUS_SUCCESS);
238238
EXPECT_EQ(createPeerConnection(&configuration, &answerPc), STATUS_SUCCESS);
@@ -524,7 +524,7 @@ TEST_F(PeerConnectionFunctionalityTest, connectTwoPeersWithHostAndStun)
524524
MEMSET(&configuration, 0x00, SIZEOF(RtcConfiguration));
525525

526526
// Set the STUN server
527-
SNPRINTF(configuration.iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, TEST_DEFAULT_REGION);
527+
SNPRINTF(configuration.iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, TEST_DEFAULT_REGION, TEST_DEFAULT_STUN_URL_POSTFIX);
528528

529529
EXPECT_EQ(createPeerConnection(&configuration, &offerPc), STATUS_SUCCESS);
530530
EXPECT_EQ(createPeerConnection(&configuration, &answerPc), STATUS_SUCCESS);

tst/SdpApiTest.cpp

+7-7
Original file line numberDiff line numberDiff line change
@@ -614,7 +614,7 @@ a=group:BUNDLE 0
614614
RtcSessionDescriptionInit offerSdp{};
615615
RtcSessionDescriptionInit answerSdp{};
616616

617-
SNPRINTF(configuration.iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, TEST_DEFAULT_REGION);
617+
SNPRINTF(configuration.iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, TEST_DEFAULT_REGION, TEST_DEFAULT_STUN_URL_POSTFIX);
618618

619619
track1.kind = MEDIA_STREAM_TRACK_KIND_VIDEO;
620620
track1.codec = RTC_CODEC_VP8;
@@ -667,7 +667,7 @@ a=group:BUNDLE audio video data
667667
RtcSessionDescriptionInit offerSdp{};
668668
RtcSessionDescriptionInit answerSdp{};
669669

670-
SNPRINTF(configuration.iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, TEST_DEFAULT_REGION);
670+
SNPRINTF(configuration.iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, TEST_DEFAULT_REGION, KINESIS_VIDEO_STUN_URL_POSTFIX);
671671

672672
track1.kind = MEDIA_STREAM_TRACK_KIND_VIDEO;
673673
track1.codec = RTC_CODEC_VP8;
@@ -728,7 +728,7 @@ a=group:BUNDLE 0
728728
RtcSessionDescriptionInit offerSdp{};
729729
RtcSessionDescriptionInit answerSdp{};
730730

731-
SNPRINTF(configuration.iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, TEST_DEFAULT_REGION);
731+
SNPRINTF(configuration.iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, TEST_DEFAULT_REGION, TEST_DEFAULT_STUN_URL_POSTFIX);
732732

733733
track1.kind = MEDIA_STREAM_TRACK_KIND_VIDEO;
734734
track1.codec = RTC_CODEC_VP8;
@@ -786,7 +786,7 @@ a=group:BUNDLE 0
786786
RtcSessionDescriptionInit offerSdp{};
787787
RtcSessionDescriptionInit answerSdp{};
788788

789-
SNPRINTF(configuration.iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, TEST_DEFAULT_REGION);
789+
SNPRINTF(configuration.iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, TEST_DEFAULT_REGION, TEST_DEFAULT_STUN_URL_POSTFIX);
790790

791791
track1.kind = MEDIA_STREAM_TRACK_KIND_VIDEO;
792792
track1.codec = RTC_CODEC_VP8;
@@ -849,7 +849,7 @@ a=ice-options:trickle
849849
RtcSessionDescriptionInit offerSdp{};
850850
RtcSessionDescriptionInit answerSdp{};
851851

852-
SNPRINTF(configuration.iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, TEST_DEFAULT_REGION);
852+
SNPRINTF(configuration.iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, TEST_DEFAULT_REGION, TEST_DEFAULT_STUN_URL_POSTFIX);
853853

854854
track1.kind = MEDIA_STREAM_TRACK_KIND_VIDEO;
855855
track1.codec = RTC_CODEC_VP8;
@@ -1102,7 +1102,7 @@ a=ice-options:trickle
11021102
RtcSessionDescriptionInit offerSdp{};
11031103
RtcSessionDescriptionInit answerSdp{};
11041104

1105-
SNPRINTF(configuration.iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, TEST_DEFAULT_REGION);
1105+
SNPRINTF(configuration.iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, TEST_DEFAULT_REGION, KINESIS_VIDEO_STUN_URL_POSTFIX);
11061106

11071107
track1.kind = MEDIA_STREAM_TRACK_KIND_VIDEO;
11081108
track1.codec = RTC_CODEC_VP8;
@@ -1320,7 +1320,7 @@ a=ssrc:1644235696 cname:{36a6a74c-73a4-594b-9bb0-023b4d357280})";
13201320
RtcSessionDescriptionInit offerSdp{};
13211321
RtcSessionDescriptionInit answerSdp{};
13221322

1323-
SNPRINTF(configuration.iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, TEST_DEFAULT_REGION);
1323+
SNPRINTF(configuration.iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, TEST_DEFAULT_REGION, KINESIS_VIDEO_STUN_URL_POSTFIX);
13241324

13251325
track1.kind = MEDIA_STREAM_TRACK_KIND_VIDEO;
13261326
track1.codec = RTC_CODEC_VP8;

tst/WebRTCClientTestFixture.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ void WebRtcClientTestBase::getIceServers(PRtcConfiguration pRtcConfiguration)
256256
EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(mSignalingClientHandle, &iceConfigCount));
257257

258258
// Set the STUN server
259-
SNPRINTF(pRtcConfiguration->iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, TEST_DEFAULT_REGION);
259+
SNPRINTF(pRtcConfiguration->iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, TEST_DEFAULT_REGION, TEST_DEFAULT_STUN_URL_POSTFIX);
260260

261261
for (uriCount = 0, i = 0; i < iceConfigCount; i++) {
262262
EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfo(mSignalingClientHandle, i, &pIceConfigInfo));

tst/WebRTCClientTestFixture.h

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#include <atomic>
99

1010
#define TEST_DEFAULT_REGION ((PCHAR) "us-west-2")
11+
#define TEST_DEFAULT_STUN_URL_POSTFIX (KINESIS_VIDEO_STUN_URL_POSTFIX)
1112
#define TEST_STREAMING_TOKEN_DURATION (40 * HUNDREDS_OF_NANOS_IN_A_SECOND)
1213
#define TEST_JITTER_BUFFER_CLOCK_RATE (1000)
1314
#define TEST_SIGNALING_MASTER_CLIENT_ID (PCHAR) "Test_Master_ClientId"

0 commit comments

Comments
 (0)