Package org.red5.server.stream.consumer
Class ImmutableTag
java.lang.Object
org.red5.server.stream.consumer.ImmutableTag
- All Implemented Interfaces:
IoConstants
,ITag
An ImmutableTag represents immutable encapsulation of flash media data. The timestamp is the only mutable field.
- Author:
- Paul Gregoire (mondain@gmail.com)
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final byte[]
Tag body as byte bufferprivate final byte
Tag data typeprivate final int
Previous tag sizeprivate int
TimestampFields inherited from interface org.red5.io.IoConstants
AVC_PACKET_TYPE_END_OF_SEQUENCE, AVC_PACKET_TYPE_NALU, AVC_PACKET_TYPE_SEQUENCE_HEADER, FLAG_CODEC_H263, FLAG_CODEC_SCREEN, FLAG_CODEC_VP6, FLAG_FORMAT_ADPCM, FLAG_FORMAT_MP3, FLAG_FORMAT_NELLYMOSER, FLAG_FORMAT_NELLYMOSER_8_KHZ, FLAG_FORMAT_RAW, FLAG_FRAMETYPE_DISPOSABLE, FLAG_FRAMETYPE_GENERATED_KEYFRAME, FLAG_FRAMETYPE_INFO, FLAG_FRAMETYPE_INTERFRAME, FLAG_FRAMETYPE_KEYFRAME, FLAG_RATE_11_KHZ, FLAG_RATE_22_KHZ, FLAG_RATE_44_KHZ, FLAG_RATE_48_KHZ, FLAG_RATE_5_5_KHZ, FLAG_SIZE_16_BIT, FLAG_SIZE_8_BIT, FLAG_TYPE_MONO, FLAG_TYPE_STEREO, INFO_PACKET_SEEK_END, INFO_PACKET_SEEK_START, MASK_SOUND_FORMAT, MASK_SOUND_RATE, MASK_SOUND_SIZE, MASK_SOUND_TYPE, MASK_VIDEO_CODEC, MASK_VIDEO_FRAMETYPE, TYPE_AUDIO, TYPE_ENCRYPTED, TYPE_ENCRYPTED_AUDIO, TYPE_ENCRYPTED_METADATA, TYPE_ENCRYPTED_VIDEO, TYPE_METADATA, TYPE_VIDEO
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprivate
ImmutableTag
(byte dataType, int timestamp, byte[] data) ImmutableTag Constructorprivate
ImmutableTag
(byte dataType, int timestamp, byte[] data, int previousTagSize) ImmutableTag Constructor -
Method Summary
Modifier and TypeMethodDescriptionstatic ImmutableTag
build
(byte dataType, int timestamp) static ImmutableTag
build
(byte dataType, int timestamp, byte[] data, int previousTagSize) static ImmutableTag
static ImmutableTag
build
(byte dataType, int timestamp, org.apache.mina.core.buffer.IoBuffer data) static ImmutableTag
build
(byte dataType, int timestamp, org.apache.mina.core.buffer.IoBuffer data, int previousTagSize) org.apache.mina.core.buffer.IoBuffer
getBody()
Return the body IoBufferint
Return the size of the bodyorg.apache.mina.core.buffer.IoBuffer
getData()
Returns the data as a ByteBufferbyte
Get the data typeint
Return previous tag sizeint
Return the timestampvoid
setBody
(org.apache.mina.core.buffer.IoBuffer body) Set the body ByteBuffer.void
setBodySize
(int size) Set the size of the body.void
setDataType
(byte datatype) Set the data type.void
setPreviousTagSize
(int size) Set the size of the previous tag.void
setTimestamp
(int timestamp) Set the timestamp.toString()
Prints out the contents of the tag
-
Field Details
-
dataType
private final byte dataTypeTag data type -
timestamp
private int timestampTimestamp -
body
private final byte[] bodyTag body as byte buffer -
previousTagSize
private final int previousTagSizePrevious tag size
-
-
Constructor Details
-
ImmutableTag
private ImmutableTag(byte dataType, int timestamp, byte[] data) ImmutableTag Constructor- Parameters:
dataType
- Tag data typetimestamp
- Timestampbody
- Tag body
-
ImmutableTag
private ImmutableTag(byte dataType, int timestamp, byte[] data, int previousTagSize) ImmutableTag Constructor- Parameters:
dataType
- Tag data typetimestamp
- Timestampbody
- Tag bodypreviousTagSize
- Previous tag size information
-
-
Method Details
-
getDataType
public byte getDataType()Get the data type- Specified by:
getDataType
in interfaceITag
- Returns:
- Tag data type
-
getTimestamp
public int getTimestamp()Return the timestamp- Specified by:
getTimestamp
in interfaceITag
- Returns:
- Tag timestamp
-
setTimestamp
public void setTimestamp(int timestamp) Description copied from interface:ITag
Set the timestamp.- Specified by:
setTimestamp
in interfaceITag
- Parameters:
timestamp
- Timestamp
-
getData
public org.apache.mina.core.buffer.IoBuffer getData()Returns the data as a ByteBuffer -
getBody
public org.apache.mina.core.buffer.IoBuffer getBody()Return the body IoBuffer -
getBodySize
public int getBodySize()Return the size of the body- Specified by:
getBodySize
in interfaceITag
- Returns:
- Tag body size
-
getPreviousTagSize
public int getPreviousTagSize()Return previous tag size- Specified by:
getPreviousTagSize
in interfaceITag
- Returns:
- Previous tag size
-
setBody
public void setBody(org.apache.mina.core.buffer.IoBuffer body) Description copied from interface:ITag
Set the body ByteBuffer. -
setBodySize
public void setBodySize(int size) Description copied from interface:ITag
Set the size of the body.- Specified by:
setBodySize
in interfaceITag
- Parameters:
size
- Body size
-
setDataType
public void setDataType(byte datatype) Description copied from interface:ITag
Set the data type.- Specified by:
setDataType
in interfaceITag
- Parameters:
datatype
- Data type
-
setPreviousTagSize
public void setPreviousTagSize(int size) Description copied from interface:ITag
Set the size of the previous tag.- Specified by:
setPreviousTagSize
in interfaceITag
- Parameters:
size
- Previous tag size
-
toString
Prints out the contents of the tag -
build
-
build
-
build
public static ImmutableTag build(byte dataType, int timestamp, org.apache.mina.core.buffer.IoBuffer data) -
build
-
build
public static ImmutableTag build(byte dataType, int timestamp, org.apache.mina.core.buffer.IoBuffer data, int previousTagSize)
-