Skip to content

Commit d69d52e

Browse files
Merge pull request #1140 from sile/fix-h264-depacketizer
Fix `H264RtpDepacketizer` to handle empty payload RTP packet
2 parents 5064b0b + c5c80b8 commit d69d52e

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

src/h264rtpdepacketizer.cpp

+11
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,17 @@ message_vector H264RtpDepacketizer::buildFrames(message_vector::iterator begin,
4242
auto pktParsed = reinterpret_cast<const rtc::RtpHeader *>(pkt->data());
4343
auto headerSize =
4444
sizeof(rtc::RtpHeader) + pktParsed->csrcCount() + pktParsed->getExtensionHeaderSize();
45+
auto paddingSize = 0;
46+
47+
if (pktParsed->padding()) {
48+
paddingSize = std::to_integer<uint8_t>(pkt->at(pkt->size() - 1));
49+
}
50+
51+
if (pkt->size() == headerSize + paddingSize) {
52+
PLOG_VERBOSE << "H.264 RTP packet has empty payload";
53+
continue;
54+
}
55+
4556
auto nalUnitHeader = NalUnitHeader{std::to_integer<uint8_t>(pkt->at(headerSize))};
4657

4758
if (fua_buffer.size() != 0 || nalUnitHeader.unitType() == naluTypeFUA) {

0 commit comments

Comments
 (0)