summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pjmedia/src/pjmedia/codec.c3
-rw-r--r--pjsip-apps/src/pjsua/pjsua_app.c5
-rw-r--r--pjsip/src/pjsua-lib/pjsua_media.c8
3 files changed, 13 insertions, 3 deletions
diff --git a/pjmedia/src/pjmedia/codec.c b/pjmedia/src/pjmedia/codec.c
index 2e22edcd..b8fe36ad 100644
--- a/pjmedia/src/pjmedia/codec.c
+++ b/pjmedia/src/pjmedia/codec.c
@@ -231,7 +231,8 @@ PJ_DEF(pj_status_t) pjmedia_codec_mgr_find_codecs_by_id( pjmedia_codec_mgr *mgr,
for (i=0; i<mgr->codec_cnt; ++i) {
- if (pj_strnicmp2(codec_id, mgr->codec_desc[i].id,
+ if (codec_id->slen == 0 ||
+ pj_strnicmp2(codec_id, mgr->codec_desc[i].id,
codec_id->slen) == 0)
{
diff --git a/pjsip-apps/src/pjsua/pjsua_app.c b/pjsip-apps/src/pjsua/pjsua_app.c
index 97896b2f..ca0caad2 100644
--- a/pjsip-apps/src/pjsua/pjsua_app.c
+++ b/pjsip-apps/src/pjsua/pjsua_app.c
@@ -2773,9 +2773,10 @@ static void manage_codec_prio(void)
}
puts("");
- puts("Enter codec name and its new priority (e.g. \"speex/16000 200\"), empty to cancel:");
+ puts("Enter codec id and its new priority "
+ "(e.g. \"speex/16000 200\"), empty to cancel:");
- printf("Codec name and priority: ");
+ printf("Codec name (\"*\" for all) and priority: ");
fgets(input, sizeof(input), stdin);
if (input[0]=='\r' || input[0]=='\n') {
puts("Done");
diff --git a/pjsip/src/pjsua-lib/pjsua_media.c b/pjsip/src/pjsua-lib/pjsua_media.c
index 91d3ecb9..7d2742f6 100644
--- a/pjsip/src/pjsua-lib/pjsua_media.c
+++ b/pjsip/src/pjsua-lib/pjsua_media.c
@@ -2227,10 +2227,14 @@ PJ_DEF(pj_status_t) pjsua_enum_codecs( pjsua_codec_info id[],
PJ_DEF(pj_status_t) pjsua_codec_set_priority( const pj_str_t *codec_id,
pj_uint8_t priority )
{
+ const pj_str_t all = { NULL, 0 };
pjmedia_codec_mgr *codec_mgr;
codec_mgr = pjmedia_endpt_get_codec_mgr(pjsua_var.med_endpt);
+ if (codec_id->slen==1 && *codec_id->ptr=='*')
+ codec_id = &all;
+
return pjmedia_codec_mgr_set_codec_priority(codec_mgr, codec_id,
priority);
}
@@ -2242,6 +2246,7 @@ PJ_DEF(pj_status_t) pjsua_codec_set_priority( const pj_str_t *codec_id,
PJ_DEF(pj_status_t) pjsua_codec_get_param( const pj_str_t *codec_id,
pjmedia_codec_param *param )
{
+ const pj_str_t all = { NULL, 0 };
const pjmedia_codec_info *info;
pjmedia_codec_mgr *codec_mgr;
unsigned count = 1;
@@ -2249,6 +2254,9 @@ PJ_DEF(pj_status_t) pjsua_codec_get_param( const pj_str_t *codec_id,
codec_mgr = pjmedia_endpt_get_codec_mgr(pjsua_var.med_endpt);
+ if (codec_id->slen==1 && *codec_id->ptr=='*')
+ codec_id = &all;
+
status = pjmedia_codec_mgr_find_codecs_by_id(codec_mgr, codec_id,
&count, &info, NULL);
if (status != PJ_SUCCESS)