public class RTMPProtocolDecoder extends Object implements Constants, IEventDecoder
| Modifier and Type | Field and Description |
|---|---|
protected boolean |
closeOnHeaderError |
protected static org.slf4j.Logger |
log |
protected static int |
MAX_PACKET_SIZE |
HANDSHAKE_SIZE, HEADER_CONTINUE, HEADER_NEW, HEADER_SAME_SOURCE, HEADER_TIMER_CHANGE, MEDIUM_INT_MAX, SO_CLIENT_CLEAR_DATA, SO_CLIENT_DELETE_DATA, SO_CLIENT_INITIAL_DATA, SO_CLIENT_SEND_MESSAGE, SO_CLIENT_STATUS, SO_CLIENT_UPDATE_ATTRIBUTE, SO_CLIENT_UPDATE_DATA, SO_CONNECT, SO_DELETE_ATTRIBUTE, SO_DISCONNECT, SO_SEND_MESSAGE, SO_SET_ATTRIBUTE, SOURCE_TYPE_LIVE, SOURCE_TYPE_VOD, TYPE_ABORT, TYPE_AGGREGATE, TYPE_AUDIO_DATA, TYPE_BYTES_READ, TYPE_CHUNK_SIZE, TYPE_CLIENT_BANDWIDTH, TYPE_EDGE_ORIGIN, TYPE_FLEX_MESSAGE, TYPE_FLEX_SHARED_OBJECT, TYPE_FLEX_STREAM_SEND, TYPE_INVOKE, TYPE_NOTIFY, TYPE_PING, TYPE_SERVER_BANDWIDTH, TYPE_SHARED_OBJECT, TYPE_STREAM_METADATA, TYPE_VIDEO_DATA| Constructor and Description |
|---|
RTMPProtocolDecoder()
Constructs a new RTMPProtocolDecoder.
|
| Modifier and Type | Method and Description |
|---|---|
Object |
decode(RTMPConnection conn,
RTMPDecodeState state,
org.apache.mina.core.buffer.IoBuffer in)
Decodes the buffer data.
|
IRTMPEvent |
decodeAbort(org.apache.mina.core.buffer.IoBuffer in) |
Aggregate |
decodeAggregate(org.apache.mina.core.buffer.IoBuffer in)
Decodes the aggregated data.
|
AudioData |
decodeAudioData(org.apache.mina.core.buffer.IoBuffer in)
Decodes audio data event.
|
List<Object> |
decodeBuffer(RTMPConnection conn,
org.apache.mina.core.buffer.IoBuffer buffer)
Decode all available objects in buffer.
|
BytesRead |
decodeBytesRead(org.apache.mina.core.buffer.IoBuffer in)
Decodes BytesRead event.
|
ChunkSize |
decodeChunkSize(org.apache.mina.core.buffer.IoBuffer in)
Decodes chunk size event.
|
FlexMessage |
decodeFlexMessage(org.apache.mina.core.buffer.IoBuffer in)
Decodes FlexMessage event.
|
ISharedObjectMessage |
decodeFlexSharedObject(org.apache.mina.core.buffer.IoBuffer in)
Decodes shared object message event from AMF3 encoding.
|
Header |
decodeHeader(ChunkHeader chh,
RTMPDecodeState state,
org.apache.mina.core.buffer.IoBuffer in,
RTMP rtmp)
Decodes packet header.
|
IRTMPEvent |
decodeMessage(RTMPConnection conn,
Header header,
org.apache.mina.core.buffer.IoBuffer in)
Decodes RTMP message event.
|
Packet |
decodePacket(RTMPConnection conn,
RTMPDecodeState state,
org.apache.mina.core.buffer.IoBuffer in)
Decodes an IoBuffer into a Packet.
|
Ping |
decodePing(org.apache.mina.core.buffer.IoBuffer in)
Decodes ping event.
|
ISharedObjectMessage |
decodeSharedObject(org.apache.mina.core.buffer.IoBuffer in)
Decodes shared object message event.
|
Notify |
decodeStreamData(org.apache.mina.core.buffer.IoBuffer in)
Decodes stream data, to include onMetaData, onCuePoint, and onFI.
|
Unknown |
decodeUnknown(byte dataType,
org.apache.mina.core.buffer.IoBuffer in)
Decodes event of Unknown type.
|
VideoData |
decodeVideoData(org.apache.mina.core.buffer.IoBuffer in)
Decodes video data event.
|
protected void |
doDecodeSharedObject(SharedObjectMessage so,
org.apache.mina.core.buffer.IoBuffer in,
org.red5.io.object.Input input)
Perform the actual decoding of the shared object contents.
|
void |
setCloseOnHeaderError(boolean closeOnHeaderError)
Sets whether or not a header error on any channel should result in a closed connection.
|
static void |
setMaxPacketSize(int maxPacketSize)
Set the maximum allowed packet size.
|
protected static final org.slf4j.Logger log
protected boolean closeOnHeaderError
protected static int MAX_PACKET_SIZE
public RTMPProtocolDecoder()
public List<Object> decodeBuffer(RTMPConnection conn, org.apache.mina.core.buffer.IoBuffer buffer)
conn - RTMP connectionbuffer - IoBuffer of data to be decodedpublic Object decode(RTMPConnection conn, RTMPDecodeState state, org.apache.mina.core.buffer.IoBuffer in) throws ProtocolException
conn - RTMP connectionstate - Stores state for the protocol, ProtocolState is just a marker interfacein - IoBuffer of data to be decoded1. null : the object could not be decoded, or some data was skipped, just continue 2. ProtocolState : the decoder was unable to decode the whole object, refer to the protocol state 3. Object : something was decoded, continue
ProtocolException - on errorpublic Packet decodePacket(RTMPConnection conn, RTMPDecodeState state, org.apache.mina.core.buffer.IoBuffer in)
conn - Connectionstate - RTMP protocol statein - IoBufferpublic Header decodeHeader(ChunkHeader chh, RTMPDecodeState state, org.apache.mina.core.buffer.IoBuffer in, RTMP rtmp)
chh - chunk headerstate - RTMP decode statein - Input IoBufferrtmp - RTMP object to get last headerpublic IRTMPEvent decodeMessage(RTMPConnection conn, Header header, org.apache.mina.core.buffer.IoBuffer in)
conn - RTMP connectionheader - RTMP headerin - Input IoBufferpublic IRTMPEvent decodeAbort(org.apache.mina.core.buffer.IoBuffer in)
public Unknown decodeUnknown(byte dataType, org.apache.mina.core.buffer.IoBuffer in)
decodeUnknown in interface IEventDecoderdataType - Data typein - Byte buffer to decodepublic Aggregate decodeAggregate(org.apache.mina.core.buffer.IoBuffer in)
decodeAggregate in interface IEventDecoderin - Byte buffer to decodepublic ChunkSize decodeChunkSize(org.apache.mina.core.buffer.IoBuffer in)
decodeChunkSize in interface IEventDecoderin - Byte buffer to decodepublic ISharedObjectMessage decodeFlexSharedObject(org.apache.mina.core.buffer.IoBuffer in)
decodeFlexSharedObject in interface IEventDecoderin - Byte buffer to decodepublic ISharedObjectMessage decodeSharedObject(org.apache.mina.core.buffer.IoBuffer in)
decodeSharedObject in interface IEventDecoderin - Byte buffer to decodeprotected void doDecodeSharedObject(SharedObjectMessage so, org.apache.mina.core.buffer.IoBuffer in, org.red5.io.object.Input input)
so - Shared object messagein - input bufferinput - Input object to be processedpublic Ping decodePing(org.apache.mina.core.buffer.IoBuffer in)
decodePing in interface IEventDecoderin - IoBufferpublic BytesRead decodeBytesRead(org.apache.mina.core.buffer.IoBuffer in)
decodeBytesRead in interface IEventDecoderin - Byte buffer to decodepublic AudioData decodeAudioData(org.apache.mina.core.buffer.IoBuffer in)
decodeAudioData in interface IEventDecoderin - Byte buffer to decodepublic VideoData decodeVideoData(org.apache.mina.core.buffer.IoBuffer in)
decodeVideoData in interface IEventDecoderin - Byte buffer to decodepublic Notify decodeStreamData(org.apache.mina.core.buffer.IoBuffer in)
in - input bufferpublic FlexMessage decodeFlexMessage(org.apache.mina.core.buffer.IoBuffer in)
decodeFlexMessage in interface IEventDecoderin - IoBufferpublic void setCloseOnHeaderError(boolean closeOnHeaderError)
closeOnHeaderError - true to close on header decode errorspublic static void setMaxPacketSize(int maxPacketSize)
maxPacketSize - maximum allowed size for a packetCopyright © 2005–2017 Red5. All rights reserved.