- Timestamp:
- Feb 10, 2009 4:43:16 AM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/branches/projects/aps-direct/pjmedia/src/pjmedia-codec/passthrough.c
r2444 r2445 163 163 unsigned max_bitrate; /* Maximum bitrate of this codec. */ 164 164 pj_uint8_t frm_per_pkt; /* Default num of frames per packet.*/ 165 pj_uint8_t vad; /* VAD enabled/disabled. */ 166 pj_uint8_t plc; /* PLC enabled/disabled. */ 165 167 parse_cb parse; /* Callback to parse bitstream. */ 166 168 pack_cb pack; /* Callback to pack bitstream. */ … … 173 175 {1, "AMR", PJMEDIA_RTP_PT_AMR, {PJMEDIA_FOURCC_AMR}, 174 176 8000, 1, 160, 175 12200, 12200, 2,177 7400, 12200, 2, 1, 1, 176 178 &parse_amr, &pack_amr 177 179 /*, {1, {{{"octet-align", 11}, {"1", 1}}} } */ … … 182 184 {1, "G729", PJMEDIA_RTP_PT_G729, {PJMEDIA_FOURCC_G729}, 183 185 8000, 1, 80, 184 8000, 8000, 2 186 8000, 8000, 2, 1, 1 185 187 }, 186 188 # endif … … 189 191 {1, "iLBC", PJMEDIA_RTP_PT_ILBC, {PJMEDIA_FOURCC_ILBC}, 190 192 8000, 1, 240, 191 13333, 15200, 2,193 13333, 15200, 1, 1, 1, 192 194 NULL, NULL, 193 195 {1, {{{"mode", 4}, {"30", 2}}} } … … 196 198 197 199 # if PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMU 198 {1, "PCMU", PJMEDIA_RTP_PT_PCMU, {PJMEDIA_FOURCC_ G711U},200 {1, "PCMU", PJMEDIA_RTP_PT_PCMU, {PJMEDIA_FOURCC_PCMU}, 199 201 8000, 1, 80, 200 64000, 64000, 2 202 64000, 64000, 2, 1, 1 201 203 }, 202 204 # endif 203 205 204 206 # if PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMA 205 {1, "PCMA", PJMEDIA_RTP_PT_PCMA, {PJMEDIA_FOURCC_ G711A},207 {1, "PCMA", PJMEDIA_RTP_PT_PCMA, {PJMEDIA_FOURCC_PCMA}, 206 208 8000, 1, 80, 207 64000, 64000, 2 209 64000, 64000, 2, 1, 1 208 210 }, 209 211 # endif … … 247 249 248 250 sf = pjmedia_frame_ext_get_subframe(input, i); 249 250 len = sf->bitlen >> 3; 251 if (sf->bitlen & 0x07) 252 ++len; 251 len = (sf->bitlen + 7) >> 3; 253 252 254 253 info = (pjmedia_codec_amr_bit_info*) &frames[i].bit_info; 255 254 pj_bzero(info, sizeof(*info)); 256 info->frame_type = pjmedia_codec_amr_get_mode2(enc_setting->amr_nb, 257 len); 255 256 if (len == 0) { 257 info->frame_type = (pj_uint8_t)(enc_setting->amr_nb? 14 : 15); 258 } else { 259 info->frame_type = pjmedia_codec_amr_get_mode2(enc_setting->amr_nb, 260 len); 261 } 258 262 info->good_quality = 1; 259 263 info->mode = setting->enc_mode; … … 450 454 /* Default flags. */ 451 455 attr->setting.frm_per_pkt = codec_desc[i].frm_per_pkt; 452 attr->setting.plc = 0;456 attr->setting.plc = codec_desc[i].plc; 453 457 attr->setting.penh= 0; 454 attr->setting.vad = 0;458 attr->setting.vad = codec_desc[i].vad; 455 459 attr->setting.cng = attr->setting.vad; 456 460 attr->setting.dec_fmtp = codec_desc[i].dec_fmtp; … … 759 763 sf = pjmedia_frame_ext_get_subframe(input_, i); 760 764 pj_assert(sf); 761 762 sf_len = sf->bitlen >> 3; 763 if (sf->bitlen & 0x07) 764 ++sf_len; 765 766 sf_len = (sf->bitlen + 7) >> 3; 765 767 766 768 pj_memcpy(p, sf->data, sf_len); 767 769 p += sf_len; 768 770 output->size += sf_len; 771 772 #if PJMEDIA_HAS_INTEL_IPP_CODEC_G729 773 /* If there is SID or DTX frame, break the loop. */ 774 if (desc->pt == PJMEDIA_RTP_PT_G729 && 775 sf_len < codec_data->avg_frame_size) 776 { 777 break; 778 } 779 #endif 780 769 781 } 770 782 }
Note: See TracChangeset
for help on using the changeset viewer.