public class RTMPProtocolEncoder extends Object implements Constants, IEventEncoder
Modifier and Type | Field and Description |
---|---|
protected static org.slf4j.Logger |
log |
protected Serializer |
serializer
Serializer object.
|
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 |
---|
RTMPProtocolEncoder() |
Modifier and Type | Method and Description |
---|---|
protected boolean |
dropMessage(RTMP rtmp,
int channelId,
IRTMPEvent message)
Determine if this message should be dropped for lateness.
|
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 |
encodeAggregate(Aggregate aggregate)
Encodes Aggregate event 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(RTMP rtmp,
Header header,
Header lastHeader)
Encode RTMP header.
|
void |
encodeHeader(RTMP rtmp,
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.
|
protected StatusObject |
generateErrorResult(String code,
Throwable error)
Generate error object to return for given exception.
|
long |
getBaseTolerance() |
void |
setBaseTolerance(long baseTolerance) |
void |
setConnection(RTMPConnection conn)
Set the connection being used with this encoder
|
void |
setDropLiveFuture(boolean dropLiveFuture)
Setter for dropLiveFuture
|
void |
setSerializer(Serializer serializer)
Setter for serializer.
|
protected static org.slf4j.Logger log
protected Serializer serializer
public org.apache.mina.core.buffer.IoBuffer encode(ProtocolState state, Object message) throws Exception
state
- Protocol statemessage
- Object to encodeException
- Any decoding exceptionpublic org.apache.mina.core.buffer.IoBuffer encodePacket(RTMP rtmp, Packet packet)
rtmp
- RTMP protocol statepacket
- RTMP packetprotected boolean dropMessage(RTMP rtmp, int channelId, IRTMPEvent message)
rtmp
- the protocol statechannelId
- the channel IDmessage
- the messagepublic org.apache.mina.core.buffer.IoBuffer encodeHeader(RTMP rtmp, Header header, Header lastHeader)
rtmp
- The protocol stateheader
- RTMP message headerlastHeader
- Previous headerpublic void encodeHeader(RTMP rtmp, Header header, Header lastHeader, org.apache.mina.core.buffer.IoBuffer buf)
rtmp
- The protocol stateheader
- RTMP message headerlastHeader
- Previous headerbuf
- Buffer to write encoded header topublic org.apache.mina.core.buffer.IoBuffer encodeMessage(RTMP rtmp, Header header, IRTMPEvent message)
rtmp
- RTMP protocol stateheader
- RTMP message headermessage
- RTMP message (event)public org.apache.mina.core.buffer.IoBuffer encodeChunkSize(ChunkSize chunkSize)
encodeChunkSize
in interface IEventEncoder
chunkSize
- ChunkSize eventpublic org.apache.mina.core.buffer.IoBuffer encodeFlexSharedObject(ISharedObjectMessage so, RTMP rtmp)
encodeFlexSharedObject
in interface IEventEncoder
so
- ISharedObjectMessage eventrtmp
- RTMP protocol statepublic org.apache.mina.core.buffer.IoBuffer encodeSharedObject(ISharedObjectMessage so, RTMP rtmp)
encodeSharedObject
in interface IEventEncoder
so
- ISharedObjectMessage eventrtmp
- RTMP protocol statepublic org.apache.mina.core.buffer.IoBuffer encodeNotify(Notify notify, RTMP rtmp)
encodeNotify
in interface IEventEncoder
notify
- Notify eventrtmp
- RTMP protocol statepublic org.apache.mina.core.buffer.IoBuffer encodeInvoke(Invoke invoke, RTMP rtmp)
encodeInvoke
in interface IEventEncoder
invoke
- Invoke eventrtmp
- RTMP protocol stateprotected org.apache.mina.core.buffer.IoBuffer encodeNotifyOrInvoke(Notify invoke, RTMP rtmp)
invoke
- Notification eventprotected void encodeNotifyOrInvoke(org.apache.mina.core.buffer.IoBuffer out, Notify invoke, RTMP rtmp)
out
- Byte buffer to fillinvoke
- Notification eventpublic org.apache.mina.core.buffer.IoBuffer encodePing(Ping ping)
encodePing
in interface IEventEncoder
ping
- Ping eventpublic org.apache.mina.core.buffer.IoBuffer encodeBytesRead(BytesRead bytesRead)
encodeBytesRead
in interface IEventEncoder
bytesRead
- BytesRead eventpublic org.apache.mina.core.buffer.IoBuffer encodeAggregate(Aggregate aggregate)
encodeAggregate
in interface IEventEncoder
aggregate
- Aggregate eventpublic org.apache.mina.core.buffer.IoBuffer encodeAudioData(AudioData audioData)
encodeAudioData
in interface IEventEncoder
audioData
- AudioData eventpublic org.apache.mina.core.buffer.IoBuffer encodeVideoData(VideoData videoData)
encodeVideoData
in interface IEventEncoder
videoData
- VideoData eventpublic org.apache.mina.core.buffer.IoBuffer encodeUnknown(Unknown unknown)
encodeUnknown
in interface IEventEncoder
unknown
- Unknown eventpublic org.apache.mina.core.buffer.IoBuffer encodeStreamMetadata(Notify metaData)
protected StatusObject generateErrorResult(String code, Throwable error)
code
- callerror
- errorpublic org.apache.mina.core.buffer.IoBuffer encodeFlexMessage(FlexMessage msg, RTMP rtmp)
msg
- Flex message eventrtmp
- RTMPpublic org.apache.mina.core.buffer.IoBuffer encodeFlexStreamSend(FlexStreamSend msg)
public void setSerializer(Serializer serializer)
serializer
- Serializerpublic void setBaseTolerance(long baseTolerance)
public void setDropLiveFuture(boolean dropLiveFuture)
public long getBaseTolerance()
public void setConnection(RTMPConnection conn)
conn
- active connectionCopyright © 2006-2012 The Red5 Project