From 519af895ef7c42f9644f299ba01d6b385fb9081b Mon Sep 17 00:00:00 2001 From: Fancy code <258828110.@qq.com> Date: Mon, 17 Jun 2024 21:15:56 +0800 Subject: [PATCH 01/11] Improve:clang-tidy build. --- application/HuntingCamera/CMakeLists.txt | 2 +- application/MissionManager/CMakeLists.txt | 2 +- application/main/CMakeLists.txt | 2 +- build/global_config.cmake | 2 +- doc/git_guide.md | 30 ++++++++++++++++++- hal/CMakeLists.txt | 3 +- middleware/AppManager/CMakeLists.txt | 2 +- middleware/DeviceManager/CMakeLists.txt | 2 +- middleware/FilesManager/CMakeLists.txt | 2 +- middleware/HuntingUpgrade/CMakeLists.txt | 2 +- middleware/IpcConfig/CMakeLists.txt | 2 +- middleware/McuAskBase/CMakeLists.txt | 2 +- middleware/McuManager/CMakeLists.txt | 2 +- middleware/MediaManager/CMakeLists.txt | 2 +- middleware/StateMachine/CMakeLists.txt | 2 +- middleware/StorageManager/CMakeLists.txt | 2 +- test/application/HuntingCamera/CMakeLists.txt | 2 +- .../MissionManager/tool/CMakeLists.txt | 2 +- .../VersionReleaseTool/CMakeLists.txt | 2 +- test/hal/CMakeLists.txt | 4 --- test/hal/tool/CMakeLists.txt | 2 +- test/middleware/AppManager/CMakeLists.txt | 2 +- .../middleware/AppManager/tool/CMakeLists.txt | 2 +- test/middleware/DeviceManager/CMakeLists.txt | 2 +- .../DeviceManager/tool/CMakeLists.txt | 2 +- test/middleware/HuntingUpgrade/CMakeLists.txt | 2 +- .../HuntingUpgrade/tool/CMakeLists.txt | 2 +- test/middleware/IpcConfig/CMakeLists.txt | 2 +- test/middleware/IpcConfig/tool/CMakeLists.txt | 2 +- .../middleware/McuAskBase/tool/CMakeLists.txt | 2 +- test/middleware/McuManager/CMakeLists.txt | 2 +- .../middleware/McuManager/tool/CMakeLists.txt | 2 +- test/middleware/MediaManager/CMakeLists.txt | 6 ++-- .../MediaManager/tool/CMakeLists.txt | 2 +- test/utils/Config/CMakeLists.txt | 2 +- test/utils/FxHttpServer/CMakeLists.txt | 2 +- test/utils/LinuxApiMock/CMakeLists.txt | 2 +- test/utils/Log/CMakeLists.txt | 2 +- test/utils/McuProtocol/tool/CMakeLists.txt | 2 +- test/utils/SharedData/CMakeLists.txt | 2 +- test/utils/TcpModule/CMakeLists.txt | 2 +- test/utils/TestManager/CMakeLists.txt | 2 +- test/utils/UartDevice/CMakeLists.txt | 2 +- test/utils/UartDevice/tool/CMakeLists.txt | 2 +- test/utils/WebServer/CMakeLists.txt | 2 +- utils/Config/CMakeLists.txt | 2 +- utils/ConfigBase/CMakeLists.txt | 2 +- utils/FxHttpServer/CMakeLists.txt | 2 +- utils/KeyControl/CMakeLists.txt | 2 +- utils/LedControl/CMakeLists.txt | 2 +- utils/LinuxApi/CMakeLists.txt | 2 +- utils/Log/CMakeLists.txt | 2 +- utils/McuProtocol/CMakeLists.txt | 2 +- utils/MediaAdapter/CMakeLists.txt | 2 +- utils/MediaBase/CMakeLists.txt | 2 +- utils/MediaBase/include/MediaBase.h | 4 +++ utils/MediaBase/src/IMediaBase.cpp | 5 ++++ utils/MediaBase/src/IMediaBase.h | 1 + utils/MediaBase/src/MediaBase.cpp | 7 +++++ utils/MediaBase/src/MediaBaseImpl.cpp | 12 +++++++- utils/MediaBase/src/MediaBaseImpl.h | 5 ++++ utils/ModBusCRC16/CMakeLists.txt | 2 +- utils/MultiProcess/CMakeLists.txt | 2 +- utils/Servers/CMakeLists.txt | 2 +- utils/SharedData/CMakeLists.txt | 2 +- utils/StatusCode/CMakeLists.txt | 2 +- utils/TcpModule/CMakeLists.txt | 2 +- utils/UartDevice/CMakeLists.txt | 2 +- utils/UpgradeBase/CMakeLists.txt | 2 +- utils/UpgradeTool/CMakeLists.txt | 2 +- utils/WebServer/CMakeLists.txt | 2 +- 71 files changed, 127 insertions(+), 72 deletions(-) diff --git a/application/HuntingCamera/CMakeLists.txt b/application/HuntingCamera/CMakeLists.txt index 504305b..0727975 100644 --- a/application/HuntingCamera/CMakeLists.txt +++ b/application/HuntingCamera/CMakeLists.txt @@ -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} @@ -58,6 +57,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 diff --git a/application/MissionManager/CMakeLists.txt b/application/MissionManager/CMakeLists.txt index 10d17bb..b18189f 100644 --- a/application/MissionManager/CMakeLists.txt +++ b/application/MissionManager/CMakeLists.txt @@ -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} @@ -58,6 +57,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 diff --git a/application/main/CMakeLists.txt b/application/main/CMakeLists.txt index b0d5e12..6f32dd6 100644 --- a/application/main/CMakeLists.txt +++ b/application/main/CMakeLists.txt @@ -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 diff --git a/build/global_config.cmake b/build/global_config.cmake index 2cb9a11..232f384 100755 --- a/build/global_config.cmake +++ b/build/global_config.cmake @@ -55,7 +55,7 @@ set(CLANG_FORMAT_FILE "LLVM ${CMAKE_SOURCE_DIR_IPCSDK}/tools/clang-format/.clang if(${LINUX_TEST} MATCHES "true") set(CLANG_TIDY_SUPPORT "true") set(CLANG_FORMAT_SUPPORT "true") - set(COMPILE_IMPROVE_SUPPORT "true") # 开启后每次编译可能会很慢 + set(COMPILE_IMPROVE_SUPPORT "false") # 开启后每次编译可能会很慢 set(LLVM_PATH "$ENV{HOME}/llvm-project") endif() # ------------ build clang-tools end ------------ # diff --git a/doc/git_guide.md b/doc/git_guide.md index f798477..cda57cd 100644 --- a/doc/git_guide.md +++ b/doc/git_guide.md @@ -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 --delete @@ -210,6 +210,34 @@ To gitee.com:shenzhen-jiuyilian/ipc.git - [deleted] Branch_QT ``` +### 1.4.6. git删除本地分支 + +```code +# git branch -d +$ 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. 合并两个无关联记录的仓库 diff --git a/hal/CMakeLists.txt b/hal/CMakeLists.txt index a299a95..cfaf4a4 100644 --- a/hal/CMakeLists.txt +++ b/hal/CMakeLists.txt @@ -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 diff --git a/middleware/AppManager/CMakeLists.txt b/middleware/AppManager/CMakeLists.txt index fb40520..5dfba48 100644 --- a/middleware/AppManager/CMakeLists.txt +++ b/middleware/AppManager/CMakeLists.txt @@ -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 diff --git a/middleware/DeviceManager/CMakeLists.txt b/middleware/DeviceManager/CMakeLists.txt index 37344b3..ab52d6a 100644 --- a/middleware/DeviceManager/CMakeLists.txt +++ b/middleware/DeviceManager/CMakeLists.txt @@ -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 diff --git a/middleware/FilesManager/CMakeLists.txt b/middleware/FilesManager/CMakeLists.txt index 66522da..055c9ac 100644 --- a/middleware/FilesManager/CMakeLists.txt +++ b/middleware/FilesManager/CMakeLists.txt @@ -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} @@ -50,6 +49,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 diff --git a/middleware/HuntingUpgrade/CMakeLists.txt b/middleware/HuntingUpgrade/CMakeLists.txt index c86ea27..b9a2a7a 100644 --- a/middleware/HuntingUpgrade/CMakeLists.txt +++ b/middleware/HuntingUpgrade/CMakeLists.txt @@ -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 diff --git a/middleware/IpcConfig/CMakeLists.txt b/middleware/IpcConfig/CMakeLists.txt index 9bf3c39..d3921c6 100644 --- a/middleware/IpcConfig/CMakeLists.txt +++ b/middleware/IpcConfig/CMakeLists.txt @@ -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} @@ -49,6 +48,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 diff --git a/middleware/McuAskBase/CMakeLists.txt b/middleware/McuAskBase/CMakeLists.txt index 1b0e51a..63a7a3b 100644 --- a/middleware/McuAskBase/CMakeLists.txt +++ b/middleware/McuAskBase/CMakeLists.txt @@ -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} @@ -57,6 +56,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 diff --git a/middleware/McuManager/CMakeLists.txt b/middleware/McuManager/CMakeLists.txt index adcca1a..ad3d480 100644 --- a/middleware/McuManager/CMakeLists.txt +++ b/middleware/McuManager/CMakeLists.txt @@ -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} @@ -54,6 +53,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 diff --git a/middleware/MediaManager/CMakeLists.txt b/middleware/MediaManager/CMakeLists.txt index b053f83..22e46e2 100644 --- a/middleware/MediaManager/CMakeLists.txt +++ b/middleware/MediaManager/CMakeLists.txt @@ -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} @@ -55,6 +54,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 diff --git a/middleware/StateMachine/CMakeLists.txt b/middleware/StateMachine/CMakeLists.txt index 04e67cd..5665cef 100644 --- a/middleware/StateMachine/CMakeLists.txt +++ b/middleware/StateMachine/CMakeLists.txt @@ -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} @@ -49,6 +48,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 diff --git a/middleware/StorageManager/CMakeLists.txt b/middleware/StorageManager/CMakeLists.txt index 85a6379..8e88c7b 100644 --- a/middleware/StorageManager/CMakeLists.txt +++ b/middleware/StorageManager/CMakeLists.txt @@ -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} @@ -52,6 +51,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 diff --git a/test/application/HuntingCamera/CMakeLists.txt b/test/application/HuntingCamera/CMakeLists.txt index 4f21551..3762933 100644 --- a/test/application/HuntingCamera/CMakeLists.txt +++ b/test/application/HuntingCamera/CMakeLists.txt @@ -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( HuntingCameraTest_code_check COMMAND ${CLANG_TIDY_EXE} @@ -78,6 +77,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 diff --git a/test/application/MissionManager/tool/CMakeLists.txt b/test/application/MissionManager/tool/CMakeLists.txt index bf73dae..167f2d0 100644 --- a/test/application/MissionManager/tool/CMakeLists.txt +++ b/test/application/MissionManager/tool/CMakeLists.txt @@ -40,7 +40,6 @@ set(TEST_TOOL_TARGET MissionManagerTestTool) add_library(${TEST_TOOL_TARGET} STATIC ${TEST_TOOL_SRC_FILES}) target_link_libraries(${TEST_TOOL_TARGET} MissionManager AppManagerTestTool MediaManagerTestTool KeyControl LedControl UpgradeTool StatusCode Log) -if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true") add_custom_target( MissionManagerTestTool_code_check COMMAND ${CLANG_TIDY_EXE} @@ -60,6 +59,7 @@ add_custom_target( -i ${TEST_TOOL_SRC_FILES} ${HEADER_FILES} WORKING_DIRECTORY ${TEST_SOURCE_PATH}/application/MissionManager/tool ) +if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true") add_custom_command( TARGET ${TEST_TOOL_TARGET} PRE_BUILD diff --git a/test/application/VersionReleaseTool/CMakeLists.txt b/test/application/VersionReleaseTool/CMakeLists.txt index c75b2c1..89a761a 100644 --- a/test/application/VersionReleaseTool/CMakeLists.txt +++ b/test/application/VersionReleaseTool/CMakeLists.txt @@ -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 diff --git a/test/hal/CMakeLists.txt b/test/hal/CMakeLists.txt index c5ccbcc..0391ab8 100644 --- a/test/hal/CMakeLists.txt +++ b/test/hal/CMakeLists.txt @@ -14,10 +14,6 @@ link_directories( ${EXTERNAL_LIBS_OUTPUT_PATH} ) - - - - aux_source_directory(. SRC_FILES) aux_source_directory(./src SRC_FILES) diff --git a/test/hal/tool/CMakeLists.txt b/test/hal/tool/CMakeLists.txt index f56b456..b35324d 100644 --- a/test/hal/tool/CMakeLists.txt +++ b/test/hal/tool/CMakeLists.txt @@ -23,7 +23,6 @@ set(TEST_TOOL_TARGET HalTestTool) add_library(${TEST_TOOL_TARGET} STATIC ${TEST_TOOL_SRC_FILES}) target_link_libraries(${TEST_TOOL_TARGET} Hal KeyControl LedControl LinuxApiMock Log) -if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true") add_custom_target( HalTestTool_code_check COMMAND ${CLANG_TIDY_EXE} @@ -43,6 +42,7 @@ add_custom_target( -i ${TEST_TOOL_SRC_FILES} ${HEADER_FILES} WORKING_DIRECTORY ${TEST_SOURCE_PATH}/hal/tool ) +if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true") add_custom_command( TARGET ${TEST_TOOL_TARGET} PRE_BUILD diff --git a/test/middleware/AppManager/CMakeLists.txt b/test/middleware/AppManager/CMakeLists.txt index 95db319..42ef272 100644 --- a/test/middleware/AppManager/CMakeLists.txt +++ b/test/middleware/AppManager/CMakeLists.txt @@ -40,7 +40,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} @@ -69,6 +68,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 diff --git a/test/middleware/AppManager/tool/CMakeLists.txt b/test/middleware/AppManager/tool/CMakeLists.txt index d32b142..45285bc 100644 --- a/test/middleware/AppManager/tool/CMakeLists.txt +++ b/test/middleware/AppManager/tool/CMakeLists.txt @@ -25,7 +25,6 @@ set(TEST_TOOL_TARGET AppManagerTestTool) add_library(${TEST_TOOL_TARGET} STATIC ${TEST_TOOL_SRC_FILES}) target_link_libraries(${TEST_TOOL_TARGET} AppManager Servers Log) -if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true") add_custom_target( AppManagerTestTool_code_check COMMAND ${CLANG_TIDY_EXE} @@ -45,6 +44,7 @@ add_custom_target( -i ${TEST_TOOL_SRC_FILES} ${HEADER_FILES} WORKING_DIRECTORY ${TEST_SOURCE_PATH}/middleware/AppManager/tool ) +if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true") add_custom_command( TARGET ${TEST_TOOL_TARGET} PRE_BUILD diff --git a/test/middleware/DeviceManager/CMakeLists.txt b/test/middleware/DeviceManager/CMakeLists.txt index c7950fc..8cc9caf 100644 --- a/test/middleware/DeviceManager/CMakeLists.txt +++ b/test/middleware/DeviceManager/CMakeLists.txt @@ -38,7 +38,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} @@ -67,6 +66,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 diff --git a/test/middleware/DeviceManager/tool/CMakeLists.txt b/test/middleware/DeviceManager/tool/CMakeLists.txt index 05f2ab5..227b273 100644 --- a/test/middleware/DeviceManager/tool/CMakeLists.txt +++ b/test/middleware/DeviceManager/tool/CMakeLists.txt @@ -21,7 +21,6 @@ set(TEST_TOOL_TARGET DeviceManagerTestTool) add_library(${TEST_TOOL_TARGET} STATIC ${TEST_TOOL_SRC_FILES}) target_link_libraries(${TEST_TOOL_TARGET} LedControl Log) -if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true") add_custom_target( DeviceManagerTestTool_code_check COMMAND ${CLANG_TIDY_EXE} @@ -41,6 +40,7 @@ add_custom_target( -i ${TEST_TOOL_SRC_FILES} ${HEADER_FILES} WORKING_DIRECTORY ${TEST_SOURCE_PATH}/middleware/DeviceManager/tool ) +if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true") add_custom_command( TARGET ${TEST_TOOL_TARGET} PRE_BUILD diff --git a/test/middleware/HuntingUpgrade/CMakeLists.txt b/test/middleware/HuntingUpgrade/CMakeLists.txt index bcdf839..85d7478 100644 --- a/test/middleware/HuntingUpgrade/CMakeLists.txt +++ b/test/middleware/HuntingUpgrade/CMakeLists.txt @@ -37,7 +37,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} @@ -66,6 +65,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 diff --git a/test/middleware/HuntingUpgrade/tool/CMakeLists.txt b/test/middleware/HuntingUpgrade/tool/CMakeLists.txt index 3489bc2..a22d2c1 100644 --- a/test/middleware/HuntingUpgrade/tool/CMakeLists.txt +++ b/test/middleware/HuntingUpgrade/tool/CMakeLists.txt @@ -24,7 +24,6 @@ set(TEST_TOOL_TARGET HuntingUpgradeTestTool) add_library(${TEST_TOOL_TARGET} STATIC ${TEST_TOOL_SRC_FILES}) target_link_libraries(${TEST_TOOL_TARGET} UpgradeTool LinuxApi HuntingUpgrade Log) -if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true") add_custom_target( HuntingUpgradeTestTool_code_check COMMAND ${CLANG_TIDY_EXE} @@ -44,6 +43,7 @@ add_custom_target( -i ${TEST_TOOL_SRC_FILES} ${HEADER_FILES} WORKING_DIRECTORY ${TEST_SOURCE_PATH}/middleware/HuntingUpgrade/tool ) +if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true") add_custom_command( TARGET ${TEST_TOOL_TARGET} PRE_BUILD diff --git a/test/middleware/IpcConfig/CMakeLists.txt b/test/middleware/IpcConfig/CMakeLists.txt index 247c9da..97e7ffd 100644 --- a/test/middleware/IpcConfig/CMakeLists.txt +++ b/test/middleware/IpcConfig/CMakeLists.txt @@ -38,7 +38,6 @@ target_link_libraries(${TARGET_NAME} IpcConfigTestTool LinuxApi gtest gmock pthr 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} @@ -67,6 +66,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 diff --git a/test/middleware/IpcConfig/tool/CMakeLists.txt b/test/middleware/IpcConfig/tool/CMakeLists.txt index e9c8a9b..00ab20c 100644 --- a/test/middleware/IpcConfig/tool/CMakeLists.txt +++ b/test/middleware/IpcConfig/tool/CMakeLists.txt @@ -22,7 +22,6 @@ set(TEST_TOOL_TARGET IpcConfigTestTool) add_library(${TEST_TOOL_TARGET} STATIC ${TEST_TOOL_SRC_FILES}) target_link_libraries(${TEST_TOOL_TARGET} IpcConfig LinuxApiMock Log) -if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true") add_custom_target( IpcConfigTestTool_code_check COMMAND ${CLANG_TIDY_EXE} @@ -42,6 +41,7 @@ add_custom_target( -i ${TEST_TOOL_SRC_FILES} ${HEADER_FILES} WORKING_DIRECTORY ${TEST_SOURCE_PATH}/middleware/IpcConfig/tool ) +if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true") add_custom_command( TARGET ${TEST_TOOL_TARGET} PRE_BUILD diff --git a/test/middleware/McuAskBase/tool/CMakeLists.txt b/test/middleware/McuAskBase/tool/CMakeLists.txt index ffeecb9..59670de 100644 --- a/test/middleware/McuAskBase/tool/CMakeLists.txt +++ b/test/middleware/McuAskBase/tool/CMakeLists.txt @@ -26,7 +26,6 @@ set(TEST_TOOL_TARGET McuAskBaseTestTool) add_library(${TEST_TOOL_TARGET} STATIC ${TEST_TOOL_SRC_FILES}) target_link_libraries(${TEST_TOOL_TARGET} UartDeviceTestTool Log) -if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true") add_custom_target( McuAskBaseTestTool_code_check COMMAND ${CLANG_TIDY_EXE} @@ -46,6 +45,7 @@ add_custom_target( -i ${TEST_TOOL_SRC_FILES} ${HEADER_FILES} WORKING_DIRECTORY ${TEST_SOURCE_PATH}/middleware/McuAskBase/tool ) +if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true") add_custom_command( TARGET ${TEST_TOOL_TARGET} PRE_BUILD diff --git a/test/middleware/McuManager/CMakeLists.txt b/test/middleware/McuManager/CMakeLists.txt index 7cbe45a..408458d 100644 --- a/test/middleware/McuManager/CMakeLists.txt +++ b/test/middleware/McuManager/CMakeLists.txt @@ -46,7 +46,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} @@ -75,6 +74,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 diff --git a/test/middleware/McuManager/tool/CMakeLists.txt b/test/middleware/McuManager/tool/CMakeLists.txt index 2fa3e01..da52231 100644 --- a/test/middleware/McuManager/tool/CMakeLists.txt +++ b/test/middleware/McuManager/tool/CMakeLists.txt @@ -22,7 +22,6 @@ set(TEST_TOOL_TARGET McuManagerTestTool) add_library(${TEST_TOOL_TARGET} STATIC ${TEST_TOOL_SRC_FILES}) target_link_libraries(${TEST_TOOL_TARGET} McuManager McuProtocolTestTool UartDeviceTestTool LinuxApiMock Log) -if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true") add_custom_target( McuManagerTestTool_code_check COMMAND ${CLANG_TIDY_EXE} @@ -42,6 +41,7 @@ add_custom_target( -i ${TEST_TOOL_SRC_FILES} ${HEADER_FILES} WORKING_DIRECTORY ${TEST_SOURCE_PATH}/middleware/McuManager/tool ) +if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true") add_custom_command( TARGET ${TEST_TOOL_TARGET} PRE_BUILD diff --git a/test/middleware/MediaManager/CMakeLists.txt b/test/middleware/MediaManager/CMakeLists.txt index 443a29d..647cba2 100644 --- a/test/middleware/MediaManager/CMakeLists.txt +++ b/test/middleware/MediaManager/CMakeLists.txt @@ -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( MediaManagerTest_code_check COMMAND ${CLANG_TIDY_EXE} @@ -51,7 +50,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 + WORKING_DIRECTORY ${TEST_SOURCE_PATH}/middleware/MediaManager ) add_custom_command( TARGET ${TARGET_NAME} @@ -66,8 +65,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 diff --git a/test/middleware/MediaManager/tool/CMakeLists.txt b/test/middleware/MediaManager/tool/CMakeLists.txt index 7d3430f..45ed276 100644 --- a/test/middleware/MediaManager/tool/CMakeLists.txt +++ b/test/middleware/MediaManager/tool/CMakeLists.txt @@ -24,7 +24,6 @@ set(TEST_TOOL_TARGET MediaManagerTestTool) add_library(${TEST_TOOL_TARGET} STATIC ${TEST_TOOL_SRC_FILES}) target_link_libraries(${TEST_TOOL_TARGET} MediaManager Servers Log) -if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true") add_custom_target( MediaManagerTestTool_code_check COMMAND ${CLANG_TIDY_EXE} @@ -44,6 +43,7 @@ add_custom_target( -i ${TEST_TOOL_SRC_FILES} ${HEADER_FILES} WORKING_DIRECTORY ${TEST_SOURCE_PATH}/middleware/MediaManager/tool ) +if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true") add_custom_command( TARGET ${TEST_TOOL_TARGET} PRE_BUILD diff --git a/test/utils/Config/CMakeLists.txt b/test/utils/Config/CMakeLists.txt index 08fb3f8..803d186 100644 --- a/test/utils/Config/CMakeLists.txt +++ b/test/utils/Config/CMakeLists.txt @@ -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 diff --git a/test/utils/FxHttpServer/CMakeLists.txt b/test/utils/FxHttpServer/CMakeLists.txt index 906b109..17a0878 100644 --- a/test/utils/FxHttpServer/CMakeLists.txt +++ b/test/utils/FxHttpServer/CMakeLists.txt @@ -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 diff --git a/test/utils/LinuxApiMock/CMakeLists.txt b/test/utils/LinuxApiMock/CMakeLists.txt index f921bac..560a09b 100644 --- a/test/utils/LinuxApiMock/CMakeLists.txt +++ b/test/utils/LinuxApiMock/CMakeLists.txt @@ -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 diff --git a/test/utils/Log/CMakeLists.txt b/test/utils/Log/CMakeLists.txt index f15f9da..277058e 100644 --- a/test/utils/Log/CMakeLists.txt +++ b/test/utils/Log/CMakeLists.txt @@ -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 diff --git a/test/utils/McuProtocol/tool/CMakeLists.txt b/test/utils/McuProtocol/tool/CMakeLists.txt index 42dfd38..2948b73 100644 --- a/test/utils/McuProtocol/tool/CMakeLists.txt +++ b/test/utils/McuProtocol/tool/CMakeLists.txt @@ -25,7 +25,6 @@ set(TEST_TOOL_TARGET McuProtocolTestTool) add_library(${TEST_TOOL_TARGET} STATIC ${TEST_TOOL_SRC_FILES}) target_link_libraries(${TEST_TOOL_TARGET} UartDeviceTestTool Log) -if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true") add_custom_target( McuProtocolTestTool_code_check COMMAND ${CLANG_TIDY_EXE} @@ -45,6 +44,7 @@ add_custom_target( -i ${TEST_TOOL_SRC_FILES} ${HEADER_FILES} WORKING_DIRECTORY ${TEST_SOURCE_PATH}/utils/McuProtocol/tool ) +if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true") add_custom_command( TARGET ${TEST_TOOL_TARGET} PRE_BUILD diff --git a/test/utils/SharedData/CMakeLists.txt b/test/utils/SharedData/CMakeLists.txt index 2f59cae..4f3b70e 100644 --- a/test/utils/SharedData/CMakeLists.txt +++ b/test/utils/SharedData/CMakeLists.txt @@ -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 diff --git a/test/utils/TcpModule/CMakeLists.txt b/test/utils/TcpModule/CMakeLists.txt index 0619c71..8c737a7 100644 --- a/test/utils/TcpModule/CMakeLists.txt +++ b/test/utils/TcpModule/CMakeLists.txt @@ -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 diff --git a/test/utils/TestManager/CMakeLists.txt b/test/utils/TestManager/CMakeLists.txt index 7b2b91b..fcefe5a 100644 --- a/test/utils/TestManager/CMakeLists.txt +++ b/test/utils/TestManager/CMakeLists.txt @@ -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 diff --git a/test/utils/UartDevice/CMakeLists.txt b/test/utils/UartDevice/CMakeLists.txt index f442586..40eea41 100644 --- a/test/utils/UartDevice/CMakeLists.txt +++ b/test/utils/UartDevice/CMakeLists.txt @@ -33,7 +33,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} @@ -55,6 +54,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 diff --git a/test/utils/UartDevice/tool/CMakeLists.txt b/test/utils/UartDevice/tool/CMakeLists.txt index 4f0afa9..88776c4 100644 --- a/test/utils/UartDevice/tool/CMakeLists.txt +++ b/test/utils/UartDevice/tool/CMakeLists.txt @@ -19,7 +19,6 @@ set(TEST_TOOL_TARGET UartDeviceTestTool) add_library(${TEST_TOOL_TARGET} STATIC ${TEST_TOOL_SRC_FILES}) target_link_libraries(${TEST_TOOL_TARGET} LinuxApiMock Log) -if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true") add_custom_target( UartDeviceTestTool_code_check COMMAND ${CLANG_TIDY_EXE} @@ -39,6 +38,7 @@ add_custom_target( -i ${TEST_TOOL_SRC_FILES} ${HEADER_FILES} WORKING_DIRECTORY ${TEST_SOURCE_PATH}/utils/UartDevice/tool ) +if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true") add_custom_command( TARGET ${TEST_TOOL_TARGET} PRE_BUILD diff --git a/test/utils/WebServer/CMakeLists.txt b/test/utils/WebServer/CMakeLists.txt index 5a84238..a19ecdd 100644 --- a/test/utils/WebServer/CMakeLists.txt +++ b/test/utils/WebServer/CMakeLists.txt @@ -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 diff --git a/utils/Config/CMakeLists.txt b/utils/Config/CMakeLists.txt index f6f1e99..60a8780 100644 --- a/utils/Config/CMakeLists.txt +++ b/utils/Config/CMakeLists.txt @@ -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 diff --git a/utils/ConfigBase/CMakeLists.txt b/utils/ConfigBase/CMakeLists.txt index 4070321..284d78c 100644 --- a/utils/ConfigBase/CMakeLists.txt +++ b/utils/ConfigBase/CMakeLists.txt @@ -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} @@ -47,6 +46,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 diff --git a/utils/FxHttpServer/CMakeLists.txt b/utils/FxHttpServer/CMakeLists.txt index 8fba0ba..2f20c63 100644 --- a/utils/FxHttpServer/CMakeLists.txt +++ b/utils/FxHttpServer/CMakeLists.txt @@ -25,7 +25,6 @@ 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) -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 diff --git a/utils/KeyControl/CMakeLists.txt b/utils/KeyControl/CMakeLists.txt index 102e6a1..0b0a5ef 100644 --- a/utils/KeyControl/CMakeLists.txt +++ b/utils/KeyControl/CMakeLists.txt @@ -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 diff --git a/utils/LedControl/CMakeLists.txt b/utils/LedControl/CMakeLists.txt index 6f212f6..3b2f9ad 100644 --- a/utils/LedControl/CMakeLists.txt +++ b/utils/LedControl/CMakeLists.txt @@ -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 diff --git a/utils/LinuxApi/CMakeLists.txt b/utils/LinuxApi/CMakeLists.txt index ea8af24..0e8eecd 100644 --- a/utils/LinuxApi/CMakeLists.txt +++ b/utils/LinuxApi/CMakeLists.txt @@ -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 diff --git a/utils/Log/CMakeLists.txt b/utils/Log/CMakeLists.txt index b65eb64..6b9e528 100644 --- a/utils/Log/CMakeLists.txt +++ b/utils/Log/CMakeLists.txt @@ -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 diff --git a/utils/McuProtocol/CMakeLists.txt b/utils/McuProtocol/CMakeLists.txt index 0b37a80..c9be68d 100644 --- a/utils/McuProtocol/CMakeLists.txt +++ b/utils/McuProtocol/CMakeLists.txt @@ -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 diff --git a/utils/MediaAdapter/CMakeLists.txt b/utils/MediaAdapter/CMakeLists.txt index 02285ea..ece81b7 100644 --- a/utils/MediaAdapter/CMakeLists.txt +++ b/utils/MediaAdapter/CMakeLists.txt @@ -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 diff --git a/utils/MediaBase/CMakeLists.txt b/utils/MediaBase/CMakeLists.txt index 7c1e51d..c27aed2 100644 --- a/utils/MediaBase/CMakeLists.txt +++ b/utils/MediaBase/CMakeLists.txt @@ -20,7 +20,6 @@ set(TARGET_NAME MediaBase) add_library(${TARGET_NAME} STATIC ${SRC_FILES}) target_link_libraries(${TARGET_NAME} StatusCode Log) -if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true") add_custom_target( MediaBase_code_check COMMAND ${CLANG_TIDY_EXE} @@ -40,6 +39,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 diff --git a/utils/MediaBase/include/MediaBase.h b/utils/MediaBase/include/MediaBase.h index a5df302..2746f0c 100644 --- a/utils/MediaBase/include/MediaBase.h +++ b/utils/MediaBase/include/MediaBase.h @@ -21,9 +21,13 @@ extern "C" { enum MediaHandleType { MEDIA_HANDLE_TYPE_READ_H264 = 0, + MEDIA_HANDLE_TYPE_READ_G711, MEDIA_HANDLE_TYPE_END }; void *ICreateMediaBase(const MediaHandleType type); +// StatusCode Init(void *object); +// StatusCode UnInit(void *object); +StatusCode IStartReadFile(void *object, const char *path); void IMediaBaseFree(void *object); #ifdef __cplusplus } diff --git a/utils/MediaBase/src/IMediaBase.cpp b/utils/MediaBase/src/IMediaBase.cpp index 5a36544..0bbf06b 100644 --- a/utils/MediaBase/src/IMediaBase.cpp +++ b/utils/MediaBase/src/IMediaBase.cpp @@ -15,6 +15,11 @@ #include "IMediaBase.h" #include "ILog.h" #include +StatusCode IMediaBase::StartReadFile(const std::string &path) +{ + LogInfo("STATUS_CODE_VIRTUAL_FUNCTION\n"); + return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION); +} static const char *MEDIA_BASE_NAME = "media_adapter"; const char inline *GetMediaBaseModuleName(void) { diff --git a/utils/MediaBase/src/IMediaBase.h b/utils/MediaBase/src/IMediaBase.h index 092899e..d6a93f0 100644 --- a/utils/MediaBase/src/IMediaBase.h +++ b/utils/MediaBase/src/IMediaBase.h @@ -21,6 +21,7 @@ class IMediaBase public: IMediaBase() = default; virtual ~IMediaBase() = default; + virtual StatusCode StartReadFile(const std::string &path); }; typedef struct media_base_header { diff --git a/utils/MediaBase/src/MediaBase.cpp b/utils/MediaBase/src/MediaBase.cpp index 9d41dc0..cdf31fa 100644 --- a/utils/MediaBase/src/MediaBase.cpp +++ b/utils/MediaBase/src/MediaBase.cpp @@ -31,6 +31,13 @@ static bool ObjectCheck(void *object) } return true; } +StatusCode IStartReadFile(void *object, const char *path) +{ + if (ObjectCheck(object) == true) { + return (*(std::shared_ptr *)object)->StartReadFile(path); + } + return CreateStatusCode(STATUS_CODE_OK); +} void IMediaBaseFree(void *object) { if (ObjectCheck(object) == true) { diff --git a/utils/MediaBase/src/MediaBaseImpl.cpp b/utils/MediaBase/src/MediaBaseImpl.cpp index 632636a..186715e 100644 --- a/utils/MediaBase/src/MediaBaseImpl.cpp +++ b/utils/MediaBase/src/MediaBaseImpl.cpp @@ -12,4 +12,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -#include "MediaBaseImpl.h" \ No newline at end of file +#include "MediaBaseImpl.h" +StatusCode MediaBaseImpl::StartReadFile(const std::string &path) +{ + return CreateStatusCode(STATUS_CODE_OK); +} +void MediaBaseImpl::InitFfmpeg(void) +{ +} +void MediaBaseImpl::UnInitFfmpeg(void) +{ +} \ No newline at end of file diff --git a/utils/MediaBase/src/MediaBaseImpl.h b/utils/MediaBase/src/MediaBaseImpl.h index 39d2598..0ac2860 100644 --- a/utils/MediaBase/src/MediaBaseImpl.h +++ b/utils/MediaBase/src/MediaBaseImpl.h @@ -20,5 +20,10 @@ class MediaBaseImpl : public IMediaBase public: MediaBaseImpl() = default; virtual ~MediaBaseImpl() = default; + StatusCode StartReadFile(const std::string &path) override; + +private: + void InitFfmpeg(void); + void UnInitFfmpeg(void); }; #endif \ No newline at end of file diff --git a/utils/ModBusCRC16/CMakeLists.txt b/utils/ModBusCRC16/CMakeLists.txt index a60d4dc..c475c95 100644 --- a/utils/ModBusCRC16/CMakeLists.txt +++ b/utils/ModBusCRC16/CMakeLists.txt @@ -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 diff --git a/utils/MultiProcess/CMakeLists.txt b/utils/MultiProcess/CMakeLists.txt index 59ff909..949ad51 100644 --- a/utils/MultiProcess/CMakeLists.txt +++ b/utils/MultiProcess/CMakeLists.txt @@ -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 diff --git a/utils/Servers/CMakeLists.txt b/utils/Servers/CMakeLists.txt index 1e356c4..eb4eb66 100755 --- a/utils/Servers/CMakeLists.txt +++ b/utils/Servers/CMakeLists.txt @@ -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 diff --git a/utils/SharedData/CMakeLists.txt b/utils/SharedData/CMakeLists.txt index 2bd1ce4..32fb0a7 100644 --- a/utils/SharedData/CMakeLists.txt +++ b/utils/SharedData/CMakeLists.txt @@ -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 diff --git a/utils/StatusCode/CMakeLists.txt b/utils/StatusCode/CMakeLists.txt index 3f2d415..7e9b9b3 100644 --- a/utils/StatusCode/CMakeLists.txt +++ b/utils/StatusCode/CMakeLists.txt @@ -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 diff --git a/utils/TcpModule/CMakeLists.txt b/utils/TcpModule/CMakeLists.txt index a3d94d2..613358d 100644 --- a/utils/TcpModule/CMakeLists.txt +++ b/utils/TcpModule/CMakeLists.txt @@ -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 diff --git a/utils/UartDevice/CMakeLists.txt b/utils/UartDevice/CMakeLists.txt index eafbfeb..130ae20 100644 --- a/utils/UartDevice/CMakeLists.txt +++ b/utils/UartDevice/CMakeLists.txt @@ -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 diff --git a/utils/UpgradeBase/CMakeLists.txt b/utils/UpgradeBase/CMakeLists.txt index e34986c..77051ed 100644 --- a/utils/UpgradeBase/CMakeLists.txt +++ b/utils/UpgradeBase/CMakeLists.txt @@ -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 diff --git a/utils/UpgradeTool/CMakeLists.txt b/utils/UpgradeTool/CMakeLists.txt index 9665d8b..fdd797e 100644 --- a/utils/UpgradeTool/CMakeLists.txt +++ b/utils/UpgradeTool/CMakeLists.txt @@ -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 diff --git a/utils/WebServer/CMakeLists.txt b/utils/WebServer/CMakeLists.txt index 4b0c815..2782a27 100644 --- a/utils/WebServer/CMakeLists.txt +++ b/utils/WebServer/CMakeLists.txt @@ -42,7 +42,6 @@ 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) -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 From 0c84cdce637f24c74563eb60f76b9327dd3ad79a Mon Sep 17 00:00:00 2001 From: Fancy code <258828110.@qq.com> Date: Mon, 17 Jun 2024 23:43:39 +0800 Subject: [PATCH 02/11] Improve:include cleaner. --- test/GtestUsing.h | 1 + .../tool/src/AppManagerMakePtrTest.cpp | 5 +++++ .../AppManager/tool/src/AppManagerMock.cpp | 4 ++++ .../AppManager/tool/src/AppManagerTestTool.cpp | 10 +++++++++- .../AppManager/tool/src/AppMonitorMock.cpp | 4 ++++ .../AppManager/tool/src/ServersMock.cpp | 4 ++++ test/utils/LinuxApiMock/src/LinuxApiMock.cpp | 9 ++++++++- test/utils/LinuxApiMock/src/LinuxTestImpl.cpp | 10 ++++++++++ test/utils/LinuxApiMock/src/WrapApi.cpp | 3 +++ .../McuProtocol/tool/src/McuProtocolTestTool.cpp | 16 ++++++++++++++++ .../McuProtocol/tool/src/ProtocolMonitor.cpp | 5 +++++ test/utils/TestManager/src/TestManager.cpp | 3 +++ .../UartDevice/tool/src/UartDeviceTestTool.cpp | 13 +++++++++++++ 13 files changed, 85 insertions(+), 2 deletions(-) diff --git a/test/GtestUsing.h b/test/GtestUsing.h index e829a58..44fa4e7 100644 --- a/test/GtestUsing.h +++ b/test/GtestUsing.h @@ -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 \ No newline at end of file diff --git a/test/middleware/AppManager/tool/src/AppManagerMakePtrTest.cpp b/test/middleware/AppManager/tool/src/AppManagerMakePtrTest.cpp index ad9a7b0..e159893 100644 --- a/test/middleware/AppManager/tool/src/AppManagerMakePtrTest.cpp +++ b/test/middleware/AppManager/tool/src/AppManagerMakePtrTest.cpp @@ -13,7 +13,12 @@ * limitations under the License. */ #include "AppManagerMakePtrTest.h" +#include "AppManagerMock.h" +#include "IAppManager.h" +#include "AppManagerMakePtr.h" #include "ILog.h" +#include "StatusCode.h" +#include void OverrideAppManagerMakePtrObject(std::shared_ptr &appManagerMock) { std::shared_ptr impl = std::make_shared(); diff --git a/test/middleware/AppManager/tool/src/AppManagerMock.cpp b/test/middleware/AppManager/tool/src/AppManagerMock.cpp index 925214d..5c2649c 100644 --- a/test/middleware/AppManager/tool/src/AppManagerMock.cpp +++ b/test/middleware/AppManager/tool/src/AppManagerMock.cpp @@ -13,7 +13,11 @@ * limitations under the License. */ #include "AppManagerMock.h" +#include "AppManager.h" +#include "IAppManager.h" #include "ILog.h" +#include "StatusCode.h" +#include const StatusCode AppManagerTest::SetAppMonitor(std::shared_ptr &monitor) { LogInfo("AppManagerTest::SetAppMonitor\n"); diff --git a/test/middleware/AppManager/tool/src/AppManagerTestTool.cpp b/test/middleware/AppManager/tool/src/AppManagerTestTool.cpp index 6a3eb3b..fcf9cee 100644 --- a/test/middleware/AppManager/tool/src/AppManagerTestTool.cpp +++ b/test/middleware/AppManager/tool/src/AppManagerTestTool.cpp @@ -16,9 +16,17 @@ #include "AppManagerMakePtrTest.h" #include "AppManagerMock.h" #include "AppMonitorMock.h" +#include "GtestUsing.h" +#include "IAppManager.h" #include "ILog.h" #include "ServersMock.h" +#include "StatusCode.h" #include "TcpModule.h" +#include +#include +#include +#include +#include constexpr int ONLY_BE_CALLED_ONCE = 1; AppManagerTestTool::AppManagerTestTool() { @@ -314,7 +322,7 @@ void AppManagerTestTool::AppManagerMockInit(std::shared_ptr &vMock) AppManagerTestTool::AppMonitorInit(mAppMonitorMock); }; EXPECT_CALL(*mock.get(), SetAppMonitorTrace(_)) - .Times(testing::Between(0, 1)) + .Times(Between(0, 1)) .WillOnce(DoAll(WithArgs<0>(Invoke(getAppMonitor)), Return(CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION)))); } std::shared_ptr AppManagerTestTool::MakeMonitorMock(void) diff --git a/test/middleware/AppManager/tool/src/AppMonitorMock.cpp b/test/middleware/AppManager/tool/src/AppMonitorMock.cpp index 7dacab5..dfa1a67 100644 --- a/test/middleware/AppManager/tool/src/AppMonitorMock.cpp +++ b/test/middleware/AppManager/tool/src/AppMonitorMock.cpp @@ -13,7 +13,11 @@ * limitations under the License. */ #include "AppMonitorMock.h" +#include "IAppManager.h" #include "ILog.h" +#include "StatusCode.h" +#include +#include StatusCode AppMonitorTest::GetProductInfo(AppGetProductInfo ¶m) { LogInfo("AppMonitorTest::GetProductInfo\n"); diff --git a/test/middleware/AppManager/tool/src/ServersMock.cpp b/test/middleware/AppManager/tool/src/ServersMock.cpp index e9308e3..bfd198e 100644 --- a/test/middleware/AppManager/tool/src/ServersMock.cpp +++ b/test/middleware/AppManager/tool/src/ServersMock.cpp @@ -15,7 +15,11 @@ #include "ServersMock.h" #include "ILog.h" #include "servers.h" +#include #include +#include +#include +#include extern const char *APP_GET_PRODUCT_INFO; extern const char *APP_GET_DEVICE_ATTR; extern const char *APP_GET_MEDIA_INFO; diff --git a/test/utils/LinuxApiMock/src/LinuxApiMock.cpp b/test/utils/LinuxApiMock/src/LinuxApiMock.cpp index 3af63f0..ea9640b 100644 --- a/test/utils/LinuxApiMock/src/LinuxApiMock.cpp +++ b/test/utils/LinuxApiMock/src/LinuxApiMock.cpp @@ -13,9 +13,16 @@ * limitations under the License. */ #include "LinuxApiMock.h" -#include "ILog.h" #include "LinuxTestImpl.h" #include "WrapApi.h" +#include +#include +#include +#include +#include +#include +#include +#include std::shared_ptr &LinuxApiMock::GetInstance(std::shared_ptr *impl) { static auto instance = std::make_shared(); diff --git a/test/utils/LinuxApiMock/src/LinuxTestImpl.cpp b/test/utils/LinuxApiMock/src/LinuxTestImpl.cpp index 5fc68e4..8bf5894 100644 --- a/test/utils/LinuxApiMock/src/LinuxTestImpl.cpp +++ b/test/utils/LinuxApiMock/src/LinuxTestImpl.cpp @@ -13,7 +13,17 @@ * limitations under the License. */ #include "LinuxTestImpl.h" +#include "GtestUsing.h" #include "ILog.h" +#include "LinuxApiMock.h" +#include "WrapApi.h" +#include +#include +#include +#include +#include +#include +#include #include /** * @brief The simulated interface has been subjected to lock serial processing to ensure that the return value can be diff --git a/test/utils/LinuxApiMock/src/WrapApi.cpp b/test/utils/LinuxApiMock/src/WrapApi.cpp index 731ffea..e71817a 100644 --- a/test/utils/LinuxApiMock/src/WrapApi.cpp +++ b/test/utils/LinuxApiMock/src/WrapApi.cpp @@ -14,7 +14,10 @@ */ #include "WrapApi.h" #include "LinuxApiMock.h" +#include #include +#include +#include #ifdef __cplusplus extern "C" { #endif diff --git a/test/utils/McuProtocol/tool/src/McuProtocolTestTool.cpp b/test/utils/McuProtocol/tool/src/McuProtocolTestTool.cpp index 16cb847..9ca9491 100644 --- a/test/utils/McuProtocol/tool/src/McuProtocolTestTool.cpp +++ b/test/utils/McuProtocol/tool/src/McuProtocolTestTool.cpp @@ -13,14 +13,30 @@ * limitations under the License. */ #include "McuProtocolTestTool.h" +#include "GtestUsing.h" #include "ILog.h" +#include "LinuxApiMock.h" #include "ModBusCRC16.h" #include "ProtocolHandle.h" #include "ProtocolMonitor.h" +#include "UartDevice.h" +#include "UartDeviceTestTool.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include +#include +#include #include #include + using std::placeholders::_1; using std::placeholders::_2; using std::placeholders::_3; diff --git a/test/utils/McuProtocol/tool/src/ProtocolMonitor.cpp b/test/utils/McuProtocol/tool/src/ProtocolMonitor.cpp index 4147030..a0ff4bb 100644 --- a/test/utils/McuProtocol/tool/src/ProtocolMonitor.cpp +++ b/test/utils/McuProtocol/tool/src/ProtocolMonitor.cpp @@ -13,7 +13,12 @@ * limitations under the License. */ #include "ProtocolMonitor.h" +#include "GtestUsing.h" #include "ILog.h" +#include +#include +#include +#include static void PrintHexadecimalData(const void *buf, const size_t &bufLength, const char *log) { printf("%s { 0x%02X", log, *(unsigned char *)buf); diff --git a/test/utils/TestManager/src/TestManager.cpp b/test/utils/TestManager/src/TestManager.cpp index 819d153..f3f1d7c 100644 --- a/test/utils/TestManager/src/TestManager.cpp +++ b/test/utils/TestManager/src/TestManager.cpp @@ -15,6 +15,9 @@ #include "TestManager.h" #include "ILog.h" #include "MainThread.h" +#include +#include +#include constexpr int TIMER_SLEEP_MS = 100; void TestManager::Init(void) { diff --git a/test/utils/UartDevice/tool/src/UartDeviceTestTool.cpp b/test/utils/UartDevice/tool/src/UartDeviceTestTool.cpp index 2ab1bb3..e13b7c0 100644 --- a/test/utils/UartDevice/tool/src/UartDeviceTestTool.cpp +++ b/test/utils/UartDevice/tool/src/UartDeviceTestTool.cpp @@ -13,8 +13,21 @@ * limitations under the License. */ #include "UartDeviceTestTool.h" +#include "GtestUsing.h" #include "ILog.h" +#include "LinuxApiMock.h" +#include "UartDevice.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include #include + static size_t WRITE_COUNT = -1; constexpr int INVALID_FD = -1; int UartDeviceTestTool::RegisterUartDevice(std::shared_ptr &mock, const UartInfo &uart) From 0d8e8ce3c179feb035d2470a828b4900ab9eb80a Mon Sep 17 00:00:00 2001 From: Fancy code <258828110.@qq.com> Date: Tue, 18 Jun 2024 16:10:16 +0800 Subject: [PATCH 03/11] Improve:ffmpeg compile CMakeLists.txt --- external/ffmpeg/CMakeLists.txt | 54 +++++++++----- external/ffmpeg/README.md | 24 +++++++ test/CMakeLists.txt | 23 +----- .../tool/src/AppManagerMakePtrTest.cpp | 4 +- test/utils/CMakeLists.txt | 3 +- test/utils/MediaBase/CMakeLists.txt | 71 +++++++++++++++++++ test/utils/MediaBase/mainTest.cpp | 23 ++++++ test/utils/MediaBase/src/MediaBase_Test.cpp | 32 +++++++++ utils/MediaBase/CMakeLists.txt | 3 +- utils/MediaBase/src/IMediaBase.cpp | 7 +- utils/MediaBase/src/MediaBaseImpl.cpp | 44 ++++++++++++ utils/MediaBase/src/MediaBaseMakePtr.cpp | 37 ++++++++++ utils/MediaBase/src/MediaBaseMakePtr.h | 28 ++++++++ 13 files changed, 304 insertions(+), 49 deletions(-) create mode 100644 external/ffmpeg/README.md create mode 100644 test/utils/MediaBase/CMakeLists.txt create mode 100644 test/utils/MediaBase/mainTest.cpp create mode 100644 test/utils/MediaBase/src/MediaBase_Test.cpp create mode 100644 utils/MediaBase/src/MediaBaseMakePtr.cpp create mode 100644 utils/MediaBase/src/MediaBaseMakePtr.h diff --git a/external/ffmpeg/CMakeLists.txt b/external/ffmpeg/CMakeLists.txt index 1310e1e..a18f0da 100644 --- a/external/ffmpeg/CMakeLists.txt +++ b/external/ffmpeg/CMakeLists.txt @@ -1,26 +1,42 @@ - +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-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") +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 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 diff --git a/external/ffmpeg/README.md b/external/ffmpeg/README.md new file mode 100644 index 0000000..bb65b30 --- /dev/null +++ b/external/ffmpeg/README.md @@ -0,0 +1,24 @@ +# 1. ffmpeg开发文档 + +## 1.1. 问题记录 + +### 1.1.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") +``` \ No newline at end of file diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index cbd8e4c..921a6cf 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -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) diff --git a/test/middleware/AppManager/tool/src/AppManagerMakePtrTest.cpp b/test/middleware/AppManager/tool/src/AppManagerMakePtrTest.cpp index e159893..f2f3f88 100644 --- a/test/middleware/AppManager/tool/src/AppManagerMakePtrTest.cpp +++ b/test/middleware/AppManager/tool/src/AppManagerMakePtrTest.cpp @@ -13,9 +13,9 @@ * limitations under the License. */ #include "AppManagerMakePtrTest.h" +#include "AppManagerMakePtr.h" #include "AppManagerMock.h" #include "IAppManager.h" -#include "AppManagerMakePtr.h" #include "ILog.h" #include "StatusCode.h" #include @@ -42,11 +42,9 @@ void CancelOverrideAppManagerMakePtrObject(void) } AppManagerMakePtrTest::AppManagerMakePtrTest() { - // } AppManagerMakePtrTest::~AppManagerMakePtrTest() { - // mAppManagerMock.reset(); } const StatusCode AppManagerMakePtrTest::CreateAppManager(std::shared_ptr &impl) diff --git a/test/utils/CMakeLists.txt b/test/utils/CMakeLists.txt index 251acc6..5a21e7a 100644 --- a/test/utils/CMakeLists.txt +++ b/test/utils/CMakeLists.txt @@ -8,4 +8,5 @@ add_subdirectory(LinuxApiMock) add_subdirectory(McuProtocol) add_subdirectory(FxHttpServer) add_subdirectory(TestManager) -add_subdirectory(TcpModule) \ No newline at end of file +add_subdirectory(TcpModule) +add_subdirectory(MediaBase) \ No newline at end of file diff --git a/test/utils/MediaBase/CMakeLists.txt b/test/utils/MediaBase/CMakeLists.txt new file mode 100644 index 0000000..e6f6492 --- /dev/null +++ b/test/utils/MediaBase/CMakeLists.txt @@ -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() \ No newline at end of file diff --git a/test/utils/MediaBase/mainTest.cpp b/test/utils/MediaBase/mainTest.cpp new file mode 100644 index 0000000..475ceee --- /dev/null +++ b/test/utils/MediaBase/mainTest.cpp @@ -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 +#include +#include +#include +int main(int argc, char *argv[]) +{ + testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} \ No newline at end of file diff --git a/test/utils/MediaBase/src/MediaBase_Test.cpp b/test/utils/MediaBase/src/MediaBase_Test.cpp new file mode 100644 index 0000000..79b4b5a --- /dev/null +++ b/test/utils/MediaBase/src/MediaBase_Test.cpp @@ -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 +#include +#include +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 \ No newline at end of file diff --git a/utils/MediaBase/CMakeLists.txt b/utils/MediaBase/CMakeLists.txt index c27aed2..070a87c 100644 --- a/utils/MediaBase/CMakeLists.txt +++ b/utils/MediaBase/CMakeLists.txt @@ -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,7 +19,7 @@ aux_source_directory(./src SRC_FILES) set(TARGET_NAME MediaBase) add_library(${TARGET_NAME} STATIC ${SRC_FILES}) -target_link_libraries(${TARGET_NAME} StatusCode Log) +target_link_libraries(${TARGET_NAME} avformat avcodec avutil swresample StatusCode Log) add_custom_target( MediaBase_code_check diff --git a/utils/MediaBase/src/IMediaBase.cpp b/utils/MediaBase/src/IMediaBase.cpp index 0bbf06b..7996ecb 100644 --- a/utils/MediaBase/src/IMediaBase.cpp +++ b/utils/MediaBase/src/IMediaBase.cpp @@ -14,14 +14,15 @@ */ #include "IMediaBase.h" #include "ILog.h" +#include "MediaBaseMakePtr.h" #include StatusCode IMediaBase::StartReadFile(const std::string &path) { - LogInfo("STATUS_CODE_VIRTUAL_FUNCTION\n"); + 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; } @@ -32,6 +33,6 @@ std::shared_ptr *NewIMediaBase(const MediaHandleType &type) MeidaAdapter tmp; memcpy((void *)impl, (void *)&tmp, sizeof(MeidaAdapter)); impl->mHeader.mCheckName = MEDIA_BASE_NAME; - impl->mIMediaBase = std::make_shared(); + impl->mIMediaBase = MediaBaseMakePtr::GetInstance()->CreateMediaBase(); return (std::shared_ptr *)(((char *)impl) + sizeof(MediaBaseHeader)); } \ No newline at end of file diff --git a/utils/MediaBase/src/MediaBaseImpl.cpp b/utils/MediaBase/src/MediaBaseImpl.cpp index 186715e..360b965 100644 --- a/utils/MediaBase/src/MediaBaseImpl.cpp +++ b/utils/MediaBase/src/MediaBaseImpl.cpp @@ -13,8 +13,52 @@ * limitations under the License. */ #include "MediaBaseImpl.h" +#include "ILog.h" +#ifdef __cplusplus +extern "C" { +#endif +#include +#include +#include +#ifdef __cplusplus +} +#endif StatusCode MediaBaseImpl::StartReadFile(const std::string &path) { + InitFfmpeg(); + int result = 0; + AVFormatContext *pFormatCtx = nullptr; + if ((result = avformat_open_input(&pFormatCtx, path.c_str(), nullptr, nullptr)) < 0) { + LogError("Couldn't open file: %s, result=%d\n", path.c_str(), result); + return CreateStatusCode(STATUS_CODE_NOT_OK); + } + if (avformat_find_stream_info(pFormatCtx, nullptr) < 0) { + LogError("Couldn't find stream information.\n"); + return CreateStatusCode(STATUS_CODE_NOT_OK); + } + int video_stream_index = -1; + for (unsigned int i = 0; i < pFormatCtx->nb_streams; i++) { + if (pFormatCtx->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) { + video_stream_index = i; + break; + } + } + if (video_stream_index == -1) { + LogError("Didn't find a video stream.\n"); + return CreateStatusCode(STATUS_CODE_NOT_OK); + } + AVPacket packet; + // av_new_packet(&packet, AV_INPUT_BUFFER_MIN_SIZE); + while (av_read_frame(pFormatCtx, &packet) >= 0) { + // 检查数据包是否属于视频流 + if (packet.stream_index == video_stream_index) { + LogInfo("Frame data address: %p, length: %zu\n", packet.data, packet.size); + } + // 释放数据包 + av_packet_unref(&packet); + } + + avformat_close_input(&pFormatCtx); return CreateStatusCode(STATUS_CODE_OK); } void MediaBaseImpl::InitFfmpeg(void) diff --git a/utils/MediaBase/src/MediaBaseMakePtr.cpp b/utils/MediaBase/src/MediaBaseMakePtr.cpp new file mode 100644 index 0000000..4c14267 --- /dev/null +++ b/utils/MediaBase/src/MediaBaseMakePtr.cpp @@ -0,0 +1,37 @@ +/* + * 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 "MediaBaseImpl.h" +std::shared_ptr &MediaBaseMakePtr::GetInstance(std::shared_ptr *impl) +{ + static auto instance = std::make_shared(); + 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 MediaBaseMakePtr::CreateMediaBase(void) +{ + LogInfo("MediaBaseMakePtr::CreateMediaBase.\n"); + auto tmp = std::make_shared(); + return tmp; +} \ No newline at end of file diff --git a/utils/MediaBase/src/MediaBaseMakePtr.h b/utils/MediaBase/src/MediaBaseMakePtr.h new file mode 100644 index 0000000..5f954aa --- /dev/null +++ b/utils/MediaBase/src/MediaBaseMakePtr.h @@ -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 +class MediaBaseMakePtr +{ +public: + MediaBaseMakePtr() = default; + virtual ~MediaBaseMakePtr() = default; + static std::shared_ptr &GetInstance(std::shared_ptr *impl = nullptr); + virtual std::shared_ptr CreateMediaBase(void); +}; +#endif \ No newline at end of file From a17cc5e307f5e93967fd801c66488dcc4c75bdf1 Mon Sep 17 00:00:00 2001 From: Fancy code <258828110.@qq.com> Date: Tue, 18 Jun 2024 19:51:27 +0800 Subject: [PATCH 04/11] Backup. --- test/application/HuntingCamera/CMakeLists.txt | 6 -- test/middleware/AppManager/CMakeLists.txt | 6 -- test/middleware/HuntingUpgrade/CMakeLists.txt | 6 -- test/middleware/IpcConfig/CMakeLists.txt | 6 -- test/middleware/McuManager/CMakeLists.txt | 6 -- test/middleware/MediaManager/CMakeLists.txt | 6 -- .../MediaManager/src/MediaManagerTest.cpp | 49 +++++++++++++++ .../MediaManager/src/MediaManagerTest.h | 46 ++++++++++++++ .../MediaManager/src/MediaManager_Test.cpp | 60 +------------------ .../tool/src/MediaManagerMock.cpp | 6 +- .../MediaManager/tool/src/MediaManagerMock.h | 9 ++- utils/MediaBase/src/IMediaBase.cpp | 5 ++ utils/MediaBase/src/MediaBase.cpp | 4 ++ utils/MediaBase/src/MediaBaseImpl.cpp | 15 ++++- utils/MediaBase/src/MediaBaseMakePtr.cpp | 2 + 15 files changed, 129 insertions(+), 103 deletions(-) create mode 100644 test/middleware/MediaManager/src/MediaManagerTest.cpp create mode 100644 test/middleware/MediaManager/src/MediaManagerTest.h diff --git a/test/application/HuntingCamera/CMakeLists.txt b/test/application/HuntingCamera/CMakeLists.txt index 3762933..75cc4c2 100644 --- a/test/application/HuntingCamera/CMakeLists.txt +++ b/test/application/HuntingCamera/CMakeLists.txt @@ -62,12 +62,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( diff --git a/test/middleware/AppManager/CMakeLists.txt b/test/middleware/AppManager/CMakeLists.txt index 42ef272..6546770 100644 --- a/test/middleware/AppManager/CMakeLists.txt +++ b/test/middleware/AppManager/CMakeLists.txt @@ -53,12 +53,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( diff --git a/test/middleware/HuntingUpgrade/CMakeLists.txt b/test/middleware/HuntingUpgrade/CMakeLists.txt index 85d7478..77999f0 100644 --- a/test/middleware/HuntingUpgrade/CMakeLists.txt +++ b/test/middleware/HuntingUpgrade/CMakeLists.txt @@ -50,12 +50,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( diff --git a/test/middleware/IpcConfig/CMakeLists.txt b/test/middleware/IpcConfig/CMakeLists.txt index 97e7ffd..8d64a7e 100644 --- a/test/middleware/IpcConfig/CMakeLists.txt +++ b/test/middleware/IpcConfig/CMakeLists.txt @@ -51,12 +51,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( diff --git a/test/middleware/McuManager/CMakeLists.txt b/test/middleware/McuManager/CMakeLists.txt index 408458d..47470dc 100644 --- a/test/middleware/McuManager/CMakeLists.txt +++ b/test/middleware/McuManager/CMakeLists.txt @@ -59,12 +59,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( diff --git a/test/middleware/MediaManager/CMakeLists.txt b/test/middleware/MediaManager/CMakeLists.txt index 647cba2..29196dc 100644 --- a/test/middleware/MediaManager/CMakeLists.txt +++ b/test/middleware/MediaManager/CMakeLists.txt @@ -52,12 +52,6 @@ add_custom_target( -p ${PLATFORM_PATH}/cmake-shell WORKING_DIRECTORY ${TEST_SOURCE_PATH}/middleware/MediaManager ) -add_custom_command( - TARGET ${TARGET_NAME} - PRE_BUILD - COMMAND make MediaManagerTest_code_check - WORKING_DIRECTORY ${PLATFORM_PATH}/cmake-shell/ -) file(GLOB_RECURSE HEADER_FILES *.h) add_custom_target( diff --git a/test/middleware/MediaManager/src/MediaManagerTest.cpp b/test/middleware/MediaManager/src/MediaManagerTest.cpp new file mode 100644 index 0000000..5c29480 --- /dev/null +++ b/test/middleware/MediaManager/src/MediaManagerTest.cpp @@ -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 camera = HalTestTool::MakeCameraHalTest(CameraType::MAIN_CAMERA); + mAllCamerasMock[CameraType::MAIN_CAMERA] = camera; +} +void MediaManagerTest::DestroyAllCamerasMock(void) +{ + mAllCamerasMock.clear(); +} \ No newline at end of file diff --git a/test/middleware/MediaManager/src/MediaManagerTest.h b/test/middleware/MediaManager/src/MediaManagerTest.h new file mode 100644 index 0000000..d2985b7 --- /dev/null +++ b/test/middleware/MediaManager/src/MediaManagerTest.h @@ -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 +#include +#include +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> mAllCamerasMock; +}; +#endif \ No newline at end of file diff --git a/test/middleware/MediaManager/src/MediaManager_Test.cpp b/test/middleware/MediaManager/src/MediaManager_Test.cpp index 720b9ec..ff3c19d 100644 --- a/test/middleware/MediaManager/src/MediaManager_Test.cpp +++ b/test/middleware/MediaManager/src/MediaManager_Test.cpp @@ -16,62 +16,13 @@ #include "HalTestTool.h" #include "ILog.h" #include "IMediaManager.h" +#include "MediaManagerTest.h" #include "MediaManagerTestTool.h" #include #include #include -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 camera = HalTestTool::MakeCameraHalTest(CameraType::MAIN_CAMERA); - mAllCamerasMock[CameraType::MAIN_CAMERA] = camera; - } - void DestroyAllCamerasMock(void) - { - mAllCamerasMock.clear(); - } - -protected: - // const AppParam mAppParam; - std::map> 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 \ No newline at end of file +} // namespace MediaManager_Test \ No newline at end of file diff --git a/test/middleware/MediaManager/tool/src/MediaManagerMock.cpp b/test/middleware/MediaManager/tool/src/MediaManagerMock.cpp index da8e84e..fab0fb5 100644 --- a/test/middleware/MediaManager/tool/src/MediaManagerMock.cpp +++ b/test/middleware/MediaManager/tool/src/MediaManagerMock.cpp @@ -14,16 +14,16 @@ */ #include "MediaManagerMock.h" #include "ILog.h" -StatusCode MediaManagerTest::SetMediaMonitor(std::shared_ptr &monitor) +StatusCode MediaManagerMockBase::SetMediaMonitor(std::shared_ptr &monitor) { - LogInfo("MediaManagerTest::SetMediaMonitor\n"); + LogInfo("MediaManagerMockBase::SetMediaMonitor\n"); StatusCode code = SetMediaMonitorTrace(monitor); if (StatusCodeEqual(code, "STATUS_CODE_VIRTUAL_FUNCTION")) { return MediaManagerImpl::SetMediaMonitor(monitor); } return code; } -const StatusCode MediaManagerTest::SetMediaMonitorTrace(std::shared_ptr &monitor) +const StatusCode MediaManagerMockBase::SetMediaMonitorTrace(std::shared_ptr &monitor) { LogInfo("SetMediaMonitorTrace::SetMediaMonitorTrace\n"); return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION); diff --git a/test/middleware/MediaManager/tool/src/MediaManagerMock.h b/test/middleware/MediaManager/tool/src/MediaManagerMock.h index 6b6fcd9..83ea285 100644 --- a/test/middleware/MediaManager/tool/src/MediaManagerMock.h +++ b/test/middleware/MediaManager/tool/src/MediaManagerMock.h @@ -16,18 +16,17 @@ #define MEDIA_MANAGER_MOCK_H #include "MediaManagerImpl.h" #include "MediaManagerTestTool.h" -class MediaManagerTest : public MediaManagerImpl +class MediaManagerMockBase : public MediaManagerImpl { public: - MediaManagerTest() = default; - virtual ~MediaManagerTest() = default; - // const StatusCode SetMediaMonitor(std::shared_ptr &monitor) override; + MediaManagerMockBase() = default; + virtual ~MediaManagerMockBase() = default; StatusCode SetMediaMonitor(std::shared_ptr &monitor) override; protected: virtual const StatusCode SetMediaMonitorTrace(std::shared_ptr &monitor); }; -class MediaManagerMock : public MediaManagerTest +class MediaManagerMock : public MediaManagerMockBase { public: MediaManagerMock() = default; diff --git a/utils/MediaBase/src/IMediaBase.cpp b/utils/MediaBase/src/IMediaBase.cpp index 7996ecb..2ff8e4e 100644 --- a/utils/MediaBase/src/IMediaBase.cpp +++ b/utils/MediaBase/src/IMediaBase.cpp @@ -14,8 +14,13 @@ */ #include "IMediaBase.h" #include "ILog.h" +#include "MediaBase.h" #include "MediaBaseMakePtr.h" +#include "StatusCode.h" +#include +#include #include +#include StatusCode IMediaBase::StartReadFile(const std::string &path) { LogWarning("STATUS_CODE_VIRTUAL_FUNCTION\n"); diff --git a/utils/MediaBase/src/MediaBase.cpp b/utils/MediaBase/src/MediaBase.cpp index cdf31fa..1fe934e 100644 --- a/utils/MediaBase/src/MediaBase.cpp +++ b/utils/MediaBase/src/MediaBase.cpp @@ -15,6 +15,10 @@ #include "MediaBase.h" #include "ILog.h" #include "IMediaBase.h" +#include "StatusCode.h" +#include +#include +#include void *ICreateMediaBase(const MediaHandleType type) { return NewIMediaBase(type); diff --git a/utils/MediaBase/src/MediaBaseImpl.cpp b/utils/MediaBase/src/MediaBaseImpl.cpp index 360b965..81af7b7 100644 --- a/utils/MediaBase/src/MediaBaseImpl.cpp +++ b/utils/MediaBase/src/MediaBaseImpl.cpp @@ -14,12 +14,17 @@ */ #include "MediaBaseImpl.h" #include "ILog.h" +#include "StatusCode.h" +#include +#include #ifdef __cplusplus extern "C" { #endif -#include +// #include +#include #include -#include +#include +// #include #ifdef __cplusplus } #endif @@ -32,6 +37,12 @@ StatusCode MediaBaseImpl::StartReadFile(const std::string &path) LogError("Couldn't open file: %s, result=%d\n", path.c_str(), result); return CreateStatusCode(STATUS_CODE_NOT_OK); } + // LogInfo("File: %s\n", pFormatCtx->filename); + // LogInfo("File format: %s\n", pFormatCtx->iformat->name); + // LogInfo("Duration: %ld\n", pFormatCtx->duration); + // for (int i = 0; i < pFormatCtx->nb_streams; i++) { + // LogInfo("stream codec_type = %d\n", pFormatCtx->streams[i]->codecpar->codec_type); + // } if (avformat_find_stream_info(pFormatCtx, nullptr) < 0) { LogError("Couldn't find stream information.\n"); return CreateStatusCode(STATUS_CODE_NOT_OK); diff --git a/utils/MediaBase/src/MediaBaseMakePtr.cpp b/utils/MediaBase/src/MediaBaseMakePtr.cpp index 4c14267..5c3bf7e 100644 --- a/utils/MediaBase/src/MediaBaseMakePtr.cpp +++ b/utils/MediaBase/src/MediaBaseMakePtr.cpp @@ -14,7 +14,9 @@ */ #include "MediaBaseMakePtr.h" #include "ILog.h" +#include "IMediaBase.h" #include "MediaBaseImpl.h" +#include std::shared_ptr &MediaBaseMakePtr::GetInstance(std::shared_ptr *impl) { static auto instance = std::make_shared(); From 9c851492d35ac20fc8f2150fc978d8faa0080f99 Mon Sep 17 00:00:00 2001 From: Fancy code <258828110.@qq.com> Date: Tue, 18 Jun 2024 20:29:09 +0800 Subject: [PATCH 05/11] Imporve:include cleaner. --- test/hal/tool/src/CameraHalMock.cpp | 4 +++- test/hal/tool/src/HalCppMock.cpp | 6 ++++++ test/hal/tool/src/HalMakePtrTest.cpp | 8 ++++++++ test/hal/tool/src/HalTestTool.cpp | 12 +++++++++++- test/hal/tool/src/KeyControlMock.cpp | 9 +++++++++ test/hal/tool/src/LedControlMock.cpp | 7 +++++++ test/hal/tool/src/SdCardHalMock.cpp | 8 +++++++- test/hal/tool/src/WifiHalMock.cpp | 4 ++-- 8 files changed, 53 insertions(+), 5 deletions(-) diff --git a/test/hal/tool/src/CameraHalMock.cpp b/test/hal/tool/src/CameraHalMock.cpp index 2531b05..bb868ea 100644 --- a/test/hal/tool/src/CameraHalMock.cpp +++ b/test/hal/tool/src/CameraHalMock.cpp @@ -13,8 +13,10 @@ * limitations under the License. */ #include "CameraHalMock.h" -#include "HalCppMock.h" +#include "IHalCpp.h" #include "ILog.h" +#include "StatusCode.h" +#include CameraHalTest::CameraHalTest(const CameraType &cameraType) : mCameraType(cameraType) { } diff --git a/test/hal/tool/src/HalCppMock.cpp b/test/hal/tool/src/HalCppMock.cpp index 0c17208..a6f6ba7 100644 --- a/test/hal/tool/src/HalCppMock.cpp +++ b/test/hal/tool/src/HalCppMock.cpp @@ -13,7 +13,13 @@ * limitations under the License. */ #include "HalCppMock.h" +#include "HalCpp.h" +#include "IHalCpp.h" #include "ILog.h" +#include "StatusCode.h" +#include +#include +#include StatusCode HalCppTest::GetAllLeds(std::map> &allLeds) { LogInfo("HalCppTest::GetAllLeds\n"); diff --git a/test/hal/tool/src/HalMakePtrTest.cpp b/test/hal/tool/src/HalMakePtrTest.cpp index 2e6454a..2ec6d8d 100644 --- a/test/hal/tool/src/HalMakePtrTest.cpp +++ b/test/hal/tool/src/HalMakePtrTest.cpp @@ -13,7 +13,15 @@ * limitations under the License. */ #include "HalMakePtrTest.h" +#include "HalCppMock.h" +#include "HalMakePtr.h" +#include "IHalCpp.h" #include "ILog.h" +#include "KeyControl.h" +#include "SdCardHalMock.h" +#include "StatusCode.h" +#include +#include void OverrideHalMakePtrObject(std::shared_ptr &halMock, std::shared_ptr &sdCardHalMock) { std::shared_ptr impl = std::make_shared(); diff --git a/test/hal/tool/src/HalTestTool.cpp b/test/hal/tool/src/HalTestTool.cpp index 0db7f51..28929c0 100644 --- a/test/hal/tool/src/HalTestTool.cpp +++ b/test/hal/tool/src/HalTestTool.cpp @@ -14,15 +14,25 @@ */ #include "HalTestTool.h" #include "CameraHalMock.h" +#include "GtestUsing.h" #include "HalCppMock.h" +#include "HalMakePtr.h" #include "HalMakePtrTest.h" +#include "IHalCpp.h" #include "ILog.h" #include "KeyControl.h" #include "KeyControlMock.h" +#include "LedControl.h" #include "LedControlMock.h" +#include "LinuxApiMock.h" #include "SdCardHalMock.h" +#include "StatusCode.h" #include "WifiHalMock.h" -#include +#include +#include +#include +#include +#include void HalTestTool::Init(void) { mHalMock = std::make_shared(); diff --git a/test/hal/tool/src/KeyControlMock.cpp b/test/hal/tool/src/KeyControlMock.cpp index 6bb42aa..787b641 100644 --- a/test/hal/tool/src/KeyControlMock.cpp +++ b/test/hal/tool/src/KeyControlMock.cpp @@ -13,7 +13,16 @@ * limitations under the License. */ #include "KeyControlMock.h" +#include "GtestUsing.h" +#include "IHalCpp.h" #include "ILog.h" +#include "KeyControl.h" +#include "StatusCode.h" +#include +#include +#include +#include +#include unsigned int KeyControlTest::GetStatusCheckPeriodMs(void) { return PERIPHERAL_CHECK_PERIOD_MS; diff --git a/test/hal/tool/src/LedControlMock.cpp b/test/hal/tool/src/LedControlMock.cpp index 87fb0de..0079f58 100644 --- a/test/hal/tool/src/LedControlMock.cpp +++ b/test/hal/tool/src/LedControlMock.cpp @@ -13,7 +13,14 @@ * limitations under the License. */ #include "LedControlMock.h" +#include "GtestUsing.h" +#include "IHalCpp.h" #include "ILog.h" +#include "LedControl.h" +#include "StatusCode.h" +#include +#include +#include LedControlTest::LedControlTest(const std::string &ledName) : mLedName(ledName) { } diff --git a/test/hal/tool/src/SdCardHalMock.cpp b/test/hal/tool/src/SdCardHalMock.cpp index d332901..847957d 100644 --- a/test/hal/tool/src/SdCardHalMock.cpp +++ b/test/hal/tool/src/SdCardHalMock.cpp @@ -13,7 +13,13 @@ * limitations under the License. */ #include "SdCardHalMock.h" -#include "ILog.h" +#include "GtestUsing.h" +// #include "ILog.h" +#include "LinuxApiMock.h" +#include +#include +#include +#include extern const char *SD_CARD_DEVICE; constexpr int FSTAT_SUCCESS = 0; constexpr int FILE_EXIST = 0; diff --git a/test/hal/tool/src/WifiHalMock.cpp b/test/hal/tool/src/WifiHalMock.cpp index ff1a404..e7fa428 100644 --- a/test/hal/tool/src/WifiHalMock.cpp +++ b/test/hal/tool/src/WifiHalMock.cpp @@ -12,5 +12,5 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -#include "HalCppMock.h" -#include "ILog.h" \ No newline at end of file +// #include "HalCppMock.h" +// #include "ILog.h" \ No newline at end of file From 79a55c01f610e7f5cc5ce58a0153ce70c9a9965f Mon Sep 17 00:00:00 2001 From: Fancy code <258828110.@qq.com> Date: Tue, 18 Jun 2024 23:49:14 +0800 Subject: [PATCH 06/11] Backup:ffmpeg test. --- hal/src/HalMakePtr.cpp | 7 +- hal/src/HalMakePtr.h | 10 +-- middleware/MediaManager/CMakeLists.txt | 6 -- middleware/MediaManager/src/SaveStream.cpp | 5 +- test/application/HuntingCamera/CMakeLists.txt | 1 + .../src_mock/HuntingCameraTest.cpp | 9 ++- test/hal/CMakeLists.txt | 1 + test/hal/tool/CMakeLists.txt | 3 +- test/hal/tool/include/HalTestTool.h | 1 + test/hal/tool/src/CameraHalMock.cpp | 75 ++++++++++++++++++- test/hal/tool/src/CameraHalMock.h | 22 +++++- test/hal/tool/src/HalMakePtrTest.cpp | 7 ++ test/hal/tool/src/HalMakePtrTest.h | 1 + test/hal/tool/src/HalTestTool.cpp | 14 +++- test/middleware/AppManager/CMakeLists.txt | 1 + test/middleware/DeviceManager/CMakeLists.txt | 7 +- test/middleware/MediaManager/CMakeLists.txt | 1 + utils/MediaBase/include/MediaBase.h | 3 + utils/MediaBase/src/IMediaBase.cpp | 10 +++ utils/MediaBase/src/IMediaBase.h | 2 + utils/MediaBase/src/MediaBase.cpp | 14 ++++ utils/MediaBase/src/MediaBaseImpl.cpp | 57 +++++++++++--- utils/MediaBase/src/MediaBaseImpl.h | 25 ++++++- utils/TcpModule/src/TcpServerImpl.cpp | 2 + 24 files changed, 232 insertions(+), 52 deletions(-) diff --git a/hal/src/HalMakePtr.cpp b/hal/src/HalMakePtr.cpp index 39636e9..d33fd38 100644 --- a/hal/src/HalMakePtr.cpp +++ b/hal/src/HalMakePtr.cpp @@ -89,10 +89,11 @@ StatusCode HalMakePtr::CreateWifiHal(std::shared_ptr &impl) impl = std::make_shared(); return CreateStatusCode(STATUS_CODE_OK); } -StatusCode HalMakePtr::CreateCameraHal(std::shared_ptr &impl) +std::shared_ptr 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(); + return camera; } StatusCode HalMakePtr::CreateSdCardHal(std::shared_ptr &impl) { diff --git a/hal/src/HalMakePtr.h b/hal/src/HalMakePtr.h index 6001ed2..4bcee05 100644 --- a/hal/src/HalMakePtr.h +++ b/hal/src/HalMakePtr.h @@ -26,18 +26,10 @@ public: HalMakePtr() = default; virtual ~HalMakePtr() = default; static std::shared_ptr &GetInstance(std::shared_ptr *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 &impl); virtual StatusCode CreateWifiHal(std::shared_ptr &impl); - virtual StatusCode CreateCameraHal(std::shared_ptr &impl); + virtual std::shared_ptr CreateCameraHal(const CameraType &type); virtual StatusCode CreateSdCardHal(std::shared_ptr &impl); virtual StatusCode CreateAllKeysHal(std::vector> &keys); virtual StatusCode CreateAllLedsHal(std::vector> &leds); diff --git a/middleware/MediaManager/CMakeLists.txt b/middleware/MediaManager/CMakeLists.txt index 22e46e2..f1884ce 100644 --- a/middleware/MediaManager/CMakeLists.txt +++ b/middleware/MediaManager/CMakeLists.txt @@ -40,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 diff --git a/middleware/MediaManager/src/SaveStream.cpp b/middleware/MediaManager/src/SaveStream.cpp index 81b07f7..2de25cc 100644 --- a/middleware/MediaManager/src/SaveStream.cpp +++ b/middleware/MediaManager/src/SaveStream.cpp @@ -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("ddddddddddddddddddddddddddddddddddddddGet video stream, length: %d\n", length); size_t writeLength = fwrite(stream, 1, length, mFileVideo); if (writeLength != length) { LogError("Write video stream failed.\n"); diff --git a/test/application/HuntingCamera/CMakeLists.txt b/test/application/HuntingCamera/CMakeLists.txt index 75cc4c2..1688924 100644 --- a/test/application/HuntingCamera/CMakeLists.txt +++ b/test/application/HuntingCamera/CMakeLists.txt @@ -32,6 +32,7 @@ link_directories( ${LIBS_OUTPUT_PATH} ${EXTERNAL_LIBS_OUTPUT_PATH} ${EXTERNAL_LIBS_OUTPUT_PATH}/libconfig/lib + ${EXTERNAL_LIBS_OUTPUT_PATH}/ffmpeg/lib ) aux_source_directory(. SRC_FILES_MAIN) diff --git a/test/application/HuntingCamera/src_mock/HuntingCameraTest.cpp b/test/application/HuntingCamera/src_mock/HuntingCameraTest.cpp index 579e0ad..ecd026b 100644 --- a/test/application/HuntingCamera/src_mock/HuntingCameraTest.cpp +++ b/test/application/HuntingCamera/src_mock/HuntingCameraTest.cpp @@ -40,10 +40,10 @@ void HuntingCameraTest::TearDownTestCase() } void HuntingCameraTest::SetUp() { - CreateAllCamerasMcok(); std::shared_ptr mainThread = std::make_shared(); MainThread::GetInstance(&mainThread); HalTestTool::Init(); + CreateAllCamerasMcok(); CreateAllKeysMcok(); CreateAllLedsMcok(); AppManagerTestTool::Init(); @@ -68,13 +68,13 @@ void HuntingCameraTest::TearDown() std::shared_ptr test = std::make_shared(); LinuxApiMock::GetInstance(&test); McuManagerTestTool::UnInit(); - MainThread::GetInstance()->UnInit(); - std::shared_ptr mainThread = std::make_shared(); - MainThread::GetInstance(&mainThread); DeviceManagerTestTool::UnInit(); DestroyAllCamerasMock(); DestroyAllKeysMock(); DestroyAllLedsMock(); + MainThread::GetInstance()->UnInit(); + std::shared_ptr mainThread = std::make_shared(); + 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) diff --git a/test/hal/CMakeLists.txt b/test/hal/CMakeLists.txt index 0391ab8..74b6cca 100644 --- a/test/hal/CMakeLists.txt +++ b/test/hal/CMakeLists.txt @@ -12,6 +12,7 @@ include_directories( link_directories( ${LIBS_OUTPUT_PATH} ${EXTERNAL_LIBS_OUTPUT_PATH} + ${EXTERNAL_LIBS_OUTPUT_PATH}/ffmpeg/lib ) aux_source_directory(. SRC_FILES) diff --git a/test/hal/tool/CMakeLists.txt b/test/hal/tool/CMakeLists.txt index b35324d..49ac463 100644 --- a/test/hal/tool/CMakeLists.txt +++ b/test/hal/tool/CMakeLists.txt @@ -10,6 +10,7 @@ include_directories( ${UTILS_SOURCE_PATH}/Log/include ${UTILS_SOURCE_PATH}/KeyControl/include ${UTILS_SOURCE_PATH}/LedControl/include + ${UTILS_SOURCE_PATH}/MediaBase/include ${HAL_SOURCE_PATH}/src ${TEST_SOURCE_PATH} ${TEST_SOURCE_PATH}/utils/LinuxApiMock/include @@ -21,7 +22,7 @@ include_directories( aux_source_directory(./src TEST_TOOL_SRC_FILES) set(TEST_TOOL_TARGET HalTestTool) add_library(${TEST_TOOL_TARGET} STATIC ${TEST_TOOL_SRC_FILES}) -target_link_libraries(${TEST_TOOL_TARGET} Hal KeyControl LedControl LinuxApiMock Log) +target_link_libraries(${TEST_TOOL_TARGET} MediaBase Hal KeyControl LedControl LinuxApiMock Log) add_custom_target( HalTestTool_code_check diff --git a/test/hal/tool/include/HalTestTool.h b/test/hal/tool/include/HalTestTool.h index 0235b27..52d619e 100644 --- a/test/hal/tool/include/HalTestTool.h +++ b/test/hal/tool/include/HalTestTool.h @@ -76,6 +76,7 @@ public: static std::shared_ptr MakeKeyHalTest(const std::string &keyName); static std::shared_ptr MakeLedHalTest(const std::string &ledName); static std::shared_ptr MakeCameraHalTest(const CameraType &type); + static void DestroyCameraHalTest(std::map> &allCamerasMock); private: std::shared_ptr mHalMock; diff --git a/test/hal/tool/src/CameraHalMock.cpp b/test/hal/tool/src/CameraHalMock.cpp index bb868ea..7bce911 100644 --- a/test/hal/tool/src/CameraHalMock.cpp +++ b/test/hal/tool/src/CameraHalMock.cpp @@ -15,11 +15,42 @@ #include "CameraHalMock.h" #include "IHalCpp.h" #include "ILog.h" +#include "MediaBase.h" #include "StatusCode.h" #include -CameraHalTest::CameraHalTest(const CameraType &cameraType) : mCameraType(cameraType) +CameraHalTest::CameraHalTest(const CameraType &cameraType) + : mCameraType(cameraType), mReadH264File(nullptr), mTaskRuning(false) { } +void CameraHalTest::Init(void) +{ + CameraHal::Init(); + if (nullptr == mReadH264File) { + ReadVideoFileCallback callback = [](const void *stream, const unsigned int length, void *context) -> void { + ((CameraHalTest *)context)->ReadDataFromH264File(stream, length); + }; + mReadH264File = ICreateMediaBase(MEDIA_HANDLE_TYPE_READ_H264); + ISetReadVideoCallback(mReadH264File, callback, this); + } +} +void CameraHalTest::UnInit(void) +{ + CameraHal::UnInit(); + mTaskRuning = false; + mCv.notify_one(); + if (mTaskTimerThread.joinable()) { + mTaskTimerThread.join(); + } + LogInfo( + "====================================================================9999999999999999999999 000000000000000\n"); + if (mReadH264File) { + ISetReadVideoCallback(mReadH264File, nullptr, nullptr); + IStopReadFile(mReadH264File); + IMediaBaseFree(mReadH264File); + LogInfo("====================================================================9999999999999999999999\n"); + mReadH264File = nullptr; + } +} void CameraHalTest::SetCameraMonitor(std::shared_ptr &monitor) { LogInfo("CameraHalTest::SetCameraMonitor.\n"); @@ -36,17 +67,53 @@ void CameraHalTest::SetCameraMonitorTrace(std::shared_ptr &mo StatusCode CameraHalTest::StartSingleTask(const CameraTaskParam ¶m) { LogInfo("CameraHalTest::StartSingleTask\n"); + auto taskTimerThread = [=](std::shared_ptr cameraHal) { + LogInfo("MockReportMediaStream start.\n"); + cameraHal->MockReportMediaStream(); + }; + std::shared_ptr cameraHal = std::dynamic_pointer_cast(CameraHal::shared_from_this()); + mTaskTimerThread = std::thread(taskTimerThread, cameraHal); StatusCode code = StartSingleTaskTrace(param); - // if (StatusCodeEqual(code, "STATUS_CODE_VIRTUAL_FUNCTION")) { - // return HalCpp::GetAllKeys(allKeys); - // } + if (StatusCodeEqual(code, "STATUS_CODE_VIRTUAL_FUNCTION")) { + return CameraHal::StartSingleTask(param); + } return code; } +StatusCode CameraHalTest::StopTask(void) +{ + mTaskRuning = false; + if (nullptr != mReadH264File) { + IStopReadFile(mReadH264File); + } + mCv.notify_one(); + return CameraHal::StopTask(); +} StatusCode CameraHalTest::StartSingleTaskTrace(const CameraTaskParam ¶m) { LogInfo("CameraHalTest::StartSingleTaskTrace\n"); return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION); } +void CameraHalTest::MockReportMediaStream(void) +{ + mTaskRuning = true; + if (nullptr != mReadH264File) { + IStartReadFile(mReadH264File, TEST_SOURCE_PATH "/support_test/video.h264"); + } + while (mTaskRuning) { + std::unique_lock lock(mMutex); + mCv.wait(lock, [&] { + return !mTaskRuning; + }); + /** + * @brief If the recording time is over, you need to stop the recording timer here. + */ + mTaskRuning = false; + } +} +void CameraHalTest::ReadDataFromH264File(const void *stream, const unsigned int length) +{ + GetVideoStream(stream, length, 0); +} CameraHalMock::CameraHalMock(const CameraType &cameraType) : CameraHalTest(cameraType) { } diff --git a/test/hal/tool/src/CameraHalMock.h b/test/hal/tool/src/CameraHalMock.h index c8144ba..2c1d7dd 100644 --- a/test/hal/tool/src/CameraHalMock.h +++ b/test/hal/tool/src/CameraHalMock.h @@ -14,24 +14,40 @@ */ #ifndef CAMERA_HAL_MOCK_H #define CAMERA_HAL_MOCK_H +#include "CameraHal.h" #include "HalCpp.h" #include "HalTestTool.h" -class CameraHalTest : public VCameraHal +#include +#include +#include +class CameraHalTest : public CameraHal { public: CameraHalTest(const CameraType &cameraType); virtual ~CameraHalTest() = default; + void Init(void) override; + void UnInit(void) override; + +protected: void SetCameraMonitor(std::shared_ptr &monitor) override; StatusCode StartSingleTask(const CameraTaskParam ¶m) override; - -private: + StatusCode StopTask(void) override; virtual void SetCameraMonitorTrace(std::shared_ptr &monitor); virtual StatusCode StartSingleTaskTrace(const CameraTaskParam ¶m); +private: + void MockReportMediaStream(void); + void ReadDataFromH264File(const void *stream, const unsigned int length); + protected: const CameraType mCameraType; std::weak_ptr mMonitor; std::shared_ptr mFastBootEvent; + void *mReadH264File; + std::mutex mMutex; + std::condition_variable mCv; + bool mTaskRuning; + std::thread mTaskTimerThread; }; class CameraHalMock : public CameraHalTest { diff --git a/test/hal/tool/src/HalMakePtrTest.cpp b/test/hal/tool/src/HalMakePtrTest.cpp index 2ec6d8d..034a3cf 100644 --- a/test/hal/tool/src/HalMakePtrTest.cpp +++ b/test/hal/tool/src/HalMakePtrTest.cpp @@ -13,6 +13,7 @@ * limitations under the License. */ #include "HalMakePtrTest.h" +#include "CameraHalMock.h" #include "HalCppMock.h" #include "HalMakePtr.h" #include "IHalCpp.h" @@ -77,4 +78,10 @@ StatusCode HalMakePtrTest::CreateAllKeysHal(std::vector HalMakePtrTest::CreateCameraHal(const CameraType &type) +{ + auto camera = std::make_shared(type); + camera->Init(); + return camera; } \ No newline at end of file diff --git a/test/hal/tool/src/HalMakePtrTest.h b/test/hal/tool/src/HalMakePtrTest.h index 8cb2539..0e1e685 100644 --- a/test/hal/tool/src/HalMakePtrTest.h +++ b/test/hal/tool/src/HalMakePtrTest.h @@ -29,6 +29,7 @@ public: StatusCode CreateHalSharePtr(std::shared_ptr &impl) override; StatusCode CreateSdCardHal(std::shared_ptr &impl) override; StatusCode CreateAllKeysHal(std::vector> &keys) override; + std::shared_ptr CreateCameraHal(const CameraType &type) override; public: std::shared_ptr mHalCppMock; diff --git a/test/hal/tool/src/HalTestTool.cpp b/test/hal/tool/src/HalTestTool.cpp index 28929c0..4b3b2cc 100644 --- a/test/hal/tool/src/HalTestTool.cpp +++ b/test/hal/tool/src/HalTestTool.cpp @@ -378,6 +378,18 @@ std::shared_ptr HalTestTool::MakeLedHalTest(const std::string &ledName) } std::shared_ptr HalTestTool::MakeCameraHalTest(const CameraType &type) { - std::shared_ptr camera = std::make_shared(type); + std::shared_ptr camera = HalMakePtrTest::GetInstance()->CreateCameraHal(type); return camera; +} +void HalTestTool::DestroyCameraHalTest(std::map> &allCamerasMock) +{ + for (const auto &camera : allCamerasMock) { + std::shared_ptr impl = std::dynamic_pointer_cast(camera.second); + if (impl) { + impl->UnInit(); + } + else { + LogError("impl is null.\n"); + } + } } \ No newline at end of file diff --git a/test/middleware/AppManager/CMakeLists.txt b/test/middleware/AppManager/CMakeLists.txt index 6546770..8c285fd 100644 --- a/test/middleware/AppManager/CMakeLists.txt +++ b/test/middleware/AppManager/CMakeLists.txt @@ -25,6 +25,7 @@ include_directories( link_directories( ${LIBS_OUTPUT_PATH} ${EXTERNAL_LIBS_OUTPUT_PATH} + ${EXTERNAL_LIBS_OUTPUT_PATH}/ffmpeg/lib ) aux_source_directory(. SRC_FILES_MAIN) diff --git a/test/middleware/DeviceManager/CMakeLists.txt b/test/middleware/DeviceManager/CMakeLists.txt index 8cc9caf..4e97445 100644 --- a/test/middleware/DeviceManager/CMakeLists.txt +++ b/test/middleware/DeviceManager/CMakeLists.txt @@ -23,6 +23,7 @@ include_directories( link_directories( ${LIBS_OUTPUT_PATH} ${EXTERNAL_LIBS_OUTPUT_PATH} + ${EXTERNAL_LIBS_OUTPUT_PATH}/ffmpeg/lib ) aux_source_directory(. SRC_FILES_MAIN) @@ -51,12 +52,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( diff --git a/test/middleware/MediaManager/CMakeLists.txt b/test/middleware/MediaManager/CMakeLists.txt index 29196dc..486fbc3 100644 --- a/test/middleware/MediaManager/CMakeLists.txt +++ b/test/middleware/MediaManager/CMakeLists.txt @@ -24,6 +24,7 @@ include_directories( link_directories( ${LIBS_OUTPUT_PATH} ${EXTERNAL_LIBS_OUTPUT_PATH} + ${EXTERNAL_LIBS_OUTPUT_PATH}/ffmpeg/lib ) aux_source_directory(. SRC_FILES_MAIN) diff --git a/utils/MediaBase/include/MediaBase.h b/utils/MediaBase/include/MediaBase.h index 2746f0c..7ffda1b 100644 --- a/utils/MediaBase/include/MediaBase.h +++ b/utils/MediaBase/include/MediaBase.h @@ -24,10 +24,13 @@ enum MediaHandleType MEDIA_HANDLE_TYPE_READ_G711, MEDIA_HANDLE_TYPE_END }; +typedef void (*ReadVideoFileCallback)(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 IStartReadFile(void *object, const char *path); +StatusCode IStopReadFile(void *object); void IMediaBaseFree(void *object); #ifdef __cplusplus } diff --git a/utils/MediaBase/src/IMediaBase.cpp b/utils/MediaBase/src/IMediaBase.cpp index 2ff8e4e..6f15ddb 100644 --- a/utils/MediaBase/src/IMediaBase.cpp +++ b/utils/MediaBase/src/IMediaBase.cpp @@ -26,6 +26,16 @@ 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); +} static const char *MEDIA_BASE_NAME = "media_adapter"; const char *GetMediaBaseModuleName(void) { diff --git a/utils/MediaBase/src/IMediaBase.h b/utils/MediaBase/src/IMediaBase.h index d6a93f0..8265a4d 100644 --- a/utils/MediaBase/src/IMediaBase.h +++ b/utils/MediaBase/src/IMediaBase.h @@ -22,6 +22,8 @@ public: IMediaBase() = default; virtual ~IMediaBase() = default; virtual StatusCode StartReadFile(const std::string &path); + virtual StatusCode StopReadFile(void); + virtual StatusCode SetReadVideoCallback(ReadVideoFileCallback callback, void *context); }; typedef struct media_base_header { diff --git a/utils/MediaBase/src/MediaBase.cpp b/utils/MediaBase/src/MediaBase.cpp index 1fe934e..b12ace3 100644 --- a/utils/MediaBase/src/MediaBase.cpp +++ b/utils/MediaBase/src/MediaBase.cpp @@ -35,6 +35,13 @@ static bool ObjectCheck(void *object) } return true; } +StatusCode ISetReadVideoCallback(void *object, ReadVideoFileCallback callback, void *context) +{ + if (ObjectCheck(object) == true) { + return (*(std::shared_ptr *)object)->SetReadVideoCallback(callback, context); + } + return CreateStatusCode(STATUS_CODE_OK); +} StatusCode IStartReadFile(void *object, const char *path) { if (ObjectCheck(object) == true) { @@ -42,6 +49,13 @@ StatusCode IStartReadFile(void *object, const char *path) } return CreateStatusCode(STATUS_CODE_OK); } +StatusCode IStopReadFile(void *object) +{ + if (ObjectCheck(object) == true) { + return (*(std::shared_ptr *)object)->StopReadFile(); + } + return CreateStatusCode(STATUS_CODE_OK); +} void IMediaBaseFree(void *object) { if (ObjectCheck(object) == true) { diff --git a/utils/MediaBase/src/MediaBaseImpl.cpp b/utils/MediaBase/src/MediaBaseImpl.cpp index 81af7b7..f19a231 100644 --- a/utils/MediaBase/src/MediaBaseImpl.cpp +++ b/utils/MediaBase/src/MediaBaseImpl.cpp @@ -28,6 +28,9 @@ extern "C" { #ifdef __cplusplus } #endif +MediaBaseImpl::MediaBaseImpl() : mReadVideoCallback(nullptr), mReadVideoCallbackContext(nullptr), mTaskRuning(false) +{ +} StatusCode MediaBaseImpl::StartReadFile(const std::string &path) { InitFfmpeg(); @@ -58,18 +61,26 @@ StatusCode MediaBaseImpl::StartReadFile(const std::string &path) LogError("Didn't find a video stream.\n"); return CreateStatusCode(STATUS_CODE_NOT_OK); } - AVPacket packet; - // av_new_packet(&packet, AV_INPUT_BUFFER_MIN_SIZE); - while (av_read_frame(pFormatCtx, &packet) >= 0) { - // 检查数据包是否属于视频流 - if (packet.stream_index == video_stream_index) { - LogInfo("Frame data address: %p, length: %zu\n", packet.data, packet.size); - } - // 释放数据包 - av_packet_unref(&packet); + auto taskTimerThread = [=](std::shared_ptr media) { + LogInfo("ReadFileThread start.\n"); + media->ReadFileThread(pFormatCtx, video_stream_index); + }; + std::shared_ptr 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(); } - - avformat_close_input(&pFormatCtx); + return CreateStatusCode(STATUS_CODE_OK); +} +StatusCode MediaBaseImpl::SetReadVideoCallback(ReadVideoFileCallback callback, void *context) +{ + mReadVideoCallback = callback; + mReadVideoCallbackContext = context; return CreateStatusCode(STATUS_CODE_OK); } void MediaBaseImpl::InitFfmpeg(void) @@ -77,4 +88,28 @@ void MediaBaseImpl::InitFfmpeg(void) } void MediaBaseImpl::UnInitFfmpeg(void) { +} +void MediaBaseImpl::ReadFileThread(AVFormatContext *pFormatCtx, int video_stream_index) +{ + mTaskRuning = true; + AVPacket packet; + // av_new_packet(&packet, AV_INPUT_BUFFER_MIN_SIZE); + while (av_read_frame(pFormatCtx, &packet) >= 0) { + if (nullptr == mReadVideoCallback) { + continue; + } + if (false == mTaskRuning) { + break; + } + // 检查数据包是否属于视频流 + if (packet.stream_index == video_stream_index) { + // LogInfo("Frame data address: %p, length: %zu\n", packet.data, packet.size); + mReadVideoCallback(packet.data, packet.size, mReadVideoCallbackContext); + } + // 释放数据包 + av_packet_unref(&packet); + } + + avformat_close_input(&pFormatCtx); + LogInfo("==============================================================================\n"); } \ No newline at end of file diff --git a/utils/MediaBase/src/MediaBaseImpl.h b/utils/MediaBase/src/MediaBaseImpl.h index 0ac2860..8901427 100644 --- a/utils/MediaBase/src/MediaBaseImpl.h +++ b/utils/MediaBase/src/MediaBaseImpl.h @@ -15,15 +15,36 @@ #ifndef MEDIA_BASE_IMPL_H #define MEDIA_BASE_IMPL_H #include "IMediaBase.h" -class MediaBaseImpl : public IMediaBase +#ifdef __cplusplus +extern "C" { +#endif +// #include +#include +#include +#include +// #include +#ifdef __cplusplus +} +#endif +#include +class MediaBaseImpl : public IMediaBase, public std::enable_shared_from_this { public: - MediaBaseImpl() = default; + MediaBaseImpl(); virtual ~MediaBaseImpl() = default; StatusCode StartReadFile(const std::string &path) override; + StatusCode StopReadFile(void) override; + StatusCode SetReadVideoCallback(ReadVideoFileCallback callback, void *context) override; private: void InitFfmpeg(void); void UnInitFfmpeg(void); + void ReadFileThread(AVFormatContext *pFormatCtx, int video_stream_index); + +private: + ReadVideoFileCallback mReadVideoCallback; + void *mReadVideoCallbackContext; + bool mTaskRuning; + std::thread mTaskTimerThread; }; #endif \ No newline at end of file diff --git a/utils/TcpModule/src/TcpServerImpl.cpp b/utils/TcpModule/src/TcpServerImpl.cpp index 7455c03..d82bdf1 100644 --- a/utils/TcpModule/src/TcpServerImpl.cpp +++ b/utils/TcpModule/src/TcpServerImpl.cpp @@ -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)); From ace338490597d38d1f370b34f0bb1808033aebf6 Mon Sep 17 00:00:00 2001 From: Fancy code <258828110.@qq.com> Date: Wed, 19 Jun 2024 10:18:53 +0800 Subject: [PATCH 07/11] Mock h264 stream. --- application/HuntingCamera/CMakeLists.txt | 6 ------ hal/src/CameraHal.cpp | 2 ++ middleware/MediaManager/src/SaveStream.cpp | 2 +- test/hal/tool/src/CameraHalMock.cpp | 4 +--- test/hal/tool/src/HalTestTool.cpp | 2 +- utils/MediaBase/src/MediaBaseImpl.cpp | 16 +++++++++++++--- 6 files changed, 18 insertions(+), 14 deletions(-) diff --git a/application/HuntingCamera/CMakeLists.txt b/application/HuntingCamera/CMakeLists.txt index 0727975..a402e6b 100644 --- a/application/HuntingCamera/CMakeLists.txt +++ b/application/HuntingCamera/CMakeLists.txt @@ -43,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 diff --git a/hal/src/CameraHal.cpp b/hal/src/CameraHal.cpp index 5a5bc0f..c5ae1c7 100644 --- a/hal/src/CameraHal.cpp +++ b/hal/src/CameraHal.cpp @@ -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); } diff --git a/middleware/MediaManager/src/SaveStream.cpp b/middleware/MediaManager/src/SaveStream.cpp index 2de25cc..fffeb4c 100644 --- a/middleware/MediaManager/src/SaveStream.cpp +++ b/middleware/MediaManager/src/SaveStream.cpp @@ -39,7 +39,7 @@ void SaveStream::UnInit(void) void SaveStream::GetVideoStream(const void *stream, const unsigned int &length, const unsigned long long &timeStamp) { if (mFileVideo) { - LogInfo("ddddddddddddddddddddddddddddddddddddddGet video stream, length: %d\n", length); + // 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"); diff --git a/test/hal/tool/src/CameraHalMock.cpp b/test/hal/tool/src/CameraHalMock.cpp index 7bce911..b8e124a 100644 --- a/test/hal/tool/src/CameraHalMock.cpp +++ b/test/hal/tool/src/CameraHalMock.cpp @@ -27,6 +27,7 @@ void CameraHalTest::Init(void) CameraHal::Init(); if (nullptr == mReadH264File) { ReadVideoFileCallback callback = [](const void *stream, const unsigned int length, void *context) -> void { + // LogInfo("CameraHalTest::ReadVideoFileCallback.\n"); ((CameraHalTest *)context)->ReadDataFromH264File(stream, length); }; mReadH264File = ICreateMediaBase(MEDIA_HANDLE_TYPE_READ_H264); @@ -41,13 +42,10 @@ void CameraHalTest::UnInit(void) if (mTaskTimerThread.joinable()) { mTaskTimerThread.join(); } - LogInfo( - "====================================================================9999999999999999999999 000000000000000\n"); if (mReadH264File) { ISetReadVideoCallback(mReadH264File, nullptr, nullptr); IStopReadFile(mReadH264File); IMediaBaseFree(mReadH264File); - LogInfo("====================================================================9999999999999999999999\n"); mReadH264File = nullptr; } } diff --git a/test/hal/tool/src/HalTestTool.cpp b/test/hal/tool/src/HalTestTool.cpp index 4b3b2cc..d8db9cd 100644 --- a/test/hal/tool/src/HalTestTool.cpp +++ b/test/hal/tool/src/HalTestTool.cpp @@ -345,7 +345,7 @@ void HalTestTool::InitCamerasMock(std::shared_ptr &vMock) EXPECT_CALL(*mock.get(), SetCameraMonitorTrace(_)).Times(USER_SHOULD_SET_CAMERA_MONITER); EXPECT_CALL(*mock.get(), StartSingleTaskTrace(_)) .Times(AnyNumber()) - .WillRepeatedly(DoAll(Return(CreateStatusCode(STATUS_CODE_OK)))); + .WillRepeatedly(DoAll(Return(CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION)))); } void HalTestTool::MockSdCardRemove(std::shared_ptr &mock) { diff --git a/utils/MediaBase/src/MediaBaseImpl.cpp b/utils/MediaBase/src/MediaBaseImpl.cpp index f19a231..2468a28 100644 --- a/utils/MediaBase/src/MediaBaseImpl.cpp +++ b/utils/MediaBase/src/MediaBaseImpl.cpp @@ -92,24 +92,34 @@ void MediaBaseImpl::UnInitFfmpeg(void) void MediaBaseImpl::ReadFileThread(AVFormatContext *pFormatCtx, int video_stream_index) { mTaskRuning = true; + if (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 == video_stream_index) { + playTimeMs = (packet.duration * pFormatCtx->streams[video_stream_index]->time_base.num * 1000) / + pFormatCtx->streams[video_stream_index]->time_base.den; + LogInfo("Play time ms:%d\n", playTimeMs); // LogInfo("Frame data address: %p, length: %zu\n", packet.data, packet.size); mReadVideoCallback(packet.data, packet.size, mReadVideoCallbackContext); + 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); - LogInfo("==============================================================================\n"); } \ No newline at end of file From f94c292ff4aea47d2f28bff7938176e3e3707cd1 Mon Sep 17 00:00:00 2001 From: Fancy code <258828110.@qq.com> Date: Wed, 19 Jun 2024 17:04:14 +0800 Subject: [PATCH 08/11] Backup:ffmpeg open audio file failed. --- external/ffmpeg/CMakeLists.txt | 2 +- external/ffmpeg/README.md | 18 ++++- external/goahead-5.2.0/CMakeLists.txt | 30 +++++++- test/application/HuntingCamera/CMakeLists.txt | 9 ++- test/hal/tool/src/CameraHalMock.cpp | 26 +++++-- test/hal/tool/src/CameraHalMock.h | 1 + utils/FxHttpServer/CMakeLists.txt | 2 +- utils/MediaBase/CMakeLists.txt | 2 +- utils/MediaBase/build/mediabase.cmake | 2 + utils/MediaBase/include/MediaBase.h | 2 + utils/MediaBase/src/IMediaBase.cpp | 7 +- utils/MediaBase/src/IMediaBase.h | 1 + utils/MediaBase/src/MediaBase.cpp | 7 ++ utils/MediaBase/src/MediaBaseImpl.cpp | 68 +++++++++++++++---- utils/MediaBase/src/MediaBaseImpl.h | 9 ++- utils/MediaBase/src/MediaBaseMakePtr.cpp | 4 +- utils/MediaBase/src/MediaBaseMakePtr.h | 2 +- utils/WebServer/CMakeLists.txt | 51 ++------------ utils/WebServer/build/webserver.cmake | 4 +- 19 files changed, 168 insertions(+), 79 deletions(-) create mode 100644 utils/MediaBase/build/mediabase.cmake diff --git a/external/ffmpeg/CMakeLists.txt b/external/ffmpeg/CMakeLists.txt index a18f0da..ecc4f2f 100644 --- a/external/ffmpeg/CMakeLists.txt +++ b/external/ffmpeg/CMakeLists.txt @@ -5,7 +5,7 @@ if(${TARGET_PLATFORM} MATCHES ${DEFINE_LINUX}) --cxx=${CMAKE_CXX_COMPILER} \ --prefix=${EXTERNAL_LIBS_OUTPUT_PATH}/ffmpeg \ --enable-parsers --enable-decoder=h264 \ - --enable-ffmpeg --enable-shared --enable-static \ + --enable-ffmpeg --enable-static \ --enable-gpl --enable-nonfree --enable-version3 --enable-small \ --enable-muxer=mov --enable-muxer=mp4 \ --enable-decoder=aac \ diff --git a/external/ffmpeg/README.md b/external/ffmpeg/README.md index bb65b30..0415f12 100644 --- a/external/ffmpeg/README.md +++ b/external/ffmpeg/README.md @@ -1,8 +1,22 @@ # 1. ffmpeg开发文档 -## 1.1. 问题记录 +## 1.1. ffplay命令使用 -### 1.1.1. avformat_open_input执行失败 +* 播放G711a音频文件 + +```code +$ ffplay -i audio.g711a -f alaw -ac 1 -ar 8000 +``` + +* 播放h264视频文件 + +```code +$ ffplay video.h264 +``` + +## 1.2. 问题记录 + +### 1.2.1. avformat_open_input执行失败   在执行avformat_open_input时,返回-1094995529<0,错误 diff --git a/external/goahead-5.2.0/CMakeLists.txt b/external/goahead-5.2.0/CMakeLists.txt index b746ca4..9ad6b51 100644 --- a/external/goahead-5.2.0/CMakeLists.txt +++ b/external/goahead-5.2.0/CMakeLists.txt @@ -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}) \ No newline at end of file +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) \ No newline at end of file diff --git a/test/application/HuntingCamera/CMakeLists.txt b/test/application/HuntingCamera/CMakeLists.txt index 1688924..13820f2 100644 --- a/test/application/HuntingCamera/CMakeLists.txt +++ b/test/application/HuntingCamera/CMakeLists.txt @@ -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( @@ -43,8 +45,11 @@ endif() set(TARGET_NAME HuntingCameraTest) add_executable(${TARGET_NAME} ${SRC_FILES_MAIN} ${SRC_FILES}) -target_link_libraries(${TARGET_NAME} HuntingMainLib MissionManagerTestTool McuManagerTestTool McuAskBaseTestTool - AppManagerTestTool HalTestTool DeviceManagerTestTool TestManager gtest gmock pthread) +target_link_libraries(${TARGET_NAME} -Wl,--start-group HuntingMainLib MissionManagerTestTool McuManagerTestTool McuAskBaseTestTool + AppManagerTestTool HalTestTool DeviceManagerTestTool TestManager + MediaBase avformat avcodec avutil swresample avdevice avfilter swscale postproc z + -Wl,--end-group + gtest gmock pthread) if(${TEST_COVERAGE} MATCHES "true") target_link_libraries(${TARGET_NAME} gcov) endif() diff --git a/test/hal/tool/src/CameraHalMock.cpp b/test/hal/tool/src/CameraHalMock.cpp index b8e124a..d8679d4 100644 --- a/test/hal/tool/src/CameraHalMock.cpp +++ b/test/hal/tool/src/CameraHalMock.cpp @@ -19,19 +19,25 @@ #include "StatusCode.h" #include CameraHalTest::CameraHalTest(const CameraType &cameraType) - : mCameraType(cameraType), mReadH264File(nullptr), mTaskRuning(false) + : mCameraType(cameraType), mReadH264File(nullptr), mReadG711File(nullptr), mTaskRuning(false) { } void CameraHalTest::Init(void) { CameraHal::Init(); if (nullptr == mReadH264File) { - ReadVideoFileCallback callback = [](const void *stream, const unsigned int length, void *context) -> void { - // LogInfo("CameraHalTest::ReadVideoFileCallback.\n"); + ReadVideoFileCallback videCallback = [](const void *stream, const unsigned int length, void *context) -> void { ((CameraHalTest *)context)->ReadDataFromH264File(stream, length); }; mReadH264File = ICreateMediaBase(MEDIA_HANDLE_TYPE_READ_H264); - ISetReadVideoCallback(mReadH264File, callback, this); + ISetReadVideoCallback(mReadH264File, videCallback, this); + } + if (nullptr == mReadG711File) { + ReadAudioFileCallback audioCallback = [](const void *stream, const unsigned int length, void *context) -> void { + ((CameraHalTest *)context)->ReadDataFromH264File(stream, length); + }; + mReadG711File = ICreateMediaBase(MEDIA_HANDLE_TYPE_READ_H264); + ISetReadVideoCallback(mReadG711File, audioCallback, this); } } void CameraHalTest::UnInit(void) @@ -48,6 +54,12 @@ void CameraHalTest::UnInit(void) IMediaBaseFree(mReadH264File); mReadH264File = nullptr; } + if (mReadG711File) { + ISetReadAudioCallback(mReadG711File, nullptr, nullptr); + IStopReadFile(mReadG711File); + IMediaBaseFree(mReadG711File); + mReadG711File = nullptr; + } } void CameraHalTest::SetCameraMonitor(std::shared_ptr &monitor) { @@ -83,6 +95,9 @@ StatusCode CameraHalTest::StopTask(void) if (nullptr != mReadH264File) { IStopReadFile(mReadH264File); } + if (nullptr != mReadG711File) { + IStopReadFile(mReadG711File); + } mCv.notify_one(); return CameraHal::StopTask(); } @@ -97,6 +112,9 @@ void CameraHalTest::MockReportMediaStream(void) if (nullptr != mReadH264File) { IStartReadFile(mReadH264File, TEST_SOURCE_PATH "/support_test/video.h264"); } + if (nullptr != mReadG711File) { + IStartReadFile(mReadG711File, TEST_SOURCE_PATH "/support_test/audio.g711a"); + } while (mTaskRuning) { std::unique_lock lock(mMutex); mCv.wait(lock, [&] { diff --git a/test/hal/tool/src/CameraHalMock.h b/test/hal/tool/src/CameraHalMock.h index 2c1d7dd..ec47ce8 100644 --- a/test/hal/tool/src/CameraHalMock.h +++ b/test/hal/tool/src/CameraHalMock.h @@ -44,6 +44,7 @@ protected: std::weak_ptr mMonitor; std::shared_ptr mFastBootEvent; void *mReadH264File; + void *mReadG711File; std::mutex mMutex; std::condition_variable mCv; bool mTaskRuning; diff --git a/utils/FxHttpServer/CMakeLists.txt b/utils/FxHttpServer/CMakeLists.txt index 2f20c63..30cccde 100644 --- a/utils/FxHttpServer/CMakeLists.txt +++ b/utils/FxHttpServer/CMakeLists.txt @@ -23,7 +23,7 @@ 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) add_custom_target( FxHttpServer_code_check diff --git a/utils/MediaBase/CMakeLists.txt b/utils/MediaBase/CMakeLists.txt index 070a87c..130ed50 100644 --- a/utils/MediaBase/CMakeLists.txt +++ b/utils/MediaBase/CMakeLists.txt @@ -19,7 +19,7 @@ aux_source_directory(./src SRC_FILES) set(TARGET_NAME MediaBase) add_library(${TARGET_NAME} STATIC ${SRC_FILES}) -target_link_libraries(${TARGET_NAME} avformat avcodec avutil swresample StatusCode Log) +target_link_libraries(${TARGET_NAME} StatusCode Log) add_custom_target( MediaBase_code_check diff --git a/utils/MediaBase/build/mediabase.cmake b/utils/MediaBase/build/mediabase.cmake new file mode 100644 index 0000000..438146f --- /dev/null +++ b/utils/MediaBase/build/mediabase.cmake @@ -0,0 +1,2 @@ + +set(FFMPEG_EXTERNAL_LIBS avformat avcodec avutil swresample avdevice avfilter swscale postproc z) \ No newline at end of file diff --git a/utils/MediaBase/include/MediaBase.h b/utils/MediaBase/include/MediaBase.h index 7ffda1b..51275d7 100644 --- a/utils/MediaBase/include/MediaBase.h +++ b/utils/MediaBase/include/MediaBase.h @@ -25,10 +25,12 @@ enum MediaHandleType 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); diff --git a/utils/MediaBase/src/IMediaBase.cpp b/utils/MediaBase/src/IMediaBase.cpp index 6f15ddb..7edeaa9 100644 --- a/utils/MediaBase/src/IMediaBase.cpp +++ b/utils/MediaBase/src/IMediaBase.cpp @@ -36,6 +36,11 @@ StatusCode IMediaBase::SetReadVideoCallback(ReadVideoFileCallback callback, void 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 *GetMediaBaseModuleName(void) { @@ -48,6 +53,6 @@ std::shared_ptr *NewIMediaBase(const MediaHandleType &type) MeidaAdapter tmp; memcpy((void *)impl, (void *)&tmp, sizeof(MeidaAdapter)); impl->mHeader.mCheckName = MEDIA_BASE_NAME; - impl->mIMediaBase = MediaBaseMakePtr::GetInstance()->CreateMediaBase(); + impl->mIMediaBase = MediaBaseMakePtr::GetInstance()->CreateMediaBase(type); return (std::shared_ptr *)(((char *)impl) + sizeof(MediaBaseHeader)); } \ No newline at end of file diff --git a/utils/MediaBase/src/IMediaBase.h b/utils/MediaBase/src/IMediaBase.h index 8265a4d..aa45014 100644 --- a/utils/MediaBase/src/IMediaBase.h +++ b/utils/MediaBase/src/IMediaBase.h @@ -24,6 +24,7 @@ public: 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 { diff --git a/utils/MediaBase/src/MediaBase.cpp b/utils/MediaBase/src/MediaBase.cpp index b12ace3..8b1c256 100644 --- a/utils/MediaBase/src/MediaBase.cpp +++ b/utils/MediaBase/src/MediaBase.cpp @@ -42,6 +42,13 @@ StatusCode ISetReadVideoCallback(void *object, ReadVideoFileCallback callback, v } return CreateStatusCode(STATUS_CODE_OK); } +StatusCode ISetReadAudioCallback(void *object, ReadVideoFileCallback callback, void *context) +{ + if (ObjectCheck(object) == true) { + return (*(std::shared_ptr *)object)->SetReadAudioCallback(callback, context); + } + return CreateStatusCode(STATUS_CODE_OK); +} StatusCode IStartReadFile(void *object, const char *path) { if (ObjectCheck(object) == true) { diff --git a/utils/MediaBase/src/MediaBaseImpl.cpp b/utils/MediaBase/src/MediaBaseImpl.cpp index 2468a28..502334c 100644 --- a/utils/MediaBase/src/MediaBaseImpl.cpp +++ b/utils/MediaBase/src/MediaBaseImpl.cpp @@ -14,6 +14,7 @@ */ #include "MediaBaseImpl.h" #include "ILog.h" +#include "MediaBase.h" #include "StatusCode.h" #include #include @@ -28,8 +29,10 @@ extern "C" { #ifdef __cplusplus } #endif -MediaBaseImpl::MediaBaseImpl() : mReadVideoCallback(nullptr), mReadVideoCallbackContext(nullptr), mTaskRuning(false) +MediaBaseImpl::MediaBaseImpl(const MediaHandleType &type) + : mType(type), mReadVideoCallback(nullptr), mReadVideoCallbackContext(nullptr), mTaskRuning(false) { + MediaTypeConvert(); } StatusCode MediaBaseImpl::StartReadFile(const std::string &path) { @@ -37,7 +40,10 @@ StatusCode MediaBaseImpl::StartReadFile(const std::string &path) int result = 0; AVFormatContext *pFormatCtx = nullptr; if ((result = avformat_open_input(&pFormatCtx, path.c_str(), nullptr, nullptr)) < 0) { - LogError("Couldn't open file: %s, result=%d\n", path.c_str(), result); + 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); + // LogError("Couldn't open file: %s, result=%s\n", path.c_str(), av_err2str(result)); return CreateStatusCode(STATUS_CODE_NOT_OK); } // LogInfo("File: %s\n", pFormatCtx->filename); @@ -50,20 +56,20 @@ StatusCode MediaBaseImpl::StartReadFile(const std::string &path) LogError("Couldn't find stream information.\n"); return CreateStatusCode(STATUS_CODE_NOT_OK); } - int video_stream_index = -1; + int mediaStreamIndex = -1; for (unsigned int i = 0; i < pFormatCtx->nb_streams; i++) { - if (pFormatCtx->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) { - video_stream_index = i; + if (pFormatCtx->streams[i]->codecpar->codec_type == mFFmpegMediaType) { + mediaStreamIndex = i; break; } } - if (video_stream_index == -1) { - LogError("Didn't find a video stream.\n"); + if (mediaStreamIndex == -1) { + LogError("Didn't find a stream.\n"); return CreateStatusCode(STATUS_CODE_NOT_OK); } auto taskTimerThread = [=](std::shared_ptr media) { LogInfo("ReadFileThread start.\n"); - media->ReadFileThread(pFormatCtx, video_stream_index); + media->ReadFileThread(pFormatCtx, mediaStreamIndex); }; std::shared_ptr media = shared_from_this(); mTaskTimerThread = std::thread(taskTimerThread, media); @@ -83,16 +89,25 @@ StatusCode MediaBaseImpl::SetReadVideoCallback(ReadVideoFileCallback callback, v 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 video_stream_index) +void MediaBaseImpl::ReadFileThread(AVFormatContext *pFormatCtx, int mediaStreamIndex) { mTaskRuning = true; - if (nullptr == mReadVideoCallback) { + 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; @@ -108,12 +123,12 @@ void MediaBaseImpl::ReadFileThread(AVFormatContext *pFormatCtx, int video_stream break; } // Checks whether the packet belongs to a video stream. - if (packet.stream_index == video_stream_index) { - playTimeMs = (packet.duration * pFormatCtx->streams[video_stream_index]->time_base.num * 1000) / - pFormatCtx->streams[video_stream_index]->time_base.den; - LogInfo("Play time ms:%d\n", playTimeMs); + 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); - mReadVideoCallback(packet.data, packet.size, mReadVideoCallbackContext); + // LogInfo("Play time ms:%d\n", playTimeMs); + ReadFrame(&packet); std::this_thread::sleep_for(std::chrono::milliseconds(playTimeMs)); } // Release the data packet. @@ -122,4 +137,27 @@ void MediaBaseImpl::ReadFileThread(AVFormatContext *pFormatCtx, int video_stream 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_G711: + mFFmpegMediaType = AVMEDIA_TYPE_AUDIO; + break; + default: + LogError("Unknown media type.\n"); + break; + } } \ No newline at end of file diff --git a/utils/MediaBase/src/MediaBaseImpl.h b/utils/MediaBase/src/MediaBaseImpl.h index 8901427..1f51eba 100644 --- a/utils/MediaBase/src/MediaBaseImpl.h +++ b/utils/MediaBase/src/MediaBaseImpl.h @@ -30,20 +30,27 @@ extern "C" { class MediaBaseImpl : public IMediaBase, public std::enable_shared_from_this { public: - MediaBaseImpl(); + 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); private: + const MediaHandleType &mType; + enum AVMediaType mFFmpegMediaType; ReadVideoFileCallback mReadVideoCallback; void *mReadVideoCallbackContext; + ReadVideoFileCallback mReadAudioCallback; + void *mReadAudioCallbackContext; bool mTaskRuning; std::thread mTaskTimerThread; }; diff --git a/utils/MediaBase/src/MediaBaseMakePtr.cpp b/utils/MediaBase/src/MediaBaseMakePtr.cpp index 5c3bf7e..15a643a 100644 --- a/utils/MediaBase/src/MediaBaseMakePtr.cpp +++ b/utils/MediaBase/src/MediaBaseMakePtr.cpp @@ -31,9 +31,9 @@ std::shared_ptr &MediaBaseMakePtr::GetInstance(std::shared_ptr } return instance; } -std::shared_ptr MediaBaseMakePtr::CreateMediaBase(void) +std::shared_ptr MediaBaseMakePtr::CreateMediaBase(const MediaHandleType &type) { LogInfo("MediaBaseMakePtr::CreateMediaBase.\n"); - auto tmp = std::make_shared(); + auto tmp = std::make_shared(type); return tmp; } \ No newline at end of file diff --git a/utils/MediaBase/src/MediaBaseMakePtr.h b/utils/MediaBase/src/MediaBaseMakePtr.h index 5f954aa..fb6f59f 100644 --- a/utils/MediaBase/src/MediaBaseMakePtr.h +++ b/utils/MediaBase/src/MediaBaseMakePtr.h @@ -23,6 +23,6 @@ public: MediaBaseMakePtr() = default; virtual ~MediaBaseMakePtr() = default; static std::shared_ptr &GetInstance(std::shared_ptr *impl = nullptr); - virtual std::shared_ptr CreateMediaBase(void); + virtual std::shared_ptr CreateMediaBase(const MediaHandleType &type); }; #endif \ No newline at end of file diff --git a/utils/WebServer/CMakeLists.txt b/utils/WebServer/CMakeLists.txt index 2782a27..1dcc0cc 100644 --- a/utils/WebServer/CMakeLists.txt +++ b/utils/WebServer/CMakeLists.txt @@ -40,7 +40,7 @@ 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) add_custom_target( WebServer_code_check @@ -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}) diff --git a/utils/WebServer/build/webserver.cmake b/utils/WebServer/build/webserver.cmake index 9ff2327..5a7fa84 100644 --- a/utils/WebServer/build/webserver.cmake +++ b/utils/WebServer/build/webserver.cmake @@ -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}\") \ No newline at end of file +add_definitions(-DGOAHEAD_DOCUMENTS_PATH=\"${GOAHEAD_DOCUMENTS_PATH}\") + +set(GOAHEAD_EXTERNAL_LIBS go mbedtls goahead-mbedtls) \ No newline at end of file From 680996176b389c1579b9cd86ae44fb6cff994192 Mon Sep 17 00:00:00 2001 From: Fancy code <258828110.@qq.com> Date: Wed, 19 Jun 2024 21:50:36 +0800 Subject: [PATCH 09/11] ffmpeg open audio ok. --- external/ffmpeg/CMakeLists.txt | 3 +- external/ffmpeg/README.md | 3 +- middleware/MediaManager/src/SaveStream.cpp | 1 + test/application/HuntingCamera/CMakeLists.txt | 10 +++--- test/hal/tool/src/CameraHalMock.cpp | 32 +++++++++++-------- test/hal/tool/src/CameraHalMock.h | 3 +- utils/MediaBase/CMakeLists.txt | 2 +- utils/MediaBase/include/MediaBase.h | 2 +- utils/MediaBase/src/IMediaBase.cpp | 2 +- utils/MediaBase/src/MediaBaseImpl.cpp | 30 +++++++++++------ utils/MediaBase/src/MediaBaseImpl.h | 3 +- utils/MediaBase/src/MediaBaseMakePtr.cpp | 2 +- utils/WebServer/src/WebServer.cpp | 5 ++- 13 files changed, 60 insertions(+), 38 deletions(-) diff --git a/external/ffmpeg/CMakeLists.txt b/external/ffmpeg/CMakeLists.txt index ecc4f2f..81e92dd 100644 --- a/external/ffmpeg/CMakeLists.txt +++ b/external/ffmpeg/CMakeLists.txt @@ -8,7 +8,7 @@ if(${TARGET_PLATFORM} MATCHES ${DEFINE_LINUX}) --enable-ffmpeg --enable-static \ --enable-gpl --enable-nonfree --enable-version3 --enable-small \ --enable-muxer=mov --enable-muxer=mp4 \ - --enable-decoder=aac \ + --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() @@ -34,6 +34,7 @@ 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 && bash -c "./configure ${CONFIGURE_COMMAND}" diff --git a/external/ffmpeg/README.md b/external/ffmpeg/README.md index 0415f12..ec0614b 100644 --- a/external/ffmpeg/README.md +++ b/external/ffmpeg/README.md @@ -7,6 +7,7 @@ ```code $ ffplay -i audio.g711a -f alaw -ac 1 -ar 8000 ``` +ffmpeg -i input.g711a -acodec alaw output.wav * 播放h264视频文件 @@ -35,4 +36,4 @@ set(CONFIGURE_COMMAND "--enable-cross-compile --target-os=linux --arch=linux \ --enable-decoder=aac \ --enable-demuxer=mov \ --enable-protocol=file --enable-bsf=aac_adtstoasc --enable-bsf=h264_mp4toannexb --enable-bsf=hevc_mp4toannexb") -``` \ No newline at end of file +``` diff --git a/middleware/MediaManager/src/SaveStream.cpp b/middleware/MediaManager/src/SaveStream.cpp index fffeb4c..0d79f94 100644 --- a/middleware/MediaManager/src/SaveStream.cpp +++ b/middleware/MediaManager/src/SaveStream.cpp @@ -50,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"); diff --git a/test/application/HuntingCamera/CMakeLists.txt b/test/application/HuntingCamera/CMakeLists.txt index 13820f2..d0c67b9 100644 --- a/test/application/HuntingCamera/CMakeLists.txt +++ b/test/application/HuntingCamera/CMakeLists.txt @@ -45,11 +45,11 @@ endif() set(TARGET_NAME HuntingCameraTest) add_executable(${TARGET_NAME} ${SRC_FILES_MAIN} ${SRC_FILES}) -target_link_libraries(${TARGET_NAME} -Wl,--start-group HuntingMainLib MissionManagerTestTool McuManagerTestTool McuAskBaseTestTool - AppManagerTestTool HalTestTool DeviceManagerTestTool TestManager - MediaBase avformat avcodec avutil swresample avdevice avfilter swscale postproc z - -Wl,--end-group - gtest gmock pthread) +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() diff --git a/test/hal/tool/src/CameraHalMock.cpp b/test/hal/tool/src/CameraHalMock.cpp index d8679d4..24c5a7e 100644 --- a/test/hal/tool/src/CameraHalMock.cpp +++ b/test/hal/tool/src/CameraHalMock.cpp @@ -19,7 +19,7 @@ #include "StatusCode.h" #include CameraHalTest::CameraHalTest(const CameraType &cameraType) - : mCameraType(cameraType), mReadH264File(nullptr), mReadG711File(nullptr), mTaskRuning(false) + : mCameraType(cameraType), mReadH264File(nullptr), mReadG711aFile(nullptr), mTaskRuning(false) { } void CameraHalTest::Init(void) @@ -32,12 +32,12 @@ void CameraHalTest::Init(void) mReadH264File = ICreateMediaBase(MEDIA_HANDLE_TYPE_READ_H264); ISetReadVideoCallback(mReadH264File, videCallback, this); } - if (nullptr == mReadG711File) { + if (nullptr == mReadG711aFile) { ReadAudioFileCallback audioCallback = [](const void *stream, const unsigned int length, void *context) -> void { - ((CameraHalTest *)context)->ReadDataFromH264File(stream, length); + ((CameraHalTest *)context)->ReadDataFromG711aFile(stream, length); }; - mReadG711File = ICreateMediaBase(MEDIA_HANDLE_TYPE_READ_H264); - ISetReadVideoCallback(mReadG711File, audioCallback, this); + mReadG711aFile = ICreateMediaBase(MEDIA_HANDLE_TYPE_READ_G711A); + ISetReadVideoCallback(mReadG711aFile, audioCallback, this); } } void CameraHalTest::UnInit(void) @@ -54,11 +54,11 @@ void CameraHalTest::UnInit(void) IMediaBaseFree(mReadH264File); mReadH264File = nullptr; } - if (mReadG711File) { - ISetReadAudioCallback(mReadG711File, nullptr, nullptr); - IStopReadFile(mReadG711File); - IMediaBaseFree(mReadG711File); - mReadG711File = nullptr; + if (mReadG711aFile) { + ISetReadAudioCallback(mReadG711aFile, nullptr, nullptr); + IStopReadFile(mReadG711aFile); + IMediaBaseFree(mReadG711aFile); + mReadG711aFile = nullptr; } } void CameraHalTest::SetCameraMonitor(std::shared_ptr &monitor) @@ -95,8 +95,8 @@ StatusCode CameraHalTest::StopTask(void) if (nullptr != mReadH264File) { IStopReadFile(mReadH264File); } - if (nullptr != mReadG711File) { - IStopReadFile(mReadG711File); + if (nullptr != mReadG711aFile) { + IStopReadFile(mReadG711aFile); } mCv.notify_one(); return CameraHal::StopTask(); @@ -112,8 +112,8 @@ void CameraHalTest::MockReportMediaStream(void) if (nullptr != mReadH264File) { IStartReadFile(mReadH264File, TEST_SOURCE_PATH "/support_test/video.h264"); } - if (nullptr != mReadG711File) { - IStartReadFile(mReadG711File, TEST_SOURCE_PATH "/support_test/audio.g711a"); + if (nullptr != mReadG711aFile) { + IStartReadFile(mReadG711aFile, TEST_SOURCE_PATH "/support_test/audio.g711a"); } while (mTaskRuning) { std::unique_lock lock(mMutex); @@ -130,6 +130,10 @@ void CameraHalTest::ReadDataFromH264File(const void *stream, const unsigned int { GetVideoStream(stream, length, 0); } +void CameraHalTest::ReadDataFromG711aFile(const void *stream, const unsigned int length) +{ + GetAudioStream(stream, length, 0); +} CameraHalMock::CameraHalMock(const CameraType &cameraType) : CameraHalTest(cameraType) { } diff --git a/test/hal/tool/src/CameraHalMock.h b/test/hal/tool/src/CameraHalMock.h index ec47ce8..ea41a99 100644 --- a/test/hal/tool/src/CameraHalMock.h +++ b/test/hal/tool/src/CameraHalMock.h @@ -38,13 +38,14 @@ protected: private: void MockReportMediaStream(void); void ReadDataFromH264File(const void *stream, const unsigned int length); + void ReadDataFromG711aFile(const void *stream, const unsigned int length); protected: const CameraType mCameraType; std::weak_ptr mMonitor; std::shared_ptr mFastBootEvent; void *mReadH264File; - void *mReadG711File; + void *mReadG711aFile; std::mutex mMutex; std::condition_variable mCv; bool mTaskRuning; diff --git a/utils/MediaBase/CMakeLists.txt b/utils/MediaBase/CMakeLists.txt index 130ed50..45b3da6 100644 --- a/utils/MediaBase/CMakeLists.txt +++ b/utils/MediaBase/CMakeLists.txt @@ -19,7 +19,7 @@ aux_source_directory(./src SRC_FILES) set(TARGET_NAME MediaBase) add_library(${TARGET_NAME} STATIC ${SRC_FILES}) -target_link_libraries(${TARGET_NAME} StatusCode Log) +target_link_libraries(${TARGET_NAME} avformat avcodec avutil swresample avdevice avfilter swscale postproc z StatusCode Log) add_custom_target( MediaBase_code_check diff --git a/utils/MediaBase/include/MediaBase.h b/utils/MediaBase/include/MediaBase.h index 51275d7..a312042 100644 --- a/utils/MediaBase/include/MediaBase.h +++ b/utils/MediaBase/include/MediaBase.h @@ -21,7 +21,7 @@ extern "C" { enum MediaHandleType { MEDIA_HANDLE_TYPE_READ_H264 = 0, - MEDIA_HANDLE_TYPE_READ_G711, + MEDIA_HANDLE_TYPE_READ_G711A, MEDIA_HANDLE_TYPE_END }; typedef void (*ReadVideoFileCallback)(const void *, const unsigned int, void *); diff --git a/utils/MediaBase/src/IMediaBase.cpp b/utils/MediaBase/src/IMediaBase.cpp index 7edeaa9..cc719b2 100644 --- a/utils/MediaBase/src/IMediaBase.cpp +++ b/utils/MediaBase/src/IMediaBase.cpp @@ -48,7 +48,7 @@ const char *GetMediaBaseModuleName(void) } std::shared_ptr *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)); diff --git a/utils/MediaBase/src/MediaBaseImpl.cpp b/utils/MediaBase/src/MediaBaseImpl.cpp index 502334c..13c322c 100644 --- a/utils/MediaBase/src/MediaBaseImpl.cpp +++ b/utils/MediaBase/src/MediaBaseImpl.cpp @@ -38,22 +38,17 @@ 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(), nullptr, nullptr)) < 0) { + 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); - // LogError("Couldn't open file: %s, result=%s\n", path.c_str(), av_err2str(result)); return CreateStatusCode(STATUS_CODE_NOT_OK); } - // LogInfo("File: %s\n", pFormatCtx->filename); - // LogInfo("File format: %s\n", pFormatCtx->iformat->name); - // LogInfo("Duration: %ld\n", pFormatCtx->duration); - // for (int i = 0; i < pFormatCtx->nb_streams; i++) { - // LogInfo("stream codec_type = %d\n", pFormatCtx->streams[i]->codecpar->codec_type); - // } 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; @@ -65,6 +60,7 @@ StatusCode MediaBaseImpl::StartReadFile(const std::string &path) } 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 media) { @@ -127,7 +123,7 @@ void MediaBaseImpl::ReadFileThread(AVFormatContext *pFormatCtx, int mediaStreamI 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); + LogInfo("Play time ms:%d\n", playTimeMs); ReadFrame(&packet); std::this_thread::sleep_for(std::chrono::milliseconds(playTimeMs)); } @@ -153,11 +149,25 @@ void MediaBaseImpl::MediaTypeConvert(void) case MediaHandleType::MEDIA_HANDLE_TYPE_READ_H264: mFFmpegMediaType = AVMEDIA_TYPE_VIDEO; break; - case MediaHandleType::MEDIA_HANDLE_TYPE_READ_G711: + 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; + } } \ No newline at end of file diff --git a/utils/MediaBase/src/MediaBaseImpl.h b/utils/MediaBase/src/MediaBaseImpl.h index 1f51eba..395bcc2 100644 --- a/utils/MediaBase/src/MediaBaseImpl.h +++ b/utils/MediaBase/src/MediaBaseImpl.h @@ -43,9 +43,10 @@ private: 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; + const MediaHandleType mType; enum AVMediaType mFFmpegMediaType; ReadVideoFileCallback mReadVideoCallback; void *mReadVideoCallbackContext; diff --git a/utils/MediaBase/src/MediaBaseMakePtr.cpp b/utils/MediaBase/src/MediaBaseMakePtr.cpp index 15a643a..09eaa99 100644 --- a/utils/MediaBase/src/MediaBaseMakePtr.cpp +++ b/utils/MediaBase/src/MediaBaseMakePtr.cpp @@ -33,7 +33,7 @@ std::shared_ptr &MediaBaseMakePtr::GetInstance(std::shared_ptr } std::shared_ptr MediaBaseMakePtr::CreateMediaBase(const MediaHandleType &type) { - LogInfo("MediaBaseMakePtr::CreateMediaBase.\n"); + LogInfo("MediaBaseMakePtr::CreateMediaBase, type = %d.\n", type); auto tmp = std::make_shared(type); return tmp; } \ No newline at end of file diff --git a/utils/WebServer/src/WebServer.cpp b/utils/WebServer/src/WebServer.cpp index e20b982..1342332 100644 --- a/utils/WebServer/src/WebServer.cpp +++ b/utils/WebServer/src/WebServer.cpp @@ -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(); From 08bfc6e9ba45e33cc2ea99daab880ed6624cf3b3 Mon Sep 17 00:00:00 2001 From: Fancy code <258828110.@qq.com> Date: Wed, 19 Jun 2024 22:08:02 +0800 Subject: [PATCH 10/11] Improve:cross compile. --- application/MissionManager/CMakeLists.txt | 6 ------ middleware/FilesManager/CMakeLists.txt | 6 ------ middleware/IpcConfig/CMakeLists.txt | 6 ------ middleware/McuAskBase/CMakeLists.txt | 6 ------ middleware/McuManager/CMakeLists.txt | 6 ------ middleware/StateMachine/CMakeLists.txt | 6 ------ middleware/StorageManager/CMakeLists.txt | 6 ------ test/utils/LinuxApiMock/src/LinuxApiMock.cpp | 2 +- test/utils/LinuxApiMock/src/LinuxTestImpl.cpp | 2 +- test/utils/LinuxApiMock/src/WrapApi.cpp | 2 +- test/utils/McuProtocol/tool/src/McuProtocolTestTool.cpp | 2 +- test/utils/UartDevice/tool/src/UartDeviceTestTool.cpp | 2 +- utils/ConfigBase/CMakeLists.txt | 6 ------ utils/MediaBase/CMakeLists.txt | 7 ++++++- 14 files changed, 11 insertions(+), 54 deletions(-) diff --git a/application/MissionManager/CMakeLists.txt b/application/MissionManager/CMakeLists.txt index b18189f..8c8f30a 100644 --- a/application/MissionManager/CMakeLists.txt +++ b/application/MissionManager/CMakeLists.txt @@ -43,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 diff --git a/middleware/FilesManager/CMakeLists.txt b/middleware/FilesManager/CMakeLists.txt index 055c9ac..9379882 100644 --- a/middleware/FilesManager/CMakeLists.txt +++ b/middleware/FilesManager/CMakeLists.txt @@ -35,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 diff --git a/middleware/IpcConfig/CMakeLists.txt b/middleware/IpcConfig/CMakeLists.txt index d3921c6..45b45e4 100644 --- a/middleware/IpcConfig/CMakeLists.txt +++ b/middleware/IpcConfig/CMakeLists.txt @@ -34,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 diff --git a/middleware/McuAskBase/CMakeLists.txt b/middleware/McuAskBase/CMakeLists.txt index 63a7a3b..3f82ef4 100644 --- a/middleware/McuAskBase/CMakeLists.txt +++ b/middleware/McuAskBase/CMakeLists.txt @@ -42,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 diff --git a/middleware/McuManager/CMakeLists.txt b/middleware/McuManager/CMakeLists.txt index ad3d480..b7f68a1 100644 --- a/middleware/McuManager/CMakeLists.txt +++ b/middleware/McuManager/CMakeLists.txt @@ -39,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 diff --git a/middleware/StateMachine/CMakeLists.txt b/middleware/StateMachine/CMakeLists.txt index 5665cef..a4e8d79 100644 --- a/middleware/StateMachine/CMakeLists.txt +++ b/middleware/StateMachine/CMakeLists.txt @@ -34,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 diff --git a/middleware/StorageManager/CMakeLists.txt b/middleware/StorageManager/CMakeLists.txt index 8e88c7b..513ef01 100644 --- a/middleware/StorageManager/CMakeLists.txt +++ b/middleware/StorageManager/CMakeLists.txt @@ -37,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 diff --git a/test/utils/LinuxApiMock/src/LinuxApiMock.cpp b/test/utils/LinuxApiMock/src/LinuxApiMock.cpp index ea9640b..2a3906f 100644 --- a/test/utils/LinuxApiMock/src/LinuxApiMock.cpp +++ b/test/utils/LinuxApiMock/src/LinuxApiMock.cpp @@ -15,7 +15,7 @@ #include "LinuxApiMock.h" #include "LinuxTestImpl.h" #include "WrapApi.h" -#include +// #include #include #include #include diff --git a/test/utils/LinuxApiMock/src/LinuxTestImpl.cpp b/test/utils/LinuxApiMock/src/LinuxTestImpl.cpp index 8bf5894..b3cf17a 100644 --- a/test/utils/LinuxApiMock/src/LinuxTestImpl.cpp +++ b/test/utils/LinuxApiMock/src/LinuxTestImpl.cpp @@ -17,7 +17,7 @@ #include "ILog.h" #include "LinuxApiMock.h" #include "WrapApi.h" -#include +// #include #include #include #include diff --git a/test/utils/LinuxApiMock/src/WrapApi.cpp b/test/utils/LinuxApiMock/src/WrapApi.cpp index e71817a..02ce3bb 100644 --- a/test/utils/LinuxApiMock/src/WrapApi.cpp +++ b/test/utils/LinuxApiMock/src/WrapApi.cpp @@ -14,7 +14,7 @@ */ #include "WrapApi.h" #include "LinuxApiMock.h" -#include +// #include #include #include #include diff --git a/test/utils/McuProtocol/tool/src/McuProtocolTestTool.cpp b/test/utils/McuProtocol/tool/src/McuProtocolTestTool.cpp index 9ca9491..f57cf1a 100644 --- a/test/utils/McuProtocol/tool/src/McuProtocolTestTool.cpp +++ b/test/utils/McuProtocol/tool/src/McuProtocolTestTool.cpp @@ -21,7 +21,7 @@ #include "ProtocolMonitor.h" #include "UartDevice.h" #include "UartDeviceTestTool.h" -#include +// #include #include #include #include diff --git a/test/utils/UartDevice/tool/src/UartDeviceTestTool.cpp b/test/utils/UartDevice/tool/src/UartDeviceTestTool.cpp index e13b7c0..1e98b30 100644 --- a/test/utils/UartDevice/tool/src/UartDeviceTestTool.cpp +++ b/test/utils/UartDevice/tool/src/UartDeviceTestTool.cpp @@ -17,7 +17,7 @@ #include "ILog.h" #include "LinuxApiMock.h" #include "UartDevice.h" -#include +// #include #include #include #include diff --git a/utils/ConfigBase/CMakeLists.txt b/utils/ConfigBase/CMakeLists.txt index 284d78c..40aed0d 100644 --- a/utils/ConfigBase/CMakeLists.txt +++ b/utils/ConfigBase/CMakeLists.txt @@ -32,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 diff --git a/utils/MediaBase/CMakeLists.txt b/utils/MediaBase/CMakeLists.txt index 45b3da6..50fc931 100644 --- a/utils/MediaBase/CMakeLists.txt +++ b/utils/MediaBase/CMakeLists.txt @@ -19,7 +19,12 @@ aux_source_directory(./src SRC_FILES) set(TARGET_NAME MediaBase) add_library(${TARGET_NAME} STATIC ${SRC_FILES}) -target_link_libraries(${TARGET_NAME} avformat avcodec avutil swresample avdevice avfilter swscale postproc z StatusCode Log) + +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 From 4edb207b1d5db8de327c978ab7365b5973825035 Mon Sep 17 00:00:00 2001 From: Fancy code <258828110.@qq.com> Date: Wed, 19 Jun 2024 23:09:22 +0800 Subject: [PATCH 11/11] Merge ok. --- test/application/HuntingCamera/CMakeLists.txt | 4 +++- test/middleware/AppManager/CMakeLists.txt | 2 +- test/middleware/DeviceManager/CMakeLists.txt | 2 +- test/middleware/MediaManager/CMakeLists.txt | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/test/application/HuntingCamera/CMakeLists.txt b/test/application/HuntingCamera/CMakeLists.txt index b05048b..4966598 100644 --- a/test/application/HuntingCamera/CMakeLists.txt +++ b/test/application/HuntingCamera/CMakeLists.txt @@ -46,11 +46,13 @@ 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}# -Wl,--start-group HuntingMainLib MissionManagerTestTool McuManagerTestTool McuAskBaseTestTool - AppManagerTestTool HalTestTool DeviceManagerTestTool TestManager + AppManagerTestTool HalTestTool DeviceManagerTestTool TestManager UartDevice Hal LinuxApiMock # -Wl,--end-group gtest gmock pthread) +target_link_libraries(${TARGET_NAME} UpgradeTool Servers MediaBase) if(${TEST_COVERAGE} MATCHES "true") target_link_libraries(${TARGET_NAME} gcov) endif() diff --git a/test/middleware/AppManager/CMakeLists.txt b/test/middleware/AppManager/CMakeLists.txt index 75117cb..bb4ecc9 100644 --- a/test/middleware/AppManager/CMakeLists.txt +++ b/test/middleware/AppManager/CMakeLists.txt @@ -38,7 +38,7 @@ endif() set(TARGET_NAME AppManagerTest) add_executable(${TARGET_NAME} ${SRC_FILES_MAIN} ${SRC_FILES}) target_link_libraries(${TARGET_NAME} AppManagerTestTool HalTestTool gtest gmock pthread) -target_link_libraries(${TARGET_NAME} AppManager Servers KeyControl LedControl Hal LinuxApiMock) +target_link_libraries(${TARGET_NAME} AppManager Servers KeyControl LedControl Hal LinuxApiMock MediaBase) if(${TEST_COVERAGE} MATCHES "true") target_link_libraries(${TARGET_NAME} gcov) endif() diff --git a/test/middleware/DeviceManager/CMakeLists.txt b/test/middleware/DeviceManager/CMakeLists.txt index 806054c..fa9dc9f 100644 --- a/test/middleware/DeviceManager/CMakeLists.txt +++ b/test/middleware/DeviceManager/CMakeLists.txt @@ -36,7 +36,7 @@ endif() set(TARGET_NAME DeviceManagerTest) add_executable(${TARGET_NAME} ${SRC_FILES_MAIN} ${SRC_FILES}) target_link_libraries(${TARGET_NAME} DeviceManager DeviceManagerTestTool HalTestTool gtest gmock pthread) -target_link_libraries(${TARGET_NAME} Hal LinuxApiMock) +target_link_libraries(${TARGET_NAME} Hal LinuxApiMock MediaBase) if(${TEST_COVERAGE} MATCHES "true") target_link_libraries(${TARGET_NAME} gcov) endif() diff --git a/test/middleware/MediaManager/CMakeLists.txt b/test/middleware/MediaManager/CMakeLists.txt index ac38e28..e8a091a 100644 --- a/test/middleware/MediaManager/CMakeLists.txt +++ b/test/middleware/MediaManager/CMakeLists.txt @@ -37,7 +37,7 @@ endif() set(TARGET_NAME MediaManagerTest) add_executable(${TARGET_NAME} ${SRC_FILES_MAIN} ${SRC_FILES}) target_link_libraries(${TARGET_NAME} MediaManager MediaManagerTestTool HalTestTool gtest gmock pthread) -target_link_libraries(${TARGET_NAME} Hal LedControl LinuxApiMock) +target_link_libraries(${TARGET_NAME} Hal LedControl LinuxApiMock MediaBase) if(${TEST_COVERAGE} MATCHES "true") target_link_libraries(${TARGET_NAME} gcov) endif()