diff options
author | Nanang Izzuddin <nanang@teluu.com> | 2010-01-27 11:48:31 +0000 |
---|---|---|
committer | Nanang Izzuddin <nanang@teluu.com> | 2010-01-27 11:48:31 +0000 |
commit | b4363f43a76411dcdbe60917d6ffe2d168cec3a2 (patch) | |
tree | 40bf7ba236ca1456a5d47360b711936d87d44011 /pjsip | |
parent | 67983fb24f15e72df308c0e52f7055f38c09615c (diff) |
Ticket #1028: Recommit r3074 with updated codec.h.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3078 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip')
-rw-r--r-- | pjsip/include/pjsua-lib/pjsua.h | 3 | ||||
-rw-r--r-- | pjsip/src/pjsua-lib/pjsua_media.c | 29 |
2 files changed, 26 insertions, 6 deletions
diff --git a/pjsip/include/pjsua-lib/pjsua.h b/pjsip/include/pjsua-lib/pjsua.h index 44ce9f0f..ecafb25d 100644 --- a/pjsip/include/pjsua-lib/pjsua.h +++ b/pjsip/include/pjsua-lib/pjsua.h @@ -4483,7 +4483,8 @@ PJ_DECL(pj_status_t) pjsua_codec_get_param( const pj_str_t *codec_id, * Set codec parameters. * * @param codec_id Codec ID. - * @param param Codec parameter to set. + * @param param Codec parameter to set. Set to NULL to reset + * codec parameter to library default settings. * * @return PJ_SUCCESS on success, or the appropriate error code. */ diff --git a/pjsip/src/pjsua-lib/pjsua_media.c b/pjsip/src/pjsua-lib/pjsua_media.c index 3a6bb04f..234833b6 100644 --- a/pjsip/src/pjsua-lib/pjsua_media.c +++ b/pjsip/src/pjsua-lib/pjsua_media.c @@ -3054,11 +3054,30 @@ PJ_DEF(pj_status_t) pjsua_codec_get_param( const pj_str_t *codec_id, /* * Set codec parameters. */ -PJ_DEF(pj_status_t) pjsua_codec_set_param( const pj_str_t *id, +PJ_DEF(pj_status_t) pjsua_codec_set_param( const pj_str_t *codec_id, const pjmedia_codec_param *param) { - PJ_UNUSED_ARG(id); - PJ_UNUSED_ARG(param); - PJ_TODO(set_codec_param); - return PJ_SUCCESS; + const pjmedia_codec_info *info[2]; + pjmedia_codec_mgr *codec_mgr; + unsigned count = 2; + pj_status_t status; + + codec_mgr = pjmedia_endpt_get_codec_mgr(pjsua_var.med_endpt); + + status = pjmedia_codec_mgr_find_codecs_by_id(codec_mgr, codec_id, + &count, info, NULL); + if (status != PJ_SUCCESS) + return status; + + /* Codec ID should be specific, except for G.722.1 */ + if (count > 1 && + pj_strnicmp2(codec_id, "G7221/16", 8) != 0 && + pj_strnicmp2(codec_id, "G7221/32", 8) != 0) + { + pj_assert(!"Codec ID is not specific"); + return PJ_ETOOMANY; + } + + status = pjmedia_codec_mgr_set_default_param(codec_mgr, info[0], param); + return status; } |