|
|
|
@ -123,6 +123,23 @@ static void meta_rtp_payload_type(metafile_t *mf, unsigned long mnum, unsigned i |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// mf is locked |
|
|
|
static void meta_rtp_fmtp(metafile_t *mf, unsigned long mnum, unsigned int payload_num, |
|
|
|
char *format) |
|
|
|
{ |
|
|
|
if (payload_num >= 128) { |
|
|
|
ilog(LOG_ERR, "Payload type number %u is invalid", payload_num); |
|
|
|
return; |
|
|
|
} |
|
|
|
if (decoding_enabled) { |
|
|
|
pthread_mutex_lock(&mf->payloads_lock); |
|
|
|
mf->payload_formats[payload_num] = g_string_chunk_insert(mf->gsc, |
|
|
|
format); |
|
|
|
pthread_mutex_unlock(&mf->payloads_lock); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// mf is locked |
|
|
|
static void meta_ptime(metafile_t *mf, unsigned long mnum, int ptime) |
|
|
|
{ |
|
|
|
@ -161,6 +178,8 @@ static void meta_section(metafile_t *mf, char *section, char *content, unsigned |
|
|
|
meta_stream_details(mf, lu, content); |
|
|
|
else if (sscanf_match(section, "MEDIA %lu PAYLOAD TYPE %u", &lu, &u) == 2) |
|
|
|
meta_rtp_payload_type(mf, lu, u, content); |
|
|
|
else if (sscanf_match(section, "MEDIA %lu FMTP %u", &lu, &u) == 2) |
|
|
|
meta_rtp_fmtp(mf, lu, u, content); |
|
|
|
else if (sscanf_match(section, "MEDIA %lu PTIME %i", &lu, &i) == 2) |
|
|
|
meta_ptime(mf, lu, i); |
|
|
|
else if (sscanf_match(section, "TAG %lu", &lu) == 1) |
|
|
|
|