Skip to content

Commit 00db109

Browse files
committed
Added support for Android client
1 parent 260da3f commit 00db109

File tree

185 files changed

+12061
-1256
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

185 files changed

+12061
-1256
lines changed

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
# Gitignore for Streaming SDK
22
# Build results
3-
build/*
3+
*build/*
44
out/*
55
bin/*
66
*.spv*
7+
*.gradle/*
8+
*.idea/*
79

810
# User-specific files
911
*.rsuser

CMakeLists.txt

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ if(MSVC)
2626
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /LTCG /INCREMENTAL:NO /OPT:REF /OPT:ICF /NOLOGO")
2727
set(CMAKE_STATIC_LINKER_FLAGS_RELEASE "${CMAKE_STATIC_LINKER_FLAGS_RELEASE} /LTCG /NOLOGO")
2828

29-
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
29+
elseif((CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang") AND (NOT ANDROID))
3030
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-register -Werror -Wall -Wextra -Wno-unknown-pragmas -Wno-reorder -Wno-unused -Wno-switch -Wno-sign-compare -Wno-missing-field-initializers -Wno-nonnull -Wno-overloaded-virtual -Wno-deprecated-declarations -Wno-type-limits -Wno-free-nonheap-object -Wno-maybe-uninitialized")
3131
endif()
3232

@@ -53,21 +53,21 @@ include_directories(${VK_SDK_PATH}/include)
5353

5454

5555
# Set output directories for all build configurations
56-
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_SOURCE_DIR}/bin/Debug")
57-
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${CMAKE_SOURCE_DIR}/bin/Debug")
58-
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${CMAKE_SOURCE_DIR}/bin/Debug")
56+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_SOURCE_DIR}/bin/${CMAKE_SYSTEM_NAME}/${CMAKE_SYSTEM_PROCESSOR}/Debug")
57+
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${CMAKE_SOURCE_DIR}/bin/${CMAKE_SYSTEM_NAME}/${CMAKE_SYSTEM_PROCESSOR}/Debug")
58+
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${CMAKE_SOURCE_DIR}/bin/${CMAKE_SYSTEM_NAME}/${CMAKE_SYSTEM_PROCESSOR}/Debug")
5959

60-
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_SOURCE_DIR}/bin/Release")
61-
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${CMAKE_SOURCE_DIR}/bin/Release")
62-
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${CMAKE_SOURCE_DIR}/bin/Release")
60+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_SOURCE_DIR}/bin/${CMAKE_SYSTEM_NAME}/${CMAKE_SYSTEM_PROCESSOR}/Release")
61+
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${CMAKE_SOURCE_DIR}/bin/${CMAKE_SYSTEM_NAME}/${CMAKE_SYSTEM_PROCESSOR}/Release")
62+
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${CMAKE_SOURCE_DIR}/bin/${CMAKE_SYSTEM_NAME}/${CMAKE_SYSTEM_PROCESSOR}/Release")
6363

64-
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_SOURCE_DIR}/bin/RelWithDebInfo")
65-
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_SOURCE_DIR}/bin/RelWithDebInfo")
66-
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_SOURCE_DIR}/bin/RelWithDebInfo")
64+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_SOURCE_DIR}/bin/${CMAKE_SYSTEM_NAME}/${CMAKE_SYSTEM_PROCESSOR}/RelWithDebInfo")
65+
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_SOURCE_DIR}/bin/${CMAKE_SYSTEM_NAME}/${CMAKE_SYSTEM_PROCESSOR}/RelWithDebInfo")
66+
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_SOURCE_DIR}/bin/${CMAKE_SYSTEM_NAME}/${CMAKE_SYSTEM_PROCESSOR}/RelWithDebInfo")
6767

68-
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_SOURCE_DIR}/bin/MinSizeRel")
69-
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_SOURCE_DIR}/bin/MinSizeRel")
70-
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_SOURCE_DIR}/bin/MinSizeRel")
68+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_SOURCE_DIR}/bin/${CMAKE_SYSTEM_NAME}/${CMAKE_SYSTEM_PROCESSOR}/MinSizeRel")
69+
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_SOURCE_DIR}/bin/${CMAKE_SYSTEM_NAME}/${CMAKE_SYSTEM_PROCESSOR}/MinSizeRel")
70+
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_SOURCE_DIR}/bin/${CMAKE_SYSTEM_NAME}/${CMAKE_SYSTEM_PROCESSOR}/MinSizeRel")
7171

7272
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
7373
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG}")
@@ -96,14 +96,22 @@ set(CMAKE_CONFIGURATION_TYPES "Debug;Release;RelWithDebInfo" CACHE STRING "" FOR
9696
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
9797

9898
add_subdirectory(amf-helper-libs/amf-public)
99-
add_subdirectory(amf-helper-libs/amf-component-ffmpeg64)
99+
if (NOT ANDROID)
100+
add_subdirectory(amf-helper-libs/amf-component-ffmpeg64)
101+
endif()
100102
add_subdirectory(mbedtls-custom)
101103
add_subdirectory(sdk)
102-
add_subdirectory(samples/SimpleStreamingClient)
103-
add_subdirectory(samples/RemoteDesktopServer)
104+
105+
message(STATUS, "Buiding for ${CMAKE_SYSTEM_NAME}")
106+
if (ANDROID)
107+
add_subdirectory(samples/SimpleStreamingClient-Android)
108+
else()
109+
add_subdirectory(samples/SimpleStreamingClient)
110+
add_subdirectory(samples/RemoteDesktopServer)
111+
set_target_properties(SimpleStreamingClient PROPERTIES FOLDER "samples")
112+
set_target_properties(RemoteDesktopServer PROPERTIES FOLDER "samples")
113+
endif()
104114

105115
# Optionally, group targets into folders in the solution
106116
set_target_properties(ssdk PROPERTIES FOLDER "libs")
107117
set_target_properties(mbedtls-custom PROPERTIES FOLDER "libs")
108-
set_target_properties(SimpleStreamingClient PROPERTIES FOLDER "samples")
109-
set_target_properties(RemoteDesktopServer PROPERTIES FOLDER "samples")

CMakePresets.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,31 +9,31 @@
99
{
1010
"name": "Debug",
1111
"generator": "Unix Makefiles",
12-
"binaryDir": "${sourceDir}/build",
12+
"binaryDir": "${sourceDir}/out/build",
1313
"cacheVariables": {
1414
"CMAKE_BUILD_TYPE": "Debug"
1515
}
1616
},
1717
{
1818
"name": "Release",
1919
"generator": "Unix Makefiles",
20-
"binaryDir": "${sourceDir}/build",
20+
"binaryDir": "${sourceDir}/out/build",
2121
"cacheVariables": {
2222
"CMAKE_BUILD_TYPE": "Release"
2323
}
2424
},
2525
{
2626
"name": "ReleaseWithDebugInfo",
2727
"generator": "Unix Makefiles",
28-
"binaryDir": "${sourceDir}/build",
28+
"binaryDir": "${sourceDir}/out/build",
2929
"cacheVariables": {
3030
"CMAKE_BUILD_TYPE": "RelWithDebInfo"
3131
}
3232
},
3333
{
3434
"name": "MinSizeRelease",
3535
"generator": "Unix Makefiles",
36-
"binaryDir": "${sourceDir}/build",
36+
"binaryDir": "${sourceDir}/out/build",
3737
"cacheVariables": {
3838
"CMAKE_BUILD_TYPE": "MinSizeRel"
3939
}

README.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,16 @@ Advanced Interactive Streaming SDK is a C++ library that provides building block
44
Virtual and Augmented Reality, etc. using AMD Radeon graphics. It allows you to build a complete streaming solution including video and audio capture, video and audio encoder/decoder/pre-post-processing pipelines, a robust and secure network stack, or use some of its components, while implementing the rest yourself.
55

66
## Changelog:
7-
- v1.1.1 - bug fixes:
8-
- Allowing the server to start without audio when no audio output device is available on the server
9-
- Code clean-up
7+
- v1.2.0 - multiple new features and improvements:
8+
- added support for Android client (Android 12/ API 31 required for full functionality). IMPORTANT: paths to the output directories have changed to accommodate builds for multiple OSs. Please update paths in your launch.json file accordingly:
9+
- Windows: `$(workspaceFolder)/bin/Windows`
10+
- Linux: `$(workspaceFolder)/bin/Linux`
11+
- Android: `$(workspaceFolder)/bin/Android`
12+
- added support for uncompressed audio streaming
13+
- multiple stability improvements and bug fixes
1014
- v1.1.0 - added support for Linux:
11-
- Server supported on AMD graphics with the Pro driver (X.org required)
12-
- Client supported on AMD graphics with the Pro and RADV drivers, NVidia graphics (proprietary driver recommended), Intel graphics (X.org recommended, Wayland supported with some limitations)
15+
- Server supported on AMD graphics
16+
- Client supported on AMD graphics, NVidia graphics (proprietary driver recommended), Intel graphics (X.org recommended, Wayland supported with some limitations)
1317
- Tested with Ubuntu 22.04 LTS and 24.04 LTS
1418
- v1.0.2 - bug fixes:
1519
- Encoder frame rate wasn't being set correctly when display capture mode was set to *present* or when QoS was turned off

amf

Submodule amf updated 93 files

amf-helper-libs/amf-component-ffmpeg64/CMakeLists.txt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
cmake_minimum_required(VERSION 3.15)
22

3-
if(POLICY CMP0111)
4-
cmake_policy(SET CMP0111 OLD)
5-
endif()
63

74
# Define the project name
85
project(amf-component-ffmpeg64)

0 commit comments

Comments
 (0)