mirror of
https://github.com/ossrs/srs.git
synced 2025-02-13 20:01:56 +00:00
RTC: No cache for RTP packet size.
This commit is contained in:
parent
4058249d67
commit
9ee0ed919a
2 changed files with 2 additions and 19 deletions
|
@ -854,7 +854,6 @@ SrsRtpPacket2::SrsRtpPacket2()
|
||||||
|
|
||||||
nalu_type = SrsAvcNaluTypeReserved;
|
nalu_type = SrsAvcNaluTypeReserved;
|
||||||
frame_type = SrsFrameTypeReserved;
|
frame_type = SrsFrameTypeReserved;
|
||||||
cached_payload_size = 0;
|
|
||||||
decode_handler = NULL;
|
decode_handler = NULL;
|
||||||
|
|
||||||
++_srs_pps_objs_rtps->sugar;
|
++_srs_pps_objs_rtps->sugar;
|
||||||
|
@ -870,7 +869,6 @@ void SrsRtpPacket2::reset()
|
||||||
{
|
{
|
||||||
nalu_type = SrsAvcNaluTypeReserved;
|
nalu_type = SrsAvcNaluTypeReserved;
|
||||||
frame_type = SrsFrameTypeReserved;
|
frame_type = SrsFrameTypeReserved;
|
||||||
cached_payload_size = 0;
|
|
||||||
decode_handler = NULL;
|
decode_handler = NULL;
|
||||||
|
|
||||||
// It's important to reset the header.
|
// It's important to reset the header.
|
||||||
|
@ -931,8 +929,6 @@ cleanup:
|
||||||
|
|
||||||
bool SrsRtpPacket2::recycle()
|
bool SrsRtpPacket2::recycle()
|
||||||
{
|
{
|
||||||
// Clear the cache size, it may change when reuse it.
|
|
||||||
cached_payload_size = 0;
|
|
||||||
// Reset the handler, for decode only.
|
// Reset the handler, for decode only.
|
||||||
decode_handler = NULL;
|
decode_handler = NULL;
|
||||||
|
|
||||||
|
@ -1015,7 +1011,6 @@ SrsRtpPacket2* SrsRtpPacket2::copy()
|
||||||
cp->frame_type = frame_type;
|
cp->frame_type = frame_type;
|
||||||
|
|
||||||
// For performance issue, do not copy the unused field.
|
// For performance issue, do not copy the unused field.
|
||||||
//cp->cached_payload_size = cached_payload_size;
|
|
||||||
//cp->decode_handler = decode_handler;
|
//cp->decode_handler = decode_handler;
|
||||||
|
|
||||||
return cp;
|
return cp;
|
||||||
|
@ -1024,17 +1019,11 @@ SrsRtpPacket2* SrsRtpPacket2::copy()
|
||||||
void SrsRtpPacket2::set_padding(int size)
|
void SrsRtpPacket2::set_padding(int size)
|
||||||
{
|
{
|
||||||
header.set_padding(size);
|
header.set_padding(size);
|
||||||
if (cached_payload_size) {
|
|
||||||
cached_payload_size += size - header.get_padding();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SrsRtpPacket2::add_padding(int size)
|
void SrsRtpPacket2::add_padding(int size)
|
||||||
{
|
{
|
||||||
header.set_padding(header.get_padding() + size);
|
header.set_padding(header.get_padding() + size);
|
||||||
if (cached_payload_size) {
|
|
||||||
cached_payload_size += size;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SrsRtpPacket2::set_decode_handler(ISrsRtpPacketDecodeHandler* h)
|
void SrsRtpPacket2::set_decode_handler(ISrsRtpPacketDecodeHandler* h)
|
||||||
|
@ -1054,11 +1043,8 @@ void SrsRtpPacket2::set_extension_types(SrsRtpExtensionTypes* v)
|
||||||
|
|
||||||
uint64_t SrsRtpPacket2::nb_bytes()
|
uint64_t SrsRtpPacket2::nb_bytes()
|
||||||
{
|
{
|
||||||
if (!cached_payload_size) {
|
int nn_payload = (payload_? payload_->nb_bytes():0);
|
||||||
int nn_payload = (payload_? payload_->nb_bytes():0);
|
return header.nb_bytes() + nn_payload + header.get_padding();
|
||||||
cached_payload_size = header.nb_bytes() + nn_payload + header.get_padding();
|
|
||||||
}
|
|
||||||
return cached_payload_size;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
srs_error_t SrsRtpPacket2::encode(SrsBuffer* buf)
|
srs_error_t SrsRtpPacket2::encode(SrsBuffer* buf)
|
||||||
|
|
|
@ -315,10 +315,7 @@ public:
|
||||||
SrsAvcNaluType nalu_type;
|
SrsAvcNaluType nalu_type;
|
||||||
// The frame type, for RTMP bridger or SFU source.
|
// The frame type, for RTMP bridger or SFU source.
|
||||||
SrsFrameType frame_type;
|
SrsFrameType frame_type;
|
||||||
// Fast cache for performance.
|
|
||||||
private:
|
private:
|
||||||
// The cached payload size for packet.
|
|
||||||
int cached_payload_size;
|
|
||||||
// The helper handler for decoder, use RAW payload if NULL.
|
// The helper handler for decoder, use RAW payload if NULL.
|
||||||
ISrsRtpPacketDecodeHandler* decode_handler;
|
ISrsRtpPacketDecodeHandler* decode_handler;
|
||||||
public:
|
public:
|
||||||
|
|
Loading…
Reference in a new issue