Add ffmpeg.
This commit is contained in:
commit
f6173a8786
|
@ -31,7 +31,6 @@ if(${TEST_COVERAGE} MATCHES "true")
|
|||
target_link_libraries(${TARGET_NAME} gcov)
|
||||
endif()
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
HuntingCamera_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -44,12 +43,6 @@ add_custom_target(
|
|||
-p ${PLATFORM_PATH}/cmake-shell
|
||||
WORKING_DIRECTORY ${APPLICATION_SOURCE_PATH}/HuntingCamera
|
||||
)
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
COMMAND make HuntingCamera_code_check
|
||||
WORKING_DIRECTORY ${PLATFORM_PATH}/cmake-shell/
|
||||
)
|
||||
file(GLOB_RECURSE HEADER_FILES *.h)
|
||||
add_custom_target(
|
||||
HuntingCamera_code_format
|
||||
|
@ -58,6 +51,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${MAIN_SRC_FILE_THIS} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${APPLICATION_SOURCE_PATH}/HuntingCamera
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -32,7 +32,6 @@ add_library(${TARGET_NAME} STATIC ${SRC_FILES})
|
|||
|
||||
target_link_libraries(${TARGET_NAME} McuAskBase StateMachine MediaManager StorageManager DeviceManager HuntingUpgrade KeyControl LedControl StatusCode Log)
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
MissionManager_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -44,12 +43,6 @@ add_custom_target(
|
|||
-p ${PLATFORM_PATH}/cmake-shell
|
||||
WORKING_DIRECTORY ${APPLICATION_SOURCE_PATH}/MissionManager
|
||||
)
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
COMMAND make MissionManager_code_check
|
||||
WORKING_DIRECTORY ${PLATFORM_PATH}/cmake-shell/
|
||||
)
|
||||
file(GLOB_RECURSE HEADER_FILES *.h)
|
||||
add_custom_target(
|
||||
MissionManager_code_format
|
||||
|
@ -58,6 +51,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${APPLICATION_SOURCE_PATH}/MissionManager
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -35,7 +35,6 @@ if(${TEST_COVERAGE} MATCHES "true")
|
|||
target_link_libraries(${TARGET_NAME} gcov)
|
||||
endif()
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
ipc_x86_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -55,6 +54,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES} ${MAIN_SRC_FILE_THIS}
|
||||
WORKING_DIRECTORY ${APPLICATION_SOURCE_PATH}/main
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -192,7 +192,7 @@ origin git@gitee.com:shenzhen-jiuyilian/ipc.git (fetch)
|
|||
origin git@gitee.com:shenzhen-jiuyilian/ipc.git (push)
|
||||
```
|
||||
|
||||
### 1.4.5. git删除一个远端分支
|
||||
### 1.4.5. git删除远端分支
|
||||
|
||||
```code
|
||||
# git push <remote-name> --delete <branch-name>
|
||||
|
@ -210,6 +210,34 @@ To gitee.com:shenzhen-jiuyilian/ipc.git
|
|||
- [deleted] Branch_QT
|
||||
```
|
||||
|
||||
### 1.4.6. git删除本地分支
|
||||
|
||||
```code
|
||||
# git branch -d <branch-name>
|
||||
$ git branch -a
|
||||
----------------
|
||||
=-a
|
||||
master
|
||||
* sdk-202405
|
||||
remotes/origin/HEAD -> origin/master
|
||||
remotes/origin/app_test
|
||||
remotes/origin/master
|
||||
remotes/origin/sdk-202402
|
||||
remotes/origin/sdk-202405
|
||||
$ git branch -d =-a
|
||||
--------------------
|
||||
Deleted branch =-a (was c29b4f5).
|
||||
$ git branch -a
|
||||
---------------
|
||||
master
|
||||
* sdk-202405
|
||||
remotes/origin/HEAD -> origin/master
|
||||
remotes/origin/app_test
|
||||
remotes/origin/master
|
||||
remotes/origin/sdk-202402
|
||||
remotes/origin/sdk-202405
|
||||
```
|
||||
|
||||
## 1.5. 多仓库管理
|
||||
|
||||
### 1.5.1. 合并两个无关联记录的仓库
|
||||
|
|
55
external/ffmpeg/CMakeLists.txt
vendored
55
external/ffmpeg/CMakeLists.txt
vendored
|
@ -1,26 +1,43 @@
|
|||
|
||||
set(FFMPEG_INSTALL_PATH "${EXTERNAL_LIBS_OUTPUT_PATH}/ffmpeg")
|
||||
if(${TARGET_PLATFORM} MATCHES ${DEFINE_LINUX})
|
||||
set(CONFIGURE_COMMAND "--enable-cross-compile --target-os=linux --arch=linux \
|
||||
--cc=${CMAKE_C_COMPILER} \
|
||||
--cxx=${CMAKE_CXX_COMPILER} \
|
||||
--prefix=${EXTERNAL_LIBS_OUTPUT_PATH}/ffmpeg \
|
||||
--enable-parsers --enable-decoder=h264 \
|
||||
--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")
|
||||
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-debug --enable-ffmpeg --enable-shared --enable-static --disable-stripping --disable-doc \
|
||||
--enable-gpl --enable-nonfree --enable-version3 --enable-small \
|
||||
--disable-mipsdsp --disable-mipsdspr2 \
|
||||
--disable-encoders \
|
||||
--disable-muxers --enable-muxer=mov --enable-muxer=mp4 \
|
||||
--disable-decoders --enable-decoder=aac \
|
||||
--disable-filters \
|
||||
--disable-demuxers --enable-demuxer=mov \
|
||||
--disable-parsers \
|
||||
--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")
|
||||
endif()
|
||||
message("Compile ffmpeg comand : ${CONFIGURE_COMMAND}")
|
||||
add_custom_target(
|
||||
ffmpeg
|
||||
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 chmod 777 -R ffmpeg-6.1.1
|
||||
COMMAND cd ffmpeg-6.1.1 && ./configure --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-debug --enable-ffmpeg --enable-shared --enable-static --disable-stripping --disable-doc
|
||||
--enable-gpl --enable-nonfree --enable-version3 --enable-small
|
||||
--disable-mipsdsp --disable-mipsdspr2
|
||||
--disable-encoders
|
||||
--disable-muxers --enable-muxer=mov --enable-muxer=mp4
|
||||
--disable-decoders --enable-decoder=aac
|
||||
--disable-filters
|
||||
--disable-demuxers --enable-demuxer=mov
|
||||
--disable-parsers
|
||||
--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
|
||||
COMMAND cd ffmpeg-6.1.1 && bash -c "./configure ${CONFIGURE_COMMAND}"
|
||||
COMMAND cd ffmpeg-6.1.1 && make
|
||||
COMMAND cd ffmpeg-6.1.1 && make install
|
||||
COMMAND cd ffmpeg-6.1.1 && make clean
|
||||
|
|
39
external/ffmpeg/README.md
vendored
Normal file
39
external/ffmpeg/README.md
vendored
Normal file
|
@ -0,0 +1,39 @@
|
|||
# 1. ffmpeg开发文档
|
||||
|
||||
## 1.1. ffplay命令使用
|
||||
|
||||
* 播放G711a音频文件
|
||||
|
||||
```code
|
||||
$ ffplay -i audio.g711a -f alaw -ac 1 -ar 8000
|
||||
```
|
||||
ffmpeg -i input.g711a -acodec alaw output.wav
|
||||
|
||||
* 播放h264视频文件
|
||||
|
||||
```code
|
||||
$ ffplay video.h264
|
||||
```
|
||||
|
||||
## 1.2. 问题记录
|
||||
|
||||
### 1.2.1. avformat_open_input执行失败
|
||||
|
||||
  在执行avformat_open_input时,返回-1094995529<0,错误
|
||||
|
||||
解决:在Ubuntu编译时,使能所有的编译选项,并且把--arch=赋值为linux
|
||||
|
||||
```code
|
||||
# 详见://external/ffmpeg/CMakeLists.txt
|
||||
set(CONFIGURE_COMMAND "--enable-cross-compile --target-os=linux --arch=linux \
|
||||
--cc=${CMAKE_C_COMPILER} \
|
||||
--cxx=${CMAKE_CXX_COMPILER} \
|
||||
--prefix=${EXTERNAL_LIBS_OUTPUT_PATH}/ffmpeg \
|
||||
--enable-parsers --enable-decoder=h264 \
|
||||
--enable-ffmpeg --enable-shared --enable-static \
|
||||
--enable-gpl --enable-nonfree --enable-version3 --enable-small \
|
||||
--enable-muxer=mov --enable-muxer=mp4 \
|
||||
--enable-decoder=aac \
|
||||
--enable-demuxer=mov \
|
||||
--enable-protocol=file --enable-bsf=aac_adtstoasc --enable-bsf=h264_mp4toannexb --enable-bsf=hevc_mp4toannexb")
|
||||
```
|
30
external/goahead-5.2.0/CMakeLists.txt
vendored
30
external/goahead-5.2.0/CMakeLists.txt
vendored
|
@ -1,4 +1,30 @@
|
|||
include(${CMAKE_SOURCE_DIR_IPCSDK}/build/global_config.cmake)
|
||||
include(${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/goahead.cmake)
|
||||
set(EXECUTABLE_OUTPUT_PATH ${EXEC_OUTPUT_PATH})
|
||||
set(LIBRARY_OUTPUT_PATH ${LIBS_OUTPUT_PATH})
|
||||
include(${UTILS_SOURCE_PATH}/WebServer/build/webserver.cmake)
|
||||
add_custom_target(
|
||||
goahead-5.2.0
|
||||
COMMAND test -f ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/Makefile || tar zxvf goahead-5.2.0.tar.gz
|
||||
COMMAND cp ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/modify/http.c ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/src
|
||||
COMMAND chmod 777 -R GoAhead
|
||||
COMMAND cd GoAhead && make CC=${CMAKE_C_COMPILER} ARCH=${SET_ARCH} PROFILE=${LIB_TYPE} ME_GOAHEAD_UPLOAD_DIR=\"${GOAHEAD_UPLOAD_TMP_PATH}\"
|
||||
ME_GOAHEAD_SSL_KEY=\"${GOAHEAD_CONFIG_FILE_PATH}/self.key\" ME_GOAHEAD_SSL_CERTIFICATE=\"${GOAHEAD_CONFIG_FILE_PATH}/self.crt\"
|
||||
${ME_GOAHEAD_LIMIT_POST} -f ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/modify/goahead-linux-static-fancy.mk
|
||||
COMMAND echo "Copy goahead lib to output path."
|
||||
COMMAND mv ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/libgo.a ${EXTERNAL_LIBS_OUTPUT_PATH}/libgo.a
|
||||
COMMAND mv ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/libmbedtls.a ${EXTERNAL_LIBS_OUTPUT_PATH}/libmbedtls.a
|
||||
COMMAND mv ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/libgoahead-mbedtls.a ${EXTERNAL_LIBS_OUTPUT_PATH}/libgoahead-mbedtls.a
|
||||
COMMAND cp ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/self.crt ${PLATFORM_PATH}/cmake-shell/
|
||||
COMMAND cp ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/self.key ${PLATFORM_PATH}/cmake-shell/
|
||||
COMMAND cp ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/test/route.txt ${PLATFORM_PATH}/cmake-shell/
|
||||
COMMAND cp ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/test/auth.txt ${PLATFORM_PATH}/cmake-shell/
|
||||
WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/
|
||||
)
|
||||
|
||||
add_custom_target(
|
||||
remove_goahead_source_files
|
||||
COMMAND rm -rf GoAhead
|
||||
WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/
|
||||
)
|
||||
|
||||
# 将clean目标依赖于我们自定义的clean_script目标
|
||||
add_dependencies(sdk_clean remove_goahead_source_files)
|
|
@ -29,8 +29,6 @@ target_link_libraries(${ABSTRACT_TARGET} LinuxApi KeyControl LedControl StatusCo
|
|||
add_library(${IMPL_TARGET} STATIC ${IMPL_SRC_FILES})
|
||||
target_link_libraries(${IMPL_TARGET} ${ABSTRACT_TARGET})
|
||||
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
Hal_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -51,6 +49,7 @@ add_custom_target(
|
|||
-i ${ABSTRACT_SRC_FILES} ${IMPL_SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${HAL_SOURCE_PATH}
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${IMPL_TARGET}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
*/
|
||||
#include "CameraHal.h"
|
||||
#include "IHalCpp.h"
|
||||
#include "ILog.h"
|
||||
#include "StatusCode.h"
|
||||
CameraHal::CameraHal() : mTaskRuning(false), mAudioStreamCallback(nullptr), mVideoStreamCallback(nullptr)
|
||||
{
|
||||
|
@ -26,6 +27,7 @@ void CameraHal::UnInit(void)
|
|||
}
|
||||
StatusCode CameraHal::StartSingleTask(const CameraTaskParam ¶m)
|
||||
{
|
||||
LogInfo("StartSingleTask.\n");
|
||||
mTaskRuning = true;
|
||||
return CreateStatusCode(STATUS_CODE_OK);
|
||||
}
|
||||
|
|
|
@ -89,10 +89,11 @@ StatusCode HalMakePtr::CreateWifiHal(std::shared_ptr<VWifiHal> &impl)
|
|||
impl = std::make_shared<WifiHal>();
|
||||
return CreateStatusCode(STATUS_CODE_OK);
|
||||
}
|
||||
StatusCode HalMakePtr::CreateCameraHal(std::shared_ptr<VCameraHal> &impl)
|
||||
std::shared_ptr<VCameraHal> HalMakePtr::CreateCameraHal(const CameraType &type)
|
||||
{
|
||||
LogWarning("CreateCameraHal.\n");
|
||||
return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION);
|
||||
LogWarning("STATUS_CODE_VIRTUAL_FUNCTION.\n");
|
||||
auto camera = std::make_shared<VCameraHal>();
|
||||
return camera;
|
||||
}
|
||||
StatusCode HalMakePtr::CreateSdCardHal(std::shared_ptr<VSdCardHal> &impl)
|
||||
{
|
||||
|
|
|
@ -26,18 +26,10 @@ public:
|
|||
HalMakePtr() = default;
|
||||
virtual ~HalMakePtr() = default;
|
||||
static std::shared_ptr<HalMakePtr> &GetInstance(std::shared_ptr<HalMakePtr> *impl = nullptr);
|
||||
virtual StatusCode Init()
|
||||
{
|
||||
return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION);
|
||||
}
|
||||
virtual StatusCode UnInit()
|
||||
{
|
||||
return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION);
|
||||
}
|
||||
virtual StatusCode CreateHalPtr(IHal **hal);
|
||||
virtual StatusCode CreateHalSharePtr(std::shared_ptr<IHalCpp> &impl);
|
||||
virtual StatusCode CreateWifiHal(std::shared_ptr<VWifiHal> &impl);
|
||||
virtual StatusCode CreateCameraHal(std::shared_ptr<VCameraHal> &impl);
|
||||
virtual std::shared_ptr<VCameraHal> CreateCameraHal(const CameraType &type);
|
||||
virtual StatusCode CreateSdCardHal(std::shared_ptr<VSdCardHal> &impl);
|
||||
virtual StatusCode CreateAllKeysHal(std::vector<std::shared_ptr<VKeyControl>> &keys);
|
||||
virtual StatusCode CreateAllLedsHal(std::vector<std::shared_ptr<VLedControl>> &leds);
|
||||
|
|
|
@ -27,7 +27,6 @@ add_library(${TARGET_NAME} STATIC ${SRC_FILES})
|
|||
|
||||
target_link_libraries(${TARGET_NAME} WebServer TcpModule Hal cjson-static StatusCode Log)
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
AppManager_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -47,6 +46,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${MIDDLEWARE_SOURCE_PATH}/AppManager
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -22,7 +22,6 @@ add_library(${TARGET_NAME} STATIC ${SRC_FILES})
|
|||
|
||||
target_link_libraries(${TARGET_NAME} LedControl Hal StatusCode Log)
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
DeviceManager_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -42,6 +41,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${MIDDLEWARE_SOURCE_PATH}/DeviceManager
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -24,7 +24,6 @@ add_library(${TARGET_NAME} STATIC ${SRC_FILES})
|
|||
|
||||
target_link_libraries(${TARGET_NAME} sqlite3 StatusCode Log)
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
FilesManager_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -36,12 +35,6 @@ add_custom_target(
|
|||
-p ${PLATFORM_PATH}/cmake-shell
|
||||
WORKING_DIRECTORY ${MIDDLEWARE_SOURCE_PATH}/FilesManager
|
||||
)
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
COMMAND make FilesManager_code_check
|
||||
WORKING_DIRECTORY ${PLATFORM_PATH}/cmake-shell/
|
||||
)
|
||||
file(GLOB_RECURSE HEADER_FILES *.h)
|
||||
add_custom_target(
|
||||
FilesManager_code_format
|
||||
|
@ -50,6 +43,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${MIDDLEWARE_SOURCE_PATH}/FilesManager
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -23,7 +23,6 @@ add_library(${TARGET_NAME} STATIC ${SRC_FILES})
|
|||
|
||||
target_link_libraries(${TARGET_NAME} UpgradeBase StatusCode Log)
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
HuntingUpgrade_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -43,6 +42,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${MIDDLEWARE_SOURCE_PATH}/HuntingUpgrade
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -23,7 +23,6 @@ add_library(${TARGET_NAME} STATIC ${SRC_FILES})
|
|||
|
||||
target_link_libraries(${TARGET_NAME} LinuxApi ConfigBase StatusCode Log)
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
IpcConfig_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -35,12 +34,6 @@ add_custom_target(
|
|||
-p ${PLATFORM_PATH}/cmake-shell
|
||||
WORKING_DIRECTORY ${MIDDLEWARE_SOURCE_PATH}/IpcConfig
|
||||
)
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
COMMAND make IpcConfig_code_check
|
||||
WORKING_DIRECTORY ${PLATFORM_PATH}/cmake-shell/
|
||||
)
|
||||
file(GLOB_RECURSE HEADER_FILES *.h)
|
||||
add_custom_target(
|
||||
IpcConfig_code_format
|
||||
|
@ -49,6 +42,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${MIDDLEWARE_SOURCE_PATH}/IpcConfig
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -31,7 +31,6 @@ add_library(${TARGET_NAME} STATIC ${SRC_FILES})
|
|||
|
||||
target_link_libraries(${TARGET_NAME} McuManager StatusCode Log)
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
McuAskBase_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -43,12 +42,6 @@ add_custom_target(
|
|||
-p ${PLATFORM_PATH}/cmake-shell
|
||||
WORKING_DIRECTORY ${MIDDLEWARE_SOURCE_PATH}/McuAskBase
|
||||
)
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
COMMAND make McuAskBase_code_check
|
||||
WORKING_DIRECTORY ${PLATFORM_PATH}/cmake-shell/
|
||||
)
|
||||
file(GLOB_RECURSE HEADER_FILES *.h)
|
||||
add_custom_target(
|
||||
McuAskBase_code_format
|
||||
|
@ -57,6 +50,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${MIDDLEWARE_SOURCE_PATH}/McuAskBase
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -28,7 +28,6 @@ add_library(${TARGET_NAME} STATIC ${SRC_FILES})
|
|||
|
||||
target_link_libraries(${TARGET_NAME} UartDevice McuAskBase McuProtocol StatusCode Log)
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
McuManager_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -40,12 +39,6 @@ add_custom_target(
|
|||
-p ${PLATFORM_PATH}/cmake-shell
|
||||
WORKING_DIRECTORY ${MIDDLEWARE_SOURCE_PATH}/McuManager
|
||||
)
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
COMMAND make McuManager_code_check
|
||||
WORKING_DIRECTORY ${PLATFORM_PATH}/cmake-shell/
|
||||
)
|
||||
file(GLOB_RECURSE HEADER_FILES *.h)
|
||||
add_custom_target(
|
||||
McuManager_code_format
|
||||
|
@ -54,6 +47,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${MIDDLEWARE_SOURCE_PATH}/McuManager
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -29,7 +29,6 @@ add_library(${TARGET_NAME} STATIC ${SRC_FILES})
|
|||
|
||||
target_link_libraries(${TARGET_NAME} Hal StatusCode Log)
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
MediaManager_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -41,12 +40,6 @@ add_custom_target(
|
|||
-p ${PLATFORM_PATH}/cmake-shell
|
||||
WORKING_DIRECTORY ${MIDDLEWARE_SOURCE_PATH}/MediaManager
|
||||
)
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
COMMAND make MediaManager_code_check
|
||||
WORKING_DIRECTORY ${PLATFORM_PATH}/cmake-shell/
|
||||
)
|
||||
file(GLOB_RECURSE HEADER_FILES *.h)
|
||||
add_custom_target(
|
||||
MediaManager_code_format
|
||||
|
@ -55,6 +48,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${MIDDLEWARE_SOURCE_PATH}/MediaManager
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -22,8 +22,8 @@ SaveStream::SaveStream() : mFileAudio(nullptr), mFileVideo(nullptr)
|
|||
}
|
||||
void SaveStream::Init(void)
|
||||
{
|
||||
mFileAudio = fopen("/tmp/audio.g711", "a+"); // TODO:
|
||||
mFileVideo = fopen("/tmp/video.h264", "a+"); // TODO:
|
||||
mFileAudio = fopen("./audio.g711", "a+"); // TODO:
|
||||
mFileVideo = fopen("./video.h264", "a+"); // TODO:
|
||||
}
|
||||
void SaveStream::UnInit(void)
|
||||
{
|
||||
|
@ -39,6 +39,7 @@ void SaveStream::UnInit(void)
|
|||
void SaveStream::GetVideoStream(const void *stream, const unsigned int &length, const unsigned long long &timeStamp)
|
||||
{
|
||||
if (mFileVideo) {
|
||||
// LogInfo("Get video stream, length: %d\n", length);
|
||||
size_t writeLength = fwrite(stream, 1, length, mFileVideo);
|
||||
if (writeLength != length) {
|
||||
LogError("Write video stream failed.\n");
|
||||
|
@ -49,6 +50,7 @@ void SaveStream::GetVideoStream(const void *stream, const unsigned int &length,
|
|||
void SaveStream::GetAudioStream(const void *stream, const unsigned int &length, const unsigned long long &timeStamp)
|
||||
{
|
||||
if (mFileAudio) {
|
||||
// LogInfo("Get audio stream, length: %d\n", length);
|
||||
size_t writeLength = fwrite(stream, 1, length, mFileAudio);
|
||||
if (writeLength != length) {
|
||||
LogError("Write video stream failed.\n");
|
||||
|
|
|
@ -23,7 +23,6 @@ add_library(${TARGET_NAME} STATIC ${SRC_FILES} ${SRC_FILES_OPENHARMONY})
|
|||
|
||||
target_link_libraries(${TARGET_NAME} Log)
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
StateMachine_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -35,12 +34,6 @@ add_custom_target(
|
|||
-p ${PLATFORM_PATH}/cmake-shell
|
||||
WORKING_DIRECTORY ${MIDDLEWARE_SOURCE_PATH}/StateMachine
|
||||
)
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
COMMAND make StateMachine_code_check
|
||||
WORKING_DIRECTORY ${PLATFORM_PATH}/cmake-shell/
|
||||
)
|
||||
file(GLOB_RECURSE HEADER_FILES *.h)
|
||||
add_custom_target(
|
||||
StateMachine_code_format
|
||||
|
@ -49,6 +42,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${MIDDLEWARE_SOURCE_PATH}/StateMachine
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -26,7 +26,6 @@ add_library(${TARGET_NAME} STATIC ${SRC_FILES})
|
|||
|
||||
target_link_libraries(${TARGET_NAME} StatusCode Log)
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
StorageManager_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -38,12 +37,6 @@ add_custom_target(
|
|||
-p ${PLATFORM_PATH}/cmake-shell
|
||||
WORKING_DIRECTORY ${MIDDLEWARE_SOURCE_PATH}/StorageManager
|
||||
)
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
COMMAND make StorageManager_code_check
|
||||
WORKING_DIRECTORY ${PLATFORM_PATH}/cmake-shell/
|
||||
)
|
||||
file(GLOB_RECURSE HEADER_FILES *.h)
|
||||
add_custom_target(
|
||||
StorageManager_code_format
|
||||
|
@ -52,6 +45,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${MIDDLEWARE_SOURCE_PATH}/StorageManager
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -32,28 +32,7 @@ endif()
|
|||
# Mock Linux api.
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${TEST_LINUX_MOCK}")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TEST_LINUX_MOCK}")
|
||||
# build gtest and gmock
|
||||
# add_custom_command(
|
||||
# OUTPUT ${EXTERNAL_LIBS_OUTPUT_PATH}/libgtest.a
|
||||
# OUTPUT ${EXTERNAL_LIBS_OUTPUT_PATH}/libgmock.a
|
||||
# COMMAND echo "Build google test for test code."
|
||||
# COMMAND sh build_gtest.sh ${TARGET_PLATFORM} ${PLATFORM_PATH} ${PLATFORM_PATH}
|
||||
# COMMAND mv ${EXTERNAL_SOURCE_PATH}/gtest/googletest-release-1.11.0/googlemock/lib/libgtest.a ${EXTERNAL_LIBS_OUTPUT_PATH}/libgtest.a
|
||||
# COMMAND mv ${EXTERNAL_SOURCE_PATH}/gtest/googletest-release-1.11.0/googlemock/lib/libgmock.a ${EXTERNAL_LIBS_OUTPUT_PATH}/libgmock.a
|
||||
# WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/gtest/
|
||||
# )
|
||||
# # add_custom_target(
|
||||
# # google_test
|
||||
# # DEPENDS libgtest.a libgmock.a
|
||||
# # )
|
||||
# add_custom_target(
|
||||
# libgtest.a
|
||||
# DEPENDS ${EXTERNAL_LIBS_OUTPUT_PATH}/libgtest.a
|
||||
# )
|
||||
# add_custom_target(
|
||||
# libgmock.a
|
||||
# DEPENDS ${EXTERNAL_LIBS_OUTPUT_PATH}/libgmock.a
|
||||
# )
|
||||
add_definitions(-DTEST_SOURCE_PATH="${TEST_SOURCE_PATH}")
|
||||
|
||||
add_subdirectory(all)
|
||||
add_subdirectory(application)
|
||||
|
|
|
@ -47,5 +47,6 @@ using ::testing::Unused;
|
|||
using ::testing::WithArgs;
|
||||
using ::testing::internal::BuiltInDefaultValue;
|
||||
// using ::testing::Mock::VerifyAndClearExpectations;
|
||||
using ::testing::Between;
|
||||
using ::testing::Mock;
|
||||
#endif
|
|
@ -1,6 +1,8 @@
|
|||
# include(${CMAKE_SOURCE_DIR}/build/independent_source.cmake)
|
||||
include(${CMAKE_SOURCE_DIR_IPCSDK}/build/global_config.cmake)
|
||||
include(${APPLICATION_SOURCE_PATH}/HuntingCamera/build/hunting_camera.cmake)
|
||||
include(${UTILS_SOURCE_PATH}/WebServer/build/webserver.cmake)
|
||||
include(${UTILS_SOURCE_PATH}/MediaBase/build/mediabase.cmake)
|
||||
set(EXECUTABLE_OUTPUT_PATH ${TEST_OUTPUT_PATH}/bin)
|
||||
|
||||
include_directories(
|
||||
|
@ -33,6 +35,7 @@ link_directories(
|
|||
${EXTERNAL_LIBS_OUTPUT_PATH}
|
||||
${EXTERNAL_LIBS_OUTPUT_PATH}/libconfig/lib
|
||||
${TEST_TOOLS_OUTPUT_PATH}
|
||||
${EXTERNAL_LIBS_OUTPUT_PATH}/ffmpeg/lib
|
||||
)
|
||||
|
||||
aux_source_directory(. SRC_FILES_MAIN)
|
||||
|
@ -43,15 +46,15 @@ endif()
|
|||
|
||||
set(TARGET_NAME HuntingCameraTest)
|
||||
add_executable(${TARGET_NAME} ${SRC_FILES_MAIN} ${SRC_FILES})
|
||||
target_link_libraries(${TARGET_NAME} McuProtocolTestTool UartDeviceTestTool)
|
||||
target_link_libraries(${TARGET_NAME} HuntingMainLib MissionManagerTestTool McuManagerTestTool McuAskBaseTestTool
|
||||
AppManagerTestTool HalTestTool DeviceManagerTestTool TestManager UartDevice Hal LinuxApiMock gtest gmock pthread)
|
||||
target_link_libraries(${TARGET_NAME} UpgradeTool Servers)
|
||||
target_link_libraries(${TARGET_NAME}# -Wl,--start-group
|
||||
HuntingMainLib MissionManagerTestTool McuManagerTestTool McuAskBaseTestTool
|
||||
AppManagerTestTool HalTestTool DeviceManagerTestTool TestManager
|
||||
# -Wl,--end-group
|
||||
gtest gmock pthread)
|
||||
if(${TEST_COVERAGE} MATCHES "true")
|
||||
target_link_libraries(${TARGET_NAME} gcov)
|
||||
endif()
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
HuntingCameraTest_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -66,12 +69,6 @@ add_custom_target(
|
|||
-p ${PLATFORM_PATH}/cmake-shell
|
||||
WORKING_DIRECTORY ${TEST_SOURCE_PATH}/application/HuntingCamera
|
||||
)
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
COMMAND make HuntingCameraTest_code_check
|
||||
WORKING_DIRECTORY ${PLATFORM_PATH}/cmake-shell/
|
||||
)
|
||||
|
||||
file(GLOB_RECURSE HEADER_FILES *.h)
|
||||
add_custom_target(
|
||||
|
@ -81,6 +78,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${SRC_FILES_MAIN} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${TEST_SOURCE_PATH}/application/HuntingCamera
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -40,10 +40,10 @@ void HuntingCameraTest::TearDownTestCase()
|
|||
}
|
||||
void HuntingCameraTest::SetUp()
|
||||
{
|
||||
CreateAllCamerasMcok();
|
||||
std::shared_ptr<MainThread> mainThread = std::make_shared<MainThreadTest>();
|
||||
MainThread::GetInstance(&mainThread);
|
||||
HalTestTool::Init();
|
||||
CreateAllCamerasMcok();
|
||||
CreateAllKeysMcok();
|
||||
CreateAllLedsMcok();
|
||||
AppManagerTestTool::Init();
|
||||
|
@ -68,13 +68,13 @@ void HuntingCameraTest::TearDown()
|
|||
std::shared_ptr<LinuxApiMock> test = std::make_shared<LinuxApiMock>();
|
||||
LinuxApiMock::GetInstance(&test);
|
||||
McuManagerTestTool::UnInit();
|
||||
MainThread::GetInstance()->UnInit();
|
||||
std::shared_ptr<MainThread> mainThread = std::make_shared<MainThread>();
|
||||
MainThread::GetInstance(&mainThread);
|
||||
DeviceManagerTestTool::UnInit();
|
||||
DestroyAllCamerasMock();
|
||||
DestroyAllKeysMock();
|
||||
DestroyAllLedsMock();
|
||||
MainThread::GetInstance()->UnInit();
|
||||
std::shared_ptr<MainThread> mainThread = std::make_shared<MainThread>();
|
||||
MainThread::GetInstance(&mainThread);
|
||||
}
|
||||
void HuntingCameraTest::CreateAllCamerasMcok(void)
|
||||
{
|
||||
|
@ -83,6 +83,7 @@ void HuntingCameraTest::CreateAllCamerasMcok(void)
|
|||
}
|
||||
void HuntingCameraTest::DestroyAllCamerasMock(void)
|
||||
{
|
||||
HalTestTool::DestroyCameraHalTest(mAllCamerasMock);
|
||||
mAllCamerasMock.clear();
|
||||
}
|
||||
void HuntingCameraTest::CreateAllKeysMcok(void)
|
||||
|
|
|
@ -44,7 +44,6 @@ if(${TEST_COVERAGE} MATCHES "true")
|
|||
target_link_libraries(${TARGET_NAME} gcov)
|
||||
endif()
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
VersionReleaseTool_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -74,6 +73,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${SRC_FILES_MAIN} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${TEST_SOURCE_PATH}/application/VersionRelease
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -13,6 +13,7 @@ link_directories(
|
|||
${LIBS_OUTPUT_PATH}
|
||||
${EXTERNAL_LIBS_OUTPUT_PATH}
|
||||
${TEST_TOOLS_OUTPUT_PATH}
|
||||
${EXTERNAL_LIBS_OUTPUT_PATH}/ffmpeg/lib
|
||||
)
|
||||
|
||||
aux_source_directory(. SRC_FILES)
|
||||
|
|
|
@ -76,6 +76,7 @@ public:
|
|||
static std::shared_ptr<VKeyHal> MakeKeyHalTest(const std::string &keyName);
|
||||
static std::shared_ptr<VLedHal> MakeLedHalTest(const std::string &ledName);
|
||||
static std::shared_ptr<VCameraHal> MakeCameraHalTest(const CameraType &type);
|
||||
static void DestroyCameraHalTest(std::map<CameraType, std::shared_ptr<VCameraHal>> &allCamerasMock);
|
||||
|
||||
private:
|
||||
std::shared_ptr<IHalCpp> mHalMock;
|
||||
|
|
|
@ -26,6 +26,7 @@ link_directories(
|
|||
${LIBS_OUTPUT_PATH}
|
||||
${EXTERNAL_LIBS_OUTPUT_PATH}
|
||||
${TEST_TOOLS_OUTPUT_PATH}
|
||||
${EXTERNAL_LIBS_OUTPUT_PATH}/ffmpeg/lib
|
||||
)
|
||||
|
||||
aux_source_directory(. SRC_FILES_MAIN)
|
||||
|
@ -42,7 +43,6 @@ if(${TEST_COVERAGE} MATCHES "true")
|
|||
target_link_libraries(${TARGET_NAME} gcov)
|
||||
endif()
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
AppManagerTest_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -56,12 +56,6 @@ add_custom_target(
|
|||
-p ${PLATFORM_PATH}/cmake-shell
|
||||
WORKING_DIRECTORY ${TEST_SOURCE_PATH}/middleware/AppManager
|
||||
)
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
COMMAND make AppManagerTest_code_check
|
||||
WORKING_DIRECTORY ${PLATFORM_PATH}/cmake-shell/
|
||||
)
|
||||
|
||||
file(GLOB_RECURSE HEADER_FILES *.h)
|
||||
add_custom_target(
|
||||
|
@ -71,6 +65,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${SRC_FILES_MAIN} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${TEST_SOURCE_PATH}/middleware/AppManager
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -24,6 +24,7 @@ link_directories(
|
|||
${LIBS_OUTPUT_PATH}
|
||||
${EXTERNAL_LIBS_OUTPUT_PATH}
|
||||
${TEST_TOOLS_OUTPUT_PATH}
|
||||
${EXTERNAL_LIBS_OUTPUT_PATH}/ffmpeg/lib
|
||||
)
|
||||
|
||||
aux_source_directory(. SRC_FILES_MAIN)
|
||||
|
@ -40,7 +41,6 @@ if(${TEST_COVERAGE} MATCHES "true")
|
|||
target_link_libraries(${TARGET_NAME} gcov)
|
||||
endif()
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
DeviceManagerTest_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -54,12 +54,6 @@ add_custom_target(
|
|||
-p ${PLATFORM_PATH}/cmake-shell
|
||||
WORKING_DIRECTORY ${TEST_SOURCE_PATH}/middleware/DeviceManager
|
||||
)
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
COMMAND make DeviceManagerTest_code_check
|
||||
WORKING_DIRECTORY ${PLATFORM_PATH}/cmake-shell/
|
||||
)
|
||||
|
||||
file(GLOB_RECURSE HEADER_FILES *.h)
|
||||
add_custom_target(
|
||||
|
@ -69,6 +63,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${SRC_FILES_MAIN} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${TEST_SOURCE_PATH}/middleware/DeviceManager
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -39,7 +39,6 @@ if(${TEST_COVERAGE} MATCHES "true")
|
|||
target_link_libraries(${TARGET_NAME} gcov)
|
||||
endif()
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
HuntingUpgradeTest_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -53,12 +52,6 @@ add_custom_target(
|
|||
-p ${PLATFORM_PATH}/cmake-shell
|
||||
WORKING_DIRECTORY ${TEST_SOURCE_PATH}/middleware/HuntingUpgrade
|
||||
)
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
COMMAND make HuntingUpgradeTest_code_check
|
||||
WORKING_DIRECTORY ${PLATFORM_PATH}/cmake-shell/
|
||||
)
|
||||
|
||||
file(GLOB_RECURSE HEADER_FILES *.h)
|
||||
add_custom_target(
|
||||
|
@ -68,6 +61,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${SRC_FILES_MAIN} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${TEST_SOURCE_PATH}/middleware/HuntingUpgrade
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -40,7 +40,6 @@ target_link_libraries(${TARGET_NAME} IpcConfig LinuxApiMock)
|
|||
if(${TEST_COVERAGE} MATCHES "true")
|
||||
target_link_libraries(${TARGET_NAME} gcov)
|
||||
endif()
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
IpcConfigTest_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -54,12 +53,6 @@ add_custom_target(
|
|||
-p ${PLATFORM_PATH}/cmake-shell
|
||||
WORKING_DIRECTORY ${TEST_SOURCE_PATH}/middleware/IpcConfig
|
||||
)
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
COMMAND make IpcConfigTest_code_check
|
||||
WORKING_DIRECTORY ${PLATFORM_PATH}/cmake-shell/
|
||||
)
|
||||
|
||||
file(GLOB_RECURSE HEADER_FILES *.h)
|
||||
add_custom_target(
|
||||
|
@ -69,6 +62,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${SRC_FILES_MAIN} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${TEST_SOURCE_PATH}/middleware/IpcConfig
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -48,7 +48,6 @@ if(${TEST_COVERAGE} MATCHES "true")
|
|||
target_link_libraries(${TARGET_NAME} gcov)
|
||||
endif()
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
McuManagerTest_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -62,12 +61,6 @@ add_custom_target(
|
|||
-p ${PLATFORM_PATH}/cmake-shell
|
||||
WORKING_DIRECTORY ${TEST_SOURCE_PATH}/middleware/McuManager
|
||||
)
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
COMMAND make McuManagerTest_code_check
|
||||
WORKING_DIRECTORY ${PLATFORM_PATH}/cmake-shell/
|
||||
)
|
||||
|
||||
file(GLOB_RECURSE HEADER_FILES *.h)
|
||||
add_custom_target(
|
||||
|
@ -77,6 +70,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${SRC_FILES_MAIN} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${TEST_SOURCE_PATH}/middleware/McuManager
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -25,6 +25,7 @@ link_directories(
|
|||
${LIBS_OUTPUT_PATH}
|
||||
${EXTERNAL_LIBS_OUTPUT_PATH}
|
||||
${TEST_TOOLS_OUTPUT_PATH}
|
||||
${EXTERNAL_LIBS_OUTPUT_PATH}/ffmpeg/lib
|
||||
)
|
||||
|
||||
aux_source_directory(. SRC_FILES_MAIN)
|
||||
|
@ -41,7 +42,6 @@ if(${TEST_COVERAGE} MATCHES "true")
|
|||
target_link_libraries(${TARGET_NAME} gcov)
|
||||
endif()
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
MediaManagerTest_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -53,13 +53,7 @@ add_custom_target(
|
|||
# --line-filter='[{\"name\":\"${EXTERNAL_SOURCE_PATH}/gtest/googletest-release-1.11.0/googletest/include/getest/gtest.h\"}]'
|
||||
--line-filter='[{\"name\":\"${EXTERNAL_SOURCE_PATH}/gtest/googletest-release-1.11.0/googletest/include/getest/*.h\"}]'
|
||||
-p ${PLATFORM_PATH}/cmake-shell
|
||||
WORKING_DIRECTORY ${TEST_SOURCE_PATH}/middleware/AppManager
|
||||
)
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
COMMAND make MediaManagerTest_code_check
|
||||
WORKING_DIRECTORY ${PLATFORM_PATH}/cmake-shell/
|
||||
WORKING_DIRECTORY ${TEST_SOURCE_PATH}/middleware/MediaManager
|
||||
)
|
||||
|
||||
file(GLOB_RECURSE HEADER_FILES *.h)
|
||||
|
@ -68,8 +62,9 @@ add_custom_target(
|
|||
COMMAND ${CLANG_FORMAT_EXE}
|
||||
-style=file
|
||||
-i ${SRC_FILES} ${SRC_FILES_MAIN} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${TEST_SOURCE_PATH}/middleware/AppManager
|
||||
WORKING_DIRECTORY ${TEST_SOURCE_PATH}/middleware/MediaManager
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
49
test/middleware/MediaManager/src/MediaManagerTest.cpp
Normal file
49
test/middleware/MediaManager/src/MediaManagerTest.cpp
Normal file
|
@ -0,0 +1,49 @@
|
|||
/*
|
||||
* Copyright (c) 2023 Fancy Code.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
#include "MediaManagerTest.h"
|
||||
void MediaManagerTest::SetUpTestCase()
|
||||
{
|
||||
CreateLogModule();
|
||||
ILogInit(LOG_INSTANCE_TYPE_END);
|
||||
}
|
||||
void MediaManagerTest::TearDownTestCase()
|
||||
{
|
||||
ILogUnInit();
|
||||
}
|
||||
void MediaManagerTest::SetUp()
|
||||
{
|
||||
CreateAllCamerasMcok();
|
||||
HalTestTool::Init();
|
||||
MediaManagerTestTool::Init();
|
||||
CreateHalCppModule();
|
||||
CreateMediaManagerModule();
|
||||
}
|
||||
void MediaManagerTest::TearDown()
|
||||
{
|
||||
MediaManagerTestTool::UnInit();
|
||||
HalTestTool::UnInit();
|
||||
DestroyMediaManagerModule();
|
||||
DestroyHalCppModule();
|
||||
DestroyAllCamerasMock();
|
||||
}
|
||||
void MediaManagerTest::CreateAllCamerasMcok(void)
|
||||
{
|
||||
std::shared_ptr<VCameraHal> camera = HalTestTool::MakeCameraHalTest(CameraType::MAIN_CAMERA);
|
||||
mAllCamerasMock[CameraType::MAIN_CAMERA] = camera;
|
||||
}
|
||||
void MediaManagerTest::DestroyAllCamerasMock(void)
|
||||
{
|
||||
mAllCamerasMock.clear();
|
||||
}
|
46
test/middleware/MediaManager/src/MediaManagerTest.h
Normal file
46
test/middleware/MediaManager/src/MediaManagerTest.h
Normal file
|
@ -0,0 +1,46 @@
|
|||
/*
|
||||
* Copyright (c) 2023 Fancy Code.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
#ifndef MEDIA_MANAGER_TEST_H
|
||||
#define MEDIA_MANAGER_TEST_H
|
||||
#include "GtestUsing.h"
|
||||
#include "HalTestTool.h"
|
||||
#include "ILog.h"
|
||||
#include "IMediaManager.h"
|
||||
#include "MediaManagerTestTool.h"
|
||||
#include <gmock/gmock.h>
|
||||
#include <gtest/gtest.h>
|
||||
#include <thread>
|
||||
class MediaManagerTest : public testing::Test, public MediaManagerTestTool, public HalTestTool
|
||||
{
|
||||
public:
|
||||
MediaManagerTest()
|
||||
{
|
||||
}
|
||||
virtual ~MediaManagerTest()
|
||||
{
|
||||
}
|
||||
static void SetUpTestCase();
|
||||
static void TearDownTestCase();
|
||||
virtual void SetUp();
|
||||
virtual void TearDown();
|
||||
|
||||
private:
|
||||
void CreateAllCamerasMcok(void);
|
||||
void DestroyAllCamerasMock(void);
|
||||
|
||||
protected:
|
||||
std::map<CameraType, std::shared_ptr<VCameraHal>> mAllCamerasMock;
|
||||
};
|
||||
#endif
|
|
@ -16,62 +16,13 @@
|
|||
#include "HalTestTool.h"
|
||||
#include "ILog.h"
|
||||
#include "IMediaManager.h"
|
||||
#include "MediaManagerTest.h"
|
||||
#include "MediaManagerTestTool.h"
|
||||
#include <gmock/gmock.h>
|
||||
#include <gtest/gtest.h>
|
||||
#include <thread>
|
||||
namespace MediaManagerTest
|
||||
namespace MediaManager_Test
|
||||
{
|
||||
class MediaManagerTest : public testing::Test, public MediaManagerTestTool, public HalTestTool
|
||||
{
|
||||
public:
|
||||
MediaManagerTest()
|
||||
{
|
||||
}
|
||||
virtual ~MediaManagerTest()
|
||||
{
|
||||
}
|
||||
static void SetUpTestCase()
|
||||
{
|
||||
CreateLogModule();
|
||||
ILogInit(LOG_INSTANCE_TYPE_END);
|
||||
}
|
||||
static void TearDownTestCase()
|
||||
{
|
||||
ILogUnInit();
|
||||
}
|
||||
virtual void SetUp()
|
||||
{
|
||||
CreateAllCamerasMcok();
|
||||
HalTestTool::Init();
|
||||
MediaManagerTestTool::Init();
|
||||
CreateHalCppModule();
|
||||
CreateMediaManagerModule();
|
||||
}
|
||||
virtual void TearDown()
|
||||
{
|
||||
MediaManagerTestTool::UnInit();
|
||||
HalTestTool::UnInit();
|
||||
DestroyMediaManagerModule();
|
||||
DestroyHalCppModule();
|
||||
DestroyAllCamerasMock();
|
||||
}
|
||||
|
||||
private:
|
||||
void CreateAllCamerasMcok(void)
|
||||
{
|
||||
std::shared_ptr<VCameraHal> camera = HalTestTool::MakeCameraHalTest(CameraType::MAIN_CAMERA);
|
||||
mAllCamerasMock[CameraType::MAIN_CAMERA] = camera;
|
||||
}
|
||||
void DestroyAllCamerasMock(void)
|
||||
{
|
||||
mAllCamerasMock.clear();
|
||||
}
|
||||
|
||||
protected:
|
||||
// const AppParam mAppParam;
|
||||
std::map<CameraType, std::shared_ptr<VCameraHal>> mAllCamerasMock;
|
||||
};
|
||||
// ../output_files/test/bin/MediaManagerTest --gtest_filter=MediaManagerTest.INTEGRATION_MediaManager_EXAMPLE_Demo0
|
||||
TEST_F(MediaManagerTest, INTEGRATION_MediaManager_EXAMPLE_Demo0)
|
||||
{
|
||||
|
@ -81,11 +32,6 @@ TEST_F(MediaManagerTest, INTEGRATION_MediaManager_EXAMPLE_Demo0)
|
|||
IMediaManager::GetInstance()->SetMediaMonitor(monitor);
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(100));
|
||||
MockReportCameraEvent("test name", CameraType::MAIN_CAMERA);
|
||||
// MockAppClientConnect();
|
||||
// std::this_thread::sleep_for(std::chrono::milliseconds(100));
|
||||
// MockSetRecordingStatus(RecordingStatus::RECORDING_START);
|
||||
// std::this_thread::sleep_for(std::chrono::milliseconds(2000));
|
||||
// IAppManager::GetInstance()->UnInit();
|
||||
IMediaManager::GetInstance()->UnInit();
|
||||
}
|
||||
} // namespace MediaManagerTest
|
||||
} // namespace MediaManager_Test
|
|
@ -8,4 +8,5 @@ add_subdirectory(LinuxApiMock)
|
|||
add_subdirectory(McuProtocol)
|
||||
add_subdirectory(FxHttpServer)
|
||||
add_subdirectory(TestManager)
|
||||
add_subdirectory(TcpModule)
|
||||
add_subdirectory(TcpModule)
|
||||
add_subdirectory(MediaBase)
|
|
@ -27,7 +27,6 @@ target_link_libraries(${TARGET_NAME} ConfigBase gtest gmock pthread)
|
|||
if(${TEST_COVERAGE} MATCHES "true")
|
||||
target_link_libraries(${TARGET_NAME} gcov)
|
||||
endif()
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
ConfigTest_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -41,6 +40,7 @@ add_custom_target(
|
|||
-p ${PLATFORM_PATH}/cmake-shell
|
||||
WORKING_DIRECTORY ${TEST_SOURCE_PATH}/utils/Config
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -24,7 +24,6 @@ target_link_libraries(${TARGET_NAME} FxHttpServer gtest gmock pthread Log)
|
|||
if(${TEST_COVERAGE} MATCHES "true")
|
||||
target_link_libraries(${TARGET_NAME} gcov)
|
||||
endif()
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
FxHttpServerTest_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -46,6 +45,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${TEST_SOURCE_PATH}/utils/FxHttpServer
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -20,7 +20,6 @@ set(TARGET_NAME LinuxApiMock)
|
|||
add_library(${TARGET_NAME} STATIC ${SRC_FILES})
|
||||
target_link_libraries(${TARGET_NAME} LinuxApi gtest gmock Log)
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
LinuxApiMock_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -40,6 +39,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${TEST_SOURCE_PATH}/utils/LinuxApiMock
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -13,9 +13,16 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
#include "LinuxApiMock.h"
|
||||
#include "ILog.h"
|
||||
#include "LinuxTestImpl.h"
|
||||
#include "WrapApi.h"
|
||||
// #include <bits/types/struct_timeval.h>
|
||||
#include <cstddef>
|
||||
#include <memory>
|
||||
#include <stdio.h>
|
||||
#include <sys/select.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/types.h>
|
||||
#include <termios.h>
|
||||
std::shared_ptr<LinuxApiMock> &LinuxApiMock::GetInstance(std::shared_ptr<LinuxApiMock> *impl)
|
||||
{
|
||||
static auto instance = std::make_shared<LinuxApiMock>();
|
||||
|
|
|
@ -13,7 +13,17 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
#include "LinuxTestImpl.h"
|
||||
#include "GtestUsing.h"
|
||||
#include "ILog.h"
|
||||
#include "LinuxApiMock.h"
|
||||
#include "WrapApi.h"
|
||||
// #include <bits/types/struct_timeval.h>
|
||||
#include <gmock/gmock-spec-builders.h>
|
||||
#include <memory>
|
||||
#include <stdio.h>
|
||||
#include <sys/select.h>
|
||||
#include <sys/stat.h>
|
||||
#include <termios.h>
|
||||
#include <thread>
|
||||
/**
|
||||
* @brief The simulated interface has been subjected to lock serial processing to ensure that the return value can be
|
||||
|
|
|
@ -14,7 +14,10 @@
|
|||
*/
|
||||
#include "WrapApi.h"
|
||||
#include "LinuxApiMock.h"
|
||||
// #include <bits/types/struct_timeval.h>
|
||||
#include <mutex>
|
||||
#include <stdio.h>
|
||||
#include <sys/select.h>
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
|
|
@ -25,7 +25,6 @@ target_link_libraries(${TARGET_NAME} Log gtest gmock pthread)
|
|||
if(${TEST_COVERAGE} MATCHES "true")
|
||||
target_link_libraries(${TARGET_NAME} gcov)
|
||||
endif()
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
LogTest_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -39,6 +38,7 @@ add_custom_target(
|
|||
-p ${PLATFORM_PATH}/cmake-shell
|
||||
WORKING_DIRECTORY ${TEST_SOURCE_PATH}/utils/Log
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
71
test/utils/MediaBase/CMakeLists.txt
Normal file
71
test/utils/MediaBase/CMakeLists.txt
Normal file
|
@ -0,0 +1,71 @@
|
|||
# include(${CMAKE_SOURCE_DIR}/build/independent_source.cmake)
|
||||
include(${CMAKE_SOURCE_DIR_IPCSDK}/build/global_config.cmake)
|
||||
set(EXECUTABLE_OUTPUT_PATH ${TEST_OUTPUT_PATH}/bin)
|
||||
|
||||
include_directories(
|
||||
./tool/include
|
||||
${UTILS_SOURCE_PATH}/StatusCode/include
|
||||
${UTILS_SOURCE_PATH}/Log/include
|
||||
${UTILS_SOURCE_PATH}/MediaBase/include
|
||||
${TEST_SOURCE_PATH}/utils/LinuxApiMock/include
|
||||
${EXTERNAL_SOURCE_PATH}/gtest/googletest-release-1.11.0/googletest/include
|
||||
${EXTERNAL_SOURCE_PATH}/gtest/googletest-release-1.11.0/googlemock/include
|
||||
)
|
||||
|
||||
link_directories(
|
||||
${LIBS_OUTPUT_PATH}
|
||||
${EXTERNAL_LIBS_OUTPUT_PATH}
|
||||
${EXTERNAL_LIBS_OUTPUT_PATH}/ffmpeg/lib
|
||||
)
|
||||
|
||||
aux_source_directory(. SRC_FILES)
|
||||
aux_source_directory(./src SRC_FILES)
|
||||
if(${TARGET_PLATFORM} MATCHES ${DEFINE_LINUX})
|
||||
aux_source_directory(./src_mock SRC_FILES)
|
||||
endif()
|
||||
|
||||
set(TARGET_NAME MediaBaseTest)
|
||||
add_executable(${TARGET_NAME} ${SRC_FILES})
|
||||
target_link_libraries(${TARGET_NAME} MediaBase gtest gmock pthread Log)
|
||||
if(${TEST_COVERAGE} MATCHES "true")
|
||||
target_link_libraries(${TARGET_NAME} gcov)
|
||||
endif()
|
||||
if(${TARGET_PLATFORM} MATCHES ${DEFINE_LINUX})
|
||||
target_link_libraries(${TARGET_NAME} LinuxApiMock)
|
||||
endif()
|
||||
add_custom_target(
|
||||
MediaBaseTest_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
-checks='${CLANG_TIDY_CHECKS}'
|
||||
--header-filter=.*
|
||||
--system-headers=false
|
||||
${SRC_FILES}
|
||||
${CLANG_TIDY_CONFIG}
|
||||
# --line-filter='[{\"name\":\"${EXTERNAL_SOURCE_PATH}/gtest/googletest-release-1.11.0/googletest/include/getest/gtest.h\"}]'
|
||||
--line-filter='[{\"name\":\"${EXTERNAL_SOURCE_PATH}/gtest/googletest-release-1.11.0/googletest/include/getest/*.h\"}]'
|
||||
-p ${PLATFORM_PATH}/cmake-shell
|
||||
WORKING_DIRECTORY ${TEST_SOURCE_PATH}/utils/MediaBase
|
||||
)
|
||||
file(GLOB_RECURSE HEADER_FILES *.h)
|
||||
add_custom_target(
|
||||
MediaBaseTest_code_format
|
||||
COMMAND ${CLANG_FORMAT_EXE}
|
||||
-style=file
|
||||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${TEST_SOURCE_PATH}/utils/MediaBase
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
COMMAND make MediaBaseTest_code_check
|
||||
COMMAND make MediaBaseTest_code_format
|
||||
WORKING_DIRECTORY ${PLATFORM_PATH}/cmake-shell/
|
||||
)
|
||||
endif()
|
||||
|
||||
define_file_name(${TARGET_NAME})
|
||||
|
||||
# if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/tool/CMakeLists.txt")
|
||||
# add_subdirectory(tool)
|
||||
# endif()
|
23
test/utils/MediaBase/mainTest.cpp
Normal file
23
test/utils/MediaBase/mainTest.cpp
Normal file
|
@ -0,0 +1,23 @@
|
|||
/*
|
||||
* Copyright (c) 2023 Fancy Code.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
#include <gmock/gmock.h>
|
||||
#include <gtest/gtest.h>
|
||||
#include <thread>
|
||||
#include <unistd.h>
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
testing::InitGoogleTest(&argc, argv);
|
||||
return RUN_ALL_TESTS();
|
||||
}
|
32
test/utils/MediaBase/src/MediaBase_Test.cpp
Normal file
32
test/utils/MediaBase/src/MediaBase_Test.cpp
Normal file
|
@ -0,0 +1,32 @@
|
|||
/*
|
||||
* Copyright (c) 2023 Fancy Code.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
#include "ILog.h"
|
||||
#include "MediaBase.h"
|
||||
#include <gmock/gmock.h>
|
||||
#include <gtest/gtest.h>
|
||||
#include <thread>
|
||||
namespace MediaBaseTest
|
||||
{
|
||||
// ../output_files/test/bin/MediaBaseTest --gtest_filter=MediaBaseTest.UNIT_MediaBase_EXAMPLE_Demo
|
||||
TEST(MediaBaseTest, UNIT_MediaBase_EXAMPLE_Demo)
|
||||
{
|
||||
CreateLogModule();
|
||||
ILogInit(LOG_INSTANCE_TYPE_END);
|
||||
void *readH264 = ICreateMediaBase(MEDIA_HANDLE_TYPE_READ_H264);
|
||||
IStartReadFile(readH264, TEST_SOURCE_PATH "/support_test/video.h264");
|
||||
IMediaBaseFree(readH264);
|
||||
ILogUnInit();
|
||||
}
|
||||
} // namespace MediaBaseTest
|
|
@ -28,7 +28,6 @@ target_link_libraries(${TARGET_NAME} SharedData gtest gmock pthread Log)
|
|||
if(${TEST_COVERAGE} MATCHES "true")
|
||||
target_link_libraries(${TARGET_NAME} gcov)
|
||||
endif()
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
SharedDataTest_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -50,6 +49,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${TEST_SOURCE_PATH}/utils/SharedData
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -32,7 +32,6 @@ endif()
|
|||
if(${TARGET_PLATFORM} MATCHES ${DEFINE_LINUX})
|
||||
target_link_libraries(${TARGET_NAME} LinuxApiMock)
|
||||
endif()
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
TcpModuleTest_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -54,6 +53,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${TEST_SOURCE_PATH}/utils/TcpModule
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -21,7 +21,6 @@ set(TARGET_NAME TestManager)
|
|||
add_library(${TARGET_NAME} STATIC ${SRC_FILES})
|
||||
target_link_libraries(${TARGET_NAME} LinuxApi gtest gmock Log)
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
TestManager_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -41,6 +40,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${TEST_SOURCE_PATH}/utils/TestManager
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -15,6 +15,9 @@
|
|||
#include "TestManager.h"
|
||||
#include "ILog.h"
|
||||
#include "MainThread.h"
|
||||
#include <chrono>
|
||||
#include <mutex>
|
||||
#include <thread>
|
||||
constexpr int TIMER_SLEEP_MS = 100;
|
||||
void TestManager::Init(void)
|
||||
{
|
||||
|
|
|
@ -34,7 +34,6 @@ endif()
|
|||
if(${TARGET_PLATFORM} MATCHES ${DEFINE_LINUX})
|
||||
target_link_libraries(${TARGET_NAME} LinuxApiMock)
|
||||
endif()
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
UartDeviceTest_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -56,6 +55,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${TEST_SOURCE_PATH}/utils/UartDevice
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -24,7 +24,6 @@ target_link_libraries(${TARGET_NAME} WebServer gtest gmock pthread Log)
|
|||
if(${TEST_COVERAGE} MATCHES "true")
|
||||
target_link_libraries(${TARGET_NAME} gcov)
|
||||
endif()
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
WebServerTest_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -46,6 +45,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${TEST_SOURCE_PATH}/utils/WebServer
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -20,7 +20,6 @@ set(TARGET_NAME ConfigBase)
|
|||
add_library(${TARGET_NAME} STATIC ${SRC_FILES})
|
||||
target_link_libraries(${TARGET_NAME} StatusCode Log libconfig.a)
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
Config_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -46,6 +45,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${UTILS_SOURCE_PATH}/Config
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -21,7 +21,6 @@ set(TARGET_NAME ConfigBase)
|
|||
add_library(${TARGET_NAME} STATIC ${SRC_FILES})
|
||||
target_link_libraries(${TARGET_NAME} StatusCode Log config)
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
ConfigBase_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -33,12 +32,6 @@ add_custom_target(
|
|||
-p ${PLATFORM_PATH}/cmake-shell
|
||||
WORKING_DIRECTORY ${UTILS_SOURCE_PATH}/ConfigBase
|
||||
)
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
COMMAND make ConfigBase_code_check
|
||||
WORKING_DIRECTORY ${PLATFORM_PATH}/cmake-shell/
|
||||
)
|
||||
file(GLOB_RECURSE HEADER_FILES *.h)
|
||||
add_custom_target(
|
||||
ConfigBase_code_format
|
||||
|
@ -47,6 +40,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${UTILS_SOURCE_PATH}/ConfigBase
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -23,9 +23,8 @@ aux_source_directory(./src SRC_FILES)
|
|||
|
||||
set(TARGET_NAME FxHttpServer)
|
||||
add_library(${TARGET_NAME} STATIC ${SRC_FILES})
|
||||
target_link_libraries(${TARGET_NAME} StatusCode Log -Wl,--start-group httpsrv -Wl,--end-group)
|
||||
target_link_libraries(${TARGET_NAME} StatusCode Log httpsrv)
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
FxHttpServer_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -45,6 +44,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${UTILS_SOURCE_PATH}/FxHttpServer
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -22,7 +22,6 @@ set(TARGET_NAME KeyControl)
|
|||
add_library(${TARGET_NAME} STATIC ${SRC_FILES})
|
||||
target_link_libraries(${TARGET_NAME} StatusCode Log)
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
KeyControl_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -42,6 +41,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${UTILS_SOURCE_PATH}/KeyControl
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -22,7 +22,6 @@ set(TARGET_NAME LedControl)
|
|||
add_library(${TARGET_NAME} STATIC ${SRC_FILES})
|
||||
target_link_libraries(${TARGET_NAME} StatusCode Log)
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
LedControl_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -42,6 +41,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${UTILS_SOURCE_PATH}/LedControl
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -19,7 +19,6 @@ set(TARGET_NAME LinuxApi)
|
|||
add_library(${TARGET_NAME} STATIC ${SRC_FILES})
|
||||
target_link_libraries(${TARGET_NAME} Log)
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
LinuxApi_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -39,6 +38,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${UTILS_SOURCE_PATH}/LinuxApi
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -27,7 +27,6 @@ add_library(${ABSTRACT_TARGET} STATIC ${ABSTRACT_SRC_FILES})
|
|||
add_library(${IMPL_TARGET} STATIC ${IMPL_SRC_FILES} ${EASYLOGGING_SRC_FILES})
|
||||
target_link_libraries(${IMPL_TARGET} ${ABSTRACT_TARGET})
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
Log_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -40,6 +39,7 @@ add_custom_target(
|
|||
-p ${PLATFORM_PATH}/cmake-shell
|
||||
WORKING_DIRECTORY ${UTILS_SOURCE_PATH}/Log
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${IMPL_TARGET}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -22,7 +22,6 @@ set(TARGET_NAME McuProtocol)
|
|||
add_library(${TARGET_NAME} STATIC ${SRC_FILES})
|
||||
target_link_libraries(${TARGET_NAME} ModBusCRC16 StatusCode Log)
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
McuProtocol_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -42,6 +41,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${UTILS_SOURCE_PATH}/McuProtocol
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -20,7 +20,6 @@ set(TARGET_NAME MediaAdapter)
|
|||
add_library(${TARGET_NAME} STATIC ${SRC_FILES})
|
||||
target_link_libraries(${TARGET_NAME} StatusCode Log)
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
MediaAdapter_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -40,6 +39,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${UTILS_SOURCE_PATH}/MediaAdapter
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -9,6 +9,7 @@ include_directories(
|
|||
${UTILS_SOURCE_PATH}/StatusCode/include
|
||||
${UTILS_SOURCE_PATH}/ModBusCRC16/include
|
||||
${UTILS_SOURCE_PATH}/Log/include
|
||||
${EXTERNAL_LIBS_OUTPUT_PATH}/ffmpeg/include
|
||||
)
|
||||
# link_directories(
|
||||
# ${EXTERNAL_SOURCE_PATH}/libconfig/libconfig-1.7.3/lib/.libs
|
||||
|
@ -18,9 +19,13 @@ aux_source_directory(./src SRC_FILES)
|
|||
|
||||
set(TARGET_NAME MediaBase)
|
||||
add_library(${TARGET_NAME} STATIC ${SRC_FILES})
|
||||
target_link_libraries(${TARGET_NAME} StatusCode Log)
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
if(${TARGET_PLATFORM} MATCHES ${DEFINE_LINUX})
|
||||
target_link_libraries(${TARGET_NAME} avformat avcodec avutil swresample avdevice avfilter swscale postproc z StatusCode Log)
|
||||
else()
|
||||
target_link_libraries(${TARGET_NAME} avformat avcodec avutil swresample avdevice avfilter swscale postproc StatusCode Log)
|
||||
endif()
|
||||
|
||||
add_custom_target(
|
||||
MediaBase_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -40,6 +45,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${UTILS_SOURCE_PATH}/MediaBase
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
2
utils/MediaBase/build/mediabase.cmake
Normal file
2
utils/MediaBase/build/mediabase.cmake
Normal file
|
@ -0,0 +1,2 @@
|
|||
|
||||
set(FFMPEG_EXTERNAL_LIBS avformat avcodec avutil swresample avdevice avfilter swscale postproc z)
|
|
@ -21,9 +21,18 @@ extern "C" {
|
|||
enum MediaHandleType
|
||||
{
|
||||
MEDIA_HANDLE_TYPE_READ_H264 = 0,
|
||||
MEDIA_HANDLE_TYPE_READ_G711A,
|
||||
MEDIA_HANDLE_TYPE_END
|
||||
};
|
||||
typedef void (*ReadVideoFileCallback)(const void *, const unsigned int, void *);
|
||||
typedef void (*ReadAudioFileCallback)(const void *, const unsigned int, void *);
|
||||
void *ICreateMediaBase(const MediaHandleType type);
|
||||
// StatusCode Init(void *object);
|
||||
// StatusCode UnInit(void *object);
|
||||
StatusCode ISetReadVideoCallback(void *object, ReadVideoFileCallback callback, void *context);
|
||||
StatusCode ISetReadAudioCallback(void *object, ReadVideoFileCallback callback, void *context);
|
||||
StatusCode IStartReadFile(void *object, const char *path);
|
||||
StatusCode IStopReadFile(void *object);
|
||||
void IMediaBaseFree(void *object);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
@ -14,19 +14,45 @@
|
|||
*/
|
||||
#include "IMediaBase.h"
|
||||
#include "ILog.h"
|
||||
#include "MediaBase.h"
|
||||
#include "MediaBaseMakePtr.h"
|
||||
#include "StatusCode.h"
|
||||
#include <cstdlib>
|
||||
#include <memory>
|
||||
#include <string.h>
|
||||
#include <string>
|
||||
StatusCode IMediaBase::StartReadFile(const std::string &path)
|
||||
{
|
||||
LogWarning("STATUS_CODE_VIRTUAL_FUNCTION\n");
|
||||
return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION);
|
||||
}
|
||||
StatusCode IMediaBase::StopReadFile(void)
|
||||
{
|
||||
LogWarning("STATUS_CODE_VIRTUAL_FUNCTION\n");
|
||||
return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION);
|
||||
}
|
||||
StatusCode IMediaBase::SetReadVideoCallback(ReadVideoFileCallback callback, void *context)
|
||||
{
|
||||
LogWarning("STATUS_CODE_VIRTUAL_FUNCTION\n");
|
||||
return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION);
|
||||
}
|
||||
StatusCode IMediaBase::SetReadAudioCallback(ReadVideoFileCallback callback, void *context)
|
||||
{
|
||||
LogWarning("STATUS_CODE_VIRTUAL_FUNCTION\n");
|
||||
return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION);
|
||||
}
|
||||
static const char *MEDIA_BASE_NAME = "media_adapter";
|
||||
const char inline *GetMediaBaseModuleName(void)
|
||||
const char *GetMediaBaseModuleName(void)
|
||||
{
|
||||
return MEDIA_BASE_NAME;
|
||||
}
|
||||
std::shared_ptr<IMediaBase> *NewIMediaBase(const MediaHandleType &type)
|
||||
{
|
||||
LogInfo("Create the midia base object.\n");
|
||||
LogInfo("Create the midia base object, type = %d.\n", type);
|
||||
MeidaAdapter *impl = (MeidaAdapter *)malloc(sizeof(MeidaAdapter));
|
||||
MeidaAdapter tmp;
|
||||
memcpy((void *)impl, (void *)&tmp, sizeof(MeidaAdapter));
|
||||
impl->mHeader.mCheckName = MEDIA_BASE_NAME;
|
||||
impl->mIMediaBase = std::make_shared<IMediaBase>();
|
||||
impl->mIMediaBase = MediaBaseMakePtr::GetInstance()->CreateMediaBase(type);
|
||||
return (std::shared_ptr<IMediaBase> *)(((char *)impl) + sizeof(MediaBaseHeader));
|
||||
}
|
|
@ -21,6 +21,10 @@ class IMediaBase
|
|||
public:
|
||||
IMediaBase() = default;
|
||||
virtual ~IMediaBase() = default;
|
||||
virtual StatusCode StartReadFile(const std::string &path);
|
||||
virtual StatusCode StopReadFile(void);
|
||||
virtual StatusCode SetReadVideoCallback(ReadVideoFileCallback callback, void *context);
|
||||
virtual StatusCode SetReadAudioCallback(ReadVideoFileCallback callback, void *context);
|
||||
};
|
||||
typedef struct media_base_header
|
||||
{
|
||||
|
|
|
@ -15,6 +15,10 @@
|
|||
#include "MediaBase.h"
|
||||
#include "ILog.h"
|
||||
#include "IMediaBase.h"
|
||||
#include "StatusCode.h"
|
||||
#include <cstdio>
|
||||
#include <cstdlib>
|
||||
#include <memory>
|
||||
void *ICreateMediaBase(const MediaHandleType type)
|
||||
{
|
||||
return NewIMediaBase(type);
|
||||
|
@ -31,6 +35,34 @@ static bool ObjectCheck(void *object)
|
|||
}
|
||||
return true;
|
||||
}
|
||||
StatusCode ISetReadVideoCallback(void *object, ReadVideoFileCallback callback, void *context)
|
||||
{
|
||||
if (ObjectCheck(object) == true) {
|
||||
return (*(std::shared_ptr<IMediaBase> *)object)->SetReadVideoCallback(callback, context);
|
||||
}
|
||||
return CreateStatusCode(STATUS_CODE_OK);
|
||||
}
|
||||
StatusCode ISetReadAudioCallback(void *object, ReadVideoFileCallback callback, void *context)
|
||||
{
|
||||
if (ObjectCheck(object) == true) {
|
||||
return (*(std::shared_ptr<IMediaBase> *)object)->SetReadAudioCallback(callback, context);
|
||||
}
|
||||
return CreateStatusCode(STATUS_CODE_OK);
|
||||
}
|
||||
StatusCode IStartReadFile(void *object, const char *path)
|
||||
{
|
||||
if (ObjectCheck(object) == true) {
|
||||
return (*(std::shared_ptr<IMediaBase> *)object)->StartReadFile(path);
|
||||
}
|
||||
return CreateStatusCode(STATUS_CODE_OK);
|
||||
}
|
||||
StatusCode IStopReadFile(void *object)
|
||||
{
|
||||
if (ObjectCheck(object) == true) {
|
||||
return (*(std::shared_ptr<IMediaBase> *)object)->StopReadFile();
|
||||
}
|
||||
return CreateStatusCode(STATUS_CODE_OK);
|
||||
}
|
||||
void IMediaBaseFree(void *object)
|
||||
{
|
||||
if (ObjectCheck(object) == true) {
|
||||
|
|
|
@ -12,4 +12,162 @@
|
|||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
#include "MediaBaseImpl.h"
|
||||
#include "MediaBaseImpl.h"
|
||||
#include "ILog.h"
|
||||
#include "MediaBase.h"
|
||||
#include "StatusCode.h"
|
||||
#include <cstdlib>
|
||||
#include <string>
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
// #include <libavcodec/avcodec.h>
|
||||
#include <libavcodec/packet.h>
|
||||
#include <libavformat/avformat.h>
|
||||
#include <libavutil/avutil.h>
|
||||
// #include <libswscale/swscale.h>
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
MediaBaseImpl::MediaBaseImpl(const MediaHandleType &type)
|
||||
: mType(type), mReadVideoCallback(nullptr), mReadVideoCallbackContext(nullptr), mTaskRuning(false)
|
||||
{
|
||||
MediaTypeConvert();
|
||||
}
|
||||
StatusCode MediaBaseImpl::StartReadFile(const std::string &path)
|
||||
{
|
||||
InitFfmpeg();
|
||||
int result = 0;
|
||||
const AVInputFormat *iformat = av_find_input_format(InputFormat(mType));
|
||||
AVFormatContext *pFormatCtx = nullptr;
|
||||
if ((result = avformat_open_input(&pFormatCtx, path.c_str(), iformat, nullptr)) < 0) {
|
||||
char error_str[AV_ERROR_MAX_STRING_SIZE];
|
||||
av_make_error_string(error_str, AV_ERROR_MAX_STRING_SIZE, result);
|
||||
LogError("Couldn't open file: %s, result=%s\n", path.c_str(), error_str);
|
||||
return CreateStatusCode(STATUS_CODE_NOT_OK);
|
||||
}
|
||||
if (avformat_find_stream_info(pFormatCtx, nullptr) < 0) {
|
||||
LogError("Couldn't find stream information.\n");
|
||||
avformat_close_input(&pFormatCtx);
|
||||
return CreateStatusCode(STATUS_CODE_NOT_OK);
|
||||
}
|
||||
int mediaStreamIndex = -1;
|
||||
for (unsigned int i = 0; i < pFormatCtx->nb_streams; i++) {
|
||||
if (pFormatCtx->streams[i]->codecpar->codec_type == mFFmpegMediaType) {
|
||||
mediaStreamIndex = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (mediaStreamIndex == -1) {
|
||||
LogError("Didn't find a stream.\n");
|
||||
avformat_close_input(&pFormatCtx);
|
||||
return CreateStatusCode(STATUS_CODE_NOT_OK);
|
||||
}
|
||||
auto taskTimerThread = [=](std::shared_ptr<MediaBaseImpl> media) {
|
||||
LogInfo("ReadFileThread start.\n");
|
||||
media->ReadFileThread(pFormatCtx, mediaStreamIndex);
|
||||
};
|
||||
std::shared_ptr<MediaBaseImpl> media = shared_from_this();
|
||||
mTaskTimerThread = std::thread(taskTimerThread, media);
|
||||
return CreateStatusCode(STATUS_CODE_OK);
|
||||
}
|
||||
StatusCode MediaBaseImpl::StopReadFile(void)
|
||||
{
|
||||
mTaskRuning = false;
|
||||
if (mTaskTimerThread.joinable()) {
|
||||
mTaskTimerThread.join();
|
||||
}
|
||||
return CreateStatusCode(STATUS_CODE_OK);
|
||||
}
|
||||
StatusCode MediaBaseImpl::SetReadVideoCallback(ReadVideoFileCallback callback, void *context)
|
||||
{
|
||||
mReadVideoCallback = callback;
|
||||
mReadVideoCallbackContext = context;
|
||||
return CreateStatusCode(STATUS_CODE_OK);
|
||||
}
|
||||
StatusCode MediaBaseImpl::SetReadAudioCallback(ReadVideoFileCallback callback, void *context)
|
||||
{
|
||||
mReadAudioCallback = callback;
|
||||
mReadAudioCallbackContext = context;
|
||||
return CreateStatusCode(STATUS_CODE_OK);
|
||||
}
|
||||
void MediaBaseImpl::InitFfmpeg(void)
|
||||
{
|
||||
}
|
||||
void MediaBaseImpl::UnInitFfmpeg(void)
|
||||
{
|
||||
}
|
||||
void MediaBaseImpl::ReadFileThread(AVFormatContext *pFormatCtx, int mediaStreamIndex)
|
||||
{
|
||||
mTaskRuning = true;
|
||||
if (AVMEDIA_TYPE_VIDEO == mFFmpegMediaType && nullptr == mReadVideoCallback) {
|
||||
LogWarning("ReadVideoCallback is null.\n");
|
||||
}
|
||||
if (AVMEDIA_TYPE_AUDIO == mFFmpegMediaType && nullptr == mReadVideoCallback) {
|
||||
LogWarning("ReadVideoCallback is null.\n");
|
||||
}
|
||||
AVPacket packet;
|
||||
unsigned int playTimeMs = 0;
|
||||
// av_new_packet(&packet, AV_INPUT_BUFFER_MIN_SIZE);
|
||||
while (av_read_frame(pFormatCtx, &packet) >= 0) {
|
||||
if (nullptr == mReadVideoCallback) {
|
||||
av_packet_unref(&packet);
|
||||
continue;
|
||||
}
|
||||
if (false == mTaskRuning) {
|
||||
LogInfo("Stop read file thread.\n");
|
||||
break;
|
||||
}
|
||||
// Checks whether the packet belongs to a video stream.
|
||||
if (packet.stream_index == mediaStreamIndex) {
|
||||
playTimeMs = (packet.duration * pFormatCtx->streams[mediaStreamIndex]->time_base.num * 1000) /
|
||||
pFormatCtx->streams[mediaStreamIndex]->time_base.den;
|
||||
// LogInfo("Frame data address: %p, length: %zu\n", packet.data, packet.size);
|
||||
LogInfo("Play time ms:%d\n", playTimeMs);
|
||||
ReadFrame(&packet);
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(playTimeMs));
|
||||
}
|
||||
// Release the data packet.
|
||||
av_packet_unref(&packet);
|
||||
}
|
||||
av_packet_unref(&packet);
|
||||
|
||||
avformat_close_input(&pFormatCtx);
|
||||
}
|
||||
void inline MediaBaseImpl::ReadFrame(AVPacket *packet)
|
||||
{
|
||||
if (AVMEDIA_TYPE_VIDEO == mFFmpegMediaType) {
|
||||
mReadVideoCallback(packet->data, packet->size, mReadVideoCallbackContext);
|
||||
}
|
||||
else if (AVMEDIA_TYPE_AUDIO == mFFmpegMediaType) {
|
||||
mReadVideoCallback(packet->data, packet->size, mReadVideoCallbackContext);
|
||||
}
|
||||
}
|
||||
void MediaBaseImpl::MediaTypeConvert(void)
|
||||
{
|
||||
switch (mType) {
|
||||
case MediaHandleType::MEDIA_HANDLE_TYPE_READ_H264:
|
||||
mFFmpegMediaType = AVMEDIA_TYPE_VIDEO;
|
||||
break;
|
||||
case MediaHandleType::MEDIA_HANDLE_TYPE_READ_G711A:
|
||||
mFFmpegMediaType = AVMEDIA_TYPE_AUDIO;
|
||||
break;
|
||||
default:
|
||||
LogError("Unknown media type.\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
const char *MediaBaseImpl::InputFormat(const MediaHandleType &type)
|
||||
{
|
||||
switch (type) {
|
||||
case MEDIA_HANDLE_TYPE_READ_H264:
|
||||
LogInfo("InputFormat: h264.\n");
|
||||
return "h264";
|
||||
case MEDIA_HANDLE_TYPE_READ_G711A:
|
||||
LogInfo("InputFormat: alaw.\n");
|
||||
return "alaw";
|
||||
default:
|
||||
LogError("Unknown media type.\n");
|
||||
return nullptr;
|
||||
}
|
||||
}
|
|
@ -15,10 +15,44 @@
|
|||
#ifndef MEDIA_BASE_IMPL_H
|
||||
#define MEDIA_BASE_IMPL_H
|
||||
#include "IMediaBase.h"
|
||||
class MediaBaseImpl : public IMediaBase
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
// #include <libavcodec/avcodec.h>
|
||||
#include <libavcodec/packet.h>
|
||||
#include <libavformat/avformat.h>
|
||||
#include <libavutil/avutil.h>
|
||||
// #include <libswscale/swscale.h>
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#include <thread>
|
||||
class MediaBaseImpl : public IMediaBase, public std::enable_shared_from_this<MediaBaseImpl>
|
||||
{
|
||||
public:
|
||||
MediaBaseImpl() = default;
|
||||
MediaBaseImpl(const MediaHandleType &type);
|
||||
virtual ~MediaBaseImpl() = default;
|
||||
StatusCode StartReadFile(const std::string &path) override;
|
||||
StatusCode StopReadFile(void) override;
|
||||
StatusCode SetReadVideoCallback(ReadVideoFileCallback callback, void *context) override;
|
||||
StatusCode SetReadAudioCallback(ReadVideoFileCallback callback, void *context) override;
|
||||
|
||||
private:
|
||||
void InitFfmpeg(void);
|
||||
void UnInitFfmpeg(void);
|
||||
void ReadFileThread(AVFormatContext *pFormatCtx, int video_stream_index);
|
||||
void ReadFrame(AVPacket *packet);
|
||||
void MediaTypeConvert(void);
|
||||
const char *InputFormat(const MediaHandleType &type);
|
||||
|
||||
private:
|
||||
const MediaHandleType mType;
|
||||
enum AVMediaType mFFmpegMediaType;
|
||||
ReadVideoFileCallback mReadVideoCallback;
|
||||
void *mReadVideoCallbackContext;
|
||||
ReadVideoFileCallback mReadAudioCallback;
|
||||
void *mReadAudioCallbackContext;
|
||||
bool mTaskRuning;
|
||||
std::thread mTaskTimerThread;
|
||||
};
|
||||
#endif
|
39
utils/MediaBase/src/MediaBaseMakePtr.cpp
Normal file
39
utils/MediaBase/src/MediaBaseMakePtr.cpp
Normal file
|
@ -0,0 +1,39 @@
|
|||
/*
|
||||
* Copyright (c) 2023 Fancy Code.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
#include "MediaBaseMakePtr.h"
|
||||
#include "ILog.h"
|
||||
#include "IMediaBase.h"
|
||||
#include "MediaBaseImpl.h"
|
||||
#include <memory>
|
||||
std::shared_ptr<MediaBaseMakePtr> &MediaBaseMakePtr::GetInstance(std::shared_ptr<MediaBaseMakePtr> *impl)
|
||||
{
|
||||
static auto instance = std::make_shared<MediaBaseMakePtr>();
|
||||
if (impl) {
|
||||
if (instance.use_count() == 1) {
|
||||
LogInfo("Instance changed succeed.\n");
|
||||
instance = *impl;
|
||||
}
|
||||
else {
|
||||
LogError("Can't changing the instance becase of using by some one.\n");
|
||||
}
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
std::shared_ptr<IMediaBase> MediaBaseMakePtr::CreateMediaBase(const MediaHandleType &type)
|
||||
{
|
||||
LogInfo("MediaBaseMakePtr::CreateMediaBase, type = %d.\n", type);
|
||||
auto tmp = std::make_shared<MediaBaseImpl>(type);
|
||||
return tmp;
|
||||
}
|
28
utils/MediaBase/src/MediaBaseMakePtr.h
Normal file
28
utils/MediaBase/src/MediaBaseMakePtr.h
Normal file
|
@ -0,0 +1,28 @@
|
|||
/*
|
||||
* Copyright (c) 2023 Fancy Code.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
#ifndef MEDIA_BASE_MAKEPTR_H
|
||||
#define MEDIA_BASE_MAKEPTR_H
|
||||
#include "IMediaBase.h"
|
||||
#include "StatusCode.h"
|
||||
#include <memory>
|
||||
class MediaBaseMakePtr
|
||||
{
|
||||
public:
|
||||
MediaBaseMakePtr() = default;
|
||||
virtual ~MediaBaseMakePtr() = default;
|
||||
static std::shared_ptr<MediaBaseMakePtr> &GetInstance(std::shared_ptr<MediaBaseMakePtr> *impl = nullptr);
|
||||
virtual std::shared_ptr<IMediaBase> CreateMediaBase(const MediaHandleType &type);
|
||||
};
|
||||
#endif
|
|
@ -21,7 +21,6 @@ set(TARGET_NAME ModBusCRC16)
|
|||
add_library(${TARGET_NAME} STATIC ${SRC_FILES})
|
||||
target_link_libraries(${TARGET_NAME} Log)
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
ModBusCRC16_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -33,6 +32,7 @@ add_custom_target(
|
|||
-p ${PLATFORM_PATH}/cmake-shell
|
||||
WORKING_DIRECTORY ${UTILS_SOURCE_PATH}/ModBusCRC16
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -20,7 +20,6 @@ set(TARGET_NAME MultiProcess)
|
|||
add_library(${TARGET_NAME} STATIC ${SRC_FILES})
|
||||
target_link_libraries(${TARGET_NAME} StatusCode Log)
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
MultiProcess_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -40,6 +39,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${UTILS_SOURCE_PATH}/MultiProcess
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -108,7 +108,6 @@ add_custom_command(
|
|||
WORKING_DIRECTORY ${PROJECT_ROOT_PATH}/cmake-shell/
|
||||
)
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
Servers_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -128,6 +127,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${UTILS_SOURCE_PATH}/Servers
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -19,7 +19,6 @@ set(TARGET_NAME SharedData)
|
|||
add_library(${TARGET_NAME} STATIC ${SRC_FILES})
|
||||
target_link_libraries(${TARGET_NAME} StatusCode Log LinuxApi)
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
SharedData_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -39,6 +38,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${UTILS_SOURCE_PATH}/SharedData
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -20,7 +20,6 @@ set(TARGET_NAME StatusCode)
|
|||
add_library(${TARGET_NAME} STATIC ${SRC_FILES})
|
||||
target_link_libraries(${TARGET_NAME} Log)
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
StatusCode_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -40,6 +39,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${UTILS_SOURCE_PATH}/StatusCode
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -20,7 +20,6 @@ set(TARGET_NAME TcpModule)
|
|||
add_library(${TARGET_NAME} STATIC ${SRC_FILES})
|
||||
target_link_libraries(${TARGET_NAME} LinuxApi hv_static StatusCode Log)
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
TcpModule_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -40,6 +39,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${UTILS_SOURCE_PATH}/TcpModule
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -117,6 +117,8 @@ void TcpServerImpl::Init(void)
|
|||
hio_t *listenio = hloop_create_tcp_server(mLoop, mParam.mIp, mParam.mPort, on_accept);
|
||||
if (nullptr == listenio) {
|
||||
LogError("hloop_create_tcp_server failed\n");
|
||||
hloop_free(&mLoop);
|
||||
mLoop = nullptr;
|
||||
return;
|
||||
}
|
||||
LogInfo("listenfd=%d\n", hio_fd(listenio));
|
||||
|
|
|
@ -19,7 +19,6 @@ set(TARGET_NAME UartDevice)
|
|||
add_library(${TARGET_NAME} STATIC ${SRC_FILES})
|
||||
target_link_libraries(${TARGET_NAME} LinuxApi StatusCode Log)
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
UartDevice_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -39,6 +38,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${UTILS_SOURCE_PATH}/UartDevice
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -19,7 +19,6 @@ set(TARGET_NAME UpgradeBase)
|
|||
add_library(${TARGET_NAME} STATIC ${SRC_FILES})
|
||||
target_link_libraries(${TARGET_NAME} StatusCode Log)
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
UpgradeBase_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -39,6 +38,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${UTILS_SOURCE_PATH}/UpgradeBase
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -20,7 +20,6 @@ set(TARGET_NAME UpgradeTool)
|
|||
add_library(${TARGET_NAME} STATIC ${SRC_FILES})
|
||||
target_link_libraries(${TARGET_NAME} LinuxApi StatusCode Log)
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
UpgradeTool_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -40,6 +39,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${UTILS_SOURCE_PATH}/UpgradeTool
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
|
|
@ -40,9 +40,8 @@ aux_source_directory(./src SRC_FILES)
|
|||
|
||||
set(TARGET_NAME WebServer)
|
||||
add_library(${TARGET_NAME} STATIC ${SRC_FILES})
|
||||
target_link_libraries(${TARGET_NAME} StatusCode Log -Wl,--start-group libgo.a libmbedtls.a libgoahead-mbedtls.a -Wl,--end-group)
|
||||
target_link_libraries(${TARGET_NAME} libgo.a libmbedtls.a libgoahead-mbedtls.a libgo.a StatusCode Log)
|
||||
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_target(
|
||||
WebServer_code_check
|
||||
COMMAND ${CLANG_TIDY_EXE}
|
||||
|
@ -62,6 +61,7 @@ add_custom_target(
|
|||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${UTILS_SOURCE_PATH}/WebServer
|
||||
)
|
||||
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
|
@ -72,56 +72,17 @@ add_custom_command(
|
|||
endif()
|
||||
|
||||
# build goahead before make libgo.a
|
||||
add_custom_command(
|
||||
OUTPUT ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/Makefile
|
||||
COMMAND echo "tar zxvf goahead-5.2.0.tar.gz"
|
||||
COMMAND tar zxvf goahead-5.2.0.tar.gz
|
||||
COMMAND cp ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/modify/http.c ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/src
|
||||
WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/
|
||||
)
|
||||
add_custom_command(
|
||||
OUTPUT ${EXTERNAL_LIBS_OUTPUT_PATH}/libgo.a
|
||||
DEPENDS ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/Makefile
|
||||
COMMAND make CC=${CMAKE_C_COMPILER} ARCH=${SET_ARCH} PROFILE=${LIB_TYPE} ME_GOAHEAD_UPLOAD_DIR=\"${GOAHEAD_UPLOAD_TMP_PATH}\"
|
||||
ME_GOAHEAD_SSL_KEY=\"${GOAHEAD_CONFIG_FILE_PATH}/self.key\" ME_GOAHEAD_SSL_CERTIFICATE=\"${GOAHEAD_CONFIG_FILE_PATH}/self.crt\"
|
||||
${ME_GOAHEAD_LIMIT_POST} -f ../modify/goahead-linux-static-fancy.mk
|
||||
# COMMAND make CC=${CMAKE_C_COMPILER} ARCH=${SET_ARCH} PROFILE=${LIB_TYPE} -f ../modify/goahead-linux-static-fancy.mk // TODO:
|
||||
COMMAND echo "Copy goahead lib to output path."
|
||||
COMMAND mv ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/libgo.a ${EXTERNAL_LIBS_OUTPUT_PATH}/libgo.a
|
||||
COMMAND mv ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/libmbedtls.a ${EXTERNAL_LIBS_OUTPUT_PATH}/libmbedtls.a
|
||||
COMMAND mv ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/libgoahead-mbedtls.a ${EXTERNAL_LIBS_OUTPUT_PATH}/libgoahead-mbedtls.a
|
||||
COMMAND cp ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/self.crt ${PLATFORM_PATH}/cmake-shell/
|
||||
COMMAND cp ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/self.key ${PLATFORM_PATH}/cmake-shell/
|
||||
COMMAND cp ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/test/route.txt ${PLATFORM_PATH}/cmake-shell/
|
||||
COMMAND cp ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/test/auth.txt ${PLATFORM_PATH}/cmake-shell/
|
||||
WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead
|
||||
)
|
||||
add_custom_target(
|
||||
libgo.a
|
||||
DEPENDS ${EXTERNAL_LIBS_OUTPUT_PATH}/libgo.a
|
||||
# COMMAND mkdir ${GOAHEAD_UPLOAD_TMP_PATH}
|
||||
COMMAND cp ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/modify/http.c ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/src
|
||||
COMMAND touch ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/src/http.c
|
||||
COMMAND echo "Did not found goahead libs in output_files, now compile goahead."
|
||||
COMMAND make goahead-5.2.0
|
||||
WORKING_DIRECTORY ${PLATFORM_PATH}/cmake-shell/
|
||||
)
|
||||
add_custom_target(
|
||||
goahead_compile
|
||||
COMMAND test ! -f ${EXTERNAL_LIBS_OUTPUT_PATH}/libgo.a || rm ${EXTERNAL_LIBS_OUTPUT_PATH}/libgo.a
|
||||
COMMAND test ! -f ${EXTERNAL_LIBS_OUTPUT_PATH}/libmbedtls.a || rm ${EXTERNAL_LIBS_OUTPUT_PATH}/libmbedtls.a
|
||||
COMMAND test ! -f ${EXTERNAL_LIBS_OUTPUT_PATH}/libgoahead-mbedtls.a || rm ${EXTERNAL_LIBS_OUTPUT_PATH}/libgoahead-mbedtls.a
|
||||
COMMAND make CC=${CMAKE_C_COMPILER} ARCH=${SET_ARCH} PROFILE=${LIB_TYPE} ME_GOAHEAD_UPLOAD_DIR=\"${GOAHEAD_UPLOAD_TMP_PATH}\"
|
||||
ME_GOAHEAD_SSL_KEY=\"${GOAHEAD_CONFIG_FILE_PATH}/self.key\" ME_GOAHEAD_SSL_CERTIFICATE=\"${GOAHEAD_CONFIG_FILE_PATH}/self.crt\"
|
||||
${ME_GOAHEAD_LIMIT_POST} -f ../modify/goahead-linux-static-fancy.mk
|
||||
COMMAND echo "Copy goahead lib to output path."
|
||||
COMMAND mv ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/libgo.a ${EXTERNAL_LIBS_OUTPUT_PATH}/libgo.a
|
||||
COMMAND mv ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/libmbedtls.a ${EXTERNAL_LIBS_OUTPUT_PATH}/libmbedtls.a
|
||||
COMMAND mv ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/libgoahead-mbedtls.a ${EXTERNAL_LIBS_OUTPUT_PATH}/libgoahead-mbedtls.a
|
||||
COMMAND cp ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/self.crt ${PLATFORM_PATH}/cmake-shell/
|
||||
COMMAND cp ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/self.key ${PLATFORM_PATH}/cmake-shell/
|
||||
COMMAND cp ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/test/route.txt ${PLATFORM_PATH}/cmake-shell/
|
||||
COMMAND cp ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/test/auth.txt ${PLATFORM_PATH}/cmake-shell/
|
||||
WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead
|
||||
compile_goahead
|
||||
DEPENDS ${EXTERNAL_LIBS_OUTPUT_PATH}/libgo.a
|
||||
)
|
||||
add_dependencies(${TARGET_NAME} compile_goahead)
|
||||
|
||||
define_file_name(${TARGET_NAME})
|
||||
|
||||
|
|
|
@ -8,4 +8,6 @@ if (NOT DEFINED GOAHEAD_CONFIG_FILE_PATH)
|
|||
else()
|
||||
add_definitions(-DGOAHEAD_CONFIG_FILE_PATH=\"${GOAHEAD_CONFIG_FILE_PATH}\") # 代码中使用该宏定义下的配置文件
|
||||
endif()
|
||||
add_definitions(-DGOAHEAD_DOCUMENTS_PATH=\"${GOAHEAD_DOCUMENTS_PATH}\")
|
||||
add_definitions(-DGOAHEAD_DOCUMENTS_PATH=\"${GOAHEAD_DOCUMENTS_PATH}\")
|
||||
|
||||
set(GOAHEAD_EXTERNAL_LIBS go mbedtls goahead-mbedtls)
|
|
@ -208,7 +208,9 @@ StatusCode WebServerInit(const WebServerParam webParam)
|
|||
return CreateStatusCode(STATUS_CODE_NOT_OK);
|
||||
}
|
||||
if (websListen(listen) < 0) {
|
||||
return CreateStatusCode(STATUS_CODE_NOT_OK);
|
||||
// TODO: delected memory leaks.
|
||||
finished = 1;
|
||||
goto EXIT;
|
||||
}
|
||||
if (nullptr != webParam.mHttpRequestHandle) {
|
||||
gHttpHandle = webParam.mHttpRequestHandle;
|
||||
|
@ -219,6 +221,7 @@ StatusCode WebServerInit(const WebServerParam webParam)
|
|||
websDefineHandler("AppGetThumbnail", 0, AppGetThumbnail, 0, 0);
|
||||
websAddRoute("/app/getthumbnail", "AppGetThumbnail", 0);
|
||||
}
|
||||
EXIT:
|
||||
websServiceEvents(&finished);
|
||||
logmsg(1, "Instructed to exit\n");
|
||||
websClose();
|
||||
|
|
Loading…
Reference in New Issue
Block a user