Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Apply signaling component -- rebase #2020

Merged
merged 4 commits into from
Aug 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions CMake/Dependencies/libcorejson-CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
cmake_minimum_required(VERSION 3.6.3)

project(libcorejson NONE)

if (BUILD_STATIC_LIBS OR WIN32)
set(LIBCOREJSON_SHARED_LIBS OFF)
else()
set(LIBCOREJSON_SHARED_LIBS ON)
endif()

include(ExternalProject)
ExternalProject_Add(libcorejson
GIT_REPOSITORY https://github.com/FreeRTOS/coreJSON.git
GIT_TAG dc1ab9130a1fb99b801a2a1fa8e9f42239f752be
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/build
PATCH_COMMAND git apply --ignore-whitespace ${CMAKE_CURRENT_LIST_DIR}/libcorejson-add-cmakelists.patch
CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX=${OPEN_SRC_INSTALL_PREFIX}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DBUILD_SHARED_LIBS=${LIBCOREJSON_SHARED_LIBS}
"-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} -fPIC"
BUILD_ALWAYS TRUE
TEST_COMMAND ""
)
30 changes: 30 additions & 0 deletions CMake/Dependencies/libcorejson-add-cmakelists.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
ActoryOu marked this conversation as resolved.
Show resolved Hide resolved
new file mode 100644
index 0000000..e48e611
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,24 @@
+cmake_minimum_required(VERSION 3.6.3)
+project(corejson C)
+
+include(jsonFilePaths.cmake)
+
+if(BUILD_SHARED_LIBS)
+ add_library(corejson SHARED ${JSON_SOURCES})
+else()
+ add_library(corejson STATIC ${JSON_SOURCES})
+endif()
+
+target_include_directories(corejson PUBLIC
+ ${JSON_INCLUDE_PUBLIC_DIRS})
+
+# install header files
+install(
+ FILES ${JSON_INCLUDE_PUBLIC_DIRS}/core_json.h
+ DESTINATION include/corejson)
+
+install(
+ TARGETS corejson
+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
+ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
23 changes: 23 additions & 0 deletions CMake/Dependencies/libkvssignaling-CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
cmake_minimum_required(VERSION 3.6.3)

project(libkvssignaling NONE)

include(ExternalProject)
if (BUILD_STATIC_LIBS OR WIN32)
set(LIBKVSSIGNALING_SHARED_LIBS OFF)
else()
set(LIBKVSSIGNALING_SHARED_LIBS ON)
endif()

ExternalProject_Add(libkvssignaling
GIT_REPOSITORY https://github.com/awslabs/amazon-kinesis-video-streams-signaling.git
GIT_TAG fb54c01f6f03838ed19ad5c1857bb9406e89f4df
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/build
CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX=${OPEN_SRC_INSTALL_PREFIX}
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
-DBUILD_SHARED_LIBS=${LIBKVSSIGNALING_SHARED_LIBS}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
BUILD_ALWAYS TRUE
TEST_COMMAND ""
)
4 changes: 3 additions & 1 deletion CMake/Utilities.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@ function(build_dependency lib_name)
kvsCommonLws
kvssdp
kvsstun
kvsrtp)
kvsrtp
kvssignaling
corejson)
list(FIND supported_libs ${lib_name} index)
if(${index} EQUAL -1)
message(WARNING "${lib_name} is not supported to build from source")
Expand Down
18 changes: 18 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,20 @@ if(BUILD_DEPENDENCIES)
build_dependency(kvsstun ${BUILD_ARGS})
build_dependency(kvsrtp ${BUILD_ARGS})

set(BUILD_ARGS
-DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS})

build_dependency(corejson ${BUILD_ARGS})

set(BUILD_ARGS
-DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
"-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} -I${OPEN_SRC_INSTALL_PREFIX}/include/corejson")

build_dependency(kvssignaling ${BUILD_ARGS})

