public class AMFPacket
extends Object
AMFPacket: data container for data being transferred to and from the server from the Flash client. AMFPacket is also used to store data read/written to/from an flv file.
| Constructor | Description |
|---|---|
AMFPacket() |
Create new empty packet
|
AMFPacket(int type,
int src,
byte[] data) |
Create new packet with given values
|
AMFPacket(int type,
int src,
int size) |
Create new packet with given values
|
| Modifier and Type | Method | Description |
|---|---|---|
int |
addData(byte[] data,
int offset,
int size) |
Add data to the packet
|
int |
addDataEx(byte[] srcData,
int srcOffset,
int destOffset,
int srcBytes) |
Add data to the packet
|
static int |
calcTotalPacketSize(int packetSize,
int headerSize,
int chunkSize,
int amfNumber,
boolean isLongTimecode) |
Calculate the total packet size for given packet parameters
|
AMFPacket |
clone() |
|
AMFPacket |
clone(boolean doCopy) |
|
boolean |
containsExtraDataKey(String key) |
Return true if extra data contains the key
|
static AMFPacket |
deserializePacket(byte[] buffer) |
|
java.util.Map<String,IAMFPacketExtraData> |
extraDataClone() |
Deep copy the extra data and return as a Map
|
static java.util.Map<String,IAMFPacketExtraData> |
extraDataClone(java.util.Map<String,IAMFPacketExtraData> extraData) |
|
long |
getAbsTimecode() |
Get absolute timecode (milliseconds)
|
byte[] |
getData() |
Get data as byte[]
|
java.nio.ByteBuffer |
getDataBuffer() |
Get data as ByteBuffer
|
IAMFPacketExtraData |
getExtraData(String key) |
Get extra data value
|
java.util.Set<String> |
getExtraDataKeys() |
Get a set of the extra data keys
|
int |
getFirstByte() |
Get first byte of data (used to peek into packet)
|
Object |
getLock() |
Get lock (mostly used for extra data access)
|
int |
getMissing() |
Get the number of bytes remaining unfilled in the packet
|
int |
getSecondByte() |
Get second byte of data (used to peek into packet)
|
long |
getSeq() |
Get packet sequence number.
|
int |
getSize() |
Get packet size
|
int |
getSrc() |
Get stream id (0 if not stream data)
|
long |
getTimecode() |
Get timecode (milliseconds) relative to the previous packet.
|
int |
getType() |
Get content type IVHost.CONTENTTYPE_*
|
boolean |
isAudio() |
Is this an audio packet IVHost.CONTENTTYPE_AUDIO
|
boolean |
isExtraData() |
Returns true if this packet contains any extra data
|
boolean |
isVideo() |
Is this an audio packet IVHost.CONTENTTYPE_VIDEO
|
void |
putAllExtraData(java.util.Map<String,IAMFPacketExtraData> entries) |
Add extra data key value pairs
|
IAMFPacketExtraData |
putExtraData(String key,
IAMFPacketExtraData value) |
Add extra data value
|
byte[] |
serializePacket() |
|
void |
setAbsTimecode(long absTimecode) |
Set absolute timecode (milliseconds)
|
void |
setDataBuffer(byte[] data) |
Set the data buffer to a byte array
|
void |
setDataBuffer(java.nio.ByteBuffer data) |
Set the data for this packet
|
void |
setSeq(long seq) |
Set packet sequence.
|
void |
setSize(int size) |
Set packet size
|
void |
setSrc(int src) |
Set stream id (0 if not stream data)
|
void |
setTimecode(long timecode) |
Set timecode (milliseconds) relative,
|
void |
setTimecodes(long timecode,
long absTimecode) |
Set both relative and absolute timecode in one call (milliseconds)
|
void |
setType(int type) |
Set content type IVHost.CONTENTTYPE_*
|
String |
toString() |
Return object as formatted string
|
void |
truncatePacket(int newSize) |
public AMFPacket()
public AMFPacket(int type,
int src,
byte[] data)
type - packet content type: IVHost.CONTENTTYPE_*src - stream iddata - data bufferpublic AMFPacket(int type,
int src,
int size)
type - packet content type: IVHost.CONTENTTYPE_*src - stream idsize - packet size (bytes)public int addData(byte[] data,
int offset,
int size)
data - byte buffer with dataoffset - offset in byte buffersize - size of datapublic int addDataEx(byte[] srcData,
int srcOffset,
int destOffset,
int srcBytes)
srcData - - source byte buffer with datasrcOffset - - start copying from source buffer at this offsetdestOffset - - copy into destination buffer from this offsetsrcBytes - - size of data to copypublic static int calcTotalPacketSize(int packetSize,
int headerSize,
int chunkSize,
int amfNumber,
boolean isLongTimecode)
packetSize - data sizeheaderSize - header sizechunkSize - chunk sizeamfNumber - amf numberisLongTimecode - is long timecodepublic AMFPacket clone()
clone in class Objectpublic AMFPacket clone(boolean doCopy)
public boolean containsExtraDataKey(String key)
key - keypublic static AMFPacket deserializePacket(byte[] buffer)
public java.util.Map<String,IAMFPacketExtraData> extraDataClone()
public static java.util.Map<String,IAMFPacketExtraData> extraDataClone(java.util.Map<String,IAMFPacketExtraData> extraData)
public long getAbsTimecode()
public byte[] getData()
public java.nio.ByteBuffer getDataBuffer()
public IAMFPacketExtraData getExtraData(String key)
key - keypublic java.util.Set<String> getExtraDataKeys()
public int getFirstByte()
public Object getLock()
public int getMissing()
public int getSecondByte()
public long getSeq()
public int getSize()
public int getSrc()
public long getTimecode()
public int getType()
public boolean isAudio()
public boolean isExtraData()
public boolean isVideo()
public void putAllExtraData(java.util.Map<String,IAMFPacketExtraData> entries)
entries - extra data key value pairspublic IAMFPacketExtraData putExtraData(String key, IAMFPacketExtraData value)
key - keyvalue - extra datapublic byte[] serializePacket()
public void setAbsTimecode(long absTimecode)
absTimecode - absolute timecodepublic void setDataBuffer(byte[] data)
data - data buffer byte arraypublic void setDataBuffer(java.nio.ByteBuffer data)
data - byte buffer that holds packet datapublic void setSeq(long seq)
seq - packet sequencepublic void setSize(int size)
size - packet sizepublic void setSrc(int src)
src - stream idpublic void setTimecode(long timecode)
Note this time is relative to the previous packet.
timecode - timecode (milliseconds)public void setTimecodes(long timecode,
long absTimecode)
Note this time is relative to the previous packet.
timecode - relative timecode (milliseconds)absTimecode - absolute timecode (milliseconds)public void setType(int type)
type - content typepublic String toString()
toString in class Objectpublic void truncatePacket(int newSize)