MTK USB CAMERA (中芯微Z0301调试)

MTK USB CAMERA (中芯微Z0301调试)

  1. 驱动的部分:难点在于 mtk 不支持原生的 menuconfig, 需要以下方法来配置:
    保证kernel new 过,
    将 /out/.config 拷贝到kernel文件夹,
    TARGET_PRODUCT=projectnamemakeO=outmenuconfig/../mediatek/build/kernel/MakefileTARGETPRODUCT= {project name} KBUILD_OUTPUT_SUPPORT=yes make O=out menuconfig
    配置完成后,将.config 拷贝到mediatek文件夹, 然后重命名 platform ,重新 编译 kernel 即可。
    Dev/下出现 video0/1 等设备就表示内核配置OK了。
    用开源的 simplewebcam 来测试,发现花屏。此时在 native 层将一帧帧的图像dump到文件里面,发现时 jpeg 格式,原生的软件只支持YUV. 需要自己解码。

  2. 原生的代码 external 下的 libjpeg库 是老版本的,只支持文件的编解码,不支持 memory 编解码, 需要移植新版本。

  3. Ndk 编译新版本库, 编译成静态库。当然动态库也可以。 Ndk建议大家用服务器上的,win 下的设计到文件加密的问题,也让我郁闷了好久,最后放弃了。
  4. 将生产的静态库和头文件拷贝到工程 jni目录下,编写 jni android.mk
    以下是范本:

    LOCAL_PATH := $(call my-dir)  
    
    # test lib, write by me
    include $(CLEAR_VARS)  
    LOCAL_MODULE := first 
    LOCAL_SRC_FILES := first.c  
    LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/first.h 
    include $(BUILD_SHARED_LIBRARY) 
    
    ## third party so lib
    #include $(CLEAR_VARS)  
    #LOCAL_MODULE := myjpeg 
    #LOCAL_SRC_FILES := libmtkjpeg.so  
    #LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include/mtkjpeg 
    #include $(PREBUILT_SHARED_LIBRARY) 
    
    ## prebuilt the static libs   
    include $(CLEAR_VARS)
    LOCAL_MODULE := jpeg  
    LOCAL_SRC_FILES := libjpeg.a  
    include $(PREBUILT_STATIC_LIBRARY)  
    
    include $(CLEAR_VARS)
    LOCAL_MODULE:= ImageProc
    LOCAL_SRC_FILES := ImageProc.c
    LOCAL_LDLIBS:= -llog -ljnigraphics
    #LOCAL_SHARED_LIBRARIES := myjpeg first
    LOCAL_SHARED_LIBRARIES :=  first
    LOCAL_STATIC_LIBRARIES += jpeg  
    
    include $(BUILD_SHARED_LIBRARY)
    

然后 在 jni 里调用 jpeg解码函数即可 实现功能。基本上就OK了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章