package io.netty.handler.codec.compression;

import com.ning.compress.BufferRecycler;
import com.ning.compress.lzf.ChunkEncoder;
import com.ning.compress.lzf.LZFEncoder;
import com.ning.compress.lzf.util.ChunkEncoderFactory;
import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.MessageToByteEncoder;

/* JADX INFO: loaded from: classes.dex */
public class LzfEncoder extends MessageToByteEncoder<ByteBuf> {
    private static final int MIN_BLOCK_TO_COMPRESS = 16;
    private final ChunkEncoder encoder;
    private final BufferRecycler recycler;

    public LzfEncoder() {
        this(false, 65535);
    }

    public LzfEncoder(boolean z) {
        this(z, 65535);
    }

    /* JADX INFO: Access modifiers changed from: protected */
    @Override // io.netty.handler.codec.MessageToByteEncoder
    public void encode(ChannelHandlerContext channelHandlerContext, ByteBuf byteBuf, ByteBuf byteBuf2) throws Exception {
        byte[] bArrAllocInputBuffer;
        int i2 = byteBuf.readableBytes();
        int i3 = byteBuf.readerIndex();
        int iArrayOffset = 0;
        if (byteBuf.hasArray()) {
            bArrAllocInputBuffer = byteBuf.array();
            iArrayOffset = byteBuf.arrayOffset() + i3;
        } else {
            bArrAllocInputBuffer = this.recycler.allocInputBuffer(i2);
            byteBuf.getBytes(i3, bArrAllocInputBuffer, 0, i2);
        }
        byte[] bArr = bArrAllocInputBuffer;
        byteBuf2.ensureWritable(LZFEncoder.estimateMaxWorkspaceSize(i2));
        byte[] bArrArray = byteBuf2.array();
        int iArrayOffset2 = byteBuf2.arrayOffset() + byteBuf2.writerIndex();
        byteBuf2.writerIndex(byteBuf2.writerIndex() + (LZFEncoder.appendEncoded(this.encoder, bArr, iArrayOffset, i2, bArrArray, iArrayOffset2) - iArrayOffset2));
        byteBuf.skipBytes(i2);
        if (byteBuf.hasArray()) {
            return;
        }
        this.recycler.releaseInputBuffer(bArr);
    }

    public LzfEncoder(int i2) {
        this(false, i2);
    }

    public LzfEncoder(boolean z, int i2) {
        super(false);
        if (i2 >= 16 && i2 <= 65535) {
            this.encoder = z ? ChunkEncoderFactory.safeNonAllocatingInstance(i2) : ChunkEncoderFactory.optimalNonAllocatingInstance(i2);
            this.recycler = BufferRecycler.instance();
            return;
        }
        throw new IllegalArgumentException("totalLength: " + i2 + " (expected: 16-65535)");
    }
}
