diff options
Diffstat (limited to 'pjmedia/src/pjmedia/endpoint.c')
-rw-r--r-- | pjmedia/src/pjmedia/endpoint.c | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/pjmedia/src/pjmedia/endpoint.c b/pjmedia/src/pjmedia/endpoint.c index e2524fd1..741de45a 100644 --- a/pjmedia/src/pjmedia/endpoint.c +++ b/pjmedia/src/pjmedia/endpoint.c @@ -24,6 +24,7 @@ #include <pj/string.h> #include <pj/assert.h> #include <pj/os.h> +#include <pj/log.h> #define THIS_FILE "endpoint.c" @@ -269,3 +270,55 @@ PJ_DEF(pj_status_t) pjmedia_endpt_create_sdp( pjmedia_endpt *endpt, } + +PJ_DEF(pj_status_t) pjmedia_endpt_dump(pjmedia_endpt *endpt) +{ + +#if PJ_LOG_MAX_LEVEL >= 3 + unsigned i, count; + pjmedia_codec_info codec_info[32]; + + PJ_LOG(3,(THIS_FILE, "Dumping PJMEDIA capabilities:")); + + count = PJ_ARRAY_SIZE(codec_info); + if (pjmedia_codec_mgr_enum_codecs(&endpt->codec_mgr, + &count, codec_info) != PJ_SUCCESS) + { + PJ_LOG(3,(THIS_FILE, " -error: failed to enum codecs")); + return PJ_SUCCESS; + } + + PJ_LOG(3,(THIS_FILE, " Total number of installed codecs: %d", count)); + for (i=0; i<count; ++i) { + const char *type; + pjmedia_codec_param param; + + switch (codec_info[i].type) { + case PJMEDIA_TYPE_AUDIO: + type = "Audio"; break; + case PJMEDIA_TYPE_VIDEO: + type = "Video"; break; + default: + type = "Unknown type"; break; + } + + if (pjmedia_codec_mgr_get_default_param(&endpt->codec_mgr, + &codec_info[i], + ¶m) != PJ_SUCCESS) + { + pj_memset(¶m, 0, sizeof(pjmedia_codec_param)); + } + + PJ_LOG(3,(THIS_FILE, + " %s codec #%2d: pt=%d (%.*s, %d bps, ptime=%d ms, vad=%d, cng=%d)", + type, i, codec_info[i].pt, + (int)codec_info[i].encoding_name.slen, + codec_info[i].encoding_name.ptr, + param.avg_bps, param.ptime, + param.vad_enabled, + param.cng_enabled)); + } +#endif + + return PJ_SUCCESS; +} |