mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
RTC: Remove shared bytes, use shared msg
This commit is contained in:
parent
f794a7d3a7
commit
7b0a9fe95f
4 changed files with 15 additions and 20 deletions
|
@ -1712,8 +1712,8 @@ srs_error_t SrsRtcPublisher::on_rtp(char* buf, int nb_buf)
|
|||
SrsRtpPacket2* pkt = new SrsRtpPacket2();
|
||||
|
||||
pkt->set_decode_handler(this);
|
||||
pkt->original_msg = new SrsSharedPtrMessage();
|
||||
pkt->original_msg->wrap(buf, nb_buf);
|
||||
pkt->shared_msg = new SrsSharedPtrMessage();
|
||||
pkt->shared_msg->wrap(buf, nb_buf);
|
||||
|
||||
SrsBuffer b(buf, nb_buf);
|
||||
if ((err = pkt->decode(&b)) != srs_success) {
|
||||
|
|
|
@ -704,8 +704,8 @@ srs_error_t SrsRtcFromRtmpBridger::package_opus(char* data, int size, SrsRtpPack
|
|||
raw->nn_payload = size;
|
||||
memcpy(raw->payload, data, size);
|
||||
|
||||
pkt->original_msg = new SrsSharedPtrMessage();
|
||||
pkt->original_msg->wrap(raw->payload, size);
|
||||
pkt->shared_msg = new SrsSharedPtrMessage();
|
||||
pkt->shared_msg->wrap(raw->payload, size);
|
||||
|
||||
*ppkt = pkt;
|
||||
|
||||
|
@ -850,8 +850,8 @@ srs_error_t SrsRtcFromRtmpBridger::package_stap_a(SrsRtcSource* source, SrsShare
|
|||
// Copy the SPS/PPS bytes, because it may change.
|
||||
int size = (int)(sps.size() + pps.size());
|
||||
char* payload = new char[size];
|
||||
pkt->original_msg = new SrsSharedPtrMessage();
|
||||
pkt->original_msg->wrap(payload, size);
|
||||
pkt->shared_msg = new SrsSharedPtrMessage();
|
||||
pkt->shared_msg->wrap(payload, size);
|
||||
|
||||
if (true) {
|
||||
SrsSample* sample = new SrsSample();
|
||||
|
@ -910,7 +910,7 @@ srs_error_t SrsRtcFromRtmpBridger::package_nalus(SrsSharedPtrMessage* msg, vecto
|
|||
pkt->frame_type = SrsFrameTypeVideo;
|
||||
pkt->rtp_header.set_timestamp(msg->timestamp * 90);
|
||||
pkt->payload = raw;
|
||||
pkt->original_msg = msg->copy();
|
||||
pkt->shared_msg = msg->copy();
|
||||
pkts.push_back(pkt);
|
||||
} else {
|
||||
// We must free it, should never use RTP packets to free it,
|
||||
|
@ -945,7 +945,7 @@ srs_error_t SrsRtcFromRtmpBridger::package_nalus(SrsSharedPtrMessage* msg, vecto
|
|||
fua->end = bool(i == num_of_packet - 1);
|
||||
|
||||
pkt->payload = fua;
|
||||
pkt->original_msg = msg->copy();
|
||||
pkt->shared_msg = msg->copy();
|
||||
pkts.push_back(pkt);
|
||||
|
||||
nb_left -= packet_size;
|
||||
|
@ -968,7 +968,7 @@ srs_error_t SrsRtcFromRtmpBridger::package_single_nalu(SrsSharedPtrMessage* msg,
|
|||
raw->payload = sample->bytes;
|
||||
raw->nn_payload = sample->size;
|
||||
|
||||
pkt->original_msg = msg->copy();
|
||||
pkt->shared_msg = msg->copy();
|
||||
pkts.push_back(pkt);
|
||||
|
||||
return err;
|
||||
|
@ -1001,7 +1001,7 @@ srs_error_t SrsRtcFromRtmpBridger::package_fu_a(SrsSharedPtrMessage* msg, SrsSam
|
|||
fua->payload = p;
|
||||
fua->size = packet_size;
|
||||
|
||||
pkt->original_msg = msg->copy();
|
||||
pkt->shared_msg = msg->copy();
|
||||
pkts.push_back(pkt);
|
||||
|
||||
p += packet_size;
|
||||
|
|
|
@ -288,8 +288,7 @@ SrsRtpPacket2::SrsRtpPacket2()
|
|||
decode_handler = NULL;
|
||||
|
||||
nalu_type = SrsAvcNaluTypeReserved;
|
||||
original_bytes = NULL;
|
||||
original_msg = NULL;
|
||||
shared_msg = NULL;
|
||||
frame_type = SrsFrameTypeReserved;
|
||||
|
||||
cache_raw = new SrsRtpRawPayload();
|
||||
|
@ -308,8 +307,7 @@ SrsRtpPacket2::~SrsRtpPacket2()
|
|||
srs_freep(cache_raw);
|
||||
srs_freep(cache_fua);
|
||||
|
||||
srs_freepa(original_bytes);
|
||||
srs_freep(original_msg);
|
||||
srs_freep(shared_msg);
|
||||
}
|
||||
|
||||
void SrsRtpPacket2::set_padding(int size)
|
||||
|
@ -376,7 +374,7 @@ SrsRtpPacket2* SrsRtpPacket2::copy()
|
|||
cp->padding = padding;
|
||||
|
||||
cp->nalu_type = nalu_type;
|
||||
cp->original_msg = original_msg? original_msg->copy():NULL;
|
||||
cp->shared_msg = shared_msg? shared_msg->copy():NULL;
|
||||
cp->frame_type = frame_type;
|
||||
|
||||
cp->cache_payload = cache_payload;
|
||||
|
|
|
@ -129,11 +129,8 @@ public:
|
|||
public:
|
||||
// The first byte as nalu type, for video decoder only.
|
||||
SrsAvcNaluType nalu_type;
|
||||
// The original bytes for decoder or bridger only, we will free it.
|
||||
// TODO: FIXME: Should covert to shared prt message.
|
||||
char* original_bytes;
|
||||
// The original msg for bridger only, we will free it.
|
||||
SrsSharedPtrMessage* original_msg;
|
||||
// The original shared message, all RTP packets can refer to its data.
|
||||
SrsSharedPtrMessage* shared_msg;
|
||||
// The frame type, for RTMP bridger or SFU source.
|
||||
SrsFrameType frame_type;
|
||||
// Fast cache for performance.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue