Add fdk-aac external lib.
This commit is contained in:
		
							parent
							
								
									0d2153b307
								
							
						
					
					
						commit
						fa360ed2ac
					
				
							
								
								
									
										3
									
								
								external/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								external/.gitignore
									
									
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,3 +1,4 @@
 | 
			
		|||
 | 
			
		||||
goahead-5.2.0/GoAhead
 | 
			
		||||
ffmpeg/ffmpeg-6.1.1
 | 
			
		||||
ffmpeg/ffmpeg-6.1.1
 | 
			
		||||
fdk-aac/fdk-aac-2.0.3
 | 
			
		||||
							
								
								
									
										3
									
								
								external/CMakeLists.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								external/CMakeLists.txt
									
									
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -22,5 +22,8 @@ add_subdirectory(goahead-5.2.0)
 | 
			
		|||
 | 
			
		||||
add_subdirectory(cJSON-1.7.17)
 | 
			
		||||
add_subdirectory(libhv/libhv-1.3.2)
 | 
			
		||||
# ================= ffmpeg related ================= #
 | 
			
		||||
add_subdirectory(ffmpeg)
 | 
			
		||||
add_subdirectory(fdk-aac)
 | 
			
		||||
# ================= ffmpeg related end ================= #
 | 
			
		||||
add_subdirectory(libconfig)
 | 
			
		||||
							
								
								
									
										25
									
								
								external/fdk-aac/CMakeLists.txt
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								external/fdk-aac/CMakeLists.txt
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,25 @@
 | 
			
		|||
include(${CMAKE_SOURCE_DIR_IPCSDK}/build/global_config.cmake)
 | 
			
		||||
set(FFMPEG_INSTALL_PATH "${EXTERNAL_LIBS_OUTPUT_PATH}/fdk-aac")
 | 
			
		||||
message("Compile fdk-aac cmake config files : ${PLATFORM_PATH}/build/cmake/toolchain/linux.toolchain.cmake")
 | 
			
		||||
