summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Colp <jcolp@digium.com>2018-04-05 23:48:31 +0000
committerJoshua Colp <jcolp@digium.com>2018-04-05 17:49:29 -0600
commit8a602f18db745802a6aa426486b935e94a3e1ab9 (patch)
treea2b15eb8c1808d1c040add9dbf1c1e3562403d53
parentedba638a729e8363a07f373006c250e66f353d82 (diff)
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
-rw-r--r--include/asterisk/rtp_engine.h2
-rw-r--r--res/res_rtp_asterisk.c3
2 files changed, 4 insertions, 1 deletions
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");