diff options
author | Nanang Izzuddin <nanang@teluu.com> | 2009-04-02 10:41:22 +0000 |
---|---|---|
committer | Nanang Izzuddin <nanang@teluu.com> | 2009-04-02 10:41:22 +0000 |
commit | 6a707e80e4a96a0607b44845582407bb47caa9b6 (patch) | |
tree | a6ad6cf56f56eb59e9bd46cd5679a3521a16ad69 /pjmedia/src/pjmedia-codec/g7221.c | |
parent | e708f9dcdce62eeae237d39da32a60efb4a6eda6 (diff) |
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
Diffstat (limited to 'pjmedia/src/pjmedia-codec/g7221.c')
-rw-r--r-- | pjmedia/src/pjmedia-codec/g7221.c | 22 |
1 files changed, 13 insertions, 9 deletions
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; |