Skip to content

Commit a27ad43

Browse files
authored
Merge pull request #123 from sundermann/nv12
Add NV12 support
2 parents cf1230f + b031a7a commit a27ad43

File tree

95 files changed

+350
-14856
lines changed

Some content is hidden

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

95 files changed

+350
-14856
lines changed

.github/workflows/build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ jobs:
5050
run: find .
5151

5252
- name: Upload artifact
53-
uses: actions/upload-artifact@v2
53+
uses: actions/upload-artifact@v4
5454
with:
5555
name: hyperion_webos_${{ matrix.build-type }}
5656
path: |

CMakeLists.txt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ list(JOIN _cflags_list " " COMMON_FLAGS)
99

1010
add_subdirectory(libyuv)
1111
add_subdirectory(tv-native-apis)
12-
add_subdirectory(flatccrt)
12+
add_subdirectory(fbs)
1313

1414
add_compile_options(${_cflags_list} -Wall -Wextra -Wpedantic -Werror -DSECURITY_COMPATIBILITY)
1515

@@ -63,8 +63,7 @@ set_target_properties(hyperion-webos PROPERTIES
6363
# LINK_FLAGS "-Wl,-rpath,'$ORIGIN:$ORIGIN/lib' -Wl,-z,origin"
6464
)
6565
target_include_directories(hyperion-webos PRIVATE ${CMAKE_BINARY_DIR})
66-
target_include_directories(hyperion-webos SYSTEM PUBLIC fbs)
67-
target_link_libraries(hyperion-webos flatccrt pthread dl yuv rt ${GTHREAD2_LDFLAGS} ${PBNJSON_LDFLAGS} ${LS2_LDFLAGS} ${GLIB2_LDFLAGS} ${PMLOG_LDFLAGS})
66+
target_link_libraries(hyperion-webos fbs flatccrt pthread dl yuv rt ${GTHREAD2_LDFLAGS} ${PBNJSON_LDFLAGS} ${LS2_LDFLAGS} ${GLIB2_LDFLAGS} ${PMLOG_LDFLAGS})
6867
add_dependencies(hyperion-webos version gm_backend dile_vt_backend halgal_backend vtcapture_backend)
6968
set_property(TARGET hyperion-webos PROPERTY ENABLE_EXPORTS 1)
7069

fbs/CMakeLists.txt

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
include(ExternalProject)
2+
3+
if (CMAKE_BUILD_TYPE MATCHES "Debug")
4+
SET(FLATCC_EXECUTABLE ${CMAKE_CURRENT_BINARY_DIR}/native/bin/flatcc_d)
5+
else ()
6+
SET(FLATCC_EXECUTABLE ${CMAKE_CURRENT_BINARY_DIR}/native/bin/flatcc)
7+
endif ()
8+
9+
ExternalProject_Add(flatcc-native
10+
URL https://github.com/dvidelabs/flatcc/archive/v0.6.1.tar.gz
11+
URL_HASH SHA512=46ba5ca75facc7d3360dba797d24ae7bfe539a854a48831e1c7b96528cf9594d8bea22b267678fd7c6d742b6636d9e52930987119b4c6b2e38d4abe89b990cae
12+
DOWNLOAD_EXTRACT_TIMESTAMP TRUE
13+
CMAKE_ARGS
14+
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
15+
-DBUILD_SHARED_LIBS=OFF
16+
-DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/native
17+
-DFLATCC_TEST=OFF
18+
-DFLATCC_INSTALL=ON
19+
BUILD_BYPRODUCTS ${FLATCC_EXECUTABLE}
20+
)
21+
22+
SET(FLATCC_EXECUTABLE ${FLATCC_EXECUTABLE})
23+
add_custom_command(
24+
OUTPUT hyperion_reply_builder.h hyperion_reply_reader.h flatbuffers_common_builder.h flatbuffers_common_reader.h
25+
COMMAND ${FLATCC_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/hyperion_reply.fbs -w --common_reader --common_builder
26+
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/hyperion_reply.fbs
27+
)
28+
29+
add_custom_command(
30+
OUTPUT hyperion_request_builder.h hyperion_request_reader.h
31+
COMMAND ${FLATCC_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/hyperion_request.fbs -w
32+
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/hyperion_request.fbs
33+
)
34+
35+
add_custom_target(generate-fbs DEPENDS
36+
flatbuffers_common_builder.h
37+
flatbuffers_common_reader.h
38+
hyperion_reply_builder.h
39+
hyperion_reply_reader.h
40+
hyperion_request_builder.h
41+
hyperion_request_reader.h)
42+
add_dependencies(generate-fbs flatcc-native)
43+
44+
add_library(fbs INTERFACE)
45+
target_include_directories(fbs SYSTEM INTERFACE ${CMAKE_CURRENT_BINARY_DIR})
46+
add_dependencies(fbs generate-fbs)
47+
48+
49+
if (CMAKE_BUILD_TYPE MATCHES "Debug")
50+
SET(FLATCC_LIB ${CMAKE_CURRENT_BINARY_DIR}/lib/libflatccrt_d.a)
51+
else ()
52+
SET(FLATCC_LIB ${CMAKE_CURRENT_BINARY_DIR}/lib/libflatccrt.a)
53+
endif ()
54+
55+
ExternalProject_Add(flatcc-target
56+
URL https://github.com/dvidelabs/flatcc/archive/v0.6.1.tar.gz
57+
URL_HASH SHA512=46ba5ca75facc7d3360dba797d24ae7bfe539a854a48831e1c7b96528cf9594d8bea22b267678fd7c6d742b6636d9e52930987119b4c6b2e38d4abe89b990cae
58+
DOWNLOAD_EXTRACT_TIMESTAMP TRUE
59+
CMAKE_ARGS
60+
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
61+
-DCMAKE_C_FLAGS=${COMMON_FLAGS}
62+
-DCMAKE_CXX_FLAGS=${COMMON_FLAGS}
63+
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
64+
-DBUILD_SHARED_LIBS=OFF
65+
-DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}
66+
-DFLATCC_TEST=OFF
67+
-DFLATCC_RTONLY=ON
68+
-DFLATCC_INSTALL=ON
69+
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
70+
BUILD_BYPRODUCTS ${FLATCC_LIB}
71+
)
72+
73+
add_library(flatccrt IMPORTED STATIC GLOBAL)
74+
add_dependencies(flatccrt flatcc-target)
75+
set(FLATCCRT_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/include)
76+
file(MAKE_DIRECTORY ${FLATCCRT_INCLUDE_DIRS})
77+
set_target_properties(flatccrt PROPERTIES
78+
IMPORTED_LOCATION ${FLATCC_LIB}
79+
INTERFACE_INCLUDE_DIRECTORIES ${FLATCCRT_INCLUDE_DIRS}
80+
INTERFACE_SYSTEM_INCLUDE_DIRECTORIES ${FLATCCRT_INCLUDE_DIRS}
81+
)

0 commit comments

Comments
 (0)