Class FlexFec03Packet
- java.lang.Object
-
- org.jitsi.service.neomedia.RawPacket
-
- org.jitsi.impl.neomedia.transform.fec.FlexFec03Packet
-
- All Implemented Interfaces:
org.jitsi.utils.ByteArrayBuffer
public class FlexFec03Packet extends RawPacket
- Author:
- bbaldino Based on FlexFec draft -03 https://tools.ietf.org/html/draft-ietf-payload-flexible-fec-scheme-03 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |R|F| P|X| CC |M| PT recovery | length recovery | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TS recovery | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SSRCCount | reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SSRC_i | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SN base_i |k| Mask [0-14] | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |k| Mask [15-45] (optional) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |k| | +-+ Mask [46-108] (optional) | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... next in SSRC_i ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.jitsi.service.neomedia.RawPacket
RawPacket.HeaderExtension, RawPacket.HeaderExtensions
-
-
Field Summary
Fields Modifier and Type Field Description protected FlexFec03HeaderheaderThe FlexFEC03 header-
Fields inherited from class org.jitsi.service.neomedia.RawPacket
EXT_HEADER_SIZE, FIXED_HEADER_SIZE, SEQUENCE_NUMBER_MASK, TIMESTAMP_MASK
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static FlexFec03Packetcreate(byte[] buffer, int offset, int length)Create aFlexFec03Packetstatic FlexFec03Packetcreate(RawPacket p)Create aFlexFec03PacketintgetFlexFecHeaderOffset()Get the offset at which the FlexFEC header startsintgetFlexFecHeaderSize()Get the size of the flexfec header for this packetintgetFlexFecPayloadLength()Returns the size of the FlexFEC payload, in bytesList<Integer>getProtectedSequenceNumbers()Get the list of media packet sequence numbers protected by this FlexFec03PacketlonggetProtectedSsrc()Get the media ssrc protected by this flexfec packet-
Methods inherited from class org.jitsi.service.neomedia.RawPacket
addExtension, addExtension, addExtension, append, extractCsrcAudioLevels, extractCsrcList, extractSsrcAudioLevel, getBuffer, getCsrcCount, getCsrcCount, getExtensionBit, getExtensionBit, getExtensionLength, getExtensionLength, getFlags, getHeaderExtension, getHeaderExtensions, getHeaderExtensionType, getHeaderLength, getHeaderLength, getLength, getOffset, getOriginalSequenceNumber, getPaddingSize, getPaddingSize, getPayload, getPayloadLength, getPayloadLength, getPayloadLength, getPayloadLength, getPayloadOffset, getPayloadOffset, getPayloadType, getPayloadType, getPayloadType, getRTCPPacketType, getRTCPSSRC, getRTCPSSRC, getRTCPSSRC, getSequenceNumber, getSequenceNumber, getSequenceNumber, getSRTCPIndex, getSRTCPIndex, getSSRC, getSSRC, getSSRC, getSSRCAsLong, getSSRCAsLong, getTimestamp, getTimestamp, getTimestamp, getVersion, getVersion, getVersion, grow, isInvalid, isInvalid, isPacketMarked, isPacketMarked, isPacketMarked, isRtpRtcp, isSkipStats, readByte, readInt, readRegion, readRegionToBuff, readUint16AsInt, readUint32AsLong, removeExtension, setBuffer, setCsrcList, setFlags, setLength, setMarker, setOffset, setOriginalSequenceNumber, setPaddingSize, setPayloadType, setSequenceNumber, setSequenceNumber, setSequenceNumber, setSkipStats, setSSRC, setTimestamp, setTimestamp, setTimestamp, setVersion, shrink, toString, writeByte, writeInt, writeShort
-
-
-
-
Field Detail
-
header
protected FlexFec03Header header
The FlexFEC03 header
-
-
Method Detail
-
create
public static FlexFec03Packet create(RawPacket p)
Create aFlexFec03Packet- Parameters:
p- the RawPacket to attempt parsing as a FlexFEC packet- Returns:
- a
FlexFec03Packetif 'p' is successfully parsed as aFlexFec03Packet, null otherwise
-
create
public static FlexFec03Packet create(byte[] buffer, int offset, int length)
Create aFlexFec03Packet- Returns:
- a
FlexFec03Packetif 'p' is successfully parsed as aFlexFec03Packet, null otherwise
-
getProtectedSequenceNumbers
public List<Integer> getProtectedSequenceNumbers()
Get the list of media packet sequence numbers protected by this FlexFec03Packet- Returns:
- the list of media packet sequence numbers protected by this FlexFec03Packet
-
getFlexFecHeaderSize
public int getFlexFecHeaderSize()
Get the size of the flexfec header for this packet- Returns:
- the size of the flexfec header for this packet
-
getProtectedSsrc
public long getProtectedSsrc()
Get the media ssrc protected by this flexfec packet- Returns:
- the media ssrc protected by this flexfec packet
-
getFlexFecPayloadLength
public int getFlexFecPayloadLength()
Returns the size of the FlexFEC payload, in bytes- Returns:
- the size of the FlexFEC packet payload, in bytes
-
getFlexFecHeaderOffset
public int getFlexFecHeaderOffset()
Get the offset at which the FlexFEC header starts- Returns:
- the offset at which the FlexFEC header starts
-
-