summaryrefslogtreecommitdiff
path: root/src/writer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/writer.c')
-rw-r--r--src/writer.c19
1 files changed, 11 insertions, 8 deletions
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);