Changeset 818:063e70897697 in roaraudio
- Timestamp:
- 09/18/08 16:59:49 (16 years ago)
- Branch:
- default
- Phase:
- public
- Location:
- roard
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
roard/codecfilter.c
r749 r818 31 31 cf_wave_open, cf_wave_close, NULL, NULL, cf_wave_read, NULL}, 32 32 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}, 35 35 36 36 #ifdef ROAR_HAVE_BIN_OGG123 -
roard/codecfilter_alaw.c
r783 r818 56 56 57 57 int 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; 59 60 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 } 61 81 } 62 82
Note: See TracChangeset
for help on using the changeset viewer.