NEW:add ffmepg build Cmake

buildLinuxImage add ffmpeg so file

jira:nojira

Change-Id: I3e1be53aa58a179b8d9ae048ed7538de3ae8d111
This commit is contained in:
MackBambu 2024-09-28 02:00:31 +08:00 committed by Lane.Wei
parent af46bcdc5f
commit 2d70a1bcb6
7 changed files with 89 additions and 20 deletions

View File

@ -622,11 +622,10 @@ function(bambustudio_copy_dlls target config postfix output_dlls)
${CMAKE_PREFIX_PATH}/bin/occt/TKXDESTEP.dll
${CMAKE_PREFIX_PATH}/bin/occt/TKXSBase.dll
${CMAKE_PREFIX_PATH}/bin/freetype.dll
${CMAKE_PREFIX_PATH}/bin/avcodec-59.dll
${CMAKE_PREFIX_PATH}/bin/swresample-4.dll
${CMAKE_PREFIX_PATH}/bin/swscale-6.dll
${CMAKE_PREFIX_PATH}/bin/avutil-57.dll
${CMAKE_PREFIX_PATH}/bin/libwinpthread-1.dll
${CMAKE_PREFIX_PATH}/bin/avcodec-61.dll
${CMAKE_PREFIX_PATH}/bin/swresample-5.dll
${CMAKE_PREFIX_PATH}/bin/swscale-8.dll
${CMAKE_PREFIX_PATH}/bin/avutil-59.dll
DESTINATION ${_out_dir})
set(${output_dlls}
@ -662,11 +661,10 @@ function(bambustudio_copy_dlls target config postfix output_dlls)
${_out_dir}/TKXSBase.dll
${_out_dir}/freetype.dll
${_out_dir}/avcodec-59.dll
${_out_dir}/swresample-4.dll
${_out_dir}/swscale-6.dll
${_out_dir}/avutil-57.dll
${_out_dir}/libwinpthread-1.dll
${_out_dir}/avcodec-61.dll
${_out_dir}/swresample-5.dll
${_out_dir}/swscale-8.dll
${_out_dir}/avutil-59.dll
PARENT_SCOPE
)
@ -679,31 +677,31 @@ function(bambustudio_copy_sos target config postfix output_sos)
file(COPY ${CMAKE_PREFIX_PATH}/lib/libavcodec.so
${CMAKE_PREFIX_PATH}/lib/libavcodec.so.61
${CMAKE_PREFIX_PATH}/lib/libavcodec.so.61.10.100
${CMAKE_PREFIX_PATH}/lib/libavcodec.so.61.3.100
${CMAKE_PREFIX_PATH}/lib/libavutil.so
${CMAKE_PREFIX_PATH}/lib/libavutil.so.59
${CMAKE_PREFIX_PATH}/lib/libavutil.so.59.28.100
${CMAKE_PREFIX_PATH}/lib/libavutil.so.59.8.100
${CMAKE_PREFIX_PATH}/lib/libswscale.so
${CMAKE_PREFIX_PATH}/lib/libswscale.so.8
${CMAKE_PREFIX_PATH}/lib/libswscale.so.8.2.100
${CMAKE_PREFIX_PATH}/lib/libswscale.so.8.1.100
${CMAKE_PREFIX_PATH}/lib/libswresample.so
${CMAKE_PREFIX_PATH}/lib/libswresample.so.5
${CMAKE_PREFIX_PATH}/lib/libswresample.so.5.2.100
${CMAKE_PREFIX_PATH}/lib/libswresample.so.5.1.100
DESTINATION ${_out_dir})
set(${output_dlls}
${_out_dir}/libavcodec.so
${_out_dir}/libavcodec.so.61
${_out_dir}/libavcodec.so.61.10.100
${_out_dir}/libavcodec.so.61.3.100
${_out_dir}/libavutil.so
${_out_dir}/libavutil.so.59
${_out_dir}/libavutil.so.59.28.100
${_out_dir}/libavutil.so.59.8.100
${_out_dir}/libswscale.so
${_out_dir}/libswscale.so.8
${_out_dir}/libswscale.so.8.2.100
${_out_dir}/libswscale.so.8.1.100
${_out_dir}/libswresample.so
${_out_dir}/libswresample.so.5
${_out_dir}/libswresample.so.5.2.100
${_out_dir}/libswresample.so.5.1.100
PARENT_SCOPE
)
endfunction()

7
deps/CMakeLists.txt vendored
View File

