|
|
|
@ -119,7 +119,6 @@ struct sdp_attribute {
|
|
|
|
|
param; /* "PCMA/8000" */
|
|
|
|
|
|
|
|
|
|
enum {
|
|
|
|
|
ATTR_INVALID = -1,
|
|
|
|
|
ATTR_OTHER = 0,
|
|
|
|
|
ATTR_RTCP,
|
|
|
|
|
ATTR_CANDIDATE,
|
|
|
|
@ -445,7 +444,7 @@ static int parse_attribute_candidate(struct sdp_attribute *output) {
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void parse_attribute(struct sdp_attribute *a) {
|
|
|
|
|
static int parse_attribute(struct sdp_attribute *a) {
|
|
|
|
|
int ret;
|
|
|
|
|
|
|
|
|
|
a->name = a->line_value;
|
|
|
|
@ -511,8 +510,7 @@ static void parse_attribute(struct sdp_attribute *a) {
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (ret)
|
|
|
|
|
a->attr = ATTR_INVALID;
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int sdp_parse(str *body, GQueue *sessions) {
|
|
|
|
@ -604,7 +602,10 @@ int sdp_parse(str *body, GQueue *sessions) {
|
|
|
|
|
attr->line_value.s = value;
|
|
|
|
|
attr->line_value.len = line_end - value;
|
|
|
|
|
|
|
|
|
|
parse_attribute(attr);
|
|
|
|
|
if (parse_attribute(attr)) {
|
|
|
|
|
g_slice_free1(sizeof(*attr), attr);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
attrs = media ? &media->attributes : &session->attributes;
|
|
|
|
|
g_queue_push_tail(&attrs->list, attr);
|
|
|
|
|