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)
|
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);
|
srs_freep(shared_msg);
|
||||||
shared_msg = new SrsSharedPtrMessage();
|
shared_msg = new SrsSharedPtrMessage();
|
||||||
|
|
||||||
char* buf = new char[size];
|
// For RTC, we use larger under-layer buffer for each packet.
|
||||||
shared_msg->wrap(buf, size);
|
int nb_buffer = srs_max(size, kRtpPacketSize);
|
||||||
|
char* buf = new char[nb_buffer];
|
||||||
|
shared_msg->wrap(buf, nb_buffer);
|
||||||
|
|
||||||
srs_freep(cache_buffer_);
|
srs_freep(cache_buffer_);
|
||||||
cache_buffer_ = new SrsBuffer(buf, size);
|
cache_buffer_ = new SrsBuffer(buf, size);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue