diff options
Diffstat (limited to 'pjmedia/src')
-rw-r--r-- | pjmedia/src/pjmedia-codec/g7221.c | 5 | ||||
-rw-r--r-- | pjmedia/src/test/codec_vectors.c | 16 |
2 files changed, 20 insertions, 1 deletions
diff --git a/pjmedia/src/pjmedia-codec/g7221.c b/pjmedia/src/pjmedia-codec/g7221.c index 8fa9efbd..2b9f1db7 100644 --- a/pjmedia/src/pjmedia-codec/g7221.c +++ b/pjmedia/src/pjmedia-codec/g7221.c @@ -678,7 +678,10 @@ static pj_status_t codec_open( pjmedia_codec *codec, fmtp_bitrate = (pj_uint16_t)pj_strtoul(&fmtp->param[tmp].val); } - /* Validation mode first! */ + if (fmtp_bitrate == 0) + fmtp_bitrate = attr->info.avg_bps; + + /* Validate bitrate */ if (!fmtp_bitrate || !validate_mode(attr->info.clock_rate, fmtp_bitrate)) return PJMEDIA_CODEC_EINMODE; diff --git a/pjmedia/src/test/codec_vectors.c b/pjmedia/src/test/codec_vectors.c index 4aa21301..bce41545 100644 --- a/pjmedia/src/test/codec_vectors.c +++ b/pjmedia/src/test/codec_vectors.c @@ -74,6 +74,14 @@ static int codec_test_encode(pjmedia_codec_mgr *mgr, codec_param.info.avg_bps = bitrate; codec_param.setting.vad = 0; + /* For G7221, the bitrate is set via param.setting.dec_fmtp, if it has + * no info about bitrate, the codec will check info.avg_bps. So, let's + * just clear the SDP fmtp. + */ + if (pj_ansi_strstr(codec_name, "G7221/")) { + codec_param.setting.dec_fmtp.cnt = 0; + } + status = pjmedia_codec_init(codec, pool); if (status != PJ_SUCCESS) { rc = -60; @@ -325,6 +333,14 @@ static int codec_test_decode(pjmedia_codec_mgr *mgr, codec_param.info.avg_bps = bitrate; codec_param.setting.vad = 0; + /* For G7221, the bitrate is set via param.setting.dec_fmtp, if it has + * no info about bitrate, the codec will check info.avg_bps. So, let's + * just clear the SDP fmtp. + */ + if (pj_ansi_strstr(codec_name, "G7221/")) { + codec_param.setting.dec_fmtp.cnt = 0; + } + status = pjmedia_codec_init(codec, pool); if (status != PJ_SUCCESS) { rc = -60; |