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
Decodes
ByteBufs into RTSP messages represented in
HttpMessages.
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, a
TooLongFrameException 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.CumulatorNested classes/interfaces inherited from interface io.netty.channel.ChannelHandler
ChannelHandler.Sharable -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intConstant for default max content length.private booleanTrue if the message to decode is a request.private static final HttpResponseStatusStatus code for unknown responses.private static final PatternRegex used on first line in message to detect if it is a response.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_STRICT_LINE_PARSING, DEFAULT_VALIDATE_HEADERS, headersFactory, trailersFactory, validateHeadersFields inherited from class io.netty.handler.codec.ByteToMessageDecoder
COMPOSITE_CUMULATOR, MERGE_CUMULATOR -
Constructor Summary
ConstructorsConstructorDescriptionCreates 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.RtspDecoder(HttpDecoderConfig config) Creates a new instance with the specified configuration. -
Method Summary
Modifier and TypeMethodDescriptionprotected HttpMessageprotected HttpMessagecreateMessage(String[] initialLine) protected booleanprotected booleanMethods inherited from class io.netty.handler.codec.http.HttpObjectDecoder
decode, decodeLast, handlerRemoved0, handleTransferEncodingChunkedWithContentLength, isSwitchingToNonHttp1Protocol, isValidating, reset, splitFirstWordInitialLine, splitHeaderName, splitSecondWordInitialLine, splitThirdWordInitialLine, userEventTriggeredMethods inherited from class io.netty.handler.codec.ByteToMessageDecoder
actualReadableBytes, callDecode, channelInactive, channelRead, channelReadComplete, discardSomeReadBytes, handlerRemoved, internalBuffer, isSingleDecode, setCumulator, setDiscardAfterReads, setSingleDecodeMethods inherited from class io.netty.channel.ChannelInboundHandlerAdapter
channelActive, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaughtMethods inherited from class io.netty.channel.ChannelHandlerAdapter
ensureNotSharable, handlerAdded, isSharableMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.netty.channel.ChannelHandler
handlerAdded
-
Field Details
-
UNKNOWN_STATUS
Status code for unknown responses. -
isDecodingRequest
private boolean isDecodingRequestTrue if the message to decode is a request. False if the message to decode is a response. -
versionPattern
Regex used on first line in message to detect if it is a response. -
DEFAULT_MAX_CONTENT_LENGTH
public static final int DEFAULT_MAX_CONTENT_LENGTHConstant for default max content length.- See Also:
-
-
Constructor Details
-
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
Creates a new instance with the specified configuration.
-
-
Method Details
-
createMessage
- Specified by:
createMessagein classHttpObjectDecoder- Throws:
Exception
-
isContentAlwaysEmpty
- Overrides:
isContentAlwaysEmptyin classHttpObjectDecoder
-
createInvalidMessage
- Specified by:
createInvalidMessagein classHttpObjectDecoder
-
isDecodingRequest
protected boolean isDecodingRequest()- Specified by:
isDecodingRequestin classHttpObjectDecoder
-
RtspDecoder(HttpDecoderConfig)constructor instead, or theRtspDecoder(int, int, int)to always enable header validation.