/** * {@inheritDoc} */ @Override public IoBuffer getSlice(int index, int length) { return buf.getSlice(index, length); }
/** * {@inheritDoc} */ @Override public IoBuffer getSlice(int length) { return buf.getSlice(length); }
/** * {@inheritDoc} */ @Override public IoBuffer getSlice(int index, int length) { return buf.getSlice(index, length); }
/** * {@inheritDoc} */ @Override public IoBuffer getSlice(int length) { return buf.getSlice(length); }
@Override public IoBuffer getSlice(int index, int length) { return buf.getSlice(index, length); }
@Override public IoBuffer getSlice(int length) { return buf.getSlice(length); }
@Override public String get ( final IoBuffer data, final int index ) { return data.getSlice ( index, this.length ).getHexDump ().toUpperCase (); }
@SuppressWarnings("unused") public static LinkedList<IoBuffer> chunk(IoBuffer message, int chunkSize, int desiredSize) { LinkedList<IoBuffer> chunks = new LinkedList<IoBuffer>(); int targetSize = desiredSize > chunkSize ? desiredSize : chunkSize; int limit = message.limit(); do { int length = 0; int pos = message.position(); while (length < targetSize && pos < limit) { byte basicHeader = message.get(pos); length += getDataSize(basicHeader) + chunkSize; pos += length; } int remaining = message.remaining(); log.trace("Length: {} remaining: {} pos+len: {} limit: {}", new Object[] { length, remaining, (message.position() + length), limit }); if (length > remaining) { length = remaining; } // add a chunk chunks.add(message.getSlice(length)); } while (message.hasRemaining()); return chunks; }
@SuppressWarnings("unused") public static LinkedList<IoBuffer> chunk(IoBuffer message, int chunkSize, int desiredSize) { LinkedList<IoBuffer> chunks = new LinkedList<IoBuffer>(); int targetSize = desiredSize > chunkSize ? desiredSize : chunkSize; int limit = message.limit(); do { int length = 0; int pos = message.position(); while (length < targetSize && pos < limit) { byte basicHeader = message.get(pos); length += getDataSize(basicHeader) + chunkSize; pos += length; } int remaining = message.remaining(); log.trace("Length: {} remaining: {} pos+len: {} limit: {}", new Object[] { length, remaining, (message.position() + length), limit }); if (length > remaining) { length = remaining; } // add a chunk chunks.add(message.getSlice(length)); } while (message.hasRemaining()); return chunks; }
@Override protected DecodingState finishDecode(IoBuffer product, ProtocolDecoderOutput out) throws Exception { int t1 = product.getInt(); int t2 = product.getInt(); IoBuffer nonce = product.getSlice(NONCE_LENGTH); out.write(new RtmpHandshakeRequestMessage(t1, t2, nonce.buf())); return READ_CLIENT_HANDSHAKE_RESPONSE; } };
@Override protected DecodingState finishDecode(IoBuffer product, ProtocolDecoderOutput out) throws Exception { int t1 = product.getInt(); int t2 = product.getInt(); IoBuffer nonce = product.getSlice(NONCE_LENGTH); out.write(new RtmpHandshakeResponseMessage(t1, t2, nonce.buf())); return null; } };
final IoBuffer frameData = data.getSlice ( dataLength ); // this also consumes the buffer 'data'
final IoBuffer frameData = data.getSlice ( dataLength ); // this also consumes the buffer 'data'
public static int chunkAndWrite(ProtocolEncoderOutput out, IoBuffer message, int chunkSize, int desiredSize) { int sentChunks = 0; int targetSize = desiredSize > chunkSize ? desiredSize : chunkSize; int limit = message.limit(); do { int length = 0; int pos = message.position(); while (length < targetSize && pos < limit) { byte basicHeader = message.get(pos); length += getDataSize(basicHeader) + chunkSize; pos += length; } int remaining = message.remaining(); log.trace("Length: {} remaining: {} pos+len: {} limit: {}", new Object[] { length, remaining, (message.position() + length), limit }); if (length > remaining) { length = remaining; } // send it out.write(message.getSlice(length)); sentChunks++; } while (message.hasRemaining()); return sentChunks; }
public static int chunkAndWrite(ProtocolEncoderOutput out, IoBuffer message, int chunkSize, int desiredSize) { int sentChunks = 0; int targetSize = desiredSize > chunkSize ? desiredSize : chunkSize; int limit = message.limit(); do { int length = 0; int pos = message.position(); while (length < targetSize && pos < limit) { byte basicHeader = message.get(pos); length += getDataSize(basicHeader) + chunkSize; pos += length; } int remaining = message.remaining(); log.trace("Length: {} remaining: {} pos+len: {} limit: {}", new Object[] { length, remaining, (message.position() + length), limit }); if (length > remaining) { length = remaining; } // send it out.write(message.getSlice(length)); sentChunks++; } while (message.hasRemaining()); return sentChunks; }
switch (subType) { case TYPE_AUDIO_DATA: AudioData audio = new AudioData(data.getSlice(size)); audio.setTimestamp(timestamp); audio.setHeader(partHeader); VideoData video = new VideoData(data.getSlice(size)); video.setTimestamp(timestamp); video.setHeader(partHeader); default: log.debug("Non-A/V subtype: {}", subType); Unknown unk = new Unknown(subType, data.getSlice(size)); unk.setTimestamp(timestamp); unk.setHeader(partHeader);
switch (subType) { case TYPE_AUDIO_DATA: AudioData audio = new AudioData(data.getSlice(size)); audio.setTimestamp(timestamp); audio.setHeader(partHeader); VideoData video = new VideoData(data.getSlice(size)); video.setTimestamp(timestamp); video.setHeader(partHeader); default: log.debug("Non-A/V subtype: {}", subType); Unknown unk = new Unknown(subType, data.getSlice(size)); unk.setTimestamp(timestamp); unk.setHeader(partHeader);