Skip to content

Commit a4e293d

Browse files
authored
Apply signaling component -- rebase (#2020)
* Porting wrapper of signaling component. * Fix corejson cmake files. * Remove ice server config check in signaling API test.
1 parent 2035ba1 commit a4e293d

12 files changed

+593
-929
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
cmake_minimum_required(VERSION 3.6.3)
2+
3+
project(libcorejson NONE)
4+
5+
if (BUILD_STATIC_LIBS OR WIN32)
6+
set(LIBCOREJSON_SHARED_LIBS OFF)
7+
else()
8+
set(LIBCOREJSON_SHARED_LIBS ON)
9+
endif()
10+
11+
include(ExternalProject)
12+
ExternalProject_Add(libcorejson
13+
GIT_REPOSITORY https://github.com/FreeRTOS/coreJSON.git
14+
GIT_TAG dc1ab9130a1fb99b801a2a1fa8e9f42239f752be
15+
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/build
16+
PATCH_COMMAND git apply --ignore-whitespace ${CMAKE_CURRENT_LIST_DIR}/libcorejson-add-cmakelists.patch
17+
CMAKE_ARGS
18+
-DCMAKE_INSTALL_PREFIX=${OPEN_SRC_INSTALL_PREFIX}
19+
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
20+
-DBUILD_SHARED_LIBS=${LIBCOREJSON_SHARED_LIBS}
21+
"-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} -fPIC"
22+
BUILD_ALWAYS TRUE
23+
TEST_COMMAND ""
24+
)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
diff --git a/CMakeLists.txt b/CMakeLists.txt
2+
new file mode 100644
3+
index 0000000..e48e611
4+
--- /dev/null
5+
+++ b/CMakeLists.txt
6+
@@ -0,0 +1,24 @@
7+
+cmake_minimum_required(VERSION 3.6.3)
8+
+project(corejson C)
9+
+
10+
+include(jsonFilePaths.cmake)
11+
+
12+
+if(BUILD_SHARED_LIBS)
13+
+ add_library(corejson SHARED ${JSON_SOURCES})
14+
+else()
15+
+ add_library(corejson STATIC ${JSON_SOURCES})
16+
+endif()
17+
+
18+
+target_include_directories(corejson PUBLIC
19+
+ ${JSON_INCLUDE_PUBLIC_DIRS})
20+
+
21+
+# install header files
22+
+install(
23+
+ FILES ${JSON_INCLUDE_PUBLIC_DIRS}/core_json.h
24+
+ DESTINATION include/corejson)
25+
+
26+
+install(
27+
+ TARGETS corejson
28+
+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
29+
+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
30+
+ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
cmake_minimum_required(VERSION 3.6.3)
2+
3+
project(libkvssignaling NONE)
4+
5+
include(ExternalProject)
6+
if (BUILD_STATIC_LIBS OR WIN32)
7+
set(LIBKVSSIGNALING_SHARED_LIBS OFF)
8+
else()
9+
set(LIBKVSSIGNALING_SHARED_LIBS ON)
10+
endif()
11+
12+
ExternalProject_Add(libkvssignaling
13+
GIT_REPOSITORY https://github.com/awslabs/amazon-kinesis-video-streams-signaling.git
14+
GIT_TAG fb54c01f6f03838ed19ad5c1857bb9406e89f4df
15+
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/build
16+
CMAKE_ARGS
17+
-DCMAKE_INSTALL_PREFIX=${OPEN_SRC_INSTALL_PREFIX}
18+
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
19+
-DBUILD_SHARED_LIBS=${LIBKVSSIGNALING_SHARED_LIBS}
20+
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
21+
BUILD_ALWAYS TRUE
22+
TEST_COMMAND ""
23+
)

CMake/Utilities.cmake

+3-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ function(build_dependency lib_name)
1616
kvsCommonLws
1717
kvssdp
1818
kvsstun
19-
kvsrtp)
19+
kvsrtp
20+
kvssignaling
21+
corejson)
2022
list(FIND supported_libs ${lib_name} index)
2123
if(${index} EQUAL -1)
2224
message(WARNING "${lib_name} is not supported to build from source")

CMakeLists.txt

+18
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,20 @@ if(BUILD_DEPENDENCIES)
224224
build_dependency(kvsstun ${BUILD_ARGS})
225225
build_dependency(kvsrtp ${BUILD_ARGS})
226226

