blob: 260b1104a4aa97c94423a59090592c63e266ee89 [file] [log] [blame]
Tim Yaoe004da02019-12-03 11:59:05 -08001cmake_minimum_required(VERSION 3.8)
2
3project(aml_audio_hal
4 VERSION 1.0)
5
6include(GNUInstallDirs)
7
yayun.shi4a7148a2021-07-16 06:13:50 -04008add_subdirectory("libms12_v24")
yayun.shif83e1a22021-07-22 01:33:58 -04009add_subdirectory("audio_codec/libfaad")
10add_subdirectory("audio_codec/libmad")
wei.wang1697eab62021-08-09 00:36:53 -040011add_subdirectory("audio_codec/libvorbis")
yayun.shi62e67942021-08-23 10:18:13 +080012add_subdirectory("audio_codec/libdts")
Tim Yaoe004da02019-12-03 11:59:05 -080013add_subdirectory("audio_hal/libaudioprocessing")
14
15add_library(spdifenc STATIC
16 utils/SPDIFEncoderAD.cpp
17 utils/spdifenc_wrap.cpp
18)
19
20target_include_directories(spdifenc PRIVATE
21 ./audio_hal
22 ./include
yayun.shi4a7148a2021-07-16 06:13:50 -040023 ./include/utils
24 ./utils/tinyalsa/include
25 ./utils/include)
Tim Yaoe004da02019-12-03 11:59:05 -080026
Tim Yaoe419f812021-01-20 21:15:05 -080027target_compile_options(spdifenc PRIVATE -Wno-deprecated-declarations -fPIC)
Tim Yaoe004da02019-12-03 11:59:05 -080028
cheng tong12e5d132020-09-25 18:57:09 +080029option(USE_DTV "Compile with DTV option" OFF)
Tim Yao2c66a762021-01-06 18:08:33 -080030option(USE_CAP "Support audio capture" ON)
Zhizhong Zhang16302302021-01-20 22:29:14 +080031option(USE_SC2 "Current platform is sc2" OFF)
Tim Yaob5e98392021-03-03 11:51:26 -080032option(USE_CAP_MUTE_HDMI "Support audio capture mute for HDMI INPUT" ON)
Tim Yao97c694d2021-02-25 12:12:53 -080033option(USE_APP_MIXING "Support appsound mixing" ON)
Tim Yaob9e78d82021-03-22 23:46:23 -070034option(USE_DIAG_LOG "Support diagnostic logging for RDK" OFF)
Tim Yao92407a02021-03-31 20:43:29 -070035option(USE_MSYNC "Support avsync with aml-avsync" OFF)
Pradeep Sriramd18aa612020-05-14 13:05:34 -070036
37if(USE_DTV)
yayun.shi4a7148a2021-07-16 06:13:50 -040038 list(APPEND DTV_FILES dtv_audio_utils/audio_data_read/audio_dtv_ad.c)
Pradeep Sriramd18aa612020-05-14 13:05:34 -070039 list(APPEND DTV_FILES audio_hal/audio_hw_dtv.c)
yayun.shi4a7148a2021-07-16 06:13:50 -040040 list(APPEND DTV_FILES audio_hal/audio_dtv_utils.c)
Shoufu Zhao30412dc2021-06-02 14:50:47 +080041 list(APPEND DTV_INC $ENV{AML_AUDIO_HAL_STAGING_DIR}/usr/include/aml_dvb/am_adp)
yayun.shi4a7148a2021-07-16 06:13:50 -040042 #list(APPEND DTV_LIBS -L$ENV{AML_AUDIO_HAL_STAGING_DIR}/usr/lib/aml_libs_nf -lamadec_hal -lam_adp -lasound)
43 list(APPEND DTV_LIBS -L./amadec -laudamadec)
44 list(APPEND DTV_LIBS -L$ENV{AML_AUDIO_HAL_STAGING_DIR}/usr/lib/aml_libs_nf -lam_adp -lasound)
Zhizhong Zhang16302302021-01-20 22:29:14 +080045 list(APPEND DVB_AUDIO_INC ./dtv_audio_utils/sync)
yayun.shi4a7148a2021-07-16 06:13:50 -040046 list(APPEND DVB_AUDIO_INC ./amadec/include)
Zhizhong Zhang16302302021-01-20 22:29:14 +080047 list(APPEND DVB_AUDIO_LIBS -L./dtv_audio_utils -ldvbaudioutils)
48
cheng tong7177c1b2020-09-17 17:36:27 +080049 add_definitions(-DUSE_DTV)
Pradeep Sriramd18aa612020-05-14 13:05:34 -070050endif()
51
Tim Yao97c694d2021-02-25 12:12:53 -080052if(USE_APP_MIXING)
53add_definitions(-DUSE_APP_MIXING)
54endif()
55
Tim Yaob9e78d82021-03-22 23:46:23 -070056if(USE_DIAG_LOG)
57add_definitions(-DDIAG_LOG)
58endif()
59
Tim Yao35766e42021-02-22 17:35:58 -080060if(USE_MSYNC)
61add_definitions(-DUSE_MSYNC)
62endif()
63
Song Zhaoc23fabe2020-09-18 13:28:40 -070064option(USE_EQ_DRC "Compile with EQ/DRC" OFF)
65
cheng tong12e5d132020-09-25 18:57:09 +080066if(USE_EQ_DRC)
67 list(APPEND EQ_DRC_FILES
68 amlogic_AQ_tools/audio_eq_drc_compensation.c
69 amlogic_AQ_tools/audio_eq_drc_parser.c
70 amlogic_AQ_tools/ini/dictionary.c
71 amlogic_AQ_tools/ini/iniparser.c)
yayun.shi4a7148a2021-07-16 06:13:50 -040072 add_definitions(-DUSE_EQ_DRC)
cheng tong12e5d132020-09-25 18:57:09 +080073endif()
74
Tim Yaoe004da02019-12-03 11:59:05 -080075#############################################
76# libaudio_hal
77#############################################
78add_library(audio_hal SHARED
yayun.shi4a7148a2021-07-16 06:13:50 -040079 aml_adecs/aml_aac_dec_api.c
80 aml_adecs/aml_ddp_dec_api.c
81 aml_adecs/aml_dec_api.c
82 aml_adecs/aml_dts_dec_api.c
83 aml_adecs/aml_mpeg_dec_api.c
84 aml_adecs/aml_pcm_dec_api.c
shu.zhangcebe6d82021-07-21 05:49:06 -040085 aml_adecs/aml_flac_dec_api.c
shu.zhangb3d790c2021-08-08 21:30:30 -040086 aml_adecs/aml_vorbis_dec_api.c
yayun.shi4a7148a2021-07-16 06:13:50 -040087 aml_parser/ac3_parser_utils.c
88 aml_parser/aml_ac3_parser.c
89 aml_parser/aml_audio_ac3parser.c
90 aml_parser/aml_audio_ac4parser.c
91 aml_parser/aml_audio_bitsparser.c
92 aml_parser/aml_audio_matparser.c
93 aml_resampler/aml_audio_resample_manager.c
94 aml_resampler/aml_audio_resampler.c
95 aml_resampler/aml_resample_wrap.cpp
96 aml_resampler/audio_android_resample_api.c
97 aml_resampler/audio_simple_resample_api.c
98 aml_speed/aml_audio_speed_manager.c
99 aml_speed/audio_sonic_speed_api.c
100 aml_speed/sonic_speed_wrapper.c
Tim Yaoe004da02019-12-03 11:59:05 -0800101 audio_hal/alsa_config_parameters.c
102 audio_hal/alsa_manager.c
yayun.shi4a7148a2021-07-16 06:13:50 -0400103 audio_hal/audio_bt_sco.c
Tim Yaoe004da02019-12-03 11:59:05 -0800104 audio_hal/aml_audio_delay.c
yayun.shi4a7148a2021-07-16 06:13:50 -0400105 #audio_hal/a2dp_hal.cpp
Tim Yaoe004da02019-12-03 11:59:05 -0800106 audio_hal/aml_audio_ease.c
107 audio_hal/amlAudioMixer.c
yayun.shi4a7148a2021-07-16 06:13:50 -0400108 audio_hal/aml_audio_ms12_bypass.c
Tim Yaoe004da02019-12-03 11:59:05 -0800109 audio_hal/aml_audio_stream.c
yayun.shi4a7148a2021-07-16 06:13:50 -0400110 audio_hal/aml_audio_spdifout.c
Tim Yaoe004da02019-12-03 11:59:05 -0800111 audio_hal/aml_audio_timer.c
112 audio_hal/aml_avsync_tuning.c
Tim Yaoe004da02019-12-03 11:59:05 -0800113 audio_hal/audio_format_parse.c
114 audio_hal/audio_hw.c
yayun.shi4a7148a2021-07-16 06:13:50 -0400115 audio_hal/audio_hw_ms12_common.c
116 #audio_hal/audio_hw_ms12.c by default, we compile V2,V1 is not used now. TBD
117 audio_hal/audio_hw_ms12_v2.c
118 audio_hal/aml_audio_ms12_sync.c
Tim Yaoe004da02019-12-03 11:59:05 -0800119 audio_hal/audio_hw_profile.c
yayun.shi4a7148a2021-07-16 06:13:50 -0400120 audio_hal/audio_route.c
Tim Yaoe004da02019-12-03 11:59:05 -0800121 audio_hal/audio_hwsync.c
yayun.shi4a7148a2021-07-16 06:13:50 -0400122 audio_hal/audio_hwsync_wrap.c
Tim Yaoe004da02019-12-03 11:59:05 -0800123 audio_hal/audio_hw_utils.c
124 audio_hal/audio_port.c
125 audio_hal/audio_post_process.c
Tim Yaoe004da02019-12-03 11:59:05 -0800126 audio_hal/audio_virtual_buf.c
127 audio_hal/dolby_lib_api.c
128 audio_hal/hw_avsync.c
129 audio_hal/hw_avsync_callbacks.c
130 audio_hal/spdif_encoder_api.c
131 audio_hal/sub_mixing_factory.c
yayun.shi4a7148a2021-07-16 06:13:50 -0400132 audio_hal/aml_audio_dev2mix_process.c
133 audio_hal/aml_audio_ms12_render.c
134 audio_hal/aml_audio_nonms12_render.c
135 audio_hal/aml_audio_spdifdec.c
136 audio_hal/aml_dtvsync.c
137 audio_hal/audio_mediasync_wrap.c
138 audio_hal/audio_hdmi_util.c
139 audio_hal/aml_audio_hal_avsync.c
yayun.shi3a40dcb2021-07-20 05:14:48 -0400140 audio_hal/tinyalsa_ext.c
yayun.shid6eaaf42021-08-06 07:02:13 -0400141 audio_hal/aml_config_parser.c
142 utils/cJSON/cJSON.c
yayun.shi4a7148a2021-07-16 06:13:50 -0400143 utils/aml_hw_mixer.c
Tim Yaoe004da02019-12-03 11:59:05 -0800144 utils/alsa_device_parser.c
145 utils/aml_alsa_mixer.c
146 utils/aml_android_utils.c
147 utils/aml_audio_mixer.c
Tim Yaoe004da02019-12-03 11:59:05 -0800148 utils/aml_buffer_provider.c
149 utils/aml_data_utils.c
150 utils/aml_dump_debug.c
yayun.shi4a7148a2021-07-16 06:13:50 -0400151 utils/aml_malloc_debug.c
Tim Yaoe004da02019-12-03 11:59:05 -0800152 utils/aml_ringbuffer.c
153 utils/aml_volume_utils.c
154 utils/aml_configs/aml_conf_loader.c
155 utils/aml_configs/aml_conf_parser.c
yayun.shi4a7148a2021-07-16 06:13:50 -0400156 utils/audio_data_process.c
157 utils/tinyalsa/pcm.c
158 utils/tinyalsa/mixer.c
159 #rcaudio/audio_hal_thunks.cpp
Pradeep Sriramd18aa612020-05-14 13:05:34 -0700160 ${DTV_FILES}
cheng tong12e5d132020-09-25 18:57:09 +0800161 ${EQ_DRC_FILES}
Tim Yaoe004da02019-12-03 11:59:05 -0800162)
163
yayun.shi4a7148a2021-07-16 06:13:50 -0400164add_definitions(-DNDEBUG -DREPLACE_OUTPUT_BUFFER_WITH_CALLBACK -DDOLBY_MS12_ENABLE -DMS12_V24_ENABLE -DBUILD_LINUX)
Tim Yao2c66a762021-01-06 18:08:33 -0800165if(USE_CAP)
166add_definitions(-DAUDIO_CAP)
Tim Yaob5e98392021-03-03 11:51:26 -0800167
168if(USE_CAP_MUTE_HDMI)
169 add_definitions(-DAUDIO_CAP_MUTE_HDMI)
170endif()
Tim Yao2c66a762021-01-06 18:08:33 -0800171endif()
Tim Yao4bff6782019-12-26 18:31:40 -0800172
yayun.shi4a7148a2021-07-16 06:13:50 -0400173#if(USE_EQ_DRC)
Tim Yaoe004da02019-12-03 11:59:05 -0800174set(PREBUILD_STATIC_LIBS
175 ${CMAKE_SOURCE_DIR}/amlogic_AQ_tools/lib_aml_ng.a
176 ${CMAKE_SOURCE_DIR}/amlogic_AQ_tools/Amlogic_DRC_Param_Generator.a
177 ${CMAKE_SOURCE_DIR}/amlogic_AQ_tools/Amlogic_EQ_Param_Generator.a)
yayun.shi4a7148a2021-07-16 06:13:50 -0400178#endif()
Tim Yaoe004da02019-12-03 11:59:05 -0800179
180set_target_properties(audio_hal PROPERTIES
181 VERSION ${PROJECT_VERSION}
182 SOVERSION 1)
183
184target_include_directories(audio_hal PRIVATE
Tim Yaoe004da02019-12-03 11:59:05 -0800185 ./include
yayun.shi4a7148a2021-07-16 06:13:50 -0400186 ../hal_audio_service/include
Tim Yaoe004da02019-12-03 11:59:05 -0800187 ./include/utils
yayun.shi4a7148a2021-07-16 06:13:50 -0400188 ./aml_speed/include
189 ./aml_speed
190 ./aml_resampler/include
191 ./aml_resampler
192 ./aml_adecs/include
193 ./aml_adecs/
194 ./aml_parser/include
195 ./aml_parser
196 ./utils/include
197 ./utils/tinyalsa/include
yayun.shid6eaaf42021-08-06 07:02:13 -0400198 ./utils/cJSON
yayun.shi4a7148a2021-07-16 06:13:50 -0400199 ./libms12_v24/include
200 ./amlogic_AQ_tools
201 ./dtv_audio_utils/audio_read_api
202 ./audio_hal)
Tim Yaoe004da02019-12-03 11:59:05 -0800203
Tim Yaoe419f812021-01-20 21:15:05 -0800204target_compile_options(audio_hal PRIVATE -D_GNU_SOURCE -DTV_AUDIO_OUTPUT -Wno-deprecated-declarations -funwind-tables -fasynchronous-unwind-tables -fPIC)
Tim Yaoe004da02019-12-03 11:59:05 -0800205
206target_link_libraries(audio_hal
cheng tong5ae92692020-08-28 14:13:39 +0800207 audioprocessing spdifenc ms12v2 ${PREBUILD_STATIC_LIBS}
yayun.shi4a7148a2021-07-16 06:13:50 -0400208 -lcutils -lamaudioutils -llog -lexpat -lpthread -ldl -lstdc++ -Wl,-z,defs)
Song Zhaoc23fabe2020-09-18 13:28:40 -0700209
210if(USE_EQ_DRC)
211 target_include_directories(audio_hal PRIVATE
212 ./include/amlogic_AQ_tools
213 ./amlogic_AQ_tools
214 ./amlogic_AQ_tools/ini)
215 target_compile_options(audio_hal PRIVATE -DAML_EQ_DRC)
Song Zhaoc23fabe2020-09-18 13:28:40 -0700216endif()
217
218if(USE_DTV)
Zhizhong Zhang16302302021-01-20 22:29:14 +0800219 target_include_directories(audio_hal PRIVATE
220 ${DTV_INC}
221 ${DVB_AUDIO_INC})
222 target_link_libraries(audio_hal
223 ${DTV_LIBS}
224 ${DVB_AUDIO_LIBS} -lamavutils)
225endif()
226
Tim Yao35766e42021-02-22 17:35:58 -0800227if(USE_MSYNC)
228 target_link_libraries(audio_hal -lamlavsync)
229endif()
230
Zhizhong Zhang16302302021-01-20 22:29:14 +0800231if(USE_SC2)
232 add_definitions(-DDVB_AUDIO_SC2)
Song Zhaoc23fabe2020-09-18 13:28:40 -0700233endif()
Tim Yaoe004da02019-12-03 11:59:05 -0800234
235install(TARGETS audio_hal
236 LIBRARY DESTINATION "lib")
237
238install(FILES audio_hal/mixer_paths.xml
239 DESTINATION /etc)
240
cheng tong5ae92692020-08-28 14:13:39 +0800241install(PROGRAMS amlogic_AQ_tools/Amlogic_DRC_Param_Generator amlogic_AQ_tools/Amlogic_EQ_Param_Generator
242 DESTINATION /usr/bin)
243