FS-3362 check for ports that are 0 in sdp and do not bother patching it for these cases

This commit is contained in:
Anthony Minessale 2011-06-24 18:28:56 -05:00
parent 12c680d38f
commit 7cb095190a
1 changed files with 12 additions and 2 deletions

View File

@ -1524,6 +1524,7 @@ void sofia_glue_tech_patch_sdp(private_object_t *tech_pvt)
char vport_buf[25] = "";
char *new_sdp;
int bad = 0;
int skip_video = 0, skip_audio = 0, skip_image = 0;
if (zstr(tech_pvt->local_sdp_str)) {
return;
@ -1557,6 +1558,15 @@ void sofia_glue_tech_patch_sdp(private_object_t *tech_pvt)
pe = p + strlen(p);
qe = q + len - 1;
if (switch_stristr("m=video 0", p)) {
skip_video = 1;
} else if (switch_stristr("m=audio 0", p)) {
skip_audio = 1;
} else if (switch_stristr("m=image 0", p)) {
skip_image = 1;
}
while (p && *p) {
if (p >= pe) {
bad = 1;
@ -1648,7 +1658,7 @@ void sofia_glue_tech_patch_sdp(private_object_t *tech_pvt)
}
} else if (!strncmp("m=audio ", p, 8) || (!strncmp("m=image ", p, 8))) {
} else if ((!skip_audio && !strncmp("m=audio ", p, 8)) || (!skip_image && !strncmp("m=image ", p, 8))) {
strncpy(q, p, 8);
p += 8;
@ -1684,7 +1694,7 @@ void sofia_glue_tech_patch_sdp(private_object_t *tech_pvt)
has_audio++;
} else if (!strncmp("m=video ", p, 8)) {
} else if (!skip_video && !strncmp("m=video ", p, 8)) {
if (!has_video) {
sofia_glue_tech_choose_video_port(tech_pvt, 1);
tech_pvt->video_rm_encoding = "PROXY-VID";