Changeset 3037:c1821f5d7d60 in roaraudio for libroardsp
- Timestamp:
- 11/17/09 21:00:40 (14 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libroardsp/interleave.c
r3036 r3037 62 62 63 63 int roar_interl_encode_ext(struct roar_interleave * state, void ** in, void * out, size_t len) { 64 size_t chan = 0; 65 size_t oc; 66 size_t bc = 0; // bit counter 67 char * ip[ROAR_INTERLEAVE_MAX_CHANNELS]; // output pointer 68 64 69 if ( state == NULL ) 65 70 return -1; 71 72 if ( in == NULL || out == NULL ) 73 return -1; 74 75 if ( len == 0 ) 76 return 0; 77 78 memcpy(ip, in, sizeof(void*)*state->channels); 79 80 for (oc = 0; oc < len; oc++) { 81 ((char*)out)[oc] = *(ip[chan]); 82 ip[chan]++; 83 84 bc += 8; 85 86 if ( bc == state->bits ) { 87 bc = 0; 88 chan++; 89 if ( chan == state->channels ) 90 chan = 0; 91 } 92 } 66 93 67 94 return -1;
Note: See TracChangeset
for help on using the changeset viewer.