mirror of
https://github.com/kunkundi/crossdesk.git
synced 2025-10-27 04:35:34 +08:00
[fix] fix unused variables and type conversions
This commit is contained in:
@@ -30,7 +30,7 @@ struct Obu {
|
||||
uint8_t header;
|
||||
uint8_t extension_header; // undefined if (header & kXbit) == 0
|
||||
std::vector<uint8_t> payload;
|
||||
int size; // size of the header and payload combined.
|
||||
size_t size; // size of the header and payload combined.
|
||||
};
|
||||
|
||||
struct Packet {
|
||||
|
||||
@@ -101,11 +101,11 @@ std::vector<Obu> ParseObus(uint8_t* payload, int payload_size) {
|
||||
payload_reader.Consume(size);
|
||||
}
|
||||
obu.size += obu.payload.size();
|
||||
// Skip obus that shouldn't be transfered over rtp.
|
||||
int obu_type = ObuType(obu.header);
|
||||
if (has_ext_header) {
|
||||
obu.payload.insert(obu.payload.begin(), obu.extension_header);
|
||||
}
|
||||
// Skip obus that shouldn't be transfered over rtp.
|
||||
// int obu_type = ObuType(obu.header);
|
||||
obu.payload.insert(obu.payload.begin(), obu.header);
|
||||
// if (obu_type != kObuTypeTemporalDelimiter && //
|
||||
// obu_type != kObuTypeTileList && //
|
||||
|
||||
@@ -17,7 +17,7 @@ void RtpAudioReceiver::InsertRtpPacket(RtpPacket& rtp_packet) {
|
||||
}
|
||||
|
||||
if (rtp_statistics_) {
|
||||
rtp_statistics_->UpdateReceiveBytes(rtp_packet.Size());
|
||||
rtp_statistics_->UpdateReceiveBytes((uint32_t)rtp_packet.Size());
|
||||
}
|
||||
|
||||
if (CheckIsTimeSendRR()) {
|
||||
|
||||
@@ -42,9 +42,9 @@ int RtpAudioSender::SendRtpPacket(RtpPacket& rtp_packet) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
last_send_bytes_ += rtp_packet.Size();
|
||||
last_send_bytes_ += (uint32_t)rtp_packet.Size();
|
||||
total_rtp_packets_sent_++;
|
||||
total_rtp_payload_sent_ += rtp_packet.PayloadSize();
|
||||
total_rtp_payload_sent_ += (uint32_t)rtp_packet.PayloadSize();
|
||||
|
||||
if (CheckIsTimeSendSR()) {
|
||||
RtcpSenderReport rtcp_sr;
|
||||
|
||||
@@ -35,7 +35,7 @@ RtpCodec ::~RtpCodec() {
|
||||
// }
|
||||
}
|
||||
|
||||
void RtpCodec::Encode(uint8_t* buffer, size_t size,
|
||||
void RtpCodec::Encode(uint8_t* buffer, uint32_t size,
|
||||
std::vector<RtpPacket>& packets) {
|
||||
if (RtpPacket::PAYLOAD_TYPE::H264 == payload_type_) {
|
||||
if (fec_enable_ && IsKeyFrame((const uint8_t*)buffer, size)) {
|
||||
@@ -44,8 +44,8 @@ void RtpCodec::Encode(uint8_t* buffer, size_t size,
|
||||
LOG_ERROR("Invalid fec_packets");
|
||||
return;
|
||||
}
|
||||
unsigned int num_of_total_packets = 0;
|
||||
unsigned int num_of_source_packets = 0;
|
||||
uint8_t num_of_total_packets = 0;
|
||||
uint8_t num_of_source_packets = 0;
|
||||
unsigned int last_packet_size = 0;
|
||||
fec_encoder_.GetFecPacketsParams(size, num_of_total_packets,
|
||||
num_of_source_packets, last_packet_size);
|
||||
@@ -54,13 +54,13 @@ void RtpCodec::Encode(uint8_t* buffer, size_t size,
|
||||
std::chrono::system_clock::now().time_since_epoch())
|
||||
.count();
|
||||
|
||||
for (unsigned int index = 0; index < num_of_total_packets; index++) {
|
||||
for (uint8_t index = 0; index < num_of_total_packets; index++) {
|
||||
RtpPacket rtp_packet;
|
||||
if (index < num_of_source_packets) {
|
||||
rtp_packet.SetVerion(version_);
|
||||
rtp_packet.SetHasPadding(has_padding_);
|
||||
rtp_packet.SetHasExtension(has_extension_);
|
||||
rtp_packet.SetMarker(index == num_of_source_packets - 1 ? 1 : 0);
|
||||
rtp_packet.SetMarker((index == (num_of_source_packets - 1)) ? 1 : 0);
|
||||
rtp_packet.SetPayloadType(RtpPacket::PAYLOAD_TYPE::H264_FEC_SOURCE);
|
||||
rtp_packet.SetSequenceNumber(sequence_number_++);
|
||||
rtp_packet.SetTimestamp(timestamp_);
|
||||
@@ -170,13 +170,13 @@ void RtpCodec::Encode(uint8_t* buffer, size_t size,
|
||||
packets.emplace_back(rtp_packet);
|
||||
|
||||
} else {
|
||||
size_t last_packet_size = size % MAX_NALU_LEN;
|
||||
size_t packet_num = size / MAX_NALU_LEN + (last_packet_size ? 1 : 0);
|
||||
uint32_t last_packet_size = size % MAX_NALU_LEN;
|
||||
uint32_t packet_num = size / MAX_NALU_LEN + (last_packet_size ? 1 : 0);
|
||||
timestamp_ = std::chrono::duration_cast<std::chrono::microseconds>(
|
||||
std::chrono::system_clock::now().time_since_epoch())
|
||||
.count();
|
||||
|
||||
for (size_t index = 0; index < packet_num; index++) {
|
||||
for (uint32_t index = 0; index < packet_num; index++) {
|
||||
RtpPacket rtp_packet;
|
||||
rtp_packet.SetVerion(version_);
|
||||
rtp_packet.SetHasPadding(has_padding_);
|
||||
@@ -254,13 +254,13 @@ void RtpCodec::Encode(uint8_t* buffer, size_t size,
|
||||
rtp_packet.EncodeAv1(obus[i].payload.data(), obus[i].payload.size());
|
||||
packets.emplace_back(rtp_packet);
|
||||
} else {
|
||||
size_t last_packet_size = obus[i].payload.size() % MAX_NALU_LEN;
|
||||
uint32_t last_packet_size = obus[i].payload.size() % MAX_NALU_LEN;
|
||||
size_t packet_num =
|
||||
obus[i].payload.size() / MAX_NALU_LEN + (last_packet_size ? 1 : 0);
|
||||
timestamp_ = std::chrono::duration_cast<std::chrono::microseconds>(
|
||||
std::chrono::system_clock::now().time_since_epoch())
|
||||
.count();
|
||||
for (size_t index = 0; index < packet_num; index++) {
|
||||
for (uint32_t index = 0; index < packet_num; index++) {
|
||||
RtpPacket rtp_packet;
|
||||
rtp_packet.SetVerion(version_);
|
||||
rtp_packet.SetHasPadding(has_padding_);
|
||||
@@ -332,7 +332,7 @@ void RtpCodec::Encode(uint8_t* buffer, size_t size,
|
||||
}
|
||||
}
|
||||
|
||||
void RtpCodec::Encode(VideoFrameType frame_type, uint8_t* buffer, size_t size,
|
||||
void RtpCodec::Encode(VideoFrameType frame_type, uint8_t* buffer, uint32_t size,
|
||||
std::vector<RtpPacket>& packets) {
|
||||
if (RtpPacket::PAYLOAD_TYPE::H264 == payload_type_) {
|
||||
if (fec_enable_ && IsKeyFrame((const uint8_t*)buffer, size)) {
|
||||
@@ -341,8 +341,8 @@ void RtpCodec::Encode(VideoFrameType frame_type, uint8_t* buffer, size_t size,
|
||||
LOG_ERROR("Invalid fec_packets");
|
||||
return;
|
||||
}
|
||||
unsigned int num_of_total_packets = 0;
|
||||
unsigned int num_of_source_packets = 0;
|
||||
uint8_t num_of_total_packets = 0;
|
||||
uint8_t num_of_source_packets = 0;
|
||||
unsigned int last_packet_size = 0;
|
||||
fec_encoder_.GetFecPacketsParams(size, num_of_total_packets,
|
||||
num_of_source_packets, last_packet_size);
|
||||
@@ -351,7 +351,7 @@ void RtpCodec::Encode(VideoFrameType frame_type, uint8_t* buffer, size_t size,
|
||||
std::chrono::system_clock::now().time_since_epoch())
|
||||
.count();
|
||||
|
||||
for (unsigned int index = 0; index < num_of_total_packets; index++) {
|
||||
for (uint8_t index = 0; index < num_of_total_packets; index++) {
|
||||
RtpPacket rtp_packet;
|
||||
if (index < num_of_source_packets) {
|
||||
rtp_packet.SetVerion(version_);
|
||||
@@ -469,13 +469,13 @@ void RtpCodec::Encode(VideoFrameType frame_type, uint8_t* buffer, size_t size,
|
||||
packets.emplace_back(rtp_packet);
|
||||
|
||||
} else {
|
||||
size_t last_packet_size = size % MAX_NALU_LEN;
|
||||
size_t packet_num = size / MAX_NALU_LEN + (last_packet_size ? 1 : 0);
|
||||
uint32_t last_packet_size = size % MAX_NALU_LEN;
|
||||
uint32_t packet_num = size / MAX_NALU_LEN + (last_packet_size ? 1 : 0);
|
||||
timestamp_ = std::chrono::duration_cast<std::chrono::microseconds>(
|
||||
std::chrono::system_clock::now().time_since_epoch())
|
||||
.count();
|
||||
|
||||
for (size_t index = 0; index < packet_num; index++) {
|
||||
for (uint32_t index = 0; index < packet_num; index++) {
|
||||
RtpPacket rtp_packet;
|
||||
rtp_packet.SetVerion(version_);
|
||||
rtp_packet.SetHasPadding(has_padding_);
|
||||
@@ -520,7 +520,7 @@ void RtpCodec::Encode(VideoFrameType frame_type, uint8_t* buffer, size_t size,
|
||||
}
|
||||
} else if (RtpPacket::PAYLOAD_TYPE::AV1 == payload_type_) {
|
||||
std::vector<Obu> obus = ParseObus(buffer, size);
|
||||
uint32_t timestamp =
|
||||
uint64_t timestamp =
|
||||
std::chrono::duration_cast<std::chrono::microseconds>(
|
||||
std::chrono::system_clock::now().time_since_epoch())
|
||||
.count();
|
||||
@@ -550,11 +550,11 @@ void RtpCodec::Encode(VideoFrameType frame_type, uint8_t* buffer, size_t size,
|
||||
rtp_packet.EncodeAv1(obus[i].payload.data(), obus[i].size);
|
||||
packets.emplace_back(rtp_packet);
|
||||
} else {
|
||||
size_t last_packet_size = obus[i].size % MAX_NALU_LEN;
|
||||
uint32_t last_packet_size = obus[i].size % MAX_NALU_LEN;
|
||||
size_t packet_num =
|
||||
obus[i].size / MAX_NALU_LEN + (last_packet_size ? 1 : 0);
|
||||
|
||||
for (size_t index = 0; index < packet_num; index++) {
|
||||
for (uint32_t index = 0; index < packet_num; index++) {
|
||||
RtpPacket rtp_packet;
|
||||
rtp_packet.SetVerion(version_);
|
||||
rtp_packet.SetHasPadding(has_padding_);
|
||||
@@ -618,7 +618,7 @@ size_t RtpCodec::Decode(RtpPacket& packet, uint8_t* payload) {
|
||||
}
|
||||
}
|
||||
|
||||
bool RtpCodec::IsKeyFrame(const uint8_t* buffer, size_t size) {
|
||||
bool RtpCodec::IsKeyFrame(const uint8_t* buffer, uint32_t size) {
|
||||
if (buffer != nullptr && size != 0 && (*(buffer + 4) & 0x1f) == 0x07) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -21,27 +21,28 @@ class RtpCodec {
|
||||
~RtpCodec();
|
||||
|
||||
public:
|
||||
void Encode(uint8_t* buffer, size_t size, std::vector<RtpPacket>& packets);
|
||||
void Encode(VideoFrameType frame_type, uint8_t* buffer, size_t size,
|
||||
void Encode(uint8_t* buffer, uint32_t size, std::vector<RtpPacket>& packets);
|
||||
void Encode(VideoFrameType frame_type, uint8_t* buffer, uint32_t size,
|
||||
std::vector<RtpPacket>& packets);
|
||||
size_t Decode(RtpPacket& packet, uint8_t* payload);
|
||||
|
||||
// protected:
|
||||
// void OnReceiveFrame(uint8_t* payload) = 0;
|
||||
private:
|
||||
bool IsKeyFrame(const uint8_t* buffer, size_t size);
|
||||
bool IsKeyFrame(const uint8_t* buffer, uint32_t size);
|
||||
|
||||
void EncodeAv1(uint8_t* buffer, size_t size, std::vector<RtpPacket>& packets);
|
||||
void EncodeAv1(uint8_t* buffer, uint32_t size,
|
||||
std::vector<RtpPacket>& packets);
|
||||
|
||||
private:
|
||||
uint32_t version_ = 0;
|
||||
uint8_t version_ = 0;
|
||||
bool has_padding_ = false;
|
||||
bool has_extension_ = false;
|
||||
uint32_t total_csrc_number_ = 0;
|
||||
bool marker_ = false;
|
||||
uint32_t payload_type_ = 0;
|
||||
uint16_t sequence_number_ = 0;
|
||||
uint32_t timestamp_ = 0;
|
||||
uint64_t timestamp_ = 0;
|
||||
uint32_t ssrc_ = 0;
|
||||
std::vector<uint32_t> csrcs_;
|
||||
uint16_t profile_ = 0;
|
||||
|
||||
@@ -17,7 +17,7 @@ void RtpDataReceiver::InsertRtpPacket(RtpPacket& rtp_packet) {
|
||||
}
|
||||
|
||||
if (rtp_statistics_) {
|
||||
rtp_statistics_->UpdateReceiveBytes(rtp_packet.Size());
|
||||
rtp_statistics_->UpdateReceiveBytes((uint32_t)rtp_packet.Size());
|
||||
}
|
||||
|
||||
if (CheckIsTimeSendRR()) {
|
||||
|
||||
@@ -42,9 +42,9 @@ int RtpDataSender::SendRtpPacket(RtpPacket& rtp_packet) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
last_send_bytes_ += rtp_packet.Size();
|
||||
last_send_bytes_ += (uint32_t)rtp_packet.Size();
|
||||
total_rtp_packets_sent_++;
|
||||
total_rtp_payload_sent_ += rtp_packet.PayloadSize();
|
||||
total_rtp_payload_sent_ += (uint32_t)rtp_packet.PayloadSize();
|
||||
|
||||
if (CheckIsTimeSendSR()) {
|
||||
RtcpSenderReport rtcp_sr;
|
||||
|
||||
@@ -37,7 +37,7 @@ RtpPacket::RtpPacket() : buffer_(new uint8_t[DEFAULT_MTU]), size_(DEFAULT_MTU) {
|
||||
memset(buffer_, 0, DEFAULT_MTU);
|
||||
}
|
||||
|
||||
RtpPacket::RtpPacket(const uint8_t *buffer, size_t size) {
|
||||
RtpPacket::RtpPacket(const uint8_t *buffer, uint32_t size) {
|
||||
if (size > 0) {
|
||||
buffer_ = (uint8_t *)malloc(size);
|
||||
if (NULL == buffer_) {
|
||||
@@ -269,9 +269,10 @@ const uint8_t *RtpPacket::EncodeH264Fua(uint8_t *payload, size_t payload_size) {
|
||||
return buffer_;
|
||||
}
|
||||
|
||||
const uint8_t *RtpPacket::EncodeH264FecSource(
|
||||
uint8_t *payload, size_t payload_size, unsigned int fec_symbol_id,
|
||||
unsigned int fec_source_symbol_num) {
|
||||
const uint8_t *RtpPacket::EncodeH264FecSource(uint8_t *payload,
|
||||
size_t payload_size,
|
||||
uint8_t fec_symbol_id,
|
||||
uint8_t fec_source_symbol_num) {
|
||||
buffer_[0] = (version_ << 6) | (has_padding_ << 5) | (has_extension_ << 4) |
|
||||
total_csrc_number_;
|
||||
buffer_[1] = (marker_ << 7) | payload_type_;
|
||||
@@ -329,9 +330,10 @@ const uint8_t *RtpPacket::EncodeH264FecSource(
|
||||
return buffer_;
|
||||
}
|
||||
|
||||
const uint8_t *RtpPacket::EncodeH264FecRepair(
|
||||
uint8_t *payload, size_t payload_size, unsigned int fec_symbol_id,
|
||||
unsigned int fec_source_symbol_num) {
|
||||
const uint8_t *RtpPacket::EncodeH264FecRepair(uint8_t *payload,
|
||||
size_t payload_size,
|
||||
uint8_t fec_symbol_id,
|
||||
uint8_t fec_source_symbol_num) {
|
||||
buffer_[0] = (version_ << 6) | (has_padding_ << 5) | (has_extension_ << 4) |
|
||||
total_csrc_number_;
|
||||
buffer_[1] = (marker_ << 7) | payload_type_;
|
||||
|
||||
@@ -184,7 +184,7 @@ class RtpPacket {
|
||||
|
||||
public:
|
||||
RtpPacket();
|
||||
RtpPacket(const uint8_t *buffer, size_t size);
|
||||
RtpPacket(const uint8_t *buffer, uint32_t size);
|
||||
RtpPacket(const RtpPacket &rtp_packet);
|
||||
RtpPacket(RtpPacket &&rtp_packet);
|
||||
RtpPacket &operator=(const RtpPacket &rtp_packet);
|
||||
@@ -194,24 +194,24 @@ class RtpPacket {
|
||||
|
||||
public:
|
||||
// Set Header
|
||||
void SetVerion(uint32_t version) { version_ = version; }
|
||||
void SetVerion(uint8_t version) { version_ = version; }
|
||||
void SetHasPadding(bool has_padding) { has_padding_ = has_padding; }
|
||||
void SetHasExtension(bool has_extension) { has_extension_ = has_extension; }
|
||||
void SetMarker(bool marker) { marker_ = marker; }
|
||||
void SetPayloadType(PAYLOAD_TYPE payload_type) {
|
||||
payload_type_ = payload_type;
|
||||
payload_type_ = (uint8_t)payload_type;
|
||||
}
|
||||
void SetSequenceNumber(uint16_t sequence_number) {
|
||||
sequence_number_ = sequence_number;
|
||||
}
|
||||
void SetTimestamp(uint32_t timestamp) { timestamp_ = timestamp; }
|
||||
void SetTimestamp(uint64_t timestamp) { timestamp_ = timestamp; }
|
||||
void SetSsrc(uint32_t ssrc) { ssrc_ = ssrc; }
|
||||
void SetCsrcs(std::vector<uint32_t> &csrcs) { csrcs_ = csrcs; }
|
||||
|
||||
void SetExtensionProfile(uint16_t extension_profile) {
|
||||
extension_profile_ = extension_profile;
|
||||
}
|
||||
void SetExtensionData(uint8_t *extension_data, size_t extension_len) {
|
||||
void SetExtensionData(uint8_t *extension_data, uint16_t extension_len) {
|
||||
extension_len_ = extension_len;
|
||||
extension_data_ = new uint8_t[extension_len_];
|
||||
memcpy(extension_data_, extension_data, extension_len_);
|
||||
@@ -258,11 +258,11 @@ class RtpPacket {
|
||||
const uint8_t *EncodeH264Nalu(uint8_t *payload, size_t payload_size);
|
||||
const uint8_t *EncodeH264Fua(uint8_t *payload, size_t payload_size);
|
||||
const uint8_t *EncodeH264FecSource(uint8_t *payload, size_t payload_size,
|
||||
unsigned int fec_symbol_id,
|
||||
unsigned int fec_source_symbol_num);
|
||||
uint8_t fec_symbol_id,
|
||||
uint8_t fec_source_symbol_num);
|
||||
const uint8_t *EncodeH264FecRepair(uint8_t *payload, size_t payload_size,
|
||||
unsigned int fec_symbol_id,
|
||||
unsigned int fec_source_symbol_num);
|
||||
uint8_t fec_symbol_id,
|
||||
uint8_t fec_source_symbol_num);
|
||||
const uint8_t *EncodeAv1(uint8_t *payload, size_t payload_size);
|
||||
|
||||
size_t DecodeData(uint8_t *payload = nullptr);
|
||||
@@ -299,7 +299,7 @@ class RtpPacket {
|
||||
ParseRtpData();
|
||||
return sequence_number_;
|
||||
}
|
||||
uint32_t Timestamp() {
|
||||
uint64_t Timestamp() {
|
||||
ParseRtpData();
|
||||
return timestamp_;
|
||||
}
|
||||
@@ -367,7 +367,7 @@ class RtpPacket {
|
||||
|
||||
if (z == 0 && y == 0 && w == 1) {
|
||||
return true;
|
||||
} else if (z == 0 && y == 1 & w == 1) {
|
||||
} else if (z == 0 && y == 1 && w == 1) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
@@ -382,7 +382,7 @@ class RtpPacket {
|
||||
|
||||
if (z == 0 && y == 0 && w == 1) {
|
||||
return true;
|
||||
} else if (z == 1 && y == 0 & w == 1) {
|
||||
} else if (z == 1 && y == 0 && w == 1) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
@@ -395,14 +395,14 @@ class RtpPacket {
|
||||
|
||||
private:
|
||||
// Header
|
||||
uint32_t version_ = 0;
|
||||
uint8_t version_ = 0;
|
||||
bool has_padding_ = false;
|
||||
bool has_extension_ = false;
|
||||
uint32_t total_csrc_number_ = 0;
|
||||
uint8_t total_csrc_number_ = 0;
|
||||
bool marker_ = false;
|
||||
uint32_t payload_type_ = 0;
|
||||
uint8_t payload_type_ = 0;
|
||||
uint16_t sequence_number_ = 1;
|
||||
uint32_t timestamp_ = 0;
|
||||
uint64_t timestamp_ = 0;
|
||||
uint32_t ssrc_ = 0;
|
||||
std::vector<uint32_t> csrcs_;
|
||||
uint16_t profile_ = 0;
|
||||
|
||||
@@ -20,7 +20,7 @@ void RtpVideoReceiver::InsertRtpPacket(RtpPacket& rtp_packet) {
|
||||
}
|
||||
|
||||
if (rtp_statistics_) {
|
||||
rtp_statistics_->UpdateReceiveBytes(rtp_packet.Size());
|
||||
rtp_statistics_->UpdateReceiveBytes((uint32_t)rtp_packet.Size());
|
||||
}
|
||||
|
||||
if (CheckIsTimeSendRR()) {
|
||||
@@ -68,6 +68,8 @@ void RtpVideoReceiver::ProcessH264RtpPacket(RtpPacket& rtp_packet) {
|
||||
} else if (RtpPacket::NAL_UNIT_TYPE::FU_A == rtp_packet.NalUnitType()) {
|
||||
incomplete_frame_list_[rtp_packet.SequenceNumber()] = rtp_packet;
|
||||
bool complete = CheckIsH264FrameCompleted(rtp_packet);
|
||||
if (!complete) {
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -78,6 +80,8 @@ void RtpVideoReceiver::ProcessH264RtpPacket(RtpPacket& rtp_packet) {
|
||||
} else if (RtpPacket::NAL_UNIT_TYPE::FU_A == rtp_packet.NalUnitType()) {
|
||||
incomplete_frame_list_[rtp_packet.SequenceNumber()] = rtp_packet;
|
||||
bool complete = CheckIsH264FrameCompleted(rtp_packet);
|
||||
if (!complete) {
|
||||
}
|
||||
}
|
||||
} else if (RtpPacket::PAYLOAD_TYPE::H264_FEC_SOURCE ==
|
||||
rtp_packet.PayloadType()) {
|
||||
@@ -179,6 +183,8 @@ void RtpVideoReceiver::ProcessAv1RtpPacket(RtpPacket& rtp_packet) {
|
||||
if (RtpPacket::PAYLOAD_TYPE::AV1 == rtp_packet.PayloadType()) {
|
||||
incomplete_frame_list_[rtp_packet.SequenceNumber()] = rtp_packet;
|
||||
bool complete = CheckIsAv1FrameCompleted(rtp_packet);
|
||||
if (!complete) {
|
||||
}
|
||||
}
|
||||
|
||||
// std::vector<Obu> obus =
|
||||
@@ -209,7 +215,7 @@ bool RtpVideoReceiver::CheckIsH264FrameCompleted(RtpPacket& rtp_packet) {
|
||||
}
|
||||
|
||||
size_t complete_frame_size = 0;
|
||||
for (size_t start = it->first; start <= rtp_packet.SequenceNumber();
|
||||
for (uint16_t start = it->first; start <= rtp_packet.SequenceNumber();
|
||||
start++) {
|
||||
memcpy(nv12_data_ + complete_frame_size,
|
||||
incomplete_frame_list_[start].Payload(),
|
||||
@@ -237,8 +243,7 @@ bool RtpVideoReceiver::CheckIsH264FrameCompleted(RtpPacket& rtp_packet) {
|
||||
bool RtpVideoReceiver::CheckIsAv1FrameCompleted(RtpPacket& rtp_packet) {
|
||||
if (rtp_packet.Av1FrameEnd()) {
|
||||
uint16_t end_seq = rtp_packet.SequenceNumber();
|
||||
size_t start = end_seq;
|
||||
bool start_count = 0;
|
||||
uint16_t start = end_seq;
|
||||
while (end_seq--) {
|
||||
auto it = incomplete_frame_list_.find(end_seq);
|
||||
if (it == incomplete_frame_list_.end()) {
|
||||
|
||||
@@ -59,12 +59,12 @@ class RtpVideoReceiver : public ThreadBase {
|
||||
private:
|
||||
bool fec_enable_ = false;
|
||||
FecDecoder fec_decoder_;
|
||||
uint32_t last_packet_ts_ = 0;
|
||||
uint64_t last_packet_ts_ = 0;
|
||||
// std::map<uint16_t, RtpPacket> incomplete_fec_frame_list_;
|
||||
// std::map<uint32_t, std::map<uint16_t, RtpPacket>> fec_source_symbol_list_;
|
||||
// std::map<uint32_t, std::map<uint16_t, RtpPacket>> fec_repair_symbol_list_;
|
||||
std::set<uint32_t> incomplete_fec_frame_list_;
|
||||
std::map<uint32_t, std::map<uint16_t, RtpPacket>> incomplete_fec_packet_list_;
|
||||
std::set<uint64_t> incomplete_fec_frame_list_;
|
||||
std::map<uint64_t, std::map<uint16_t, RtpPacket>> incomplete_fec_packet_list_;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -42,9 +42,9 @@ int RtpVideoSender::SendRtpPacket(RtpPacket& rtp_packet) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
last_send_bytes_ += rtp_packet.Size();
|
||||
last_send_bytes_ += (uint32_t)rtp_packet.Size();
|
||||
total_rtp_packets_sent_++;
|
||||
total_rtp_payload_sent_ += rtp_packet.PayloadSize();
|
||||
total_rtp_payload_sent_ += (uint32_t)rtp_packet.PayloadSize();
|
||||
|
||||
if (CheckIsTimeSendSR()) {
|
||||
RtcpSenderReport rtcp_sr;
|
||||
|
||||
Reference in New Issue
Block a user