diff --git a/src/capture_filter/blank.c b/src/capture_filter/blank.c index 5112dcb83..206112d0b 100644 --- a/src/capture_filter/blank.c +++ b/src/capture_filter/blank.c @@ -94,8 +94,12 @@ static bool parse(struct state_blank *s, char *cfg) while ((item = strtok_r(cfg, ":", &save_ptr))) { if (s->in_relative_units) { vals_relative[counter] = atof(item) / 100.0; + if (vals_relative[counter] < 0.0) + vals_relative[counter] = 0.0; } else { vals[counter] = atoi(item); + if (vals[counter] < 0) + vals[counter] = 0; } cfg = NULL; diff --git a/src/control_socket.cpp b/src/control_socket.cpp index f402171bd..749ff1f21 100644 --- a/src/control_socket.cpp +++ b/src/control_socket.cpp @@ -108,7 +108,7 @@ struct control_state { #define CONTROL_EXIT -1 #define CONTROL_CLOSE_HANDLE -2 -static bool parse_msg(char *buffer, char buffer_len, /* out */ char *message, int *new_buffer_len); +static bool parse_msg(char *buffer, int buffer_len, /* out */ char *message, int *new_buffer_len); static int process_msg(struct control_state *s, fd_t client_fd, char *message); static ssize_t write_all(fd_t fd, const void *buf, size_t count); static void * control_thread(void *args); @@ -120,7 +120,7 @@ static ssize_t write_all(fd_t fd, const void *buf, size_t count) size_t rest = count; ssize_t w = 0; - while (rest > 0 && (w = send(fd, p, rest, 0)) >= 0) { + while (rest > 0 && (w = send(fd, p, rest, MSG_NOSIGNAL)) >= 0) { p += w; rest -= w; } @@ -402,7 +402,7 @@ static void send_response(fd_t fd, struct response *resp) resp->deleter(resp); } -static bool parse_msg(char *buffer, char buffer_len, /* out */ char *message, int *new_buffer_len) +static bool parse_msg(char *buffer, int buffer_len, /* out */ char *message, int *new_buffer_len) { bool ret = false; int i = 0; diff --git a/src/utils/list.c b/src/utils/list.c index 206f88bcd..1cb4f1a75 100644 --- a/src/utils/list.c +++ b/src/utils/list.c @@ -106,6 +106,9 @@ int simple_linked_list_remove(struct simple_linked_list *l, void *item) child_ptr = &(*child_ptr)->next; } + if(!l->head) + l->tail = NULL; + if(found) { l->size -= 1; return TRUE; @@ -139,6 +142,9 @@ void *simple_linked_list_remove_index(struct simple_linked_list *l, int index) } free(tmp); + if(!l->head) + l->tail = NULL; + l->size -= 1; return ret; } diff --git a/src/video_capture/DirectShowGrabber.cpp b/src/video_capture/DirectShowGrabber.cpp index 2a4922239..2ec1f1d81 100644 --- a/src/video_capture/DirectShowGrabber.cpp +++ b/src/video_capture/DirectShowGrabber.cpp @@ -660,7 +660,7 @@ void * vidcap_dshow_init(const struct vidcap_params *params) { return NULL; } - if (params->fmt && strcmp(params_fmt, "help") == 0) { + if (params->fmt && strcmp(params->fmt, "help") == 0) { show_help(s); cleanup(s); return &vidcap_init_noerr; diff --git a/src/video_capture/aggregate.c b/src/video_capture/aggregate.c index 2e1b67621..86e0ccc7a 100644 --- a/src/video_capture/aggregate.c +++ b/src/video_capture/aggregate.c @@ -130,7 +130,7 @@ vidcap_aggregate_init(const struct vidcap_params *params) for (int i = 0; i < s->devices_cnt; ++i) { const struct vidcap_params *dev_params = params + 1 + i; - int ret = initialize_video_capture(dev_params->driver, dev_params, &s->devices[i]); + int ret = initialize_video_capture(NULL, dev_params->driver, dev_params, &s->devices[i]); if(ret != 0) { fprintf(stderr, "[aggregate] Unable to initialize device %d (%s:%s).\n", i, dev_params->driver, dev_params->fmt); diff --git a/src/video_capture/swmix.cpp b/src/video_capture/swmix.cpp index 596c77e1d..6d0d778cf 100644 --- a/src/video_capture/swmix.cpp +++ b/src/video_capture/swmix.cpp @@ -749,7 +749,7 @@ static void *slave_worker(void *arg) struct vidcap *device; int ret = - initialize_video_capture(s->device_params->driver, s->device_params, &device); + initialize_video_capture(NULL, s->device_params->driver, s->device_params, &device); if(ret != 0) { fprintf(stderr, "[swmix] Unable to initialize device %s (%s:%s).\n", s->name, s->device_params->driver, s->device_params->fmt); diff --git a/src/video_decompress/null.c b/src/video_decompress/null.c index 2ffae4fe7..b0f14fed2 100644 --- a/src/video_decompress/null.c +++ b/src/video_decompress/null.c @@ -47,6 +47,8 @@ #include "config.h" #include "config_unix.h" +#include "config_win32.h" + #include "debug.h" #include "video_decompress/null.h" #include