Section 5.3.1.3 of the RTMP spec say that type 3 packets also
should repeat this field. This matches what the parsing code (in
RTMP_ReadPacket) does.
hSize += cSize;
}
- if (nSize > 1 && t >= 0xffffff)
+ if (t >= 0xffffff)
{
header -= 4;
hSize += 4;
+ RTMP_Log(RTMP_LOGWARNING, "Larger timestamp than 24-bit: 0x%x", t);
}
hptr = header;
if (nSize > 8)
hptr += EncodeInt32LE(hptr, packet->m_nInfoField2);
- if (nSize > 1 && t >= 0xffffff)
+ if (t >= 0xffffff)
hptr = AMF_EncodeInt32(hptr, hend, t);
nSize = packet->m_nBodySize;
header -= cSize;
hSize += cSize;
}
+ if (t >= 0xffffff)
+ {
+ header -= 4;
+ hSize += 4;
+ }
*header = (0xc0 | c);
if (cSize)
{
if (cSize == 2)
header[2] = tmp >> 8;
}
+ if (t >= 0xffffff)
+ {
+ char* extendedTimestamp = header + 1 + cSize;
+ AMF_EncodeInt32(extendedTimestamp, extendedTimestamp + 4, t);
+ }
}
}
if (tbuf)