|
|
@ -149,34 +149,10 @@ static void meta_ptime(metafile_t *mf, unsigned long mnum, int ptime) |
|
|
mf->media_ptimes[mnum] = ptime; |
|
|
mf->media_ptimes[mnum] = ptime; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
static char *get_output_path(metafile_t *mf) { |
|
|
|
|
|
static const char *of = "output-file"; |
|
|
|
|
|
char *res = NULL; |
|
|
|
|
|
str all_meta; |
|
|
|
|
|
str_init(&all_meta, mf->metadata); |
|
|
|
|
|
while (all_meta.len > 1) { |
|
|
|
|
|
str token; |
|
|
|
|
|
if (str_token_sep(&token, &all_meta, '|')) |
|
|
|
|
|
break; |
|
|
|
|
|
str key; |
|
|
|
|
|
if (str_token(&key, &token, ':')) { |
|
|
|
|
|
// key:value separator not found, skip |
|
|
|
|
|
continue; |
|
|
|
|
|
} |
|
|
|
|
|
if (strncmp(key.s, of, strlen(of)) >= 0) { |
|
|
|
|
|
ilog(LOG_INFO, "Metadata output-file found token=%s", token.s); |
|
|
|
|
|
res = token.s; |
|
|
|
|
|
break; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
return res; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// mf is locked |
|
|
// mf is locked |
|
|
static void meta_metadata(metafile_t *mf, char *content) { |
|
|
static void meta_metadata(metafile_t *mf, char *content) { |
|
|
mf->metadata = g_string_chunk_insert(mf->gsc, content); |
|
|
mf->metadata = g_string_chunk_insert(mf->gsc, content); |
|
|
mf->metadata_db = mf->metadata; |
|
|
mf->metadata_db = mf->metadata; |
|
|
mf->output_dest = get_output_path(mf); |
|
|
|
|
|
db_do_call(mf); |
|
|
db_do_call(mf); |
|
|
if (forward_to) |
|
|
if (forward_to) |
|
|
start_forwarding_capture(mf, content); |
|
|
start_forwarding_capture(mf, content); |
|
|
@ -215,6 +191,8 @@ static void meta_section(metafile_t *mf, char *section, char *content, unsigned |
|
|
mf->forwarding_on = u ? 1 : 0; |
|
|
mf->forwarding_on = u ? 1 : 0; |
|
|
else if (sscanf_match(section, "STREAM %lu FORWARDING %u", &lu, &u) == 2) |
|
|
else if (sscanf_match(section, "STREAM %lu FORWARDING %u", &lu, &u) == 2) |
|
|
stream_forwarding_on(mf, lu, u); |
|
|
stream_forwarding_on(mf, lu, u); |
|
|
|
|
|
else if (!strcmp(section, "OUTPUT_DESTINATION")) |
|
|
|
|
|
mf->output_dest = g_string_chunk_insert(mf->gsc, content); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|