diff --git a/src/video_device.c b/src/video_device.c index 2cca9f0..d72943a 100644 --- a/src/video_device.c +++ b/src/video_device.c @@ -30,18 +30,18 @@ #include -#if defined(__linux__) || defined(__FreeBSD__) +#if defined(__OSX__) +#import "osx_video.h" +#else #include #include #include #include +#if defined(__linux__) #include -#elif defined(__OpenBSD__) -#include -#include +#else #include -#else /* __OSX__ */ -#import "osx_video.h" +#endif #endif #include "line_info.h" @@ -69,7 +69,7 @@ typedef struct VideoDevice { void *cb_data; /* Data to be passed to callback */ int32_t friend_number; /* ToxAV friend number */ -#if defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) +#if defined(__linux__) || SYSTEM == BSD int fd; /* File descriptor of video device selected/opened */ struct v4l2_format fmt; struct VideoBuffer *buffers; @@ -136,7 +136,7 @@ static void yuv420tobgr(uint16_t width, uint16_t height, const uint8_t *y, } } -#if defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) +#if defined(__linux__) || SYSTEM == BSD static void yuv422to420(uint8_t *plane_y, uint8_t *plane_u, uint8_t *plane_v, uint8_t *input, uint16_t width, uint16_t height) { @@ -185,7 +185,7 @@ VideoDeviceError init_video_devices() { size[vdt_input] = 0; -#if defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) +#if defined(__linux__) || SYSTEM == BSD for (; size[vdt_input] <= MAX_DEVICES; ++size[vdt_input]) { int fd; @@ -275,7 +275,7 @@ VideoDeviceError terminate_video_devices() VideoDeviceError register_video_device_callback(int32_t friend_number, uint32_t device_idx, VideoDataHandleCallback callback, void *data) { -#if defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) +#if defined(__linux__) || SYSTEM == BSD if ( size[vdt_input] <= device_idx || !video_devices_running[vdt_input][device_idx] || !video_devices_running[vdt_input][device_idx]->fd ) @@ -359,7 +359,7 @@ VideoDeviceError open_video_device(VideoDeviceType type, int32_t selection, uint if ( type == vdt_input ) { video_thread_paused = true; -#if defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) +#if defined(__linux__) || SYSTEM == BSD /* Open selected device */ char device_address[] = "/dev/videoXX"; snprintf(device_address + 10, sizeof(device_address) - 10, "%i", selection); @@ -670,7 +670,7 @@ void *video_thread_poll (void *arg) // TODO: maybe use thread for every input so uint8_t *u = device->input.planes[1]; uint8_t *v = device->input.planes[2]; -#if defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) +#if defined(__linux__) || SYSTEM == BSD struct v4l2_buffer buf; memset(&(buf), 0, sizeof(buf)); @@ -730,14 +730,14 @@ void *video_thread_poll (void *arg) // TODO: maybe use thread for every input so XFlush(device->x_display); free(img_data); -#if defined(__linux__) || defined(__FreeBSD__) +#if defined(__linux__) || SYSTEM == BSD if ( -1 == xioctl(device->fd, VIDIOC_QBUF, &buf) ) { unlock; continue; } -#endif /* __linux__ */ +#endif /* __linux__ / BSD */ } @@ -769,7 +769,7 @@ VideoDeviceError close_video_device(VideoDeviceType type, uint32_t device_idx) if ( !device->ref_count ) { if ( type == vdt_input ) { -#if defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) +#if defined(__linux__) || SYSTEM == BSD enum v4l2_buf_type buf_type = V4L2_BUF_TYPE_VIDEO_CAPTURE; if ( -1 == xioctl(device->fd, VIDIOC_STREAMOFF, &buf_type) ) {} @@ -792,9 +792,9 @@ VideoDeviceError close_video_device(VideoDeviceType type, uint32_t device_idx) XCloseDisplay(device->x_display); pthread_mutex_destroy(device->mutex); -#if defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) +#if defined(__linux__) || SYSTEM == BSD free(device->buffers); -#endif /* __linux__ */ +#endif /* __linux__ / BSD */ free(device); } else {