|
@@ -57,10 +57,14 @@ message_ptr RtpPacketizer::packetize(const binary &payload, bool mark) {
|
|
rtpExtHeaderSize += headerSize + 1;
|
|
rtpExtHeaderSize += headerSize + 1;
|
|
|
|
|
|
const bool setPlayoutDelay = rtpConfig->playoutDelayId > 0;
|
|
const bool setPlayoutDelay = rtpConfig->playoutDelayId > 0;
|
|
|
|
+ const bool setColorSpace = rtpConfig->colorSpaceId > 0;
|
|
|
|
|
|
if (setPlayoutDelay)
|
|
if (setPlayoutDelay)
|
|
rtpExtHeaderSize += headerSize + 3;
|
|
rtpExtHeaderSize += headerSize + 3;
|
|
|
|
|
|
|
|
+ if (setColorSpace)
|
|
|
|
+ rtpExtHeaderSize += headerSize + 4;
|
|
|
|
+
|
|
if (rtpConfig->mid.has_value())
|
|
if (rtpConfig->mid.has_value())
|
|
rtpExtHeaderSize += headerSize + rtpConfig->mid->length();
|
|
rtpExtHeaderSize += headerSize + rtpConfig->mid->length();
|
|
|
|
|
|
@@ -139,6 +143,16 @@ message_ptr RtpPacketizer::packetize(const binary &payload, bool mark) {
|
|
offset += extHeader->writeHeader(
|
|
offset += extHeader->writeHeader(
|
|
twoByteHeader, offset, rtpConfig->playoutDelayId, data, 3);
|
|
twoByteHeader, offset, rtpConfig->playoutDelayId, data, 3);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ if (setColorSpace) {
|
|
|
|
+ uint8_t range_chr = (rtpConfig->colorRange << 4) + (rtpConfig->colorChromaSitingHorz << 2) + rtpConfig->colorChromaSitingVert;
|
|
|
|
+
|
|
|
|
+ byte data[] = {byte(rtpConfig->colorPrimaries), byte(rtpConfig->colorTransfer),
|
|
|
|
+ byte(rtpConfig->colorMatrix), byte(range_chr)};
|
|
|
|
+
|
|
|
|
+ offset += extHeader->writeHeader(
|
|
|
|
+ twoByteHeader, offset, rtpConfig->playoutDelayId, data, 4);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
rtp->preparePacket();
|
|
rtp->preparePacket();
|