From ab718384830c18966b676ff2741624edc427b410 Mon Sep 17 00:00:00 2001 From: dijunkun Date: Thu, 7 Sep 2023 17:42:09 +0800 Subject: [PATCH] Fix default rtp type decode error --- src/rtp/rtp_packet.cpp | 7 +++---- src/rtp/rtp_packet.h | 2 +- src/rtp/rtp_session.cpp | 4 ++-- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/rtp/rtp_packet.cpp b/src/rtp/rtp_packet.cpp index a65ec7e..3ac6feb 100644 --- a/src/rtp/rtp_packet.cpp +++ b/src/rtp/rtp_packet.cpp @@ -211,7 +211,7 @@ const uint8_t *RtpPacket::EncodeH264Fua(uint8_t *payload, size_t payload_size) { return buffer_; } -const uint8_t *RtpPacket::Decode() { +size_t RtpPacket::Decode(uint8_t *payload) { version_ = (buffer_[0] >> 6) & 0x03; has_padding_ = (buffer_[0] >> 5) & 0x01; has_extension_ = (buffer_[0] >> 4) & 0x01; @@ -246,11 +246,10 @@ const uint8_t *RtpPacket::Decode() { (has_extension_ ? extension_len_ : 0) + extension_offset; payload_size_ = size_ - (12 + payload_offset); - // payload_ = new uint8_t[payload_size_]; - // memcpy(payload_, buffer_ + 12 + payload_offset, payload_size_); payload_ = buffer_ + 12 + payload_offset; + memcpy(payload, payload_, payload_size_); - return payload_; + return payload_size_; } size_t RtpPacket::DecodeH264Nalu(uint8_t *payload) { diff --git a/src/rtp/rtp_packet.h b/src/rtp/rtp_packet.h index 58c9bb6..5563a5a 100644 --- a/src/rtp/rtp_packet.h +++ b/src/rtp/rtp_packet.h @@ -132,7 +132,7 @@ class RtpPacket { const uint8_t *Encode(uint8_t *payload, size_t payload_size); 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 *Decode(); + size_t Decode(uint8_t *payload); size_t DecodeH264Nalu(uint8_t *payload); size_t DecodeH264Fua(uint8_t *payload); diff --git a/src/rtp/rtp_session.cpp b/src/rtp/rtp_session.cpp index 31dc75a..6af2cc6 100644 --- a/src/rtp/rtp_session.cpp +++ b/src/rtp/rtp_session.cpp @@ -135,7 +135,7 @@ size_t RtpSession::Decode(RtpPacket& packet, uint8_t* payload) { LOG_ERROR("Fua"); return packet.DecodeH264Fua(payload); } else { - LOG_ERROR("Default Nalu"); - return packet.DecodeH264Nalu(payload); + LOG_ERROR("Default"); + return packet.Decode(payload); } } \ No newline at end of file