Not a member of Pastebin yet?
                        Sign Up,
                        it unlocks many cool features!                    
                - int read_packet(void *opaque, uint8_t *buf, int buf_size) {
 - BufferContext *pBufferCtx = (BufferContext*) opaque;
 - void* inputBufferAddress = pBufferCtx->pBufferAddress;
 - int inputBufferSize = pBufferCtx->iBufferSize;
 - int inputBytesRead = pBufferCtx->iBytesRead; //bytes already read
 - int outputBytesRead = 0; //bytes read this f'n call
 - //bufferPointer pBufferCtx = (bufferPointer)h->priv_data; //pretending priv_data is a buffer
 - REFERENCE_VAR(buf); //what does this do? Left over from original read_buffer f'n
 - //the rest of this is a mess. Sorry :(
 - if (buf_size >= inputBufferSize) {
 - if (inputBytesRead > 0) {
 - memcpy(buf, inputBufferAddress + inputBytesRead,inputBufferSize - inputBytesRead);
 - outputBytesRead = inputBufferSize - inputBytesRead;
 - } else { // inputBytesRead == 0
 - memcpy(buf, inputBufferAddress, inputBufferSize);
 - outputBytesRead = inputBufferSize;
 - }
 - } else { // buf_min_size < inputBufferSize
 - if (inputBytesRead > 0) {
 - if (buf_size >= inputBufferSize - inputBytesRead) {
 - memcpy(buf, inputBufferAddress + inputBytesRead, inputBufferSize - inputBytesRead);
 - outputBytesRead = inputBufferSize - inputBytesRead;//
 - }
 - else { // buf_min_size < inputBufferSize - inputBytesRead
 - memcpy(buf, inputBufferAddress + inputBytesRead, buf_size );
 - outputBytesRead = buf_size;
 - }
 - } else {
 - memcpy(buf, inputBufferAddress, inputBufferSize);
 - outputBytesRead = buf_size;
 - }
 - }
 - pBufferCtx->iBytesRead += outputBytesRead;
 - if(pBufferCtx->iBytesRead > pBufferCtx->iBufferSize)
 - exit(-1);
 - return outputBytesRead;
 - }
 
                    Add Comment                
                
                        Please, Sign In to add comment