Loading media/libstagefright/SkipCutBuffer.cpp +13 −1 Original line number Diff line number Diff line Loading @@ -145,7 +145,19 @@ void SkipCutBuffer::write(const char *src, size_t num) { if (available < num) { int32_t newcapacity = mCapacity + (num - available); char * newbuffer = new char[newcapacity]; memcpy(newbuffer, mCutBuffer, mCapacity); if (mWriteHead < mReadHead) { // data isn't continuous, need to memcpy twice // to move previous data to new buffer. size_t copyLeft = mCapacity - mReadHead; memcpy(newbuffer, mCutBuffer + mReadHead, copyLeft); memcpy(newbuffer + copyLeft, mCutBuffer, mWriteHead); mReadHead = 0; mWriteHead += copyLeft; } else { memcpy(newbuffer, mCutBuffer + mReadHead, mWriteHead - mReadHead); mWriteHead -= mReadHead; mReadHead = 0; } delete [] mCutBuffer; mCapacity = newcapacity; mCutBuffer = newbuffer; Loading Loading
media/libstagefright/SkipCutBuffer.cpp +13 −1 Original line number Diff line number Diff line Loading @@ -145,7 +145,19 @@ void SkipCutBuffer::write(const char *src, size_t num) { if (available < num) { int32_t newcapacity = mCapacity + (num - available); char * newbuffer = new char[newcapacity]; memcpy(newbuffer, mCutBuffer, mCapacity); if (mWriteHead < mReadHead) { // data isn't continuous, need to memcpy twice // to move previous data to new buffer. size_t copyLeft = mCapacity - mReadHead; memcpy(newbuffer, mCutBuffer + mReadHead, copyLeft); memcpy(newbuffer + copyLeft, mCutBuffer, mWriteHead); mReadHead = 0; mWriteHead += copyLeft; } else { memcpy(newbuffer, mCutBuffer + mReadHead, mWriteHead - mReadHead); mWriteHead -= mReadHead; mReadHead = 0; } delete [] mCutBuffer; mCapacity = newcapacity; mCutBuffer = newbuffer; Loading