set(BUILD_ARGS
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS})
Expand Down Expand Up @@ -412,6 +426,8 @@ target_link_libraries(
kvssdp
kvsstun
kvsrtp
kvssignaling
corejson
${CMAKE_THREAD_LIBS_INIT}
${OPENSSL_SSL_LIBRARY}
${OPENSSL_CRYPTO_LIBRARY}
Expand All @@ -436,6 +452,8 @@ target_link_libraries(
kvssdp
kvsstun
kvsrtp
kvssignaling
corejson
PRIVATE kvspicUtils
kvspicState
${CMAKE_THREAD_LIBS_INIT}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -384,6 +384,8 @@ extern "C" {
#define STATUS_SIGNALING_JOIN_SESSION_CALL_FAILED STATUS_SIGNALING_BASE + 0x0000004a
#define STATUS_SIGNALING_JOIN_SESSION_CONNECTED_FAILED STATUS_SIGNALING_BASE + 0x0000004b
#define STATUS_SIGNALING_DESCRIBE_MEDIA_CALL_FAILED STATUS_SIGNALING_BASE + 0x0000004c
#define STATUS_SIGNALING_INVALID_OUTPUT_ROLE STATUS_SIGNALING_BASE + 0x0000004d
#define STATUS_SIGNALING_INVALID_OUTPUT_MESSAGE_TYPE STATUS_SIGNALING_BASE + 0x0000004e

/*!@} */

Expand Down
33 changes: 0 additions & 33 deletions src/source/Signaling/ChannelInfo.c
Original file line number Diff line number Diff line change
Expand Up @@ -317,39 +317,6 @@ PCHAR getStringFromChannelType(SIGNALING_CHANNEL_TYPE type)
return typeStr;
}

SIGNALING_CHANNEL_ROLE_TYPE getChannelRoleTypeFromString(PCHAR type, UINT32 length)
{
// Assume the channel Deleting status first
SIGNALING_CHANNEL_ROLE_TYPE channelRoleType = SIGNALING_CHANNEL_ROLE_TYPE_UNKNOWN;

if (0 == STRNCMP(SIGNALING_CHANNEL_ROLE_TYPE_MASTER_STR, type, length)) {
channelRoleType = SIGNALING_CHANNEL_ROLE_TYPE_MASTER;
} else if (0 == STRNCMP(SIGNALING_CHANNEL_ROLE_TYPE_VIEWER_STR, type, length)) {
channelRoleType = SIGNALING_CHANNEL_ROLE_TYPE_VIEWER;
}

return channelRoleType;
}

PCHAR getStringFromChannelRoleType(SIGNALING_CHANNEL_ROLE_TYPE type)
{
PCHAR typeStr;

switch (type) {
case SIGNALING_CHANNEL_ROLE_TYPE_MASTER:
typeStr = SIGNALING_CHANNEL_ROLE_TYPE_MASTER_STR;
break;
case SIGNALING_CHANNEL_ROLE_TYPE_VIEWER:
typeStr = SIGNALING_CHANNEL_ROLE_TYPE_VIEWER_STR;
break;
default:
typeStr = SIGNALING_CHANNEL_ROLE_TYPE_UNKNOWN_STR;
break;
}

return typeStr;
}

// https://docs.aws.amazon.com/kinesisvideostreams-webrtc-dg/latest/devguide/kvswebrtc-how-iam.html#kinesis-using-iam-arn-format
// Example: arn:aws:kinesisvideo:region:account-id:channel/channel-name/code
STATUS validateKvsSignalingChannelArnAndExtractChannelName(PChannelInfo pChannelInfo, PUINT16 pStart, PUINT16 pNumChars)
Expand Down
24 changes: 0 additions & 24 deletions src/source/Signaling/ChannelInfo.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,6 @@ extern "C" {
#define SIGNALING_CHANNEL_TYPE_UNKNOWN_STR (PCHAR) "UNKOWN"
#define SIGNALING_CHANNEL_TYPE_SINGLE_MASTER_STR (PCHAR) "SINGLE_MASTER"

// Signaling channel role type string
#define SIGNALING_CHANNEL_ROLE_TYPE_UNKNOWN_STR (PCHAR) "UNKOWN"
#define SIGNALING_CHANNEL_ROLE_TYPE_MASTER_STR (PCHAR) "MASTER"
#define SIGNALING_CHANNEL_ROLE_TYPE_VIEWER_STR (PCHAR) "VIEWER"

// Min and max for the message TTL value
#define MIN_SIGNALING_MESSAGE_TTL_VALUE (5 * HUNDREDS_OF_NANOS_IN_A_SECOND)
#define MAX_SIGNALING_MESSAGE_TTL_VALUE (120 * HUNDREDS_OF_NANOS_IN_A_SECOND)
Expand Down Expand Up @@ -86,25 +81,6 @@ SIGNALING_CHANNEL_TYPE getChannelTypeFromString(PCHAR, UINT32);
*/
PCHAR getStringFromChannelType(SIGNALING_CHANNEL_TYPE);

/**
* Returns the signaling channel Role from a string
*
* @param - PCHAR - IN - String representation of the channel role
* @param - UINT32 - IN - String length
*
* @return - Signaling channel type
*/
SIGNALING_CHANNEL_ROLE_TYPE getChannelRoleTypeFromString(PCHAR, UINT32);

/**
* Returns the signaling channel role type string
*
* @param - SIGNALING_CHANNEL_TYPE - IN - Signaling channel type
*
* @return - Signaling channel type string
*/
PCHAR getStringFromChannelRoleType(SIGNALING_CHANNEL_ROLE_TYPE);

/**
* Determines whether or not the channel arn is valid
* If VALID it extracts the channel name
Expand Down
Loading
Loading