diff --git a/trunk/src/kernel/srs_kernel_rtc_rtp.cpp b/trunk/src/kernel/srs_kernel_rtc_rtp.cpp index b3fe73479..80d6b8ff5 100644 --- a/trunk/src/kernel/srs_kernel_rtc_rtp.cpp +++ b/trunk/src/kernel/srs_kernel_rtc_rtp.cpp @@ -866,6 +866,9 @@ bool SrsRtpPacket2::recycle() char* SrsRtpPacket2::wrap(int size) { + // The buffer size is larger or equals to the size of packet. + actual_buffer_size_ = size; + // If the buffer is large enough, reuse it. if (shared_buffer && shared_buffer->size >= size) { return shared_buffer->payload; @@ -875,8 +878,6 @@ char* SrsRtpPacket2::wrap(int size) while (true) { srs_freep(shared_buffer); shared_buffer = _srs_rtp_msg_cache_buffers->allocate(); - // The buffer size is larger or equals to the size of packet. - actual_buffer_size_ = size; // If got a cached message(which has payload), but it's too small, // we free it and allocate a larger one.