add_custom_target(
 | 
			
		||||
    fdk-aac
 | 
			
		||||
    COMMAND echo "Now compile fdk-aac, please wait..."
 | 
			
		||||
    COMMAND test -f ${EXTERNAL_SOURCE_PATH}/fdk-aac/fdk-aac-2.0.3/CMakeLists.txt || tar -xf fdk-aac-2.0.3.tar.gz
 | 
			
		||||
    COMMAND chmod 777 -R fdk-aac-2.0.3
 | 
			
		||||
    COMMAND test -f ${EXTERNAL_SOURCE_PATH}/fdk-aac/fdk-aac-2.0.3/build/Makefile || mkdir fdk-aac-2.0.3/build
 | 
			
		||||
    COMMAND cd fdk-aac-2.0.3/build && cmake ../ -DCMAKE_TOOLCHAIN_FILE=${PLATFORM_PATH}/build/cmake/toolchain/linux.toolchain.cmake
 | 
			
		||||
            -DCMAKE_INSTALL_PREFIX=${FFMPEG_INSTALL_PATH} -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF
 | 
			
		||||
    COMMAND cd fdk-aac-2.0.3/build && make
 | 
			
		||||
    COMMAND cd fdk-aac-2.0.3/build && make install
 | 
			
		||||
    COMMAND cd fdk-aac-2.0.3/build && make clean
 | 
			
		||||
    WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/fdk-aac/
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
add_custom_target(
 | 
			
		||||
  remove_fdk-aac_source_files
 | 
			
		||||
  COMMAND rm -rf fdk-aac-2.0.3
 | 
			
		||||
  WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/fdk-aac/
 | 
			
		||||
)
 | 
			
		||||
 
 | 
			
		||||
# 将clean目标依赖于我们自定义的clean_script目标
 | 
			
		||||
add_dependencies(sdk_clean remove_fdk-aac_source_files)
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								external/fdk-aac/fdk-aac-2.0.3.tar.gz
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								external/fdk-aac/fdk-aac-2.0.3.tar.gz
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										24
									
								
								external/ffmpeg/CMakeLists.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										24
									
								
								external/ffmpeg/CMakeLists.txt
									
									
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,22 +1,30 @@
 | 
			
		|||
set(FFMPEG_INSTALL_PATH "${EXTERNAL_LIBS_OUTPUT_PATH}/ffmpeg")
 | 
			
		||||
find_program(NASM nasm)
 | 
			
		||||
if(NOT NASM)
 | 
			
		||||
  message("nasm not found. Now install.")
 | 
			
		||||
  execute_process(COMMAND sudo apt install nasm WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/)
 | 
			
		||||
endif()
 | 
			
		||||
if(${TARGET_PLATFORM} MATCHES ${DEFINE_LINUX})
 | 
			
		||||
    set(CONFIGURE_COMMAND "--enable-cross-compile --target-os=linux --arch=linux \
 | 
			
		||||
    set(CONFIGURE_COMMAND "--enable-cross-compile --target-os=linux --arch=x86_64 \
 | 
			
		||||
    --cc=${CMAKE_C_COMPILER} \
 | 
			
		||||
    --cxx=${CMAKE_CXX_COMPILER} \
 | 
			
		||||
    --prefix=${EXTERNAL_LIBS_OUTPUT_PATH}/ffmpeg \
 | 
			
		||||
    --enable-parsers --enable-decoder=h264 \
 | 
			
		||||
    --enable-parsers --enable-decoder=h264 --enable-libfdk-aac \
 | 
			
		||||
    --enable-ffmpeg --enable-static \
 | 
			
		||||
    --enable-gpl --enable-nonfree --enable-version3 --enable-small \
 | 
			
		||||
    --enable-muxer=mov --enable-muxer=mp4 \
 | 
			
		||||
    --enable-decoder=aac --enable-decoder=pcm_alaw --enable-encoder=pcm_alaw \
 | 
			
		||||
    --enable-demuxer=mov \
 | 
			
		||||
    --enable-protocol=file --enable-bsf=aac_adtstoasc --enable-bsf=h264_mp4toannexb --enable-bsf=hevc_mp4toannexb")
 | 
			
		||||
    --enable-protocol=file --enable-bsf=aac_adtstoasc --enable-bsf=h264_mp4toannexb --enable-bsf=hevc_mp4toannexb \
 | 
			
		||||
    --extra-libs=-lm \
 | 
			
		||||
    --extra-cflags=\"-I${EXTERNAL_LIBS_OUTPUT_PATH}/fdk-aac/include\" \
 | 
			
		||||
    --extra-ldflags=\"-L${EXTERNAL_LIBS_OUTPUT_PATH}/fdk-aac/lib\"")
 | 
			
		||||
else()
 | 
			
		||||
    set(CONFIGURE_COMMAND "--enable-cross-compile --target-os=linux --arch=arm64 \
 | 
			
		||||
    --cc=${CMAKE_C_COMPILER} \
 | 
			
		||||
    --cxx=${CMAKE_CXX_COMPILER} \
 | 
			
		||||
    --prefix=${EXTERNAL_LIBS_OUTPUT_PATH}/ffmpeg \
 | 
			
		||||
    --disable-asm --enable-parsers --disable-decoders --enable-decoder=h264 \
 | 
			
		||||
    --disable-asm --enable-parsers --disable-decoders --enable-decoder=h264 --enable-libfdk-aac \
 | 
			
		||||
    --disable-debug --enable-ffmpeg --enable-shared --enable-static --disable-stripping --disable-doc \
 | 
			
		||||
    --enable-gpl --enable-nonfree --enable-version3 --enable-small \
 | 
			
		||||
    --disable-mipsdsp --disable-mipsdspr2 \
 | 
			
		||||
| 
						 | 
				
			
			@ -29,13 +37,17 @@ else()
 | 
			
		|||
    --disable-protocols --enable-protocol=file \
 | 
			
		||||
    --disable-bsfs --enable-bsf=aac_adtstoasc --enable-bsf=h264_mp4toannexb --enable-bsf=hevc_mp4toannexb \
 | 
			
		||||
    --disable-indevs \
 | 
			
		||||
    --disable-outdevs --disable-ffprobe --disable-ffmpeg --disable-ffplay --disable-debug")
 | 
			
		||||
    --disable-outdevs --disable-ffprobe --disable-ffmpeg --disable-ffplay --disable-debug \
 | 
			
		||||
    --extra-libs=-lm \
 | 
			
		||||
    --extra-cflags=\"-I${EXTERNAL_LIBS_OUTPUT_PATH}/fdk-aac/include\" \
 | 
			
		||||
    --extra-ldflags=\"-L${EXTERNAL_LIBS_OUTPUT_PATH}/fdk-aac/lib\"")
 | 
			
		||||
endif()
 | 
			
		||||
message("Compile ffmpeg comand : ${CONFIGURE_COMMAND}")
 | 
			
		||||
add_custom_target(
 | 
			
		||||
    ffmpeg
 | 
			
		||||
    DEPENDS fdk-aac
 | 
			
		||||
    COMMAND echo "Now compile ffmpeg, please wait..."
 | 
			
		||||
    COMMAND test -f ${EXTERNAL_SOURCE_PATH}/ffmpeg/Makefile || tar -xf ffmpeg_6.1.1.orig.tar.xz
 | 
			
		||||
    COMMAND test -f ${EXTERNAL_SOURCE_PATH}/ffmpeg/ffmpeg-6.1.1/Makefile || tar -xf ffmpeg_6.1.1.orig.tar.xz
 | 
			
		||||
    COMMAND chmod 777 -R ffmpeg-6.1.1
 | 
			
		||||
    COMMAND cd ffmpeg-6.1.1 && bash -c "./configure ${CONFIGURE_COMMAND}"
 | 
			
		||||
    COMMAND cd ffmpeg-6.1.1 && make
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user