1
0
mirror of https://github.com/Tha14/toxic.git synced 2024-11-16 23:03:01 +01:00

Fix building on FreeBSD (courtesy of thierry-FreeBSD)

This commit is contained in:
Jfreegman 2015-11-12 05:04:37 -05:00
parent 05f5f16af3
commit ab99c1ac73
No known key found for this signature in database
GPG Key ID: 3627F3144076AE63
2 changed files with 11 additions and 11 deletions

View File

@ -1,4 +1,4 @@
# Specials options for freebsd systems # Specials options for freebsd systems
LIBS := $(filter-out ncursesw, $(LIBS)) LIBS := $(filter-out ncursesw, $(LIBS))
LDFLAGS += -lncursesw LDFLAGS += -lncursesw -lcurl
MANDIR = $(PREFIX)/man MANDIR = $(PREFIX)/man

View File

@ -30,7 +30,7 @@
#include <vpx/vpx_image.h> #include <vpx/vpx_image.h>
#ifdef __linux__ #if defined(__linux__) || defined(__FreeBSD__)
#include <sys/types.h> #include <sys/types.h>
#include <sys/stat.h> #include <sys/stat.h>
#include <sys/mman.h> #include <sys/mman.h>
@ -65,7 +65,7 @@ typedef struct VideoDevice {
void* cb_data; /* Data to be passed to callback */ void* cb_data; /* Data to be passed to callback */
int32_t friend_number; /* ToxAV friend number */ int32_t friend_number; /* ToxAV friend number */
#ifdef __linux__ #if defined(__linux__) || defined(__FreeBSD__)
int fd; /* File descriptor of video device selected/opened */ int fd; /* File descriptor of video device selected/opened */
struct v4l2_format fmt; struct v4l2_format fmt;
struct VideoBuffer *buffers; struct VideoBuffer *buffers;
@ -131,7 +131,7 @@ static void yuv420tobgr(uint16_t width, uint16_t height, const uint8_t *y,
} }
} }
#ifdef __linux__ #if defined(__linux__) || defined(__FreeBSD__)
static void yuv422to420(uint8_t *plane_y, uint8_t *plane_u, uint8_t *plane_v, static void yuv422to420(uint8_t *plane_y, uint8_t *plane_u, uint8_t *plane_v,
uint8_t *input, uint16_t width, uint16_t height) uint8_t *input, uint16_t width, uint16_t height)
{ {
@ -177,7 +177,7 @@ VideoDeviceError init_video_devices()
{ {
size[vdt_input] = 0; size[vdt_input] = 0;
#ifdef __linux__ #if defined(__linux__) || defined(__FreeBSD__)
for (; size[vdt_input] <= MAX_DEVICES; ++size[vdt_input]) { for (; size[vdt_input] <= MAX_DEVICES; ++size[vdt_input]) {
int fd; int fd;
char device_address[] = "/dev/videoXX"; char device_address[] = "/dev/videoXX";
@ -257,7 +257,7 @@ VideoDeviceError terminate_video_devices()
VideoDeviceError register_video_device_callback(int32_t friend_number, uint32_t device_idx, VideoDeviceError register_video_device_callback(int32_t friend_number, uint32_t device_idx,
VideoDataHandleCallback callback, void* data) VideoDataHandleCallback callback, void* data)
{ {
#ifdef __linux__ #if defined(__linux__) || defined(__FreeBSD__)
if ( size[vdt_input] <= device_idx || !video_devices_running[vdt_input][device_idx] || !video_devices_running[vdt_input][device_idx]->fd ) if ( size[vdt_input] <= device_idx || !video_devices_running[vdt_input][device_idx] || !video_devices_running[vdt_input][device_idx]->fd )
return vde_InvalidSelection; return vde_InvalidSelection;
#else /* __OSX__ */ #else /* __OSX__ */
@ -336,7 +336,7 @@ VideoDeviceError open_video_device(VideoDeviceType type, int32_t selection, uint
if ( type == vdt_input ) { if ( type == vdt_input ) {
video_thread_paused = true; video_thread_paused = true;
#ifdef __linux__ #if defined(__linux__) || defined(__FreeBSD__)
/* Open selected device */ /* Open selected device */
char device_address[] = "/dev/videoXX"; char device_address[] = "/dev/videoXX";
snprintf(device_address + 10 , sizeof(device_address) - 10, "%i", selection); snprintf(device_address + 10 , sizeof(device_address) - 10, "%i", selection);
@ -632,7 +632,7 @@ void* video_thread_poll (void* arg) // TODO: maybe use thread for every input so
uint8_t *u = device->input.planes[1]; uint8_t *u = device->input.planes[1];
uint8_t *v = device->input.planes[2]; uint8_t *v = device->input.planes[2];
#ifdef __linux__ #if defined(__linux__) || defined(__FreeBSD__)
struct v4l2_buffer buf; struct v4l2_buffer buf;
memset(&(buf), 0, sizeof(buf)); memset(&(buf), 0, sizeof(buf));
@ -690,7 +690,7 @@ void* video_thread_poll (void* arg) // TODO: maybe use thread for every input so
XFlush(device->x_display); XFlush(device->x_display);
free(img_data); free(img_data);
#ifdef __linux__ #if defined(__linux__) || defined(__FreeBSD__)
if ( -1 == xioctl(device->fd, VIDIOC_QBUF, &buf) ) { if ( -1 == xioctl(device->fd, VIDIOC_QBUF, &buf) ) {
unlock; unlock;
continue; continue;
@ -725,7 +725,7 @@ VideoDeviceError close_video_device(VideoDeviceType type, uint32_t device_idx)
if ( !device->ref_count ) { if ( !device->ref_count ) {
if ( type == vdt_input ) { if ( type == vdt_input ) {
#ifdef __linux__ #if defined(__linux__) || defined(__FreeBSD__)
enum v4l2_buf_type buf_type = V4L2_BUF_TYPE_VIDEO_CAPTURE; enum v4l2_buf_type buf_type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
if( -1 == xioctl(device->fd, VIDIOC_STREAMOFF, &buf_type) ) {} if( -1 == xioctl(device->fd, VIDIOC_STREAMOFF, &buf_type) ) {}
@ -745,7 +745,7 @@ VideoDeviceError close_video_device(VideoDeviceType type, uint32_t device_idx)
XCloseDisplay(device->x_display); XCloseDisplay(device->x_display);
pthread_mutex_destroy(device->mutex); pthread_mutex_destroy(device->mutex);
#ifdef __linux__ #if defined(__linux__) || defined(__FreeBSD__)
free(device->buffers); free(device->buffers);
#endif /* __linux__ */ #endif /* __linux__ */