确保rtp丢包时,丢弃gop后续所有帧,防止丢包花屏

This commit is contained in:
ziyue
2021-07-29 16:22:43 +08:00
parent 55fc598d4c
commit 375d36b4c8
4 changed files with 171 additions and 137 deletions

View File

@@ -43,13 +43,18 @@ public:
}
private:
bool singleFrame(const RtpPacket::Ptr &rtp, const uint8_t *ptr, ssize_t size, uint32_t stamp);
bool unpackStapA(const RtpPacket::Ptr &rtp, const uint8_t *ptr, ssize_t size, uint32_t stamp);
bool mergeFu(const RtpPacket::Ptr &rtp, const uint8_t *ptr, ssize_t size, uint32_t stamp, uint16_t seq);
bool decodeRtp(const RtpPacket::Ptr &rtp);
void onGetH264(const H264Frame::Ptr &frame);
H264Frame::Ptr obtainFrame();
void outputFrame(const RtpPacket::Ptr &rtp, const H264Frame::Ptr &frame);
private:
bool _gop_dropped = false;
bool _fu_dropped = true;
uint16_t _last_seq = 0;
size_t _max_frame_size = 0;
H264Frame::Ptr _frame;
DtsGenerator _dts_generator;
};