Changeset 818:063e70897697 in roaraudio


Ignore:
Timestamp:
09/18/08 16:59:49 (16 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

added write support to alaw codec filter

Location:
roard
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • roard/codecfilter.c

    r749 r818  
    3131  cf_wave_open, cf_wave_close, NULL, NULL, cf_wave_read, NULL}, 
    3232 
    33  {ROAR_CODEC_ALAW, "alaw", "A-Law", NULL, ROAR_CODECFILTER_READ, 
    34   cf_alaw_open, cf_alaw_close, NULL, NULL, cf_alaw_read, NULL}, 
     33 {ROAR_CODEC_ALAW, "alaw", "A-Law", NULL, ROAR_CODECFILTER_READ|ROAR_CODECFILTER_WRITE, 
     34  cf_alaw_open, cf_alaw_close, NULL, cf_alaw_write, cf_alaw_read, NULL}, 
    3535 
    3636#ifdef ROAR_HAVE_BIN_OGG123 
  • roard/codecfilter_alaw.c

    r783 r818  
    5656 
    5757int cf_alaw_write(CODECFILTER_USERDATA_T   inst, char * buf, int len) { 
    58  struct codecfilter_wave_inst * self = (struct codecfilter_wave_inst *) inst; 
     58 struct roar_stream_server * s = ROAR_STREAM_SERVER(inst); 
     59 char * out; 
    5960 
    60  return 0; 
     61 // TODO: add a more effect way to use memory than allways alloc/freeing it. 
     62 //       maybe by keeping a buffer over instanzes or by using ca global buffer 
     63 //       with an refrenze counter so we can free it on last use 
     64 
     65 len /= 2; 
     66 
     67 if ( (out = (char*)malloc(len)) == NULL ) 
     68  return -1; 
     69 
     70 roardsp_conv_pcm162alaw(out, (int16_t*)buf, len); 
     71 
     72 len = stream_vio_s_write(s, out, len); 
     73 
     74 free(out); 
     75 
     76 if ( len > 0 ) { 
     77  return len*2; 
     78 } else { 
     79  return -1; 
     80 } 
    6181} 
    6282 
Note: See TracChangeset for help on using the changeset viewer.