|
Java example source code file (RtspObjectDecoder.java)
The RtspObjectDecoder.java Java example source code/* * Copyright 2012 The Netty Project * * The Netty Project licenses this file to you under the Apache License, * version 2.0 (the "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ package io.netty.handler.codec.rtsp; import io.netty.buffer.ByteBuf; import io.netty.handler.codec.TooLongFrameException; import io.netty.handler.codec.http.HttpMessage; import io.netty.handler.codec.http.HttpObjectDecoder; /** * Decodes {@link ByteBuf}s into RTSP messages represented in * {@link HttpMessage}s. * <p> * <h3>Parameters that prevents excessive memory consumption * <table border="1"> * <tr> * <th>Name |
* <td>The maximum length of the initial line
* (e.g. {@code "SETUP / RTSP/1.0"} or {@code "RTSP/1.0 200 OK"})
* If the length of the initial line exceeds this value, a
* {@link TooLongFrameException} will be raised.</td>
* </tr>
* <tr>
* <td>{@code maxHeaderSize}
* <td>The maximum length of all headers. If the sum of the length of each
* header exceeds this value, a {@link TooLongFrameException} will be raised.</td>
* </tr>
* <tr>
* <td>{@code maxContentLength}
* <td>The maximum length of the content. If the content length exceeds this
* value, a {@link TooLongFrameException} will be raised.</td>
* </tr>
* </table>
*
* @deprecated Use {@link RtspDecoder} instead.
*/
@Deprecated
public abstract class RtspObjectDecoder extends HttpObjectDecoder {
/**
* Creates a new instance with the default
* {@code maxInitialLineLength (4096)}, {@code maxHeaderSize (8192)}, and
* {@code maxContentLength (8192)}.
*/
protected RtspObjectDecoder() {
this(4096, 8192, 8192);
}
/**
* Creates a new instance with the specified parameters.
*/
protected RtspObjectDecoder(int maxInitialLineLength, int maxHeaderSize, int maxContentLength) {
super(maxInitialLineLength, maxHeaderSize, maxContentLength * 2, false);
}
protected RtspObjectDecoder(
int maxInitialLineLength, int maxHeaderSize, int maxContentLength, boolean validateHeaders) {
super(maxInitialLineLength, maxHeaderSize, maxContentLength * 2, false, validateHeaders);
}
@Override
protected boolean isContentAlwaysEmpty(HttpMessage msg) {
// Unlike HTTP, RTSP always assumes zero-length body if Content-Length
// header is absent.
boolean empty = super.isContentAlwaysEmpty(msg);
if (empty) {
return true;
}
if (!msg.headers().contains(RtspHeaderNames.CONTENT_LENGTH)) {
return true;
}
return empty;
}
}
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.