org.red5.server.net.rtmp.codec
Class RTMPProtocolEncoder
java.lang.Object
org.red5.server.net.protocol.BaseProtocolEncoder
org.red5.server.net.rtmp.codec.RTMPProtocolEncoder
- All Implemented Interfaces:
- SimpleProtocolEncoder, IEventEncoder, Constants
- Direct Known Subclasses:
- RTMPMinaProtocolEncoder, RTMPTProtocolEncoder
public class RTMPProtocolEncoder
- extends BaseProtocolEncoder
- implements SimpleProtocolEncoder, Constants, IEventEncoder
RTMP protocol encoder encodes RTMP messages and packets to byte buffers.
Field Summary |
protected static Logger |
log
Logger. |
Fields inherited from interface org.red5.server.net.rtmp.message.Constants |
ACTION_CLOSE_STREAM, ACTION_CONNECT, ACTION_CREATE_STREAM, ACTION_DELETE_STREAM, ACTION_DISCONNECT, ACTION_PAUSE, ACTION_PAUSE_RAW, ACTION_PLAY, ACTION_PUBLISH, ACTION_RECEIVE_AUDIO, ACTION_RECEIVE_VIDEO, ACTION_RELEASE_STREAM, ACTION_SEEK, ACTION_STOP, 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, TYPE_AUDIO_DATA, TYPE_BYTES_READ, TYPE_CHUNK_SIZE, TYPE_CLIENT_BANDWIDTH, 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 |
Method Summary |
void |
doEncodeSharedObject(ISharedObjectMessage so,
RTMP rtmp,
org.apache.mina.core.buffer.IoBuffer out)
Perform the actual encoding of the shared object contents. |
org.apache.mina.core.buffer.IoBuffer |
encode(ProtocolState state,
Object message)
Encodes object with given protocol state to byte buffer |
org.apache.mina.core.buffer.IoBuffer |
encodeAudioData(AudioData audioData)
Encodes AudioData event to byte buffer. |
org.apache.mina.core.buffer.IoBuffer |
encodeBytesRead(BytesRead bytesRead)
Encodes BytesRead event to byte buffer. |
org.apache.mina.core.buffer.IoBuffer |
encodeChunkSize(ChunkSize chunkSize)
Encodes ChunkSize event to byte buffer. |
org.apache.mina.core.buffer.IoBuffer |
encodeFlexMessage(FlexMessage msg,
RTMP rtmp)
Encodes Flex message event. |
org.apache.mina.core.buffer.IoBuffer |
encodeFlexSharedObject(ISharedObjectMessage so,
RTMP rtmp)
Encodes SharedObjectMessage event to byte buffer using AMF3 encoding. |
org.apache.mina.core.buffer.IoBuffer |
encodeFlexStreamSend(FlexStreamSend msg)
|
org.apache.mina.core.buffer.IoBuffer |
encodeHeader(Header header,
Header lastHeader)
Encode RTMP header. |
void |
encodeHeader(Header header,
Header lastHeader,
org.apache.mina.core.buffer.IoBuffer buf)
Encode RTMP header into given IoBuffer. |
org.apache.mina.core.buffer.IoBuffer |
encodeInvoke(Invoke invoke,
RTMP rtmp)
Encodes Invoke event to byte buffer. |
org.apache.mina.core.buffer.IoBuffer |
encodeMessage(RTMP rtmp,
Header header,
IRTMPEvent message)
Encode message. |
org.apache.mina.core.buffer.IoBuffer |
encodeNotify(Notify notify,
RTMP rtmp)
Encodes Notify event to byte buffer. |
protected void |
encodeNotifyOrInvoke(org.apache.mina.core.buffer.IoBuffer out,
Notify invoke,
RTMP rtmp)
Encode notification event and fill given byte buffer. |
protected org.apache.mina.core.buffer.IoBuffer |
encodeNotifyOrInvoke(Notify invoke,
RTMP rtmp)
Encode notification event. |
org.apache.mina.core.buffer.IoBuffer |
encodePacket(RTMP rtmp,
Packet packet)
Encode packet. |
org.apache.mina.core.buffer.IoBuffer |
encodePing(Ping ping)
Encodes Ping event to byte buffer. |
org.apache.mina.core.buffer.IoBuffer |
encodeSharedObject(ISharedObjectMessage so,
RTMP rtmp)
Encodes SharedObjectMessage event to byte buffer. |
org.apache.mina.core.buffer.IoBuffer |
encodeStreamMetadata(Notify metaData)
|
org.apache.mina.core.buffer.IoBuffer |
encodeUnknown(Unknown unknown)
Encodes Unknown event to byte buffer. |
org.apache.mina.core.buffer.IoBuffer |
encodeVideoData(VideoData videoData)
Encodes VideoData event to byte buffer. |
void |
setSerializer(Serializer serializer)
Setter for serializer. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
log
protected static Logger log
- Logger.
RTMPProtocolEncoder
public RTMPProtocolEncoder()
encode
public org.apache.mina.core.buffer.IoBuffer encode(ProtocolState state,
Object message)
throws Exception
- Encodes object with given protocol state to byte buffer
- Specified by:
encode
in interface SimpleProtocolEncoder
- Parameters:
state
- Protocol statemessage
- Object to encode
- Returns:
- IoBuffer with encoded data
- Throws:
Exception
- Any decoding exception
encodePacket
public org.apache.mina.core.buffer.IoBuffer encodePacket(RTMP rtmp,
Packet packet)
- Encode packet.
- Parameters:
rtmp
- RTMP protocol statepacket
- RTMP packet
- Returns:
- Encoded data
encodeHeader
public org.apache.mina.core.buffer.IoBuffer encodeHeader(Header header,
Header lastHeader)
- Encode RTMP header.
- Parameters:
header
- RTMP message headerlastHeader
- Previous header
- Returns:
- Encoded header data
encodeHeader
public void encodeHeader(Header header,
Header lastHeader,
org.apache.mina.core.buffer.IoBuffer buf)
- Encode RTMP header into given IoBuffer.
- Parameters:
header
- RTMP message headerlastHeader
- Previous headerbuf
- Buffer to write encoded header to
encodeMessage
public org.apache.mina.core.buffer.IoBuffer encodeMessage(RTMP rtmp,
Header header,
IRTMPEvent message)
- Encode message.
- Parameters:
rtmp
- RTMP protocol stateheader
- RTMP message headermessage
- RTMP message (event)
- Returns:
- Encoded message data
encodeChunkSize
public org.apache.mina.core.buffer.IoBuffer encodeChunkSize(ChunkSize chunkSize)
- Encodes ChunkSize event to byte buffer.
- Specified by:
encodeChunkSize
in interface IEventEncoder
- Parameters:
chunkSize
- ChunkSize event
- Returns:
- Byte buffer
encodeFlexSharedObject
public org.apache.mina.core.buffer.IoBuffer encodeFlexSharedObject(ISharedObjectMessage so,
RTMP rtmp)
- Encodes SharedObjectMessage event to byte buffer using AMF3 encoding.
- Specified by:
encodeFlexSharedObject
in interface IEventEncoder
- Parameters:
so
- ISharedObjectMessage eventrtmp
- RTMP protocol state
- Returns:
- Byte buffer
encodeSharedObject
public org.apache.mina.core.buffer.IoBuffer encodeSharedObject(ISharedObjectMessage so,
RTMP rtmp)
- Encodes SharedObjectMessage event to byte buffer.
- Specified by:
encodeSharedObject
in interface IEventEncoder
- Parameters:
so
- ISharedObjectMessage eventrtmp
- RTMP protocol state
- Returns:
- Byte buffer
doEncodeSharedObject
public void doEncodeSharedObject(ISharedObjectMessage so,
RTMP rtmp,
org.apache.mina.core.buffer.IoBuffer out)
- Perform the actual encoding of the shared object contents.
- Parameters:
so
- shared objectrtmp
- rtmpout
- output buffer
encodeNotify
public org.apache.mina.core.buffer.IoBuffer encodeNotify(Notify notify,
RTMP rtmp)
- Encodes Notify event to byte buffer.
- Specified by:
encodeNotify
in interface IEventEncoder
- Parameters:
notify
- Notify eventrtmp
- RTMP protocol state
- Returns:
- Byte buffer
encodeInvoke
public org.apache.mina.core.buffer.IoBuffer encodeInvoke(Invoke invoke,
RTMP rtmp)
- Encodes Invoke event to byte buffer.
- Specified by:
encodeInvoke
in interface IEventEncoder
- Parameters:
invoke
- Invoke eventrtmp
- RTMP protocol state
- Returns:
- Byte buffer
encodeNotifyOrInvoke
protected org.apache.mina.core.buffer.IoBuffer encodeNotifyOrInvoke(Notify invoke,
RTMP rtmp)
- Encode notification event.
- Parameters:
invoke
- Notification event
- Returns:
- Encoded event data
encodeNotifyOrInvoke
protected void encodeNotifyOrInvoke(org.apache.mina.core.buffer.IoBuffer out,
Notify invoke,
RTMP rtmp)
- Encode notification event and fill given byte buffer.
- Parameters:
out
- Byte buffer to fillinvoke
- Notification event
encodePing
public org.apache.mina.core.buffer.IoBuffer encodePing(Ping ping)
- Encodes Ping event to byte buffer.
- Specified by:
encodePing
in interface IEventEncoder
- Parameters:
ping
- Ping event
- Returns:
- Byte buffer
encodeBytesRead
public org.apache.mina.core.buffer.IoBuffer encodeBytesRead(BytesRead bytesRead)
- Encodes BytesRead event to byte buffer.
- Specified by:
encodeBytesRead
in interface IEventEncoder
- Parameters:
bytesRead
- BytesRead event
- Returns:
- Byte buffer
encodeAudioData
public org.apache.mina.core.buffer.IoBuffer encodeAudioData(AudioData audioData)
- Encodes AudioData event to byte buffer.
- Specified by:
encodeAudioData
in interface IEventEncoder
- Parameters:
audioData
- AudioData event
- Returns:
- Byte buffer
encodeVideoData
public org.apache.mina.core.buffer.IoBuffer encodeVideoData(VideoData videoData)
- Encodes VideoData event to byte buffer.
- Specified by:
encodeVideoData
in interface IEventEncoder
- Parameters:
videoData
- VideoData event
- Returns:
- Byte buffer
encodeUnknown
public org.apache.mina.core.buffer.IoBuffer encodeUnknown(Unknown unknown)
- Encodes Unknown event to byte buffer.
- Specified by:
encodeUnknown
in interface IEventEncoder
- Parameters:
unknown
- Unknown event
- Returns:
- Byte buffer
encodeStreamMetadata
public org.apache.mina.core.buffer.IoBuffer encodeStreamMetadata(Notify metaData)
setSerializer
public void setSerializer(Serializer serializer)
- Setter for serializer.
- Parameters:
serializer
- Serializer
encodeFlexMessage
public org.apache.mina.core.buffer.IoBuffer encodeFlexMessage(FlexMessage msg,
RTMP rtmp)
- Encodes Flex message event.
- Parameters:
msg
- Flex message eventrtmp
- RTMP
- Returns:
- Encoded data
encodeFlexStreamSend
public org.apache.mina.core.buffer.IoBuffer encodeFlexStreamSend(FlexStreamSend msg)
Copyright © 2006-2009 The Red5 Project