discord-jadx/app/src/main/java/org/webrtc/NV12Buffer.java

59 lines
2.1 KiB
Java

package org.webrtc;
import androidx.annotation.Nullable;
import java.nio.ByteBuffer;
import org.webrtc.VideoFrame;
public class NV12Buffer implements VideoFrame.Buffer {
private final ByteBuffer buffer;
private final int height;
private final RefCountDelegate refCountDelegate;
private final int sliceHeight;
private final int stride;
private final int width;
public NV12Buffer(int i, int i2, int i3, int i4, ByteBuffer byteBuffer, @Nullable Runnable runnable) {
this.width = i;
this.height = i2;
this.stride = i3;
this.sliceHeight = i4;
this.buffer = byteBuffer;
this.refCountDelegate = new RefCountDelegate(runnable);
}
private static native void nativeCropAndScale(int i, int i2, int i3, int i4, int i5, int i6, ByteBuffer byteBuffer, int i7, int i8, int i9, int i10, ByteBuffer byteBuffer2, int i11, ByteBuffer byteBuffer3, int i12, ByteBuffer byteBuffer4, int i13);
@Override // org.webrtc.VideoFrame.Buffer
public VideoFrame.Buffer cropAndScale(int i, int i2, int i3, int i4, int i5, int i6) {
JavaI420Buffer allocate = JavaI420Buffer.allocate(i5, i6);
nativeCropAndScale(i, i2, i3, i4, i5, i6, this.buffer, this.width, this.height, this.stride, this.sliceHeight, allocate.getDataY(), allocate.getStrideY(), allocate.getDataU(), allocate.getStrideU(), allocate.getDataV(), allocate.getStrideV());
return allocate;
}
@Override // org.webrtc.VideoFrame.Buffer
public int getHeight() {
return this.height;
}
@Override // org.webrtc.VideoFrame.Buffer
public int getWidth() {
return this.width;
}
@Override // org.webrtc.VideoFrame.Buffer, org.webrtc.RefCounted
public void release() {
this.refCountDelegate.release();
}
@Override // org.webrtc.VideoFrame.Buffer, org.webrtc.RefCounted
public void retain() {
this.refCountDelegate.retain();
}
@Override // org.webrtc.VideoFrame.Buffer
public VideoFrame.I420Buffer toI420() {
int i = this.width;
int i2 = this.height;
return (VideoFrame.I420Buffer) cropAndScale(0, 0, i, i2, i, i2);
}
}