jafea7-ctbrec-v5.3.2-based/src/main/java/org/taktik/mpegts/sinks/ByteChannelSink.java

44 lines
906 B
Java

package org.taktik.mpegts.sinks;
import org.taktik.mpegts.MTSPacket;
import java.nio.channels.ByteChannel;
public class ByteChannelSink implements MTSSink {
private ByteChannel byteChannel;
private ByteChannelSink(ByteChannel byteChannel) {
this.byteChannel = byteChannel;
}
public static ByteChannelSinkBuilder builder() {
return new ByteChannelSinkBuilder();
}
@Override
public void send(MTSPacket packet) throws Exception {
byteChannel.write(packet.getBuffer());
}
@Override
public void close() throws Exception {
byteChannel.close();
}
public static class ByteChannelSinkBuilder {
private ByteChannel byteChannel;
private ByteChannelSinkBuilder(){}
public ByteChannelSink build() {
return new ByteChannelSink(byteChannel);
}
public ByteChannelSinkBuilder setByteChannel(ByteChannel byteChannel) {
this.byteChannel = byteChannel;
return this;
}
}
}