From 6a707e80e4a96a0607b44845582407bb47caa9b6 Mon Sep 17 00:00:00 2001 From: Nanang Izzuddin Date: Thu, 2 Apr 2009 10:41:22 +0000 Subject: Ticket #774: Fixed generation of G722.1 modes list in enum_codec(). git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2565 74dad513-b988-da41-8d7b-12977e46ad98 --- pjmedia/src/pjmedia-codec/g7221.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'pjmedia/src/pjmedia-codec') diff --git a/pjmedia/src/pjmedia-codec/g7221.c b/pjmedia/src/pjmedia-codec/g7221.c index 785e832a..7d9db6ea 100644 --- a/pjmedia/src/pjmedia-codec/g7221.c +++ b/pjmedia/src/pjmedia-codec/g7221.c @@ -500,23 +500,27 @@ static pj_status_t enum_codecs( pjmedia_codec_factory *factory, unsigned *count, pjmedia_codec_info codecs[]) { - unsigned i; + unsigned i, max_cnt; PJ_ASSERT_RETURN(factory==&codec_factory.base, PJ_EINVAL); PJ_ASSERT_RETURN(codecs && *count > 0, PJ_EINVAL); - *count = PJ_MIN(*count, codec_factory.mode_count); + max_cnt = *count; + *count = 0; - for (i=0; i<*count; ++i) { + for (i=0; (i < codec_factory.mode_count) && (*count < max_cnt); ++i) + { if (!codec_factory.modes[i].enabled) continue; - pj_bzero(&codecs[i], sizeof(pjmedia_codec_info)); - codecs[i].encoding_name = pj_str((char*)CODEC_TAG); - codecs[i].pt = codec_factory.modes[i].pt; - codecs[i].type = PJMEDIA_TYPE_AUDIO; - codecs[i].clock_rate = codec_factory.modes[i].sample_rate; - codecs[i].channel_cnt = 1; + pj_bzero(&codecs[*count], sizeof(pjmedia_codec_info)); + codecs[*count].encoding_name = pj_str((char*)CODEC_TAG); + codecs[*count].pt = codec_factory.modes[i].pt; + codecs[*count].type = PJMEDIA_TYPE_AUDIO; + codecs[*count].clock_rate = codec_factory.modes[i].sample_rate; + codecs[*count].channel_cnt = 1; + + ++ *count; } return PJ_SUCCESS; -- cgit v1.2.3