1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

RTC: Fix shared msg cache bug

This commit is contained in:
winlin 2021-02-28 11:26:50 +08:00
parent 75a4c8d9e5
commit f6589aa370
4 changed files with 31 additions and 31 deletions

View file

@ -229,6 +229,19 @@ SrsSharedPtrMessage::~SrsSharedPtrMessage()
}
}
bool SrsSharedPtrMessage::recycle()
{
// When recycle, unwrap if not the last reference.
if (ptr && ptr->shared_count > 0) {
ptr->shared_count--;
ptr = NULL;
payload = NULL;
size = 0;
}
return true;
}
srs_error_t SrsSharedPtrMessage::create(SrsCommonMessage* msg)
{
srs_error_t err = srs_success;
@ -287,21 +300,6 @@ void SrsSharedPtrMessage::wrap(char* payload, int size)
this->size = ptr->size;
}
void SrsSharedPtrMessage::unwrap()
{
if (ptr) {
if (ptr->shared_count > 0) {
ptr->shared_count--;
ptr = NULL;
} else {
srs_freep(ptr);
}
}
payload = NULL;
size = 0;
}
int SrsSharedPtrMessage::count()
{
return ptr? ptr->shared_count : 0;
@ -365,8 +363,6 @@ SrsSharedPtrMessage* SrsSharedPtrMessage::copy()
copy->timestamp = timestamp;
copy->stream_id = stream_id;
copy->payload = ptr->payload;
copy->size = ptr->size;
return copy;
}
@ -382,6 +378,9 @@ SrsSharedPtrMessage* SrsSharedPtrMessage::copy2()
copy->ptr = ptr;
ptr->shared_count++;
copy->payload = ptr->payload;
copy->size = ptr->size;
return copy;
}