- Timestamp:
- Feb 28, 2011 6:59:47 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/branches/projects/2.0-dev/pjmedia/src/pjmedia/vid_codec.c
r3420 r3425 69 69 70 70 /* 71 * Duplicate video codec parameter. 72 */ 73 PJ_DEF(pjmedia_vid_codec_param*) pjmedia_vid_codec_param_clone( 74 pj_pool_t *pool, 75 const pjmedia_vid_codec_param *src) 76 { 77 pjmedia_vid_codec_param *p; 78 unsigned i; 79 80 PJ_ASSERT_RETURN(pool && src, NULL); 81 82 p = PJ_POOL_ZALLOC_T(pool, pjmedia_vid_codec_param); 83 84 /* Update codec param */ 85 pj_memcpy(p, src, sizeof(pjmedia_vid_codec_param)); 86 for (i = 0; i < src->dec_fmtp.cnt; ++i) { 87 pj_strdup(pool, &p->dec_fmtp.param[i].name, 88 &src->dec_fmtp.param[i].name); 89 pj_strdup(pool, &p->dec_fmtp.param[i].val, 90 &src->dec_fmtp.param[i].val); 91 } 92 for (i = 0; i < src->enc_fmtp.cnt; ++i) { 93 pj_strdup(pool, &p->enc_fmtp.param[i].name, 94 &src->enc_fmtp.param[i].name); 95 pj_strdup(pool, &p->enc_fmtp.param[i].val, 96 &src->enc_fmtp.param[i].val); 97 } 98 99 return p; 100 } 101 102 /* 71 103 * Initialize codec manager. 72 104 */ … … 306 338 307 339 340 PJ_DEF(pj_status_t) pjmedia_vid_codec_mgr_get_codec_info2( 341 pjmedia_vid_codec_mgr *mgr, 342 pjmedia_format_id fmt_id, 343 const pjmedia_vid_codec_info **p_info) 344 { 345 unsigned i; 346 347 PJ_ASSERT_RETURN(p_info, PJ_EINVAL); 348 349 if (!mgr) mgr = def_vid_codec_mgr; 350 PJ_ASSERT_RETURN(mgr, PJ_EINVAL); 351 352 pj_mutex_lock(mgr->mutex); 353 354 for (i=0; i<mgr->codec_cnt; ++i) { 355 if (mgr->codec_desc[i].info.fmt_id == fmt_id) { 356 *p_info = &mgr->codec_desc[i].info; 357 358 pj_mutex_unlock(mgr->mutex); 359 return PJ_SUCCESS; 360 } 361 } 362 363 pj_mutex_unlock(mgr->mutex); 364 365 return PJMEDIA_CODEC_EUNSUP; 366 } 367 368 308 369 /* 309 370 * Convert codec info struct into a unique codec identifier. … … 633 694 } 634 695 635 p = PJ_POOL_ZALLOC_T(pool, pjmedia_vid_codec_param); 636 p = codec_desc->def_param; 637 638 /* Update codec param */ 639 pj_memcpy(p, param, sizeof(pjmedia_vid_codec_param)); 640 for (i = 0; i < param->dec_fmtp.cnt; ++i) { 641 pj_strdup(pool, &p->dec_fmtp.param[i].name, 642 ¶m->dec_fmtp.param[i].name); 643 pj_strdup(pool, &p->dec_fmtp.param[i].val, 644 ¶m->dec_fmtp.param[i].val); 645 } 646 for (i = 0; i < param->enc_fmtp.cnt; ++i) { 647 pj_strdup(pool, &p->enc_fmtp.param[i].name, 648 ¶m->enc_fmtp.param[i].name); 649 pj_strdup(pool, &p->enc_fmtp.param[i].val, 650 ¶m->enc_fmtp.param[i].val); 651 } 696 /* Update codec default param */ 697 p = pjmedia_vid_codec_param_clone(pool, param); 698 if (!p) 699 return PJ_EINVAL; 700 codec_desc->def_param = p; 652 701 653 702 pj_mutex_unlock(mgr->mutex);
Note: See TracChangeset
for help on using the changeset viewer.