Changeset 2901:8c574e2033be in roaraudio


Ignore:
Timestamp:
10/11/09 01:43:52 (15 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

write length + data at once

File:
1 edited

Legend:

Unmodified
Added
Removed
  • roard/codecfilter_speex.c

    r2816 r2901  
    315315 
    316316  if ( !self->cd ) { 
    317    self->cd = malloc(fs2); 
     317   self->cd = malloc(fs2 + 2); 
    318318   if ( !self->cd ) 
    319319    return 0; 
     
    341341   speex_encode_int(self->encoder, (spx_int16_t *) self->o_rest, &(self->bits)); 
    342342 
    343    tmp = mode = speex_bits_write(&(self->bits), self->cd, fs2); 
     343   tmp = mode = speex_bits_write(&(self->bits), self->cd + 2, fs2); 
    344344 
    345345   mode = ROAR_HOST2NET16(mode); 
    346    stream_vio_s_write(self->stream, &mode, 2); 
    347    if ( stream_vio_s_write(self->stream, self->cd, tmp) != tmp ) 
     346   *(uint16_t*)(self->cd) = mode; 
     347   if ( stream_vio_s_write(self->stream, self->cd, tmp + 2) != (tmp + 2) ) 
    348348    return -1; 
    349349 
     
    371371  speex_encode_int(self->encoder, (spx_int16_t *) buf, &(self->bits)); 
    372372 
    373   tmp = mode = speex_bits_write(&(self->bits), self->cd, fs2); 
     373  tmp = mode = speex_bits_write(&(self->bits), self->cd + 2, fs2); 
    374374 
    375375  mode = ROAR_HOST2NET16(mode); 
    376376 
    377   stream_vio_s_write(self->stream, &mode, 2); 
    378  
    379   if ( stream_vio_s_write(self->stream, self->cd, tmp) != tmp ) 
     377  *(uint16_t*)(self->cd) = mode; 
     378 
     379  if ( stream_vio_s_write(self->stream, self->cd, tmp + 2) != (tmp + 2) ) 
    380380   return -1; 
    381381 
Note: See TracChangeset for help on using the changeset viewer.