]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
res_rtp_asterisk: Queue video update on picture loss indication.
authorJoshua Colp <jcolp@digium.com>
Thu, 5 Apr 2018 23:48:31 +0000 (23:48 +0000)
committerJoshua Colp <jcolp@digium.com>
Thu, 5 Apr 2018 23:48:31 +0000 (23:48 +0000)
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
res/res_rtp_asterisk.c

index b552948d21cf21bfba5cf2115df4625cb91c50bf..8f044ce17f2dff9e3d3b45e83b44ce540a5bd80b 100644 (file)
@@ -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) */
index b010f6c51bdfd2988ba20d41aa9205ce92059fe8..c87e6fb77a4f2651665eb0e69e56cb6e3e4222dc 100644 (file)
@@ -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");