227+
set(BUILD_ARGS
228+
-DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS}
229+
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
230+
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS})
231+
232+
build_dependency(corejson ${BUILD_ARGS})
233+
234+
set(BUILD_ARGS
235+
-DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS}
236+
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
237+
"-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} -I${OPEN_SRC_INSTALL_PREFIX}/include/corejson")
238+
239+
build_dependency(kvssignaling ${BUILD_ARGS})
240+
227241
set(BUILD_ARGS
228242
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
229243
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS})
@@ -412,6 +426,8 @@ target_link_libraries(
412426
kvssdp
413427
kvsstun
414428
kvsrtp
429+
kvssignaling
430+
corejson
415431
${CMAKE_THREAD_LIBS_INIT}
416432
${OPENSSL_SSL_LIBRARY}
417433
${OPENSSL_CRYPTO_LIBRARY}
@@ -436,6 +452,8 @@ target_link_libraries(
436452
kvssdp
437453
kvsstun
438454
kvsrtp
455+
kvssignaling
456+
corejson
439457
PRIVATE kvspicUtils
440458
kvspicState
441459
${CMAKE_THREAD_LIBS_INIT}

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

+2
Original file line numberDiff line numberDiff line change
@@ -384,6 +384,8 @@ extern "C" {
384384
#define STATUS_SIGNALING_JOIN_SESSION_CALL_FAILED STATUS_SIGNALING_BASE + 0x0000004a
385385
#define STATUS_SIGNALING_JOIN_SESSION_CONNECTED_FAILED STATUS_SIGNALING_BASE + 0x0000004b
386386
#define STATUS_SIGNALING_DESCRIBE_MEDIA_CALL_FAILED STATUS_SIGNALING_BASE + 0x0000004c
387+
#define STATUS_SIGNALING_INVALID_OUTPUT_ROLE STATUS_SIGNALING_BASE + 0x0000004d
388+
#define STATUS_SIGNALING_INVALID_OUTPUT_MESSAGE_TYPE STATUS_SIGNALING_BASE + 0x0000004e
387389

388390
/*!@} */
389391

src/source/Signaling/ChannelInfo.c

-33
Original file line numberDiff line numberDiff line change
@@ -317,39 +317,6 @@ PCHAR getStringFromChannelType(SIGNALING_CHANNEL_TYPE type)
317317
return typeStr;
318318
}
319319

320-
SIGNALING_CHANNEL_ROLE_TYPE getChannelRoleTypeFromString(PCHAR type, UINT32 length)
321-
{
322-
// Assume the channel Deleting status first
323-
SIGNALING_CHANNEL_ROLE_TYPE channelRoleType = SIGNALING_CHANNEL_ROLE_TYPE_UNKNOWN;
324-
325-
if (0 == STRNCMP(SIGNALING_CHANNEL_ROLE_TYPE_MASTER_STR, type, length)) {
326-
channelRoleType = SIGNALING_CHANNEL_ROLE_TYPE_MASTER;
327-
} else if (0 == STRNCMP(SIGNALING_CHANNEL_ROLE_TYPE_VIEWER_STR, type, length)) {
328-
channelRoleType = SIGNALING_CHANNEL_ROLE_TYPE_VIEWER;
329-
}
330-
331-
return channelRoleType;
332-
}
333-
334-
PCHAR getStringFromChannelRoleType(SIGNALING_CHANNEL_ROLE_TYPE type)
335-
{
336-
PCHAR typeStr;
337-
338-
switch (type) {
339-
case SIGNALING_CHANNEL_ROLE_TYPE_MASTER:
340-
typeStr = SIGNALING_CHANNEL_ROLE_TYPE_MASTER_STR;
341-
break;
342-
case SIGNALING_CHANNEL_ROLE_TYPE_VIEWER:
343-
typeStr = SIGNALING_CHANNEL_ROLE_TYPE_VIEWER_STR;
344-
break;
345-
default:
346-
typeStr = SIGNALING_CHANNEL_ROLE_TYPE_UNKNOWN_STR;
347-
break;
348-
}
349-
350-
return typeStr;
351-
}
352-
353320
// https://docs.aws.amazon.com/kinesisvideostreams-webrtc-dg/latest/devguide/kvswebrtc-how-iam.html#kinesis-using-iam-arn-format
354321
// Example: arn:aws:kinesisvideo:region:account-id:channel/channel-name/code
355322
STATUS validateKvsSignalingChannelArnAndExtractChannelName(PChannelInfo pChannelInfo, PUINT16 pStart, PUINT16 pNumChars)

src/source/Signaling/ChannelInfo.h

-24
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,6 @@ extern "C" {
2323
#define SIGNALING_CHANNEL_TYPE_UNKNOWN_STR (PCHAR) "UNKOWN"
2424
#define SIGNALING_CHANNEL_TYPE_SINGLE_MASTER_STR (PCHAR) "SINGLE_MASTER"
2525

26-
// Signaling channel role type string
27-
#define SIGNALING_CHANNEL_ROLE_TYPE_UNKNOWN_STR (PCHAR) "UNKOWN"
28-
#define SIGNALING_CHANNEL_ROLE_TYPE_MASTER_STR (PCHAR) "MASTER"
29-
#define SIGNALING_CHANNEL_ROLE_TYPE_VIEWER_STR (PCHAR) "VIEWER"
30-
3126
// Min and max for the message TTL value
3227
#define MIN_SIGNALING_MESSAGE_TTL_VALUE (5 * HUNDREDS_OF_NANOS_IN_A_SECOND)
3328
#define MAX_SIGNALING_MESSAGE_TTL_VALUE (120 * HUNDREDS_OF_NANOS_IN_A_SECOND)
@@ -86,25 +81,6 @@ SIGNALING_CHANNEL_TYPE getChannelTypeFromString(PCHAR, UINT32);
8681
*/
8782
PCHAR getStringFromChannelType(SIGNALING_CHANNEL_TYPE);
8883

89-
/**
90-
* Returns the signaling channel Role from a string
91-
*
92-
* @param - PCHAR - IN - String representation of the channel role
93-
* @param - UINT32 - IN - String length
94-
*
95-
* @return - Signaling channel type
96-
*/
97-
SIGNALING_CHANNEL_ROLE_TYPE getChannelRoleTypeFromString(PCHAR, UINT32);
98-
99-
/**
100-
* Returns the signaling channel role type string
101-
*
102-
* @param - SIGNALING_CHANNEL_TYPE - IN - Signaling channel type
103-
*
104-
* @return - Signaling channel type string
105-
*/
106-
PCHAR getStringFromChannelRoleType(SIGNALING_CHANNEL_ROLE_TYPE);
107-
10884
/**
10985
* Determines whether or not the channel arn is valid
11086
* If VALID it extracts the channel name

0 commit comments

Comments
 (0)