From 7a1593f8d9ccc3d01c3354728fa8c786d9778175 Mon Sep 17 00:00:00 2001
From: Lyubomir Marinov <lyubomir.marinov@jitsi.org>
Date: Tue, 24 Jul 2012 11:50:28 +0000
Subject: [PATCH] Fixes 'Invalid RTCP Version' exception caused by incorrect
 RTCP feedback packet construction.

---
 .../impl/neomedia/RTCPFeedbackPacket.java     | 20 +++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/src/org/jitsi/impl/neomedia/RTCPFeedbackPacket.java b/src/org/jitsi/impl/neomedia/RTCPFeedbackPacket.java
index 9a97ed6f..ac30fbf4 100644
--- a/src/org/jitsi/impl/neomedia/RTCPFeedbackPacket.java
+++ b/src/org/jitsi/impl/neomedia/RTCPFeedbackPacket.java
@@ -59,26 +59,26 @@ public RTCPFeedbackPacket(int type, int payloadType, long sender, long src)
     public void writeTo(OutputDataStream out)
     {
         byte data[] = new byte[12];
-        byte vpfmt = (byte)((2 << 7) | (0 << 6) | (byte)fmt);
+        byte vpfmt = (byte) (0x80 /* RTP version */ | (fmt & 0x1F));
 
         data[0] = vpfmt;
-        data[1] = (byte)payloadType;
+        data[1] = (byte) payloadType;
 
         /* length (in 32-bit words minus one) */
         data[2] = 0;
         data[3] = 2; /* common packet is 12 bytes so (12/4) - 1 */
 
         /* sender SSRC */
-        data[4] = (byte)(senderSSRC >> 24);
-        data[5] = (byte)((senderSSRC >> 16) & 0xFF);
-        data[6] = (byte)((senderSSRC >> 8) & 0xFF);
-        data[7] = (byte)(senderSSRC & 0xFF);
+        data[4] = (byte) (senderSSRC >> 24);
+        data[5] = (byte) ((senderSSRC >> 16) & 0xFF);
+        data[6] = (byte) ((senderSSRC >> 8) & 0xFF);
+        data[7] = (byte) (senderSSRC & 0xFF);
 
         /* source SSRC */
-        data[8] = (byte)(sourceSSRC >> 24);
-        data[9] = (byte)((sourceSSRC >> 16) & 0xFF);
-        data[10] = (byte)((sourceSSRC >> 8) & 0xFF);
-        data[11] = (byte)(sourceSSRC & 0xFF);
+        data[8] = (byte) (sourceSSRC >> 24);
+        data[9] = (byte) ((sourceSSRC >> 16) & 0xFF);
+        data[10] = (byte) ((sourceSSRC >> 8) & 0xFF);
+        data[11] = (byte) (sourceSSRC & 0xFF);
 
         /* effective write */
         out.write(data, 0, 12);
-- 
GitLab