Package io.netty.handler.codec.rtsp
Class RtspDecoder
- java.lang.Object
-
- io.netty.channel.ChannelHandlerAdapter
-
- io.netty.channel.ChannelInboundHandlerAdapter
-
- io.netty.handler.codec.ByteToMessageDecoder
-
- io.netty.handler.codec.http.HttpObjectDecoder
-
- io.netty.handler.codec.rtsp.RtspDecoder
-
- All Implemented Interfaces:
ChannelHandler
,ChannelInboundHandler
- Direct Known Subclasses:
RtspRequestDecoder
,RtspResponseDecoder
public class RtspDecoder extends HttpObjectDecoder
DecodesByteBuf
s into RTSP messages represented inHttpMessage
s.Parameters that prevents excessive memory consumption
Name Meaning maxInitialLineLength
The maximum length of the initial line (e.g. "SETUP / RTSP/1.0"
or"RTSP/1.0 200 OK"
) If the length of the initial line exceeds this value, aTooLongFrameException
will be raised.maxHeaderSize
The maximum length of all headers. If the sum of the length of each header exceeds this value, a TooLongFrameException
will be raised.maxContentLength
The maximum length of the content. If the content length exceeds this value, a TooLongFrameException
will be raised.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class io.netty.handler.codec.ByteToMessageDecoder
ByteToMessageDecoder.Cumulator
-
Nested classes/interfaces inherited from interface io.netty.channel.ChannelHandler
ChannelHandler.Sharable
-
-
Field Summary
Fields Modifier and Type Field Description static int
DEFAULT_MAX_CONTENT_LENGTH
Constant for default max content length.-
Fields inherited from class io.netty.handler.codec.http.HttpObjectDecoder
DEFAULT_ALLOW_DUPLICATE_CONTENT_LENGTHS, DEFAULT_ALLOW_PARTIAL_CHUNKS, DEFAULT_CHUNKED_SUPPORTED, DEFAULT_INITIAL_BUFFER_SIZE, DEFAULT_MAX_CHUNK_SIZE, DEFAULT_MAX_HEADER_SIZE, DEFAULT_MAX_INITIAL_LINE_LENGTH, DEFAULT_VALIDATE_HEADERS, headersFactory, trailersFactory, validateHeaders
-
Fields inherited from class io.netty.handler.codec.ByteToMessageDecoder
COMPOSITE_CUMULATOR, MERGE_CUMULATOR
-
-
Constructor Summary
Constructors Constructor Description RtspDecoder()
Creates a new instance with the defaultmaxInitialLineLength (4096)
,maxHeaderSize (8192)
, andmaxContentLength (8192)
.RtspDecoder(int maxInitialLineLength, int maxHeaderSize, int maxContentLength)
Creates a new instance with the specified parameters.RtspDecoder(int maxInitialLineLength, int maxHeaderSize, int maxContentLength, boolean validateHeaders)
Deprecated.Use theRtspDecoder(HttpDecoderConfig)
constructor instead, or theRtspDecoder(int, int, int)
to always enable header validation.RtspDecoder(HttpDecoderConfig config)
Creates a new instance with the specified configuration.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected HttpMessage
createInvalidMessage()
protected HttpMessage
createMessage(java.lang.String[] initialLine)
protected boolean
isContentAlwaysEmpty(HttpMessage msg)
protected boolean
isDecodingRequest()
-
Methods inherited from class io.netty.handler.codec.http.HttpObjectDecoder
decode, decodeLast, handlerRemoved0, handleTransferEncodingChunkedWithContentLength, isSwitchingToNonHttp1Protocol, isValidating, reset, splitFirstWordInitialLine, splitHeaderName, splitSecondWordInitialLine, splitThirdWordInitialLine, userEventTriggered
-
Methods inherited from class io.netty.handler.codec.ByteToMessageDecoder
actualReadableBytes, callDecode, channelInactive, channelRead, channelReadComplete, discardSomeReadBytes, handlerRemoved, internalBuffer, isSingleDecode, setCumulator, setDiscardAfterReads, setSingleDecode
-
Methods inherited from class io.netty.channel.ChannelInboundHandlerAdapter
channelActive, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaught
-
Methods inherited from class io.netty.channel.ChannelHandlerAdapter
ensureNotSharable, handlerAdded, isSharable
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.netty.channel.ChannelHandler
handlerAdded
-
-
-
-
Field Detail
-
DEFAULT_MAX_CONTENT_LENGTH
public static final int DEFAULT_MAX_CONTENT_LENGTH
Constant for default max content length.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
RtspDecoder
public RtspDecoder()
Creates a new instance with the defaultmaxInitialLineLength (4096)
,maxHeaderSize (8192)
, andmaxContentLength (8192)
.
-
RtspDecoder
public RtspDecoder(int maxInitialLineLength, int maxHeaderSize, int maxContentLength)
Creates a new instance with the specified parameters.- Parameters:
maxInitialLineLength
- The max allowed length of initial linemaxHeaderSize
- The max allowed size of headermaxContentLength
- The max allowed content length
-
RtspDecoder
@Deprecated public RtspDecoder(int maxInitialLineLength, int maxHeaderSize, int maxContentLength, boolean validateHeaders)
Deprecated.Use theRtspDecoder(HttpDecoderConfig)
constructor instead, or theRtspDecoder(int, int, int)
to always enable header validation.Creates a new instance with the specified parameters.- Parameters:
maxInitialLineLength
- The max allowed length of initial linemaxHeaderSize
- The max allowed size of headermaxContentLength
- The max allowed content lengthvalidateHeaders
- Set to true if headers should be validated
-
RtspDecoder
public RtspDecoder(HttpDecoderConfig config)
Creates a new instance with the specified configuration.
-
-
Method Detail
-
createMessage
protected HttpMessage createMessage(java.lang.String[] initialLine) throws java.lang.Exception
- Specified by:
createMessage
in classHttpObjectDecoder
- Throws:
java.lang.Exception
-
isContentAlwaysEmpty
protected boolean isContentAlwaysEmpty(HttpMessage msg)
- Overrides:
isContentAlwaysEmpty
in classHttpObjectDecoder
-
createInvalidMessage
protected HttpMessage createInvalidMessage()
- Specified by:
createInvalidMessage
in classHttpObjectDecoder
-
isDecodingRequest
protected boolean isDecodingRequest()
- Specified by:
isDecodingRequest
in classHttpObjectDecoder
-
-