moonlight-android/src/com/limelight/nvstream/av/video/CpuDecoderRenderer.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());
}
}