From e7cf7ac4915799f9ff6d75b10c79d2747b750de7 Mon Sep 17 00:00:00 2001 From: jiabinhe Date: Fri, 29 Nov 2024 11:20:01 +0800 Subject: [PATCH] ww48 release Signed-off-by: jiabinhe --- CMakeLists.txt | 19 ++- cmake/FindIA_IMAGING.cmake | 78 +++------ cmake/FindLIBDRM.cmake | 16 -- cmake/FindLIBGCSS.cmake | 16 -- cmake/FindLIBIACSS.cmake | 29 +--- cmake/FindLIBIPU.cmake | 17 -- config/linux/ipu6ep/libcamhal_profile.xml | 2 +- config/linux/ipu6ep/psys_policy_profiles.xml | 2 - config/linux/ipu6ep/sensors/lt6911uxc-1.xml | 166 +++++++++++++++++++ config/linux/ipu6ep/sensors/lt6911uxc-2.xml | 152 +++++++++++++++++ modules/algowrapper/IntelPGParam.cpp | 1 + src/core/PSysProcessor.cpp | 4 +- src/core/psysprocessor/PGCommon.cpp | 6 +- src/iutils/CameraDump.cpp | 26 ++- src/iutils/CameraDump.h | 2 +- 15 files changed, 386 insertions(+), 150 deletions(-) create mode 100644 config/linux/ipu6ep/sensors/lt6911uxc-1.xml create mode 100644 config/linux/ipu6ep/sensors/lt6911uxc-2.xml diff --git a/CMakeLists.txt b/CMakeLists.txt index f7b515aa..cbd2c954 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -251,7 +251,8 @@ if (NOT CAL_BUILD) find_package(LIBDRM) if(LIBDRM_FOUND AND ("${LIBDRM_VERSION}" VERSION_GREATER_EQUAL 2.4.114)) include_directories(${LIBDRM_INCLUDE_DIRS}) - set(LIBCAMHAL_LINK_LIBS ${LIBCAMHAL_LINK_LIBS} ${LIBDRM_LIBS}) + link_directories(${LIBDRM_LIBRARY_DIRS}) + set(LIBCAMHAL_LINK_LIBS ${LIBCAMHAL_LINK_LIBS} ${LIBDRM_LIBRARIES}) add_definitions(-DLIBDRM_SUPPORT_MMAP_OFFSET) endif() endif() @@ -331,28 +332,32 @@ endif() # Link ia_imaging find_package(IA_IMAGING) set(TARGET_INCLUDE ${TARGET_INCLUDE} ${IA_IMAGING${TARGET_SUFFIX}_INCLUDE_DIRS}) - set(TARGET_LINK_LIBS ${TARGET_LINK_LIBS} ${IA_IMAGING${TARGET_SUFFIX}_LIBS}) + set(TARGET_LINK_LIBS ${TARGET_LINK_LIBS} ${IA_IMAGING${TARGET_SUFFIX}_LIBRARIES}) + link_directories(${IA_IMAGING${TARGET_SUFFIX}_LIBRARY_DIRS}) if(USE_PG_LITE_PIPE) find_package(LIBGCSS) set(TARGET_INCLUDE ${TARGET_INCLUDE} ${LIBGCSS${TARGET_SUFFIX}_INCLUDE_DIRS}) - set(TARGET_LINK_LIBS ${TARGET_LINK_LIBS} ${LIBGCSS${TARGET_SUFFIX}_LIBS}) + set(TARGET_LINK_LIBS ${TARGET_LINK_LIBS} ${LIBGCSS${TARGET_SUFFIX}_LIBRARIES}) + link_directories(${LIBGCSS${TARGET_SUFFIX}_LIBRARY_DIRS}) # Include libipu(4) headers find_package(LIBIPU) set(TARGET_INCLUDE ${TARGET_INCLUDE} ${LIBIPU${TARGET_SUFFIX}_INCLUDE_DIRS}) - set(TARGET_LINK_LIBS ${TARGET_LINK_LIBS} ${LIBIPU${TARGET_SUFFIX}_LIBS}) + set(TARGET_LINK_LIBS ${TARGET_LINK_LIBS} ${LIBIPU${TARGET_SUFFIX}_LIBRARIES}) + link_directories(${LIBIPU${TARGET_SUFFIX}_LIBRARY_DIRS}) else() # Link libiacss find_package(LIBIACSS) set(TARGET_INCLUDE ${TARGET_INCLUDE} ${LIBIACSS${TARGET_SUFFIX}_INCLUDE_DIRS}) - set(TARGET_LINK_LIBS ${TARGET_LINK_LIBS} ${LIBIACSS${TARGET_SUFFIX}_LIBS}) + set(TARGET_LINK_LIBS ${TARGET_LINK_LIBS} ${LIBIACSS${TARGET_SUFFIX}_LIBRARIES}) + link_directories(${LIBIACSS${TARGET_SUFFIX}_LIBRARY_DIRS}) endif() #--------------------------- Add libcamhal target --------------------------- if (BUILD_CAMHAL_PLUGIN) - set(CAMHAL_TARGET ${IPU_VER}) - set(CAMHAL_STATIC_TARGET ${IPU_VER}_static) + set(CAMHAL_TARGET camhal${IPU_VER}) + set(CAMHAL_STATIC_TARGET camhal${IPU_VER}_static) else() set(CAMHAL_TARGET camhal) set(CAMHAL_STATIC_TARGET camhal_static) diff --git a/cmake/FindIA_IMAGING.cmake b/cmake/FindIA_IMAGING.cmake index 26cbce5e..1f3f6ec7 100644 --- a/cmake/FindIA_IMAGING.cmake +++ b/cmake/FindIA_IMAGING.cmake @@ -20,7 +20,6 @@ if(TARGET ia_aiq) endif() # Get include and lib paths for IA_IMAGING from pkgconfig -include(FindPackageHandleStandardArgs) find_package(PkgConfig) pkg_check_modules(IA_IMAGING${TARGET_SUFFIX} ia_imaging${TARGET_SUFFIX}) @@ -28,64 +27,37 @@ if(NOT IA_IMAGING${TARGET_SUFFIX}_FOUND) message(FATAL_ERROR "IA_IMAGING${TARGET_SUFFIX} not found") endif() -set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ${IA_IMAGING${TARGET_SUFFIX}_LIBRARY_DIRS}) - -# Libraries -find_library(IA_CCA${TARGET_SUFFIX}_LIB ia_cca${TARGET_SUFFIX}) -find_library(IA_AIQ${TARGET_SUFFIX}_LIB ia_aiq${TARGET_SUFFIX}) -find_library(IA_AIQB_PARSER${TARGET_SUFFIX}_LIB ia_aiqb_parser${TARGET_SUFFIX}) -find_library(IA_CMC_PARSER${TARGET_SUFFIX}_LIB ia_cmc_parser${TARGET_SUFFIX}) -find_library(IA_EXC${TARGET_SUFFIX}_LIB ia_exc${TARGET_SUFFIX}) -find_library(IA_MKN${TARGET_SUFFIX}_LIB ia_mkn${TARGET_SUFFIX}) -# SENSOR_EMD_DECODER -find_library(IA_EMD${TARGET_SUFFIX}_LIB ia_emd_decoder${TARGET_SUFFIX}) +set(IA_IMAGING${TARGET_SUFFIX}_LIBRARIES + ia_cca${TARGET_SUFFIX} + ia_aiq${TARGET_SUFFIX} + ia_aiqb_parser${TARGET_SUFFIX} + ia_cmc_parser${TARGET_SUFFIX} + ia_exc${TARGET_SUFFIX} + ia_mkn${TARGET_SUFFIX} + ia_emd_decoder${TARGET_SUFFIX} + ia_nvm${TARGET_SUFFIX} + ia_log${TARGET_SUFFIX} + ia_dvs${TARGET_SUFFIX} + ia_coordinate${TARGET_SUFFIX} + ia_ltm${TARGET_SUFFIX} + ia_dvs${TARGET_SUFFIX} + ia_isp_bxt${TARGET_SUFFIX} + broxton_ia_pal${TARGET_SUFFIX} # DOL_FEATURE_S -find_library(IA_BCOMP${TARGET_SUFFIX}_LIB ia_bcomp${TARGET_SUFFIX}) + ia_bcomp${TARGET_SUFFIX} # DOL_FEATURE_E -find_library(IA_NVM${TARGET_SUFFIX}_LIB ia_nvm${TARGET_SUFFIX}) -find_library(IA_LOG${TARGET_SUFFIX}_LIB ia_log${TARGET_SUFFIX}) -find_library(IA_DVS${TARGET_SUFFIX}_LIB ia_dvs${TARGET_SUFFIX}) -find_library(IA_COORDINATE${TARGET_SUFFIX}_LIB ia_coordinate${TARGET_SUFFIX}) -find_library(IA_LTM${TARGET_SUFFIX}_LIB ia_ltm${TARGET_SUFFIX}) -find_library(IA_DVS${TARGET_SUFFIX}_LIB ia_dvs${TARGET_SUFFIX}) -find_library(IA_ISP_BXT${TARGET_SUFFIX}_LIB ia_isp_bxt${TARGET_SUFFIX}) -find_library(BXT_IA_PAL${TARGET_SUFFIX}_LIB broxton_ia_pal${TARGET_SUFFIX}) - -set(IA_IMAGING${TARGET_SUFFIX}_LIBS - ${IA_CCA${TARGET_SUFFIX}_LIB} - ${IA_AIQ${TARGET_SUFFIX}_LIB} - ${IA_AIQB_PARSER${TARGET_SUFFIX}_LIB} - ${IA_CMC_PARSER${TARGET_SUFFIX}_LIB} - ${IA_EXC${TARGET_SUFFIX}_LIB} - ${IA_MKN${TARGET_SUFFIX}_LIB} - ${IA_EMD${TARGET_SUFFIX}_LIB} - ${IA_BCOMP${TARGET_SUFFIX}_LIB} - ${IA_NVM${TARGET_SUFFIX}_LIB} - ${IA_LOG${TARGET_SUFFIX}_LIB} - ${IA_DVS${TARGET_SUFFIX}_LIB} - ${IA_COORDINATE${TARGET_SUFFIX}_LIB} - ${IA_LTM${TARGET_SUFFIX}_LIB} - ${IA_DVS${TARGET_SUFFIX}_LIB} - ${IA_OB${TARGET_SUFFIX}_LIB} - ${IA_ISP_BXT${TARGET_SUFFIX}_LIB} - ${BXT_IA_PAL${TARGET_SUFFIX}_LIB} ) if (NOT ENABLE_SANDBOXING) - find_library(IA_LARD${TARGET_SUFFIX}_LIB ia_lard${TARGET_SUFFIX}) - set(IA_IMAGING${TARGET_SUFFIX}_LIBS ${IA_IMAGING${TARGET_SUFFIX}_LIBS} ${IA_LARD${TARGET_SUFFIX}_LIB}) + set(IA_IMAGING${TARGET_SUFFIX}_LIBRARIES + ${IA_IMAGING${TARGET_SUFFIX}_LIBRARIES} + ia_lard${TARGET_SUFFIX} + ) endif() #ENABLE_SANDBOXING if (USE_PG_LITE_PIPE) - find_library(IA_P2P${TARGET_SUFFIX}_LIB ia_p2p${TARGET_SUFFIX}) - set(IA_IMAGING${TARGET_SUFFIX}_LIBS ${IA_IMAGING${TARGET_SUFFIX}_LIBS} ${IA_P2P${TARGET_SUFFIX}_LIB}) -endif() - -# handle the QUIETLY and REQUIRED arguments and set EXPAT_FOUND to TRUE if -# all listed variables are TRUE -find_package_handle_standard_args(IA_IMAGING${TARGET_SUFFIX} - REQUIRED_VARS IA_IMAGING${TARGET_SUFFIX}_INCLUDE_DIRS IA_IMAGING${TARGET_SUFFIX}_LIBS) - -if(NOT IA_IMAGING${TARGET_SUFFIX}_FOUND) - message(FATAL_ERROR "IA_IMAGING${TARGET_SUFFIX} not found") + set(IA_IMAGING${TARGET_SUFFIX}_LIBRARIES + ${IA_IMAGING${TARGET_SUFFIX}_LIBRARIES} + ia_p2p${TARGET_SUFFIX} + ) endif() diff --git a/cmake/FindLIBDRM.cmake b/cmake/FindLIBDRM.cmake index c71b9ae0..af66b3f7 100644 --- a/cmake/FindLIBDRM.cmake +++ b/cmake/FindLIBDRM.cmake @@ -15,25 +15,9 @@ # # Get include and lib paths for LIBDRM from pkgconfig -include(FindPackageHandleStandardArgs) find_package(PkgConfig) pkg_check_modules(LIBDRM libdrm) if(NOT LIBDRM_FOUND) message(SEND_ERROR "LIBDRM not found") endif() - -set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ${LIBDRM_LIBRARY_DIRS}) - -# Libraries -find_library(DRM_LIB drm) -set(LIBDRM_LIBS ${DRM_LIB}) - -# handle the QUIETLY and REQUIRED arguments and set EXPAT_FOUND to TRUE if -# all listed variables are TRUE -find_package_handle_standard_args(LIBDRM REQUIRED_VARS LIBDRM_INCLUDE_DIRS LIBDRM_LIBS) - -if(NOT LIBDRM_FOUND) - message(SEND_ERROR "LIBDRM not found") -endif() - diff --git a/cmake/FindLIBGCSS.cmake b/cmake/FindLIBGCSS.cmake index dd0ff799..e360f7c7 100644 --- a/cmake/FindLIBGCSS.cmake +++ b/cmake/FindLIBGCSS.cmake @@ -15,25 +15,9 @@ # # Get include and lib paths for LIBGCSS from pkgconfig -include(FindPackageHandleStandardArgs) find_package(PkgConfig) pkg_check_modules(LIBGCSS${TARGET_SUFFIX} libgcss${TARGET_SUFFIX}) if(NOT LIBGCSS${TARGET_SUFFIX}_FOUND) message(FATAL_ERROR "LIBGCSS${TARGET_SUFFIX} not found") endif() - -set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ${LIBGCSS${TARGET_SUFFIX}_LIBRARY_DIRS}) - -# Libraries -find_library(GCSS${TARGET_SUFFIX}_LIB gcss${TARGET_SUFFIX}) -set(LIBGCSS${TARGET_SUFFIX}_LIBS ${GCSS${TARGET_SUFFIX}_LIB}) - -# handle the QUIETLY and REQUIRED arguments and set EXPAT_FOUND to TRUE if -# all listed variables are TRUE -find_package_handle_standard_args(LIBGCSS${TARGET_SUFFIX} REQUIRED_VARS LIBGCSS${TARGET_SUFFIX}_INCLUDE_DIRS LIBGCSS${TARGET_SUFFIX}_LIBS) - -if(NOT LIBGCSS${TARGET_SUFFIX}_FOUND) - message(FATAL_ERROR "LIBGCSS${TARGET_SUFFIX} not found") -endif() - diff --git a/cmake/FindLIBIACSS.cmake b/cmake/FindLIBIACSS.cmake index c2485e14..9f8769d9 100644 --- a/cmake/FindLIBIACSS.cmake +++ b/cmake/FindLIBIACSS.cmake @@ -15,32 +15,9 @@ # # Get include and lib paths for LIBIACSS from pkgconfig -include(FindPackageHandleStandardArgs) find_package(PkgConfig) -pkg_check_modules(LIBIACSS libiacss) -if(NOT LIBIACSS_FOUND) - message(FATAL_ERROR "LIBIACSS not found") +pkg_check_modules(LIBIACSS${TARGET_SUFFIX} libiacss${TARGET_SUFFIX}) +if(NOT LIBIACSS${TARGET_SUFFIX}_FOUND) + message(FATAL_ERROR "LIBIACSS${TARGET_SUFFIX} not found") endif() - -set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ${LIBIACSS_LIBRARY_DIRS}) - -# Libraries -find_library(GCSS_LIB gcss) -find_library(IA_CAMERA_LIB ia_camera) -find_library(IA_CIPF_LIB ia_cipf) -set(LIBIACSS_LIBS - ${GCSS_LIB} - ${IA_CAMERA_LIB} - ${IA_CIPF_LIB} - ) - -# handle the QUIETLY and REQUIRED arguments and set EXPAT_FOUND to TRUE if -# all listed variables are TRUE -find_package_handle_standard_args(LIBIACSS - REQUIRED_VARS LIBIACSS_INCLUDE_DIRS LIBIACSS_LIBS) - -if(NOT LIBIACSS_FOUND) - message(FATAL_ERROR "LIBIACSS not found") -endif() - diff --git a/cmake/FindLIBIPU.cmake b/cmake/FindLIBIPU.cmake index 9f8d9fc6..17a6efe8 100644 --- a/cmake/FindLIBIPU.cmake +++ b/cmake/FindLIBIPU.cmake @@ -28,26 +28,9 @@ else() endif() # Get include and lib paths for LIBIPU from pkgconfig -include(FindPackageHandleStandardArgs) -# Include directory find_package(PkgConfig) pkg_check_modules(LIBIPU${TARGET_SUFFIX} ${libipu_ver}) if(NOT LIBIPU${TARGET_SUFFIX}_FOUND) message(FATAL_ERROR "LIBIPU${TARGET_SUFFIX} not found") endif() - -set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ${LIBIPU${TARGET_SUFFIX}_LIBRARY_DIRS}) - -# Libraries -find_library(IPU${TARGET_SUFFIX}_LIB NAMES ${libipu_ver}.a) -set(LIBIPU${TARGET_SUFFIX}_LIBS ${IPU${TARGET_SUFFIX}_LIB}) - -# handle the QUIETLY and REQUIRED arguments and set EXPAT_FOUND to TRUE if -# all listed variables are TRUE -find_package_handle_standard_args(LIBIPU${TARGET_SUFFIX} - REQUIRED_VARS LIBIPU${TARGET_SUFFIX}_INCLUDE_DIRS LIBIPU${TARGET_SUFFIX}_LIBS) - -if(NOT LIBIPU${TARGET_SUFFIX}_FOUND) - message(FATAL_ERROR "LIBIPU${TARGET_SUFFIX} not found") -endif() diff --git a/config/linux/ipu6ep/libcamhal_profile.xml b/config/linux/ipu6ep/libcamhal_profile.xml index f167d84f..7a1f87ed 100644 --- a/config/linux/ipu6ep/libcamhal_profile.xml +++ b/config/linux/ipu6ep/libcamhal_profile.xml @@ -21,6 +21,6 @@ + isx031,imx390,ar0234,external_source,ar0234_usb,lt6911uxc-1-1,lt6911uxc-2-2,lt6911uxe"/> diff --git a/config/linux/ipu6ep/psys_policy_profiles.xml b/config/linux/ipu6ep/psys_policy_profiles.xml index eb6fb30f..c4064795 100644 --- a/config/linux/ipu6ep/psys_policy_profiles.xml +++ b/config/linux/ipu6ep/psys_policy_profiles.xml @@ -19,8 +19,6 @@ limitations under the License. - - diff --git a/config/linux/ipu6ep/sensors/lt6911uxc-1.xml b/config/linux/ipu6ep/sensors/lt6911uxc-1.xml new file mode 100644 index 00000000..b6ee2a3b --- /dev/null +++ b/config/linux/ipu6ep/sensors/lt6911uxc-1.xml @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/linux/ipu6ep/sensors/lt6911uxc-2.xml b/config/linux/ipu6ep/sensors/lt6911uxc-2.xml new file mode 100644 index 00000000..29ffcac5 --- /dev/null +++ b/config/linux/ipu6ep/sensors/lt6911uxc-2.xml @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/algowrapper/IntelPGParam.cpp b/modules/algowrapper/IntelPGParam.cpp index 2528015c..41824fb5 100644 --- a/modules/algowrapper/IntelPGParam.cpp +++ b/modules/algowrapper/IntelPGParam.cpp @@ -475,6 +475,7 @@ void IntelPGParam::destroyPayloads() { int IntelPGParam::updatePALAndEncode(const ia_binary_data* ipuParams, int payloadCount, ia_binary_data* payloads) { + LOG1("@%s", __func__); ia_err err = ia_p2p_parse(mP2pHandle, ipuParams, mP2pCacheBuffer.data); CheckAndLogError(err != ia_err_none, UNKNOWN_ERROR, "Failed to parse PAL data."); diff --git a/src/core/PSysProcessor.cpp b/src/core/PSysProcessor.cpp index 0b2286f1..5e1ee525 100644 --- a/src/core/PSysProcessor.cpp +++ b/src/core/PSysProcessor.cpp @@ -908,8 +908,8 @@ status_t PSysProcessor::prepareTask(CameraBufferPortMap* srcBuffers, int64_t settingSequence = getSettingSequence(*dstBuffers); bool needRunPipe = needExecutePipe(settingSequence, inputSequence); bool holdOnInput = needHoldOnInputFrame(settingSequence, inputSequence); - LOG2("%s: dst sequence = %ld, src sequence = %ld, needRunPipe = %d, needReuseInput = %d", - __func__, settingSequence, inputSequence, needRunPipe, holdOnInput); + LOG2("%s: dst sequence = %ld, src sequence = %ld, needRunPipe = %d, needReuseInput = %d", + mCameraId, __func__, settingSequence, inputSequence, needRunPipe, holdOnInput); { AutoMutex l(mBufferQueueLock); diff --git a/src/core/psysprocessor/PGCommon.cpp b/src/core/psysprocessor/PGCommon.cpp index 30a48e29..433f0859 100644 --- a/src/core/psysprocessor/PGCommon.cpp +++ b/src/core/psysprocessor/PGCommon.cpp @@ -884,7 +884,7 @@ int PGCommon::iterate(CameraBufferMap& inBufs, CameraBufferMap& outBufs, ia_bina if (!inBufs.empty()) { sequence = inBufs.begin()->second->getSequence(); } - LOG2("%s:%s ++", sequence, getName(), __func__); + LOG2("%s:%s ++", mCameraId, sequence, getName(), __func__); int ret = prepareTerminalBuffers(ipuParameters, inBufs, outBufs, sequence); CheckAndLogError((ret != OK), ret, "%s, prepareTerminalBuffers fail with %d", getName(), ret); @@ -932,7 +932,7 @@ int PGCommon::iterate(CameraBufferMap& inBufs, CameraBufferMap& outBufs, ia_bina } postTerminalBuffersDone(sequence); - LOG2("%s:%s -- ", sequence, getName(), __func__); + LOG2("%s:%s -- ", mCameraId, sequence, getName(), __func__); return ret; } @@ -1255,6 +1255,8 @@ int PGCommon::handleCmd(CIPR::Command** cmd, CIPR::PSysCommandConfig* cmdCfg) { cmdCfg->issueID = reinterpret_cast(cmd); eventCfg.commandIssueID = cmdCfg->issueID; + LOG3("@%s", mCameraId, __func__); + CIPR::Result ret = (*cmd)->setConfig(*cmdCfg); CheckAndLogError((ret != CIPR::Result::OK), UNKNOWN_ERROR, "%s, call CIPR::Command::setConfig fail", __func__); diff --git a/src/iutils/CameraDump.cpp b/src/iutils/CameraDump.cpp index 2a9282b5..612890dc 100644 --- a/src/iutils/CameraDump.cpp +++ b/src/iutils/CameraDump.cpp @@ -421,11 +421,24 @@ static string formatBinFileName(int cameraId, const char* prefix, BinParam_t* bi return string(fileName); } -int CameraDump::checkPattern(void* data, int bufferSize, int w, int h, int stride) { +/* + * return 1, match the pattern + * + * pink pattern 0xffff may be padding bytes. + * 0xffff observed in bottom half of frame buffer. + * 0xffff not observed relative to Y/U/V plane. + * for example: + * Y plane may OK, U plane bottom half is 0xffff, V plane is whole 0xffff. + */ +int CameraDump::matchPattern(void* data, int bufferSize, int w, int h, int stride, int format) { uint32_t val; int lineStart = h - 1; int lineEnd = h - 1; + if (format != V4L2_PIX_FMT_UYVY) return 0; + + LOG1("%s, stride %d, w %d, h %d, buffersize %d", __func__, stride, w, h, bufferSize); + if (gDumpPatternLineEnabled && gDumpPatternLineMin < (uint32_t)h) lineStart = gDumpPatternLineMin; @@ -471,12 +484,11 @@ void CameraDump::dumpImage(int cameraId, const shared_ptr& camBuff void* pBuf = mapper.getUserPtr(); if (gDumpPatternEnabled) { - if (!checkPattern(pBuf, bufferSize, - camBuffer->getWidth(), - camBuffer->getHeight(), - camBuffer->getStride())) - return; - LOGI("@%s, dump pattern matched frame %d", __func__, camBuffer->getSequence()); + if (matchPattern(pBuf, bufferSize, camBuffer->getWidth(), camBuffer->getHeight(), + camBuffer->getStride(), camBuffer->getFormat())) + LOGI("@%s, dump pattern matched frame %d", __func__, camBuffer->getSequence()); + + return; } LOG1("@%s, fd:%d, buffersize:%d, buf:%p, memoryType:%d, fileName:%s", __func__, fd, bufferSize, pBuf, memoryType, fileName.c_str()); diff --git a/src/iutils/CameraDump.h b/src/iutils/CameraDump.h index 08875277..bf608c60 100644 --- a/src/iutils/CameraDump.h +++ b/src/iutils/CameraDump.h @@ -152,7 +152,7 @@ bool isDumpFormatEnable(int dumpFormat); void writeData(const void* data, int size, const char* fileName); const char* getDumpPath(void); void parseRange(char* rangeStr, uint32_t* rangeMin, uint32_t* rangeMax); -int checkPattern(void* data, int bufferSize, int w, int h, int stride); +int matchPattern(void* data, int bufferSize, int w, int h, int stride, int format); /** * Dump image according to CameraBuffer properties */