ios - iPhone: AudioBufferList init and release -
what correct ways of initializing (allocating memory) , releasing (freeing) audiobufferlist 3 audiobuffers? (i'm aware there might more 1 ways of doing this.)
i'd use 3 buffers read sequential parts of audio file them , play them using audio units.
here how it:
audiobufferlist * allocateabl(uint32 channelsperframe, uint32 bytesperframe, bool interleaved, uint32 capacityframes) { audiobufferlist *bufferlist = null; uint32 numbuffers = interleaved ? 1 : channelsperframe; uint32 channelsperbuffer = interleaved ? channelsperframe : 1; bufferlist = static_cast<audiobufferlist *>(calloc(1, offsetof(audiobufferlist, mbuffers) + (sizeof(audiobuffer) * numbuffers))); bufferlist->mnumberbuffers = numbuffers; for(uint32 bufferindex = 0; bufferindex < bufferlist->mnumberbuffers; ++bufferindex) { bufferlist->mbuffers[bufferindex].mdata = static_cast<void *>(calloc(capacityframes, bytesperframe)); bufferlist->mbuffers[bufferindex].mdatabytesize = capacityframes * bytesperframe; bufferlist->mbuffers[bufferindex].mnumberchannels = channelsperbuffer; } return bufferlist; }
Comments
Post a Comment