Dragonboard410c Android USB Camera 使用:mjpg-streamer 移植到Android平臺(三)

mjpg-streamer移植的android平臺也很簡單,只要寫好Android.mk文件進行編譯就行。由於mjpg-streamer是基於jpeg庫來處理攝像頭數據的,因此在移植mjpg-streamer到android時需確保源代碼中包含有jpeg庫,否則在編譯mjpg-streamer時會報告錯誤。

下載mjpg-streamer:
https://github.com/chenguangxiang/mjpg-streamer/tree/master/mjpg-streamer-for-android

下載jpeg庫:
https://github.com/chenguangxiang/mjpg-streamer/tree/master/jpeg

把mjpg-streamer和jpeg庫代碼下載下來後放入external目錄下即可。如編譯報錯,請自行查看編譯錯誤信息修改Android.mk文件或插件代碼。

下面是我自己編寫的Android.mk文件,僅供參考。

LOCAL_PATH:= $(call my-dir)

# build input_control.so
include $(CLEAR_VARS)

LOCAL_SRC_FILES := \
    plugins/input_control/dynctrl.c \
    plugins/input_control/input_uvc.c

LOCAL_C_INCLUDES := \
    mjpg_streamer.h \
    utils.h \
    plugins/output.h \
    plugins/input.h \
    plugins/input_control/uvcvideo.h \
    plugins/input_control/uvc_compat.h \
    plugins/input_control/v4l2uvc.h \
    plugins/input_control/dynctrl.h

LOCAL_CFLAGS := -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC

LOCAL_MODULE := input_control

include $(BUILD_SHARED_LIBRARY)

# build input_file.so
include $(CLEAR_VARS)

LOCAL_SRC_FILES := \
    plugins/input_file/input_file.c


LOCAL_C_INCLUDES := \
    mjpg_streamer.h \
    utils.h \
    plugins/output.h \
    plugins/input.h

LOCAL_CFLAGS := -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC

LOCAL_MODULE := input_file

include $(BUILD_SHARED_LIBRARY)

# build input_http.so
include $(CLEAR_VARS)

LOCAL_SRC_FILES := \
    plugins/input_http/misc.c \
    plugins/input_http/mjpg-proxy.c \
    plugins/input_http/input_http.c

LOCAL_C_INCLUDES := \
    mjpg_streamer.h \
    utils.h \
    plugins/output.h \
    plugins/input.h \
    plugins/input_http/misc.h \
    plugins/input_http/mjpg-proxy.h \
    plugins/input_http/version.h

LOCAL_CFLAGS := -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC

LOCAL_MODULE := input_http

include $(BUILD_SHARED_LIBRARY)

# build input_uvc.so
include $(CLEAR_VARS)

LOCAL_SRC_FILES := \
    utils.c \
    plugins/input_uvc/v4l2uvc.c \
    plugins/input_uvc/jpeg_utils.c \
    plugins/input_uvc/dynctrl.c \
    plugins/input_uvc/input_uvc.c \


LOCAL_C_INCLUDES := \
    mjpg_streamer.h \
    utils.h \
    plugins/output.h \
    plugins/input.h \
    plugins/input_uvc/huffman.h \
    plugins/input_uvc/uvc_compat.h \
    plugins/input_uvc/v4l2uvc.h \
    plugins/input_uvc/jpeg_utils.h \
    plugins/input_uvc/dynctrl.h \
    ../jpeg/jpeglib.h

#LOCAL_CFLAGS := -O1 -DLINUX -DUSE_LIBV4L2 -D_GNU_SOURCE -Wall -shared -fPIC
LOCAL_CFLAGS := -O1 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC

LOCAL_SHARED_LIBRARIES := libjpeg

LOCAL_MODULE := input_uvc

include $(BUILD_SHARED_LIBRARY)

# build output_autofocus.so
include $(CLEAR_VARS)

LOCAL_SRC_FILES := \
    plugins/output_autofocus/processJPEG_onlyCenter.c \
    plugins/output_autofocus/output_autofocus.c

LOCAL_C_INCLUDES := \
    mjpg_streamer.h \
    utils.h \
    plugins/output.h \
    plugins/input.h \
    plugins/output_autofocus/processJPEG_onlyCenter.h

LOCAL_CFLAGS := -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC

LOCAL_MODULE := output_autofocus

include $(BUILD_SHARED_LIBRARY)

# build output_file.so
include $(CLEAR_VARS)

LOCAL_SRC_FILES := \
    plugins/output_file/output_file.c 

LOCAL_C_INCLUDES := \
    mjpg_streamer.h \
    utils.h \
    plugins/output.h \
    plugins/input.h \
    plugins/output_file/output_file.h

LOCAL_CFLAGS := -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC

LOCAL_MODULE := output_file

include $(BUILD_SHARED_LIBRARY)

# build output_http.so
include $(CLEAR_VARS)

LOCAL_SRC_FILES := \
    plugins/output_http/httpd.c \
    plugins/output_http/output_http.c


LOCAL_C_INCLUDES := \
    mjpg_streamer.h \
    utils.h \
    plugins/output.h \
    plugins/input.h \
    plugins/output_http/httpd.h

LOCAL_CFLAGS := -O1 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC

LOCAL_MODULE := output_http

include $(BUILD_SHARED_LIBRARY)

# build output_rtsp.so
include $(CLEAR_VARS)

LOCAL_SRC_FILES := \
    plugins/output_rtsp/output_rtsp.c


LOCAL_C_INCLUDES := \
    mjpg_streamer.h \
    utils.h \
    plugins/output.h \
    plugins/input.h \
    plugins/output_rtsp/httpd.h

LOCAL_CFLAGS := -O1 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC

LOCAL_MODULE := output_rtsp

include $(BUILD_SHARED_LIBRARY)

# build output_udp.so
include $(CLEAR_VARS)

LOCAL_SRC_FILES := plugins/output_udp/output_udp.c

LOCAL_C_INCLUDES := \
    mjpg_streamer.h \
    utils.h \
    plugins/output.h \
    plugins/input.h \

LOCAL_CFLAGS := -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC

LOCAL_MODULE := output_udp

include $(BUILD_SHARED_LIBRARY)

# build mjpg_streamer
include $(CLEAR_VARS)

LOCAL_MODULE := mjpg_streamer

LOCAL_SRC_FILES := utils.c mjpg_streamer.c

LOCAL_C_INCLUDES := utils.h mjpg_streamer.h

LOCAL_CFLAGS := -O2 -DLINUX -D_GNU_SOURCE -Wall

LOCAL_SHARED_LIBRARIES := libjpeg

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