From 8a602f18db745802a6aa426486b935e94a3e1ab9 Mon Sep 17 00:00:00 2001 From: Joshua Colp Date: Thu, 5 Apr 2018 23:48:31 +0000 Subject: res_rtp_asterisk: Queue video update on picture loss indication. The previous payload specific feedback handling was very single minded in that it just assumed everything should trigger a video update. This was changed but the handling of picture loss indication was not added. The result was that video may not flow. This change adds it explicitly in. Change-Id: I1894be02e39ee10a0af841b5a1dca5f0ec7d60b6 --- include/asterisk/rtp_engine.h | 2 ++ res/res_rtp_asterisk.c | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/include/asterisk/rtp_engine.h b/include/asterisk/rtp_engine.h index b552948d2..8f044ce17 100644 --- a/include/asterisk/rtp_engine.h +++ b/include/asterisk/rtp_engine.h @@ -296,6 +296,8 @@ struct ast_rtp_payload_type { #define AST_RTP_RTCP_PSFB 206 /* Common RTCP feedback message types */ +/*! Picture loss indication (From RFC4585) */ +#define AST_RTP_RTCP_FMT_PLI 1 /*! Full INTRA-frame Request (From RFC5104) */ #define AST_RTP_RTCP_FMT_FIR 4 /*! REMB Information (From draft-alvestrand-rmcat-remb-03) */ diff --git a/res/res_rtp_asterisk.c b/res/res_rtp_asterisk.c index b010f6c51..c87e6fb77 100644 --- a/res/res_rtp_asterisk.c +++ b/res/res_rtp_asterisk.c @@ -5525,10 +5525,11 @@ static struct ast_frame *ast_rtcp_interpret(struct ast_rtp_instance *instance, c f = &transport_rtp->f; break; case RTCP_PT_FUR: - /* Handle RTCP FUR as FIR by setting the format to 4 */ + /* Handle RTCP FUR as FIR by setting the format to 4 */ rc = AST_RTP_RTCP_FMT_FIR; case RTCP_PT_PSFB: switch (rc) { + case AST_RTP_RTCP_FMT_PLI: case AST_RTP_RTCP_FMT_FIR: if (rtcp_debug_test_addr(addr)) { ast_verbose("Received an RTCP Fast Update Request\n"); -- cgit v1.2.3