diff --git a/include/uvgrtp/frame.hh b/include/uvgrtp/frame.hh index b4ee337..a548eca 100644 --- a/include/uvgrtp/frame.hh +++ b/include/uvgrtp/frame.hh @@ -33,6 +33,19 @@ namespace uvgrtp { RTCP_FT_PSFB = 206 /* Payload-specific FB message */ }; + enum RTCP_PSFB_FMT { + RTCP_PSFB_PLI = 1, /* Picture Loss Indication (PLI), defined in RFC 4585 */ + RTCP_PSFB_SLI = 2, /* Slice Loss Indication (SLI), defined in RFC 4585 */ + RTCP_PSFB_RPSI = 3, /* Reference Picture Selection Indication (RPSI), defined in RFC 4585 */ + RTCP_PSFB_FIR = 4, /* Full Intra Request (FIR), defined in RFC 5154 */ + RTCP_PSFB_TSTR = 5, /* Temporal-Spatial Trade-off Request (TSTR), defined in RFC 5154 */ + RTCP_PSFB_AFB = 15 /* Application Layer FB (AFB), defined in RFC 4585 */ + }; + + enum RTCP_RTPFB_FMT { + RTCP_RTPFB_NACK = 1 /* Generic NACK, defined in RFC 4585 section 6.2 */ + }; + PACK(struct rtp_header { uint8_t version:2; uint8_t padding:1; diff --git a/src/rtcp.cc b/src/rtcp.cc index e21a454..fa54df6 100644 --- a/src/rtcp.cc +++ b/src/rtcp.cc @@ -468,6 +468,10 @@ rtp_error_t uvgrtp::rtcp::remove_all_hooks() send_app_mutex_.unlock(); hooked_app_ = false; + fb_mutex_.lock(); + fb_hook_u_ = nullptr; + fb_mutex_.unlock(); + return RTP_OK; }