From 8a602f18db745802a6aa426486b935e94a3e1ab9 Mon Sep 17 00:00:00 2001
From: Joshua Colp <jcolp@digium.com>
Date: Thu, 5 Apr 2018 23:48:31 +0000
Subject: [PATCH] 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 b552948d21..8f044ce17f 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 b010f6c51b..c87e6fb77a 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");
-- 
GitLab