@@ -2,17 +2,20 @@ cmake_minimum_required(VERSION 3.2)
2
2
3
3
project (cbs
4
4
DESCRIPTION "FFmpeg code subset to expose coded bitstream (CBS) internal APIs for Sunshine"
5
- VERSION 0.1
6
- )
5
+ VERSION 0.1 )
7
6
8
7
set (CMAKE_GENERATED_SRC_PATH ${CMAKE_BINARY_DIR} /generated-src )
9
8
10
9
# Apply patches
11
10
include (${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 )
16
19
17
20
file (COPY ${CMAKE_SOURCE_DIR} /ffmpeg_sources/ffmpeg DESTINATION ${CMAKE_GENERATED_SRC_PATH} )
18
21
@@ -29,27 +32,25 @@ endif ()
29
32
30
33
if (CROSS_COMPILE_ARM )
31
34
set (FFMPEG_EXTRA_CONFIGURE
32
- --arch=aarch64
33
- --enable-cross-compile
34
- )
35
+ --arch=aarch64
36
+ --enable-cross-compile )
35
37
endif ()
36
38
37
39
# The generated config.h needs to have `CONFIG_CBS_` flags enabled (from `--enable-bsfs`)
38
40
execute_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 )
53
54
54
55
# Headers needed to link for Sunshine
55
56
configure_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
79
80
configure_file (${AVCODEC_GENERATED_SRC_PATH} /sei.h ${CBS_INCLUDE_PATH} /sei.h COPYONLY )
80
81
configure_file (${AVCODEC_GENERATED_SRC_PATH} /vlc.h ${CBS_INCLUDE_PATH} /vlc.h COPYONLY )
81
82
configure_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 )
87
93
88
94
set (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
120
126
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 )
132
137
133
138
include_directories (
134
- ${CMAKE_BINARY_DIR} /include
135
- ${FFMPEG_GENERATED_SRC_PATH}
136
- )
139
+ ${CMAKE_BINARY_DIR} /include
140
+ ${FFMPEG_GENERATED_SRC_PATH} )
137
141
138
142
add_library (cbs ${CBS_SOURCE_FILES} )
139
143
target_compile_options (cbs PRIVATE -Wall -Wno-incompatible-pointer-types -Wno-format -Wno-format-extra-args )
0 commit comments