diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/file_list.c | 2 | ||||
-rw-r--r-- | src/writer.c | 19 |
2 files changed, 12 insertions, 9 deletions
diff --git a/src/file_list.c b/src/file_list.c index c31ecef..c427381 100644 --- a/src/file_list.c +++ b/src/file_list.c @@ -45,7 +45,7 @@ static void delete_file(void* element) { file_t* deletee = (file_t*)element; - log_printf(INFO, "removing/closing file '%s'", deletee->path_); + log_printf(INFO, "removing/closing file '%s' -> %d", deletee->path_, deletee->fd_); if(deletee->path_) free(deletee->path_); if(deletee->fd_ >= 0) close(deletee->fd_); } diff --git a/src/writer.c b/src/writer.c index 4d8d664..8d08cd9 100644 --- a/src/writer.c +++ b/src/writer.c @@ -70,19 +70,25 @@ static int init_time_boundaries(writer_t* writer) static void added_cb(GstElement* sink, gint fd, gpointer data) { - log_printf(INFO, "fdsink: successfully added client %d", fd); + gint num_fds; + g_object_get(G_OBJECT(sink), "num_fds", &num_fds, NULL); + log_printf(INFO, "fdsink: successfully added client %d (sink has now %d fds)", fd, num_fds); } static void removed_cb(GstElement* sink, gint fd, gpointer data) { - log_printf(INFO, "fdsink: successfully removed client %d", fd); + gint num_fds; + g_object_get(G_OBJECT(sink), "num_fds", &num_fds, NULL); + log_printf(INFO, "fdsink: successfully removed client %d (sink has now %d fds)", fd, num_fds); } static void fdremoved_cb(GstElement* sink, gint fd, gpointer data) { - writer_t *writer = (writer_t*)data; - log_printf(INFO, "fdsink: successfully removed fd %d", fd); + gint num_fds; + g_object_get(G_OBJECT(sink), "num_fds", &num_fds, NULL); + log_printf(INFO, "fdsink: successfully removed fd %d (sink has now %d fds)", fd, num_fds); + writer_t *writer = (writer_t*)data; // call post processing script file_list_remove(&(writer->files_), fd); } @@ -123,15 +129,12 @@ int writer_init(writer_t* writer, GMainLoop *loop, const char* name_format, mode static void add_fd(writer_t* writer, int fd) { log_printf(INFO, "adding fd %d to fdsink", fd); -// g_object_set(G_OBJECT(writer->sink_), "fd", fd, NULL); - g_signal_emit_by_name(G_OBJECT(writer->sink_), "add", fd, NULL); } static void remove_fd(writer_t* writer, int fd) { log_printf(INFO, "removing fd %d from fdsink", fd); - // nothing yet g_signal_emit_by_name(G_OBJECT(writer->sink_), "remove-flush", fd, NULL); } @@ -142,7 +145,7 @@ static int check_boundaries(writer_t* writer) GstClockTime tmp = GST_TIMESPEC_TO_TIME(now); GstClockTime boundary = GST_TIMESPEC_TO_TIME(writer->next_boundary_); - tmp += writer->offset_; + tmp -= writer->offset_; if(tmp >= boundary) { struct tm now_bd; localtime_r(&(now.tv_sec), &now_bd); |