Browse Source

Fixed data conversion

sbarrac 1 year ago
parent
commit
2f13f9e294
1 changed files with 8 additions and 4 deletions
  1. 8 4
      src/rtppacketizer.cpp

+ 8 - 4
src/rtppacketizer.cpp

@@ -92,11 +92,15 @@ message_ptr RtpPacketizer::packetize(shared_ptr<binary> payload, bool mark) {
 		}
 
 		if (setPlayoutDelay) {
+			uint16_t min = rtpConfig->playoutDelayMin & 0xFFF;
+			uint16_t max = rtpConfig->playoutDelayMax & 0xFFF;
+
 			// 12 bits for min + 12 bits for max
-			char data[] = {rtpConfig->playoutDelayMin >> 4,
-			               (char)(rtpConfig->playoutDelayMin << 4) |
-			                   (char)(rtpConfig->playoutDelayMax >> 8),
-			               rtpConfig->playoutDelayMax};
+			char data[] = {
+				(min >> 4) & 0xFF, 
+				((min & 0xF) << 4) | ((max >> 8) & 0xF),
+				max & 0xFF
+			};
 
 			extHeader->writeOneByteHeader(offset, rtpConfig->playoutDelayId, (byte *)data, 3);
 			offset += 4;