@@ -2,17 +2,20 @@ cmake_minimum_required(VERSION 3.2)
22
33project (cbs
44 DESCRIPTION "FFmpeg code subset to expose coded bitstream (CBS) internal APIs for Sunshine"
5- VERSION 0.1
6- )
5+ VERSION 0.1)
76
87set (CMAKE_GENERATED_SRC_PATH ${CMAKE_BINARY_DIR} /generated -src)
98
109# Apply patches
1110include (${CMAKE_CURRENT_SOURCE_DIR} /cmake/apply_git_patch.cmake)
12- apply_git_patch(${CMAKE_SOURCE_DIR} /ffmpeg_sources/ffmpeg ${CMAKE_SOURCE_DIR} /ffmpeg_patches/cbs/01-explicit-intmath.patch)
13- apply_git_patch(${CMAKE_SOURCE_DIR} /ffmpeg_sources/ffmpeg ${CMAKE_SOURCE_DIR} /ffmpeg_patches/cbs/02-include -cbs-config.patch)
14- apply_git_patch(${CMAKE_SOURCE_DIR} /ffmpeg_sources/ffmpeg ${CMAKE_SOURCE_DIR} /ffmpeg_patches/cbs/03-remove-register.patch)
15- apply_git_patch(${CMAKE_SOURCE_DIR} /ffmpeg_sources/ffmpeg ${CMAKE_SOURCE_DIR} /ffmpeg_patches/cbs/04-size-specifier.patch)
11+ APPLY_GIT_PATCH(${CMAKE_SOURCE_DIR} /ffmpeg_sources/ffmpeg
12+ ${CMAKE_SOURCE_DIR} /ffmpeg_patches/cbs/01-explicit-intmath.patch)
13+ APPLY_GIT_PATCH(${CMAKE_SOURCE_DIR} /ffmpeg_sources/ffmpeg
14+ ${CMAKE_SOURCE_DIR} /ffmpeg_patches/cbs/02-include -cbs-config.patch)
15+ APPLY_GIT_PATCH(${CMAKE_SOURCE_DIR} /ffmpeg_sources/ffmpeg
16+ ${CMAKE_SOURCE_DIR} /ffmpeg_patches/cbs/03-remove-register.patch)
17+ APPLY_GIT_PATCH(${CMAKE_SOURCE_DIR} /ffmpeg_sources/ffmpeg
18+ ${CMAKE_SOURCE_DIR} /ffmpeg_patches/cbs/04-size-specifier.patch)
1619
1720file (COPY ${CMAKE_SOURCE_DIR} /ffmpeg_sources/ffmpeg DESTINATION ${CMAKE_GENERATED_SRC_PATH} )
1821
@@ -29,27 +32,25 @@ endif ()
2932
3033if (CROSS_COMPILE_ARM)
3134 set (FFMPEG_EXTRA_CONFIGURE
32- --arch=aarch64
33- --enable-cross-compile
34- )
35+ --arch=aarch64
36+ --enable-cross-compile)
3537endif ()
3638
3739# The generated config.h needs to have `CONFIG_CBS_` flags enabled (from `--enable-bsfs`)
3840execute_process (
39- COMMAND ${LEADING_SH_COMMAND} ./configure
40- --disable-all
41- --disable-autodetect
42- --disable-iconv
43- --enable-avcodec
44- --enable-avutil
45- --enable-bsfs
46- --enable-gpl
47- --enable-static
48- ${FFMPEG_EXTRA_CONFIGURE}
49- WORKING_DIRECTORY ${FFMPEG_GENERATED_SRC_PATH}
50- COMMAND_ECHO STDOUT
51- COMMAND_ERROR_IS_FATAL ANY
52- )
41+ COMMAND ${LEADING_SH_COMMAND} ./configure
42+ --disable-all
43+ --disable-autodetect
44+ --disable-iconv
45+ --enable-avcodec
46+ --enable-avutil
47+ --enable-bsfs
48+ --enable-gpl
49+ --enable-static
50+ ${FFMPEG_EXTRA_CONFIGURE}
51+ WORKING_DIRECTORY ${FFMPEG_GENERATED_SRC_PATH}
52+ COMMAND_ECHO STDOUT
53+ COMMAND_ERROR_IS_FATAL ANY)
5354
5455# Headers needed to link for Sunshine
5556configure_file (${AVCODEC_GENERATED_SRC_PATH} /arm/mathops.h ${CBS_INCLUDE_PATH} /arm/mathops.h COPYONLY )
@@ -79,61 +80,64 @@ configure_file(${AVCODEC_GENERATED_SRC_PATH}/packet.h ${CBS_INCLUDE_PATH}/packet
7980configure_file (${AVCODEC_GENERATED_SRC_PATH} /sei.h ${CBS_INCLUDE_PATH} /sei.h COPYONLY )
8081configure_file (${AVCODEC_GENERATED_SRC_PATH} /vlc.h ${CBS_INCLUDE_PATH} /vlc.h COPYONLY )
8182configure_file (${FFMPEG_GENERATED_SRC_PATH} /config.h ${CBS_INCLUDE_PATH} /config.h COPYONLY )
82- configure_file (${FFMPEG_GENERATED_SRC_PATH} /libavutil/x86/asm.h ${CMAKE_BINARY_DIR} /include /libavutil/x86/asm.h COPYONLY )
83- configure_file (${FFMPEG_GENERATED_SRC_PATH} /libavutil/x86/intmath.h ${CMAKE_BINARY_DIR} /include /libavutil/x86/intmath.h COPYONLY )
84- configure_file (${FFMPEG_GENERATED_SRC_PATH} /libavutil/arm/intmath.h ${CMAKE_BINARY_DIR} /include /libavutil/arm/intmath.h COPYONLY )
85- configure_file (${FFMPEG_GENERATED_SRC_PATH} /libavutil/attributes.h ${CMAKE_BINARY_DIR} /include /libavutil/attributes.h COPYONLY )
86- configure_file (${FFMPEG_GENERATED_SRC_PATH} /libavutil/intmath.h ${CMAKE_BINARY_DIR} /include /libavutil/intmath.h COPYONLY )
83+ configure_file (${FFMPEG_GENERATED_SRC_PATH} /libavutil/x86/asm.h
84+ ${CMAKE_BINARY_DIR} /include /libavutil/x86/asm.h COPYONLY )
85+ configure_file (${FFMPEG_GENERATED_SRC_PATH} /libavutil/x86/intmath.h
86+ ${CMAKE_BINARY_DIR} /include /libavutil/x86/intmath.h COPYONLY )
87+ configure_file (${FFMPEG_GENERATED_SRC_PATH} /libavutil/arm/intmath.h
88+ ${CMAKE_BINARY_DIR} /include /libavutil/arm/intmath.h COPYONLY )
89+ configure_file (${FFMPEG_GENERATED_SRC_PATH} /libavutil/attributes.h
90+ ${CMAKE_BINARY_DIR} /include /libavutil/attributes.h COPYONLY )
91+ configure_file (${FFMPEG_GENERATED_SRC_PATH} /libavutil/intmath.h
92+ ${CMAKE_BINARY_DIR} /include /libavutil/intmath.h COPYONLY )
8793
8894set (CBS_SOURCE_FILES
89- ${CBS_INCLUDE_PATH} /arm/mathops.h
90- ${CBS_INCLUDE_PATH} /x86/mathops.h
91- ${CBS_INCLUDE_PATH} /av1.h
92- ${CBS_INCLUDE_PATH} /cbs_av1.h
93- ${CBS_INCLUDE_PATH} /cbs_bsf.h
94- ${CBS_INCLUDE_PATH} /cbs.h
95- ${CBS_INCLUDE_PATH} /cbs_h2645.h
96- ${CBS_INCLUDE_PATH} /cbs_h264.h
97- ${CBS_INCLUDE_PATH} /cbs_h265.h
98- ${CBS_INCLUDE_PATH} /cbs_jpeg.h
99- ${CBS_INCLUDE_PATH} /cbs_mpeg2.h
100- ${CBS_INCLUDE_PATH} /cbs_sei.h
101- ${CBS_INCLUDE_PATH} /cbs_vp9.h
102- ${CBS_INCLUDE_PATH} /codec_desc.h
103- ${CBS_INCLUDE_PATH} /codec_id.h
104- ${CBS_INCLUDE_PATH} /codec_par.h
105- ${CBS_INCLUDE_PATH} /defs.h
106- ${CBS_INCLUDE_PATH} /get_bits.h
107- ${CBS_INCLUDE_PATH} /h264_levels.h
108- ${CBS_INCLUDE_PATH} /h2645_parse.h
109- ${CBS_INCLUDE_PATH} /h264.h
110- ${CBS_INCLUDE_PATH} /hevc.h
111- ${CBS_INCLUDE_PATH} /mathops.h
112- ${CBS_INCLUDE_PATH} /packet.h
113- ${CBS_INCLUDE_PATH} /sei.h
114- ${CBS_INCLUDE_PATH} /vlc.h
115- ${CMAKE_BINARY_DIR} /include /libavutil/x86/asm.h
116- ${CMAKE_BINARY_DIR} /include /libavutil/x86/intmath.h
117- ${CMAKE_BINARY_DIR} /include /libavutil/arm/intmath.h
118- ${CMAKE_BINARY_DIR} /include /libavutil/intmath.h
119- ${CBS_INCLUDE_PATH} /config.h
95+ ${CBS_INCLUDE_PATH} /arm/mathops.h
96+ ${CBS_INCLUDE_PATH} /x86/mathops.h
97+ ${CBS_INCLUDE_PATH} /av1.h
98+ ${CBS_INCLUDE_PATH} /cbs_av1.h
99+ ${CBS_INCLUDE_PATH} /cbs_bsf.h
100+ ${CBS_INCLUDE_PATH} /cbs.h
101+ ${CBS_INCLUDE_PATH} /cbs_h2645.h
102+ ${CBS_INCLUDE_PATH} /cbs_h264.h
103+ ${CBS_INCLUDE_PATH} /cbs_h265.h
104+ ${CBS_INCLUDE_PATH} /cbs_jpeg.h
105+ ${CBS_INCLUDE_PATH} /cbs_mpeg2.h
106+ ${CBS_INCLUDE_PATH} /cbs_sei.h
107+ ${CBS_INCLUDE_PATH} /cbs_vp9.h
108+ ${CBS_INCLUDE_PATH} /codec_desc.h
109+ ${CBS_INCLUDE_PATH} /codec_id.h
110+ ${CBS_INCLUDE_PATH} /codec_par.h
111+ ${CBS_INCLUDE_PATH} /defs.h
112+ ${CBS_INCLUDE_PATH} /get_bits.h
113+ ${CBS_INCLUDE_PATH} /h264_levels.h
114+ ${CBS_INCLUDE_PATH} /h2645_parse.h
115+ ${CBS_INCLUDE_PATH} /h264.h
116+ ${CBS_INCLUDE_PATH} /hevc.h
117+ ${CBS_INCLUDE_PATH} /mathops.h
118+ ${CBS_INCLUDE_PATH} /packet.h
119+ ${CBS_INCLUDE_PATH} /sei.h
120+ ${CBS_INCLUDE_PATH} /vlc.h
121+ ${CMAKE_BINARY_DIR} /include /libavutil/x86/asm.h
122+ ${CMAKE_BINARY_DIR} /include /libavutil/x86/intmath.h
123+ ${CMAKE_BINARY_DIR} /include /libavutil/arm/intmath.h
124+ ${CMAKE_BINARY_DIR} /include /libavutil/intmath.h
125+ ${CBS_INCLUDE_PATH} /config.h
120126
121- ${AVCODEC_GENERATED_SRC_PATH} /cbs.c
122- ${AVCODEC_GENERATED_SRC_PATH} /cbs_h2645.c
123- ${AVCODEC_GENERATED_SRC_PATH} /cbs_av1.c
124- ${AVCODEC_GENERATED_SRC_PATH} /cbs_vp9.c
125- ${AVCODEC_GENERATED_SRC_PATH} /cbs_mpeg2.c
126- ${AVCODEC_GENERATED_SRC_PATH} /cbs_jpeg.c
127- ${AVCODEC_GENERATED_SRC_PATH} /cbs_sei.c
128- ${AVCODEC_GENERATED_SRC_PATH} /h264_levels.c
129- ${AVCODEC_GENERATED_SRC_PATH} /h2645_parse.c
130- ${FFMPEG_GENERATED_SRC_PATH} /libavutil/intmath.c
131- )
127+ ${AVCODEC_GENERATED_SRC_PATH} /cbs.c
128+ ${AVCODEC_GENERATED_SRC_PATH} /cbs_h2645.c
129+ ${AVCODEC_GENERATED_SRC_PATH} /cbs_av1.c
130+ ${AVCODEC_GENERATED_SRC_PATH} /cbs_vp9.c
131+ ${AVCODEC_GENERATED_SRC_PATH} /cbs_mpeg2.c
132+ ${AVCODEC_GENERATED_SRC_PATH} /cbs_jpeg.c
133+ ${AVCODEC_GENERATED_SRC_PATH} /cbs_sei.c
134+ ${AVCODEC_GENERATED_SRC_PATH} /h264_levels.c
135+ ${AVCODEC_GENERATED_SRC_PATH} /h2645_parse.c
136+ ${FFMPEG_GENERATED_SRC_PATH} /libavutil/intmath.c)
132137
133138include_directories (
134- ${CMAKE_BINARY_DIR} /include
135- ${FFMPEG_GENERATED_SRC_PATH}
136- )
139+ ${CMAKE_BINARY_DIR} /include
140+ ${FFMPEG_GENERATED_SRC_PATH} )
137141
138142add_library (cbs ${CBS_SOURCE_FILES} )
139143target_compile_options (cbs PRIVATE -Wall -Wno-incompatible-pointer-types -Wno-format -Wno-format-extra-args)
0 commit comments