diff --git a/conf/boards/bebop.makefile b/conf/boards/bebop.makefile index 553db211df..7376c35826 100644 --- a/conf/boards/bebop.makefile +++ b/conf/boards/bebop.makefile @@ -36,7 +36,7 @@ $(TARGET).srcs += $(SRC_BOARD)/board.c # Compile the video specific parts $(TARGET).CFLAGS += -DI2C_BUF_LEN=56 -DUSE_I2C0 -$(TARGET).srcs += $(SRC_BOARD)/mt9v117.c $(SRC_BOARD)/mt9f002.c +$(TARGET).srcs += $(SRC_BOARD)/mt9v117.c $(SRC_BOARD)/mt9f002.c modules/computer_vision/lib/isp/libisp.c modules/computer_vision/lib/isp/libisp_config.c # Link static (Done for GLIBC) $(TARGET).CFLAGS += -DLINUX_LINK_STATIC diff --git a/conf/boards/bebop2.makefile b/conf/boards/bebop2.makefile index 917b08673f..e0d5155c95 100644 --- a/conf/boards/bebop2.makefile +++ b/conf/boards/bebop2.makefile @@ -39,7 +39,7 @@ $(TARGET).srcs += $(SRC_BOARD)/board.c # Compile the video specific parts $(TARGET).CFLAGS += -DI2C_BUF_LEN=56 -DUSE_I2C0 -$(TARGET).srcs += $(SRC_BOARD)/mt9v117.c $(SRC_BOARD)/mt9f002.c +$(TARGET).srcs += $(SRC_BOARD)/mt9v117.c $(SRC_BOARD)/mt9f002.c modules/computer_vision/lib/isp/libisp.c modules/computer_vision/lib/isp/libisp_config.c # Link static (Done for GLIBC) $(TARGET).CFLAGS += -DLINUX_LINK_STATIC diff --git a/conf/modules/video_thread.xml b/conf/modules/video_thread.xml index b86ec4ce4c..c57ec52298 100644 --- a/conf/modules/video_thread.xml +++ b/conf/modules/video_thread.xml @@ -29,7 +29,6 @@ - diff --git a/sw/airborne/boards/bebop/mt9f002.c b/sw/airborne/boards/bebop/mt9f002.c index bb3c0a3e30..6da2c59048 100644 --- a/sw/airborne/boards/bebop/mt9f002.c +++ b/sw/airborne/boards/bebop/mt9f002.c @@ -30,7 +30,6 @@ #include "math/pprz_algebra_int.h" #include "boards/bebop.h" #include "modules/computer_vision/lib/isp/libisp.h" -#include "modules/computer_vision/lib/isp/libisp_config.h" #include #include @@ -43,8 +42,6 @@ #define MT9F002_MAX_WIDTH 4608 #define MT9F002_MAX_HEIGHT 3288 -extern struct libisp_config isp_config; - /* Camera structure */ struct video_config_t front_camera = { .output_size = { diff --git a/sw/airborne/modules/computer_vision/lib/isp/libisp.c b/sw/airborne/modules/computer_vision/lib/isp/libisp.c index 9b90e6e20c..d26d0dcbea 100644 --- a/sw/airborne/modules/computer_vision/lib/isp/libisp.c +++ b/sw/airborne/modules/computer_vision/lib/isp/libisp.c @@ -8,8 +8,7 @@ #include #include -//#include "libisp.h" -#include "libisp_config.h" +#include "libisp.h" #define AVI_BASE 0x400000 #define AVI_SIZE 0x100000 diff --git a/sw/airborne/modules/computer_vision/lib/isp/libisp.h b/sw/airborne/modules/computer_vision/lib/isp/libisp.h index c57c651eba..5b46bf3008 100644 --- a/sw/airborne/modules/computer_vision/lib/isp/libisp.h +++ b/sw/airborne/modules/computer_vision/lib/isp/libisp.h @@ -100,6 +100,8 @@ struct isp_yuv_stats_t { uint32_t ae_histogram_Y[256]; }; +extern struct libisp_config isp_config; + int configure_isp(struct v4l2_device *dev); int isp_get_statistics_yuv(struct isp_yuv_stats_t *yuv_stats); diff --git a/sw/airborne/modules/computer_vision/lib/isp/libisp_config.h b/sw/airborne/modules/computer_vision/lib/isp/libisp_config.c similarity index 99% rename from sw/airborne/modules/computer_vision/lib/isp/libisp_config.h rename to sw/airborne/modules/computer_vision/lib/isp/libisp_config.c index 036a46b290..fe117b1db1 100644 --- a/sw/airborne/modules/computer_vision/lib/isp/libisp_config.h +++ b/sw/airborne/modules/computer_vision/lib/isp/libisp_config.c @@ -1,6 +1,3 @@ -#ifndef _LIBISP_CONFIG_H -#define _LIBISP_CONFIG_H - #include "boards/bebop/mt9f002.h" #include "libisp.h" @@ -496,5 +493,3 @@ struct libisp_config isp_config = { }, }; - -#endif /* _LIBISP_CONFIG_H */ diff --git a/sw/airborne/modules/computer_vision/video_thread.c b/sw/airborne/modules/computer_vision/video_thread.c index c057009c16..7ee15d55bf 100644 --- a/sw/airborne/modules/computer_vision/video_thread.c +++ b/sw/airborne/modules/computer_vision/video_thread.c @@ -39,13 +39,17 @@ #include "lib/v4l/v4l2.h" #include "lib/vision/image.h" #include "lib/vision/bayer.h" -#include "lib/isp/libisp.h" #include "mcu_periph/sys_time.h" // include board for bottom_camera and front_camera on ARDrone2 and Bebop #include BOARD_CONFIG +// Bebop uses ISP +#ifdef BOARD_BEBOP +#include "lib/isp/libisp.h" +#endif + // Threaded computer vision #include #include "rt_priority.h" @@ -102,10 +106,12 @@ static void *video_thread_function(void *data) return 0; } +#ifdef BOARD_BEBOP // Configure ISP if needed if (vid->filters & VIDEO_FILTER_ISP) { configure_isp(vid->thread.dev); } +#endif // be nice to the more important stuff set_nice_level(VIDEO_THREAD_NICE_LEVEL);