Ignore:
Timestamp:
Jan 5, 2009 3:27:02 PM (15 years ago)
Author:
nanang
Message:

Ticket #680:

  • Fixed Symbian APS G.711 frame size variation issue.
  • Fixed APS implementation to regard 'samples_per_frame' setting.
  • Added APIs for u-law/a-law <-> PCM bulk conversions.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjmedia/include/pjmedia/alaw_ulaw.h

    r2394 r2416  
    140140#endif 
    141141 
     142/** 
     143 * Encode 16-bit linear PCM data to 8-bit U-Law data. 
     144 * 
     145 * @param dst       Destination buffer for 8-bit U-Law data. 
     146 * @param src       Source, 16-bit linear PCM data. 
     147 * @param len       Number of samples. 
     148 */ 
     149PJ_INLINE(void) pjmedia_ulaw_encode(pj_uint8_t *dst, const pj_int16_t *src,  
     150                                    pj_size_t len) 
     151{ 
     152    const pj_int16_t *end = src + len; 
     153     
     154    while (src < end) { 
     155        *dst++ = pjmedia_linear2ulaw(*src++); 
     156    } 
     157} 
     158 
     159/** 
     160 * Encode 16-bit linear PCM data to 8-bit A-Law data. 
     161 * 
     162 * @param dst       Destination buffer for 8-bit A-Law data. 
     163 * @param src       Source, 16-bit linear PCM data. 
     164 * @param len       Number of samples. 
     165 */ 
     166PJ_INLINE(void) pjmedia_alaw_encode(pj_uint8_t *dst, const pj_int16_t *src,  
     167                                    pj_size_t len) 
     168{ 
     169    const pj_int16_t *end = src + len; 
     170     
     171    while (src < end) { 
     172        *dst++ = pjmedia_linear2alaw(*src++); 
     173    } 
     174} 
     175 
     176/** 
     177 * Decode 8-bit U-Law data to 16-bit linear PCM data. 
     178 * 
     179 * @param dst       Destination buffer for 16-bit PCM data. 
     180 * @param src       Source, 8-bit U-Law data. 
     181 * @param len       Number of samples. 
     182 */ 
     183PJ_INLINE(void) pjmedia_ulaw_decode(pj_int16_t *dst, const pj_uint8_t *src,  
     184                                    pj_size_t len) 
     185{ 
     186    const pj_uint8_t *end = src + len; 
     187     
     188    while (src < end) { 
     189        *dst++ = pjmedia_ulaw2linear(*src++); 
     190    } 
     191} 
     192 
     193/** 
     194 * Decode 8-bit A-Law data to 16-bit linear PCM data. 
     195 * 
     196 * @param dst       Destination buffer for 16-bit PCM data. 
     197 * @param src       Source, 8-bit A-Law data. 
     198 * @param len       Number of samples. 
     199 */ 
     200PJ_INLINE(void) pjmedia_alaw_decode(pj_int16_t *dst, const pj_uint8_t *src,  
     201                                    pj_size_t len) 
     202{ 
     203    const pj_uint8_t *end = src + len; 
     204     
     205    while (src < end) { 
     206        *dst++ = pjmedia_alaw2linear(*src++); 
     207    } 
     208} 
     209 
    142210PJ_END_DECL 
    143211 
Note: See TracChangeset for help on using the changeset viewer.