Changeset 2236 for pjproject/trunk/pjmedia/src/pjmedia/endpoint.c
- Timestamp:
- Aug 25, 2008 1:58:25 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjmedia/src/pjmedia/endpoint.c
r2072 r2236 425 425 } 426 426 427 /* Add fmtp mode where applicable */ 428 if (codec_param.setting.dec_fmtp_mode != 0) { 429 const pj_str_t fmtp = { "fmtp", 4 }; 427 /* Add fmtp params */ 428 if (codec_param.setting.dec_fmtp.cnt > 0) { 429 enum { MAX_FMTP_STR_LEN = 160 }; 430 char buf[MAX_FMTP_STR_LEN]; 431 unsigned buf_len = 0, i; 432 pjmedia_codec_fmtp *dec_fmtp = &codec_param.setting.dec_fmtp; 433 434 /* Print codec PT */ 435 buf_len += pj_ansi_snprintf(buf, 436 MAX_FMTP_STR_LEN - buf_len, 437 "%d", 438 codec_info->pt); 439 440 for (i = 0; i < dec_fmtp->cnt; ++i) { 441 unsigned test_len = 2; 442 443 /* Check if buf still available */ 444 test_len = dec_fmtp->param[i].val.slen + 445 dec_fmtp->param[i].name.slen; 446 if (test_len + buf_len >= MAX_FMTP_STR_LEN) 447 return PJ_ETOOBIG; 448 449 /* Print delimiter */ 450 buf_len += pj_ansi_snprintf(&buf[buf_len], 451 MAX_FMTP_STR_LEN - buf_len, 452 (i == 0?" ":";")); 453 454 /* Print an fmtp param */ 455 if (dec_fmtp->param[i].name.slen) 456 buf_len += pj_ansi_snprintf( 457 &buf[buf_len], 458 MAX_FMTP_STR_LEN - buf_len, 459 "%.*s=%.*s", 460 (int)dec_fmtp->param[i].name.slen, 461 dec_fmtp->param[i].name.ptr, 462 (int)dec_fmtp->param[i].val.slen, 463 dec_fmtp->param[i].val.ptr); 464 else 465 buf_len += pj_ansi_snprintf(&buf[buf_len], 466 MAX_FMTP_STR_LEN - buf_len, 467 "%.*s", 468 (int)dec_fmtp->param[i].val.slen, 469 dec_fmtp->param[i].val.ptr); 470 } 471 430 472 attr = PJ_POOL_ZALLOC_T(pool, pjmedia_sdp_attr); 431 473 432 attr->name = fmtp; 433 attr->value.ptr = (char*) pj_pool_alloc(pool, 32); 434 attr->value.slen = 435 pj_ansi_snprintf( attr->value.ptr, 32, 436 "%d mode=%d", 437 codec_info->pt, 438 codec_param.setting.dec_fmtp_mode); 474 attr->name = pj_str("fmtp"); 475 attr->value = pj_strdup3(pool, buf); 439 476 m->attr[m->attr_count++] = attr; 440 477 }
Note: See TracChangeset
for help on using the changeset viewer.