summaryrefslogtreecommitdiff
path: root/pjmedia
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2009-04-02 10:41:22 +0000
committerNanang Izzuddin <nanang@teluu.com>2009-04-02 10:41:22 +0000
commit6a707e80e4a96a0607b44845582407bb47caa9b6 (patch)
treea6ad6cf56f56eb59e9bd46cd5679a3521a16ad69 /pjmedia
parente708f9dcdce62eeae237d39da32a60efb4a6eda6 (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')
-rw-r--r--pjmedia/src/pjmedia-codec/g7221.c22
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;