mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
RTC: Rename SrsRtpPacket2.rtp_header to SrsRtpPacket2.header
This commit is contained in:
parent
ba8f2e2aba
commit
f510a94a91
4 changed files with 43 additions and 44 deletions
|
@ -785,10 +785,10 @@ srs_error_t SrsRtcPlayer::package_opus(SrsRtpPacket2* pkt)
|
||||||
{
|
{
|
||||||
srs_error_t err = srs_success;
|
srs_error_t err = srs_success;
|
||||||
|
|
||||||
pkt->rtp_header.set_timestamp(audio_timestamp);
|
pkt->header.set_timestamp(audio_timestamp);
|
||||||
pkt->rtp_header.set_sequence(audio_sequence++);
|
pkt->header.set_sequence(audio_sequence++);
|
||||||
pkt->rtp_header.set_ssrc(audio_ssrc);
|
pkt->header.set_ssrc(audio_ssrc);
|
||||||
pkt->rtp_header.set_payload_type(audio_payload_type);
|
pkt->header.set_payload_type(audio_payload_type);
|
||||||
|
|
||||||
// TODO: FIXME: Padding audio to the max payload in RTP packets.
|
// TODO: FIXME: Padding audio to the max payload in RTP packets.
|
||||||
if (max_padding > 0) {
|
if (max_padding > 0) {
|
||||||
|
@ -804,9 +804,9 @@ srs_error_t SrsRtcPlayer::package_video(SrsRtpPacket2* pkt)
|
||||||
{
|
{
|
||||||
srs_error_t err = srs_success;
|
srs_error_t err = srs_success;
|
||||||
|
|
||||||
pkt->rtp_header.set_sequence(video_sequence++);
|
pkt->header.set_sequence(video_sequence++);
|
||||||
pkt->rtp_header.set_ssrc(video_ssrc);
|
pkt->header.set_ssrc(video_ssrc);
|
||||||
pkt->rtp_header.set_payload_type(video_payload_type);
|
pkt->header.set_payload_type(video_payload_type);
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
@ -859,7 +859,7 @@ srs_error_t SrsRtcPlayer::send_packets(const std::vector<SrsRtpPacket2*>& pkts,
|
||||||
// Put final RTP packet to NACK/ARQ queue.
|
// Put final RTP packet to NACK/ARQ queue.
|
||||||
if (nack_enabled_) {
|
if (nack_enabled_) {
|
||||||
SrsRtpPacket2* nack = new SrsRtpPacket2();
|
SrsRtpPacket2* nack = new SrsRtpPacket2();
|
||||||
nack->rtp_header = pkt->rtp_header;
|
nack->header = pkt->header;
|
||||||
|
|
||||||
// TODO: FIXME: Should avoid memory copying.
|
// TODO: FIXME: Should avoid memory copying.
|
||||||
SrsRtpRawPayload* payload = new SrsRtpRawPayload();
|
SrsRtpRawPayload* payload = new SrsRtpRawPayload();
|
||||||
|
@ -869,10 +869,10 @@ srs_error_t SrsRtcPlayer::send_packets(const std::vector<SrsRtpPacket2*>& pkts,
|
||||||
payload->payload = new char[payload->nn_payload];
|
payload->payload = new char[payload->nn_payload];
|
||||||
memcpy((void*)payload->payload, iov->iov_base, iov->iov_len);
|
memcpy((void*)payload->payload, iov->iov_base, iov->iov_len);
|
||||||
|
|
||||||
if (nack->rtp_header.get_ssrc() == video_ssrc) {
|
if (nack->header.get_ssrc() == video_ssrc) {
|
||||||
video_queue_->set(nack->rtp_header.get_sequence(), nack);
|
video_queue_->set(nack->header.get_sequence(), nack);
|
||||||
} else {
|
} else {
|
||||||
audio_queue_->set(nack->rtp_header.get_sequence(), nack);
|
audio_queue_->set(nack->header.get_sequence(), nack);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -891,7 +891,7 @@ srs_error_t SrsRtcPlayer::send_packets(const std::vector<SrsRtpPacket2*>& pkts,
|
||||||
|
|
||||||
// For NACK simulator, drop packet.
|
// For NACK simulator, drop packet.
|
||||||
if (nn_simulate_nack_drop) {
|
if (nn_simulate_nack_drop) {
|
||||||
simulate_drop_packet(&pkt->rtp_header, (int)iov->iov_len);
|
simulate_drop_packet(&pkt->header, (int)iov->iov_len);
|
||||||
iov->iov_len = 0;
|
iov->iov_len = 0;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -1033,7 +1033,7 @@ srs_error_t SrsRtcPlayer::send_packets_gso(const vector<SrsRtpPacket2*>& pkts, S
|
||||||
// Put final RTP packet to NACK/ARQ queue.
|
// Put final RTP packet to NACK/ARQ queue.
|
||||||
if (nack_enabled_) {
|
if (nack_enabled_) {
|
||||||
SrsRtpPacket2* nack = new SrsRtpPacket2();
|
SrsRtpPacket2* nack = new SrsRtpPacket2();
|
||||||
nack->rtp_header = packet->rtp_header;
|
nack->header = packet->header;
|
||||||
|
|
||||||
// TODO: FIXME: Should avoid memory copying.
|
// TODO: FIXME: Should avoid memory copying.
|
||||||
SrsRtpRawPayload* payload = new SrsRtpRawPayload();
|
SrsRtpRawPayload* payload = new SrsRtpRawPayload();
|
||||||
|
@ -1043,10 +1043,10 @@ srs_error_t SrsRtcPlayer::send_packets_gso(const vector<SrsRtpPacket2*>& pkts, S
|
||||||
payload->payload = new char[payload->nn_payload];
|
payload->payload = new char[payload->nn_payload];
|
||||||
memcpy((void*)payload->payload, iov->iov_base, iov->iov_len);
|
memcpy((void*)payload->payload, iov->iov_base, iov->iov_len);
|
||||||
|
|
||||||
if (nack->rtp_header.get_ssrc() == video_ssrc) {
|
if (nack->header.get_ssrc() == video_ssrc) {
|
||||||
video_queue_->set(nack->rtp_header.get_sequence(), nack);
|
video_queue_->set(nack->header.get_sequence(), nack);
|
||||||
} else {
|
} else {
|
||||||
audio_queue_->set(nack->rtp_header.get_sequence(), nack);
|
audio_queue_->set(nack->header.get_sequence(), nack);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1070,9 +1070,9 @@ srs_error_t SrsRtcPlayer::send_packets_gso(const vector<SrsRtpPacket2*>& pkts, S
|
||||||
bool do_send = (i == nn_packets - 1 || gso_final || !using_gso);
|
bool do_send = (i == nn_packets - 1 || gso_final || !using_gso);
|
||||||
|
|
||||||
#if defined(SRS_DEBUG)
|
#if defined(SRS_DEBUG)
|
||||||
bool is_video = packet->rtp_header.get_payload_type() == video_payload_type;
|
bool is_video = packet->header.get_payload_type() == video_payload_type;
|
||||||
srs_trace("#%d, Packet %s SSRC=%d, SN=%d, %d/%d bytes", info.debug_id, is_video? "Video":"Audio",
|
srs_trace("#%d, Packet %s SSRC=%d, SN=%d, %d/%d bytes", info.debug_id, is_video? "Video":"Audio",
|
||||||
packet->rtp_header.get_ssrc(), packet->rtp_header.get_sequence(), nn_packet - padding, padding);
|
packet->header.get_ssrc(), packet->header.get_sequence(), nn_packet - padding, padding);
|
||||||
if (do_send) {
|
if (do_send) {
|
||||||
for (int j = 0; j < (int)mhdr->msg_hdr.msg_iovlen; j++) {
|
for (int j = 0; j < (int)mhdr->msg_hdr.msg_iovlen; j++) {
|
||||||
iovec* iov = mhdr->msg_hdr.msg_iov + j;
|
iovec* iov = mhdr->msg_hdr.msg_iov + j;
|
||||||
|
@ -1308,7 +1308,7 @@ srs_error_t SrsRtcPlayer::on_rtcp_feedback(char* buf, int nb_buf)
|
||||||
pkt->encode(&buf);
|
pkt->encode(&buf);
|
||||||
session_->sendonly_skt->sendto(data, pkt->nb_bytes(), 0);
|
session_->sendonly_skt->sendto(data, pkt->nb_bytes(), 0);
|
||||||
|
|
||||||
SrsRtpHeader* h = &pkt->rtp_header;
|
SrsRtpHeader* h = &pkt->header;
|
||||||
srs_trace("RTC NACK ARQ seq=%u, ssrc=%u, ts=%u, %d bytes", h->get_sequence(),
|
srs_trace("RTC NACK ARQ seq=%u, ssrc=%u, ts=%u, %d bytes", h->get_sequence(),
|
||||||
h->get_ssrc(), h->get_timestamp(), pkt->nb_bytes());
|
h->get_ssrc(), h->get_timestamp(), pkt->nb_bytes());
|
||||||
}
|
}
|
||||||
|
@ -1668,12 +1668,12 @@ srs_error_t SrsRtcPublisher::on_rtp(char* buf, int nb_buf)
|
||||||
|
|
||||||
// For NACK simulator, drop packet.
|
// For NACK simulator, drop packet.
|
||||||
if (nn_simulate_nack_drop) {
|
if (nn_simulate_nack_drop) {
|
||||||
simulate_drop_packet(&pkt->rtp_header, nb_buf);
|
simulate_drop_packet(&pkt->header, nb_buf);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
// For source to consume packet.
|
// For source to consume packet.
|
||||||
uint32_t ssrc = pkt->rtp_header.get_ssrc();
|
uint32_t ssrc = pkt->header.get_ssrc();
|
||||||
if (ssrc == audio_ssrc) {
|
if (ssrc == audio_ssrc) {
|
||||||
if ((err = on_audio(pkt)) != srs_success) {
|
if ((err = on_audio(pkt)) != srs_success) {
|
||||||
return srs_error_wrap(err, "on audio");
|
return srs_error_wrap(err, "on audio");
|
||||||
|
@ -1701,7 +1701,7 @@ void SrsRtcPublisher::on_before_decode_payload(SrsRtpPacket2* pkt, SrsBuffer* bu
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t ssrc = pkt->rtp_header.get_ssrc();
|
uint32_t ssrc = pkt->header.get_ssrc();
|
||||||
if (ssrc == audio_ssrc) {
|
if (ssrc == audio_ssrc) {
|
||||||
*ppayload = new SrsRtpRawPayload();
|
*ppayload = new SrsRtpRawPayload();
|
||||||
} else if (ssrc == video_ssrc) {
|
} else if (ssrc == video_ssrc) {
|
||||||
|
@ -1751,7 +1751,7 @@ srs_error_t SrsRtcPublisher::on_nack(SrsRtpPacket2* pkt)
|
||||||
{
|
{
|
||||||
srs_error_t err = srs_success;
|
srs_error_t err = srs_success;
|
||||||
|
|
||||||
uint16_t seq = pkt->rtp_header.get_sequence();
|
uint16_t seq = pkt->header.get_sequence();
|
||||||
SrsRtpNackInfo* nack_info = audio_nack_->find(seq);
|
SrsRtpNackInfo* nack_info = audio_nack_->find(seq);
|
||||||
if (nack_info) {
|
if (nack_info) {
|
||||||
return err;
|
return err;
|
||||||
|
|
|
@ -583,7 +583,7 @@ srs_error_t SrsRtcFromRtmpBridger::package_opus(char* data, int size, SrsRtpPack
|
||||||
|
|
||||||
SrsRtpPacket2* pkt = new SrsRtpPacket2();
|
SrsRtpPacket2* pkt = new SrsRtpPacket2();
|
||||||
pkt->frame_type = SrsFrameTypeAudio;
|
pkt->frame_type = SrsFrameTypeAudio;
|
||||||
pkt->rtp_header.set_marker(true);
|
pkt->header.set_marker(true);
|
||||||
|
|
||||||
SrsRtpRawPayload* raw = new SrsRtpRawPayload();
|
SrsRtpRawPayload* raw = new SrsRtpRawPayload();
|
||||||
pkt->payload = raw;
|
pkt->payload = raw;
|
||||||
|
@ -665,7 +665,7 @@ srs_error_t SrsRtcFromRtmpBridger::on_video(SrsSharedPtrMessage* msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pkts.size() > 0) {
|
if (pkts.size() > 0) {
|
||||||
pkts.back()->rtp_header.set_marker(true);
|
pkts.back()->header.set_marker(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
return consume_packets(pkts);
|
return consume_packets(pkts);
|
||||||
|
@ -719,8 +719,8 @@ srs_error_t SrsRtcFromRtmpBridger::package_stap_a(SrsRtcSource* source, SrsShare
|
||||||
|
|
||||||
SrsRtpPacket2* pkt = new SrsRtpPacket2();
|
SrsRtpPacket2* pkt = new SrsRtpPacket2();
|
||||||
pkt->frame_type = SrsFrameTypeVideo;
|
pkt->frame_type = SrsFrameTypeVideo;
|
||||||
pkt->rtp_header.set_marker(false);
|
pkt->header.set_marker(false);
|
||||||
pkt->rtp_header.set_timestamp(msg->timestamp * 90);
|
pkt->header.set_timestamp(msg->timestamp * 90);
|
||||||
|
|
||||||
SrsRtpSTAPPayload* stap = new SrsRtpSTAPPayload();
|
SrsRtpSTAPPayload* stap = new SrsRtpSTAPPayload();
|
||||||
pkt->payload = stap;
|
pkt->payload = stap;
|
||||||
|
@ -755,7 +755,7 @@ srs_error_t SrsRtcFromRtmpBridger::package_stap_a(SrsRtcSource* source, SrsShare
|
||||||
}
|
}
|
||||||
|
|
||||||
*ppkt = pkt;
|
*ppkt = pkt;
|
||||||
srs_trace("RTC STAP-A seq=%u, sps %d, pps %d bytes", pkt->rtp_header.get_sequence(), sps.size(), pps.size());
|
srs_trace("RTC STAP-A seq=%u, sps %d, pps %d bytes", pkt->header.get_sequence(), sps.size(), pps.size());
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
@ -789,7 +789,7 @@ srs_error_t SrsRtcFromRtmpBridger::package_nalus(SrsSharedPtrMessage* msg, const
|
||||||
// Package NALUs in a single RTP packet.
|
// Package NALUs in a single RTP packet.
|
||||||
SrsRtpPacket2* pkt = new SrsRtpPacket2();
|
SrsRtpPacket2* pkt = new SrsRtpPacket2();
|
||||||
pkt->frame_type = SrsFrameTypeVideo;
|
pkt->frame_type = SrsFrameTypeVideo;
|
||||||
pkt->rtp_header.set_timestamp(msg->timestamp * 90);
|
pkt->header.set_timestamp(msg->timestamp * 90);
|
||||||
pkt->payload = raw;
|
pkt->payload = raw;
|
||||||
pkt->shared_msg = msg->copy();
|
pkt->shared_msg = msg->copy();
|
||||||
pkts.push_back(pkt);
|
pkts.push_back(pkt);
|
||||||
|
@ -818,7 +818,7 @@ srs_error_t SrsRtcFromRtmpBridger::package_nalus(SrsSharedPtrMessage* msg, const
|
||||||
|
|
||||||
SrsRtpPacket2* pkt = new SrsRtpPacket2();
|
SrsRtpPacket2* pkt = new SrsRtpPacket2();
|
||||||
pkt->frame_type = SrsFrameTypeVideo;
|
pkt->frame_type = SrsFrameTypeVideo;
|
||||||
pkt->rtp_header.set_timestamp(msg->timestamp * 90);
|
pkt->header.set_timestamp(msg->timestamp * 90);
|
||||||
|
|
||||||
fua->nri = (SrsAvcNaluType)header;
|
fua->nri = (SrsAvcNaluType)header;
|
||||||
fua->nalu_type = (SrsAvcNaluType)nal_type;
|
fua->nalu_type = (SrsAvcNaluType)nal_type;
|
||||||
|
@ -843,7 +843,7 @@ srs_error_t SrsRtcFromRtmpBridger::package_single_nalu(SrsSharedPtrMessage* msg,
|
||||||
|
|
||||||
SrsRtpPacket2* pkt = new SrsRtpPacket2();
|
SrsRtpPacket2* pkt = new SrsRtpPacket2();
|
||||||
pkt->frame_type = SrsFrameTypeVideo;
|
pkt->frame_type = SrsFrameTypeVideo;
|
||||||
pkt->rtp_header.set_timestamp(msg->timestamp * 90);
|
pkt->header.set_timestamp(msg->timestamp * 90);
|
||||||
|
|
||||||
SrsRtpRawPayload* raw = new SrsRtpRawPayload();
|
SrsRtpRawPayload* raw = new SrsRtpRawPayload();
|
||||||
pkt->payload = raw;
|
pkt->payload = raw;
|
||||||
|
@ -872,7 +872,7 @@ srs_error_t SrsRtcFromRtmpBridger::package_fu_a(SrsSharedPtrMessage* msg, SrsSam
|
||||||
|
|
||||||
SrsRtpPacket2* pkt = new SrsRtpPacket2();
|
SrsRtpPacket2* pkt = new SrsRtpPacket2();
|
||||||
pkt->frame_type = SrsFrameTypeVideo;
|
pkt->frame_type = SrsFrameTypeVideo;
|
||||||
pkt->rtp_header.set_timestamp(msg->timestamp * 90);
|
pkt->header.set_timestamp(msg->timestamp * 90);
|
||||||
|
|
||||||
SrsRtpFUAPayload2* fua = new SrsRtpFUAPayload2();
|
SrsRtpFUAPayload2* fua = new SrsRtpFUAPayload2();
|
||||||
pkt->payload = fua;
|
pkt->payload = fua;
|
||||||
|
|
|
@ -283,15 +283,15 @@ SrsRtpPacket2::~SrsRtpPacket2()
|
||||||
|
|
||||||
void SrsRtpPacket2::set_padding(int size)
|
void SrsRtpPacket2::set_padding(int size)
|
||||||
{
|
{
|
||||||
rtp_header.set_padding(size);
|
header.set_padding(size);
|
||||||
if (cached_payload_size) {
|
if (cached_payload_size) {
|
||||||
cached_payload_size += size - rtp_header.get_padding();
|
cached_payload_size += size - header.get_padding();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SrsRtpPacket2::add_padding(int size)
|
void SrsRtpPacket2::add_padding(int size)
|
||||||
{
|
{
|
||||||
rtp_header.set_padding(rtp_header.get_padding() + size);
|
header.set_padding(header.get_padding() + size);
|
||||||
if (cached_payload_size) {
|
if (cached_payload_size) {
|
||||||
cached_payload_size += size;
|
cached_payload_size += size;
|
||||||
}
|
}
|
||||||
|
@ -311,7 +311,7 @@ SrsRtpPacket2* SrsRtpPacket2::copy()
|
||||||
{
|
{
|
||||||
SrsRtpPacket2* cp = new SrsRtpPacket2();
|
SrsRtpPacket2* cp = new SrsRtpPacket2();
|
||||||
|
|
||||||
cp->rtp_header = rtp_header;
|
cp->header = header;
|
||||||
cp->payload = payload? payload->copy():NULL;
|
cp->payload = payload? payload->copy():NULL;
|
||||||
|
|
||||||
cp->nalu_type = nalu_type;
|
cp->nalu_type = nalu_type;
|
||||||
|
@ -328,7 +328,7 @@ int SrsRtpPacket2::nb_bytes()
|
||||||
{
|
{
|
||||||
if (!cached_payload_size) {
|
if (!cached_payload_size) {
|
||||||
int nn_payload = (payload? payload->nb_bytes():0);
|
int nn_payload = (payload? payload->nb_bytes():0);
|
||||||
cached_payload_size = rtp_header.nb_bytes() + nn_payload + rtp_header.get_padding();
|
cached_payload_size = header.nb_bytes() + nn_payload + header.get_padding();
|
||||||
}
|
}
|
||||||
return cached_payload_size;
|
return cached_payload_size;
|
||||||
}
|
}
|
||||||
|
@ -337,7 +337,7 @@ srs_error_t SrsRtpPacket2::encode(SrsBuffer* buf)
|
||||||
{
|
{
|
||||||
srs_error_t err = srs_success;
|
srs_error_t err = srs_success;
|
||||||
|
|
||||||
if ((err = rtp_header.encode(buf)) != srs_success) {
|
if ((err = header.encode(buf)) != srs_success) {
|
||||||
return srs_error_wrap(err, "rtp header");
|
return srs_error_wrap(err, "rtp header");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -345,8 +345,8 @@ srs_error_t SrsRtpPacket2::encode(SrsBuffer* buf)
|
||||||
return srs_error_wrap(err, "rtp payload");
|
return srs_error_wrap(err, "rtp payload");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rtp_header.get_padding() > 0) {
|
if (header.get_padding() > 0) {
|
||||||
uint8_t padding = rtp_header.get_padding();
|
uint8_t padding = header.get_padding();
|
||||||
if (!buf->require(padding)) {
|
if (!buf->require(padding)) {
|
||||||
return srs_error_new(ERROR_RTC_RTP_MUXER, "requires %d bytes", padding);
|
return srs_error_new(ERROR_RTC_RTP_MUXER, "requires %d bytes", padding);
|
||||||
}
|
}
|
||||||
|
@ -361,12 +361,12 @@ srs_error_t SrsRtpPacket2::decode(SrsBuffer* buf)
|
||||||
{
|
{
|
||||||
srs_error_t err = srs_success;
|
srs_error_t err = srs_success;
|
||||||
|
|
||||||
if ((err = rtp_header.decode(buf)) != srs_success) {
|
if ((err = header.decode(buf)) != srs_success) {
|
||||||
return srs_error_wrap(err, "rtp header");
|
return srs_error_wrap(err, "rtp header");
|
||||||
}
|
}
|
||||||
|
|
||||||
// We must skip the padding bytes before parsing payload.
|
// We must skip the padding bytes before parsing payload.
|
||||||
uint8_t padding = rtp_header.get_padding();
|
uint8_t padding = header.get_padding();
|
||||||
if (!buf->require(padding)) {
|
if (!buf->require(padding)) {
|
||||||
return srs_error_wrap(err, "requires padding %d bytes", padding);
|
return srs_error_wrap(err, "requires padding %d bytes", padding);
|
||||||
}
|
}
|
||||||
|
|
|
@ -117,8 +117,7 @@ class SrsRtpPacket2
|
||||||
{
|
{
|
||||||
// RTP packet fields.
|
// RTP packet fields.
|
||||||
public:
|
public:
|
||||||
// TODO: FIXME: Rename to header.
|
SrsRtpHeader header;
|
||||||
SrsRtpHeader rtp_header;
|
|
||||||
ISrsRtpPayloader* payload;
|
ISrsRtpPayloader* payload;
|
||||||
// Helper fields.
|
// Helper fields.
|
||||||
public:
|
public:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue