Update Limelight common

This commit is contained in:
Iwan Timmer 2015-03-29 23:13:40 +02:00
parent 223ba11eb8
commit 8a14cc6d9a
4 changed files with 8 additions and 15 deletions

@ -1 +1 @@
Subproject commit 7aa5182de5acc81b08973bddf4ce36ab6dace0a4
Subproject commit d4197452ab16cbf15898f6fadcf56ee4bdbcd8cb

View File

@ -51,7 +51,7 @@ public class FakeVideoRenderer extends VideoDecoderRenderer {
public void directSubmitDecodeUnit(DecodeUnit decodeUnit) {
if (out!=null) {
try {
for (ByteBufferDescriptor buf:decodeUnit.getBufferList())
for (ByteBufferDescriptor buf = decodeUnit.getBufferHead(); buf != null; buf = buf.nextDescriptor)
out.write(buf.data, buf.offset, buf.length);
} catch (IOException e) {
LimeLog.severe(e.getMessage());

View File

@ -31,13 +31,10 @@ public class ImxDecoderRenderer extends VideoDecoderRenderer {
@Override
public void directSubmitDecodeUnit(DecodeUnit decodeUnit) {
List<ByteBufferDescriptor> units = decodeUnit.getBufferList();
boolean ok = true;
for (int i=0;i<units.size();i++) {
ByteBufferDescriptor bbd = units.get(i);
for (ByteBufferDescriptor bbd = decodeUnit.getBufferHead(); bbd != null; bbd = bbd.nextDescriptor) {
if (ok) {
int ret = ImxDecoder.decode(bbd.data, bbd.offset, bbd.length, i == (units.size()-1));
int ret = ImxDecoder.decode(bbd.data, bbd.offset, bbd.length, bbd.nextDescriptor == null);
if (ret != 0) {
LimeLog.severe("Error code during decode: " + ret);
ok = false;

View File

@ -37,9 +37,7 @@ public class OmxDecoderRenderer extends VideoDecoderRenderer {
@Override
public void directSubmitDecodeUnit(DecodeUnit decodeUnit) {
List<ByteBufferDescriptor> units = decodeUnit.getBufferList();
ByteBufferDescriptor header = units.get(0);
ByteBufferDescriptor header = decodeUnit.getBufferHead();
if (header.data[header.offset+4] == 0x67) {
ByteBuffer origSpsBuf = ByteBuffer.wrap(header.data);
@ -73,13 +71,11 @@ public class OmxDecoderRenderer extends VideoDecoderRenderer {
if (ret != 0) {
LimeLog.severe("Error code during decode: " + ret);
}
}
else {
} else {
boolean ok = true;
for (int i=0;i<units.size();i++) {
ByteBufferDescriptor bbd = units.get(i);
for (ByteBufferDescriptor bbd = header; bbd != null; bbd = bbd.nextDescriptor) {
if (ok) {
int ret = OmxDecoder.decode(bbd.data, bbd.offset, bbd.length, i == (units.size()-1));
int ret = OmxDecoder.decode(bbd.data, bbd.offset, bbd.length, bbd.nextDescriptor == null);
if (ret != 0) {
LimeLog.severe("Error code during decode: " + ret);
ok = false;