|
|
|
@ -70,7 +70,7 @@ static void meta_destroy(metafile_t *mf) { |
|
|
|
// mf is locked |
|
|
|
static void meta_stream_interface(metafile_t *mf, unsigned long snum, char *content) { |
|
|
|
db_do_call(mf); |
|
|
|
if (output_enabled) { |
|
|
|
if (output_enabled && output_mixed) { |
|
|
|
pthread_mutex_lock(&mf->mix_lock); |
|
|
|
if (!mf->mix && output_mixed) { |
|
|
|
char buf[256]; |
|
|
|
@ -107,7 +107,7 @@ static void meta_rtp_payload_type(metafile_t *mf, unsigned long mnum, unsigned i |
|
|
|
ilog(LOG_ERR, "Payload type number %u is invalid", payload_num); |
|
|
|
return; |
|
|
|
} |
|
|
|
if (output_enabled) { |
|
|
|
if (decoding_enabled) { |
|
|
|
pthread_mutex_lock(&mf->payloads_lock); |
|
|
|
mf->payload_types[payload_num] = g_string_chunk_insert(mf->gsc, |
|
|
|
payload_type); |
|
|
|
@ -146,6 +146,8 @@ static void meta_section(metafile_t *mf, char *section, char *content, unsigned |
|
|
|
tag_name(mf, lu, content); |
|
|
|
else if (sscanf_match(section, "LABEL %lu", &lu) == 1) |
|
|
|
tag_label(mf, lu, content); |
|
|
|
else if (sscanf_match(section, "RECORDING %u", &u) == 1) |
|
|
|
mf->recording_on = u; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -167,8 +169,9 @@ static metafile_t *metafile_get(char *name) { |
|
|
|
mf->forward_fd = -1; |
|
|
|
mf->forward_count = 0; |
|
|
|
mf->forward_failed = 0; |
|
|
|
mf->recording_on = 1; |
|
|
|
|
|
|
|
if (output_enabled) { |
|
|
|
if (decoding_enabled) { |
|
|
|
pthread_mutex_init(&mf->payloads_lock, NULL); |
|
|
|
pthread_mutex_init(&mf->mix_lock, NULL); |
|
|
|
mf->ssrc_hash = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, ssrc_free); |
|
|
|
|