Changeset 2299:f5c12281eca5 in roaraudio


Ignore:
Timestamp:
08/05/09 05:13:44 (15 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

completed encoder code

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libroardsp/transcode_speex.c

    r2298 r2299  
    102102 
    103103int roar_xcoder_speex_encode     (struct roar_xcoder * state, void * buf, size_t len) { 
    104  return -1; 
     104 struct roar_xcoder_speex * self = state->inst; 
     105 uint16_t tmp_net; 
     106 int pkg_len; 
     107 
     108 if (!state->encode) 
     109  return -1; 
     110 
     111 ROAR_DBG("roar_xcoder_speex_encode(*): Encoding..."); 
     112 
     113 if ( state->stage == ROAR_XCODER_STAGE_INITED ) { 
     114  if ( roar_vio_write(state->backend, ROAR_SPEEX_MAGIC, ROAR_SPEEX_MAGIC_LEN) != ROAR_SPEEX_MAGIC_LEN ) 
     115   return -1; 
     116  state->stage = ROAR_XCODER_STAGE_MAGIC; 
     117  ROAR_DBG("roar_xcoder_speex_encode(*): Wrote MAGIC"); 
     118 
     119  state->stage = ROAR_XCODER_STAGE_OPENING; 
     120 
     121  tmp_net = ROAR_HOST2NET16(self->mode); 
     122  if ( roar_vio_write(state->backend, &tmp_net, 2) != 2 ) 
     123   return -1; 
     124 
     125  state->stage = ROAR_XCODER_STAGE_OPENED; 
     126 } 
     127 
     128 speex_bits_reset(&(self->bits)); 
     129 
     130 speex_encode_int(self->xcoder, (spx_int16_t *) buf, &(self->bits)); 
     131 
     132 pkg_len = speex_bits_write(&(self->bits), self->cc, ROAR_SPEEX_MAX_CC); 
     133 
     134 tmp_net = ROAR_HOST2NET16(pkg_len); 
     135 
     136 if ( roar_vio_write(state->backend, &tmp_net, 2) != 2 ) 
     137  return -1; 
     138 
     139 if ( roar_vio_write(state->backend, self->cc, pkg_len) != pkg_len ) 
     140   return -1; 
     141 
     142 return 0; 
    105143} 
    106144 
Note: See TracChangeset for help on using the changeset viewer.