@ -39,6 +39,7 @@ option(DEP_BUILD_OPENSSL "Compile openssl" ON)
option(DEP_BUILD_GLFW "Compile GLFW" ON)
option(DEP_BUILD_FREETYPE "Compile freetype" ON)
option(DEP_BUILD_WXWIDGETS "Compile wxWidgets" ON)
option(DEP_BUILD_FFMPEG "Compile ffmpeg" ON)
set(DESTDIR "${CMAKE_CURRENT_BINARY_DIR}/destdir" CACHE PATH "Destination directory")
set(DEP_DOWNLOAD_DIR ${CMAKE_CURRENT_BINARY_DIR} CACHE PATH "Path for downloaded source packages.")
@ -229,6 +230,11 @@ if (DEP_BUILD_FREETYPE)
endif ()
include(OCCT/OCCT.cmake)
include(OpenCV/OpenCV.cmake)
set(FFMPEG_PKG "")
if (DEP_BUILD_FFMPEG)
include(FFMPEG/FFMPEG.cmake)
set(FFMPEG_PKG dep_FFMPEG)
endif ()
set(_dep_list
${BOOST_PKG}
@ -247,6 +253,7 @@ set(_dep_list
${ZLIB_PKG}
${EXPAT_PKG}
${FREETYPE_PKG}
${FFMPEG_PKG}
)
if (MSVC)

60
deps/FFMPEG/FFMPEG.cmake vendored Normal file
View File

@ -0,0 +1,60 @@
set(_conf_cmd ./configure)
if (MSVC)
set(_dstdir ${DESTDIR}/usr/local)
set(_source_dir "${CMAKE_BINARY_DIR}/dep_FFMPEG-prefix/src/dep_FFMPEG")
ExternalProject_Add(dep_FFMPEG
URL https://github.com/bambulab/ffmpeg_prebuilts/releases/download/7.0.2/7.0.2_msvc.zip
URL_HASH SHA256=DF44AE6B97CE84C720695AE7F151B4A9654915D1841C68F10D62A1189E0E7181
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/FFMPEG
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND
# COMMAND ${CMAKE_COMMAND} -E make_directory "${_dstdir}/bin"
# COMMAND ${CMAKE_COMMAND} -E make_directory "${_dstdir}/lib"
# COMMAND ${CMAKE_COMMAND} -E make_directory "${_dstdir}/include"
COMMAND ${CMAKE_COMMAND} -E copy_directory "${_source_dir}/bin" "${_dstdir}/bin"
COMMAND ${CMAKE_COMMAND} -E copy_directory "${_source_dir}/lib" "${_dstdir}/lib"
COMMAND ${CMAKE_COMMAND} -E copy_directory "${_source_dir}/include" "${_dstdir}/include"
)
else ()
set(_extra_cmd "--pkg-config-flags=\"--static\"")
string(APPEND _extra_cmd "--extra-cflags=\"-I ${DESTDIR}/usr/local/include\"")
string(APPEND _extra_cmd "--extra-ldflags=\"-I ${DESTDIR}/usr/local/lib\"")
string(APPEND _extra_cmd "--extra-libs=\"-lpthread -lm\"")
string(APPEND _extra_cmd "--ld=\"g++\"")
string(APPEND _extra_cmd "--bindir=\"${DESTDIR}/usr/local/bin\"")
string(APPEND _extra_cmd "--enable-gpl")
string(APPEND _extra_cmd "--enable-nonfree")
ExternalProject_Add(dep_FFMPEG
URL https://github.com/FFmpeg/FFmpeg/archive/refs/tags/n7.0.2.tar.gz
URL_HASH SHA256=5EB46D18D664A0CCADF7B0ADEE03BD3B7FA72893D667F36C69E202A807E6D533
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/FFMPEG
CONFIGURE_COMMAND ${_conf_cmd}
"--prefix=${DESTDIR}/usr/local"
"--enable-shared"
"--disable-doc"
"--enable-small"
"--disable-outdevs"
"--disable-filters"
"--enable-filter=*null*,afade,*fifo,*format,*resample,aeval,allrgb,allyuv,atempo,pan,*bars,color,*key,crop,draw*,eq*,framerate,*_qsv,*_vaapi,*v4l2*,hw*,scale,volume,test*"
"--disable-protocols"
"--enable-protocol=file,fd,pipe,rtp,udp"
"--disable-muxers"
"--enable-muxer=rtp"
"--disable-encoders"
"--disable-decoders"
"--enable-decoder=*aac*,h264*,mp3*,mjpeg,rv*"
"--disable-demuxers"
"--enable-demuxer=h264,mp3,mov"
"--disable-zlib"
"--disable-avdevice"
BUILD_IN_SOURCE ON
BUILD_COMMAND make -j
INSTALL_COMMAND make install
)
endif()

View File

@ -27,6 +27,9 @@ REQUIRED_DEV_PACKAGES=(
libunwind-dev
libfuse2
texinfo
nasm
yasm
libx264-dev
)
if [[ -n "$UPDATE_LIB" ]]

View File

@ -30,6 +30,7 @@ echo -n "[9/9] Generating Linux app..."
# copy Resources
cp -Rf ../resources package/resources
cp -f src/@SLIC3R_APP_CMD@ package/bin/@SLIC3R_APP_CMD@
cp -f src/*.so* package/bin/
# remove unneeded po from resources
## find package/resources/localization -name "*.po" -type f -delete ## FIXME: DD - do we need this?

View File

@ -1,7 +1,7 @@
#ifndef AVVIDEODECODER_HPP
#define AVVIDEODECODER_HPP
#include "BambuTunnel.h"
#include "Printer/BambuTunnel.h"
extern "C" {
#include <libavcodec/avcodec.h>

View File

@ -23,7 +23,7 @@ void wxMediaCtrl_OnSize(wxWindow * ctrl, wxSize const & videoSize, int width, in
#else
#define BAMBU_DYNAMIC
#include <BambuTunnel.h>
#include "Printer/BambuTunnel.h"
class AVVideoDecoder;