mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
RTC: Refine RTP packet buffer allocate, align to about 1500 bytes
This commit is contained in:
parent
b2d546156e
commit
bde86a2b23
1 changed files with 10 additions and 2 deletions
|
@ -784,11 +784,19 @@ SrsRtpPacket2::~SrsRtpPacket2()
|
|||
|
||||
char* SrsRtpPacket2::wrap(int size)
|
||||
{
|
||||
// If the buffer is large enough, reuse it.
|
||||
if (shared_msg && shared_msg->size >= size) {
|
||||
return shared_msg->payload;
|
||||
}
|
||||
|
||||
// Create buffer if empty or not large enough.
|
||||
srs_freep(shared_msg);
|
||||
shared_msg = new SrsSharedPtrMessage();
|
||||
|
||||
char* buf = new char[size];
|
||||
shared_msg->wrap(buf, size);
|
||||
// For RTC, we use larger under-layer buffer for each packet.
|
||||
int nb_buffer = srs_max(size, kRtpPacketSize);
|
||||
char* buf = new char[nb_buffer];
|
||||
shared_msg->wrap(buf, nb_buffer);
|
||||
|
||||
srs_freep(cache_buffer_);
|
||||
cache_buffer_ = new SrsBuffer(buf, size);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue