【倒车影像分流需求 二】- 根据接口写库
发布日期:2021-06-29 14:51:46
浏览次数:2
分类:技术文章
本文共 4798 字,大约阅读时间需要 15 分钟。
本需求系列文章:
- 《》
- 《》
- 《》
- 《》
- 《》
- 《》
- 《》
- 《》
- 《》
本章比较简单,根据xxx提供的接口,先写一个空的框架,编译库出来
代码放在 /hardware/libhardware/modules/reverse/HwDmsdpCamera
1. dmsdp_camerahandler_server.cpp
/hardware/libhardware/modules/reverse/HwDmsdpCamera/dmsdp_camerahandler_server.cpp#include#include #include #include #include #include #include #include #include "dmsdp_camera_handler.h"/** * DMSDP component will register send data back function pointer by this function */ int32_t RegisterSendDataCallback_func(const char* id, uint32_t idLen, const DMSDPSendBackDataCB cb){ return 0;} /** * open camera */ int32_t OpenCamera_func(const DMSDPCameraParam* param){ return 0;} /** * close camera by camera id */ int32_t CloseCamera_func(const char* id, uint32_t idLen){ return 0;} /** * update configs in running * camId: camera id * configs: configs need update * * supported updated configs, key for config key,value for config value,type for value data type: * key | value desc | value type * ------------------------------ * 1 | fps | int */ int32_t UpdateConfig_func(const char* id, uint32_t idLen, int32_t key, char* value, uint32_t valLen){ return 0;} /** * query camera capability */ int32_t GetCameraCapability_func(DMSDPCameraCapabilities** capabilities, uint32_t* num){ return 0;} /** * query camera capability string */ const char* GetCameraCapabilityString_func(uint32_t* len){ return 0;} /** * release * type: DMSDPCameraReleaseType */ void Release_func(int32_t type, void* ptr, uint32_t num){ } /** * reg listener * listener: DMSDPLinstener */ int32_t RegisterListener_func(const DMSDPListener* listener){ return 0;} /** * business control * cmd: command DMSDPBusinessControlCmd * para: parameter * length: parameter length */ int32_t BusinessControl_func(uint32_t cmd, void* inputPara, uint32_t inLen, void* outputPara, uint32_t outLen){ return 0;} DMSDPCameraHandler DMSDPCameraHandler_opt = { .RegisterSendDataCallback = RegisterSendDataCallback_func, .OpenCamera = OpenCamera_func, .CloseCamera = CloseCamera_func, .UpdateConfig = UpdateConfig_func, .GetCameraCapability = GetCameraCapability_func, .GetCameraCapabilityString = GetCameraCapabilityString_func, .Release = Release_func, .RegisterListener = RegisterListener_func, .BusinessControl = BusinessControl_func,};int32_t Send_Dmsdp_Data(void){ return 0;}/* * get camera handler interface */ int32_t DMSDPGetCameraHandler(DMSDPCameraHandler* cameraHandler){ cameraHandler = &DMSDPCameraHandler_opt; return 0;}
2. Android.mk 实现
@ /hardware/libhardware/modules/reverse/HwDmsdpCamera/Android.mkLOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_SRC_FILES:= \ dmsdp_camerahandler_server.cppLOCAL_C_INCLUDES := \ $(LOCAL_PATH)/include \ $(LOCAL_PATH)/../reversing_video/reverse_video/LOCAL_MODULE := libdmsdpcamerahandlerLOCAL_MODULE_TAGS := optionalLOCAL_MULTILIB := bothLOCAL_CFLAGS += -Wno-writable-strings -Wno-array-bounds -Wno-unused-parameterinclude $(BUILD_SHARED_LIBRARY)
3. 编译so 库
根据系统环境,默认编译的 32位
ciellee@sh$ mmm ./hardware/libhardware/modules/reverse/HwDmsdpCamera/device/qcom/msm8953_32/msm8953_32.mk:26: "Build with 3.18 kernel."============================================PLATFORM_VERSION_CODENAME=RELPLATFORM_VERSION=8.1.0TARGET_PRODUCT=msm8953_32TARGET_BUILD_VARIANT=userdebugTARGET_BUILD_TYPE=releaseTARGET_ARCH=armTARGET_ARCH_VARIANT=armv7-a-neonTARGET_CPU_VARIANT=cortex-a53HOST_ARCH=x86_64HOST_2ND_ARCH=x86HOST_OS=linuxHOST_OS_EXTRA=Linux-4.15.0-29-generic-x86_64-with-Ubuntu-16.04-xenialHOST_CROSS_OS=windowsHOST_CROSS_ARCH=x86HOST_CROSS_2ND_ARCH=x86_64HOST_BUILD_TYPE=releaseBUILD_ID=OPM1.171019.026OUT_DIR=out============================================[2/2] bootstrap out/soong/.minibootstrap/build.ninja.in[1/1] out/soong/.bootstrap/bin/minibp out/soong/.bootstrap/build.ninja[1/1] out/soong/.bootstrap/bin/soong_build out/soong/build.ninjaNo need to regenerate ninja file[100% 1/1] out/soong/.bootstrap/bin/soong_build out/soong/build.ninja[100% 7/7] build out/target/product/msm8953_32/obj/SHARED_LIBRARIES/libdmsdpcamerahandler_intermediates/libdmsdpcamerahandler.so.toc#### build completed successfully (30 seconds) ####
最终库文件位于:
ciellee@sh:~/work/code/CN220C_8950_0426$ find ./out/target/ -name libdmsdpcamerahandler.so./out/target/product/msm8953_32/symbols/system/lib/libdmsdpcamerahandler.so./out/target/product/msm8953_32/obj/SHARED_LIBRARIES/libdmsdpcamerahandler_intermediates/PACKED/libdmsdpcamerahandler.so./out/target/product/msm8953_32/obj/SHARED_LIBRARIES/libdmsdpcamerahandler_intermediates/LINKED/libdmsdpcamerahandler.so./out/target/product/msm8953_32/obj/SHARED_LIBRARIES/libdmsdpcamerahandler_intermediates/libdmsdpcamerahandler.so./out/target/product/msm8953_32/system/lib/libdmsdpcamerahandler.so
好,库编译好了,接下来我们就要开始正式编写共享内存代码了。
转载地址:https://ciellee.blog.csdn.net/article/details/105990561 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年04月06日 02时19分37秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
我在哥大读博的五年,万字总结
2019-04-29
本科、硕士、博士,究竟有何区别?
2019-04-29
如果我的实验室也这样布置,那多好。
2019-04-29
现在做硬件工程师还有前途吗?
2019-04-29
用 50 种编程语言写“Hello,World!”
2019-04-29
GD32替换STM32,这些细节一定要知道。
2019-04-29
华为员工离职心声:菊厂15年退休,感恩,让我实现了财务自由!
2019-04-29
春晚上的“拓荒牛”
2019-04-29
嵌入式驱动自学者的亲身感受,有什么建议?
2019-04-29
华为被超越!这家公司成中国最大智能手机制造商,不是小米!
2019-04-29
腾讯机器狗,站起来了!
2019-04-29
我用自己创造的深度学习框架进入腾讯,爽!
2019-04-29
芯片为什么持续缺货?
2019-04-29
又涨了?2021 年 3 月程序员工资统计新出炉
2019-04-29
初入行的C++程序员,如何快速摆脱CRUD阶段?
2019-04-29
研究生跟了一个很棒的导师是种怎样的体验?
2019-04-29
学会扶墙的机器人:没有什么能让我倒下!
2019-04-29
美国无人机在火星首飞成功,创造历史,3米飞行高度悬停30秒
2019-04-29
单片机的几种数字滤波算法
2019-04-29
用单片机控制导弹?
2019-04-29