Changeset 2191:2fa43472c538 in roaraudio


Ignore:
Timestamp:
07/26/09 22:33:32 (15 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

added init and uninit, need to write encoder and decoder code.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libroardsp/transcode_celt.c

    r2188 r2191  
    2828 
    2929int roar_xcoder_celt_init       (struct roar_xcoder * state) { 
    30  return -1; 
     30 struct roar_xcoder_celt * self = malloc(sizeof(struct roar_xcoder_celt)); 
     31 struct roar_audio_info  * info = &(state->info.pcm); 
     32 
     33 if ( self == NULL ) 
     34  return -1; 
     35 
     36 // curruntly only 16 bit mode is supported 
     37 if ( info->bits != 16 ) { 
     38  free(self); 
     39  return -1; 
     40 } 
     41 
     42 memset(self, 0, sizeof(struct roar_xcoder_celt)); 
     43 
     44 state->inst = self; 
     45 
     46 self->frame_size           = 256; 
     47 
     48 self->mode                 = celt_mode_create(info->rate, info->channels, self->frame_size, NULL); 
     49 
     50 if ( self->mode == NULL ) { 
     51  free(self); 
     52  return -1; 
     53 } 
     54 
     55 if (state->encode) { 
     56  self->encoder = celt_encoder_create(self->mode); 
     57  if ( self->encoder == NULL ) { 
     58   roar_xcoder_celt_uninit(state); 
     59   return -1; 
     60  } 
     61 } else { 
     62  self->decoder = celt_decoder_create(self->mode); 
     63  if ( self->decoder == NULL ) { 
     64   roar_xcoder_celt_uninit(state); 
     65   return -1; 
     66  } 
     67 } 
     68 
     69 return 0; 
    3170} 
    3271 
    3372int roar_xcoder_celt_uninit     (struct roar_xcoder * state) { 
     73 struct roar_xcoder_celt * self = state->inst; 
     74 
     75 if ( self->encoder ) 
     76 celt_encoder_destroy(self->encoder); 
     77 
     78 if ( self->decoder ) 
     79 celt_decoder_destroy(self->decoder); 
     80 
     81 if ( self->mode ) 
     82  celt_mode_destroy(self->mode); 
     83 
     84 free(self); 
     85 
    3486 return -1; 
    3587} 
    3688 
    3789int roar_xcoder_celt_packet_size(struct roar_xcoder * state, int samples) { 
    38  return -1; 
     90 struct roar_xcoder_celt * self = state->inst; 
     91 
     92 return self->frame_size; 
    3993} 
    4094 
    4195int roar_xcoder_celt_encode     (struct roar_xcoder * state, void * buf, size_t len) { 
     96 struct roar_xcoder_celt * self = state->inst; 
     97 
     98 if (!state->encode) 
     99  return -1; 
     100 
    42101 return -1; 
    43102} 
    44103 
    45104int roar_xcoder_celt_decode     (struct roar_xcoder * state, void * buf, size_t len) { 
     105 struct roar_xcoder_celt * self = state->inst; 
     106 
     107 if (state->encode) 
     108  return -1; 
     109 
    46110 return -1; 
    47111} 
Note: See TracChangeset for help on using the changeset viewer.