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);