mirror of
https://github.com/kunkundi/crossdesk.git
synced 2025-10-27 04:35:34 +08:00
[fix] fix h264 rtp packet parse
This commit is contained in:
@@ -5,16 +5,30 @@ RtpPacketH264::RtpPacketH264() {}
|
||||
RtpPacketH264::~RtpPacketH264() {}
|
||||
|
||||
bool RtpPacketH264::GetFrameHeaderInfo() {
|
||||
if (fu_info_got_) {
|
||||
return true;
|
||||
}
|
||||
|
||||
const uint8_t* frame_buffer = Payload();
|
||||
|
||||
fu_indicator_.forbidden_bit = (frame_buffer[0] >> 7) & 0x01;
|
||||
fu_indicator_.nal_reference_idc = (frame_buffer[0] >> 5) & 0x03;
|
||||
fu_indicator_.nal_unit_type = frame_buffer[0] & 0x1F;
|
||||
|
||||
fu_header_.start = (frame_buffer[1] >> 7) & 0x01;
|
||||
fu_header_.end = (frame_buffer[1] >> 6) & 0x01;
|
||||
fu_header_.remain_bit = (frame_buffer[1] >> 5) & 0x01;
|
||||
fu_header_.nal_unit_type = frame_buffer[1] & 0x1F;
|
||||
if (rtp::NAL_UNIT_TYPE::NALU == fu_indicator_.nal_unit_type) {
|
||||
add_offset_to_payload(1);
|
||||
LOG_ERROR("2 [{} {} {}]", (int)fu_indicator_.forbidden_bit,
|
||||
(int)fu_indicator_.nal_reference_idc,
|
||||
(int)fu_indicator_.nal_unit_type);
|
||||
} else if (rtp::NAL_UNIT_TYPE::FU_A == fu_indicator_.nal_unit_type) {
|
||||
fu_header_.start = (frame_buffer[1] >> 7) & 0x01;
|
||||
fu_header_.end = (frame_buffer[1] >> 6) & 0x01;
|
||||
fu_header_.remain_bit = (frame_buffer[1] >> 5) & 0x01;
|
||||
fu_header_.nal_unit_type = frame_buffer[1] & 0x1F;
|
||||
add_offset_to_payload(2);
|
||||
}
|
||||
|
||||
fu_info_got_ = true;
|
||||
|
||||
return true;
|
||||
}
|
||||
Reference in New Issue
Block a user