mirror of
https://github.com/moonlight-stream/moonlight-android.git
synced 2025-07-20 11:33:06 +00:00
52 lines
1.1 KiB
Java
52 lines
1.1 KiB
Java
package com.limelight.nvstream.av.video;
|
|
|
|
import java.nio.ByteBuffer;
|
|
|
|
import android.view.Surface;
|
|
|
|
import com.limelight.nvstream.av.AvByteBufferDescriptor;
|
|
import com.limelight.nvstream.av.AvDecodeUnit;
|
|
|
|
public class CpuDecoderRenderer implements DecoderRenderer {
|
|
|
|
private Surface renderTarget;
|
|
private ByteBuffer decoderBuffer;
|
|
private Thread rendererThread;
|
|
|
|
@Override
|
|
public void setup(int width, int height, Surface renderTarget) {
|
|
this.renderTarget = renderTarget;
|
|
|
|
int err = AvcDecoder.init(width, height);
|
|
if (err != 0) {
|
|
//throw new IllegalStateException("AVC decoder initialization failure: "+err);
|
|
}
|
|
|
|
decoderBuffer = ByteBuffer.allocate(128*1024);
|
|
}
|
|
|
|
@Override
|
|
public void start() {
|
|
}
|
|
|
|
@Override
|
|
public void stop() {
|
|
}
|
|
|
|
@Override
|
|
public void release() {
|
|
AvcDecoder.destroy();
|
|
}
|
|
|
|
@Override
|
|
public void submitDecodeUnit(AvDecodeUnit decodeUnit) {
|
|
decoderBuffer.clear();
|
|
|
|
for (AvByteBufferDescriptor bbd : decodeUnit.getBufferList()) {
|
|
decoderBuffer.put(bbd.data, bbd.offset, bbd.length);
|
|
}
|
|
|
|
//AvcDecoder.decode(decoderBuffer.array(), 0, decodeUnit.getDataLength());
|
|
}
|
|
}
|