Changed implementation of Video decoder. New one use less memory and more faster
Esse commit está contido em:
+453
-434
Diferenças do arquivo suprimidas por serem muito extensas
Carregar Diff
@@ -1,157 +0,0 @@
|
||||
package com.codeminders.ardrone.video;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.DataInputStream;
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
// Copyright � 2007-2011, PARROT SA, all rights reserved.
|
||||
|
||||
// DISCLAIMER
|
||||
// The APIs is provided by PARROT and contributors "AS IS" and any express or
|
||||
// implied warranties, including, but not limited to, the implied warranties of
|
||||
// merchantability
|
||||
// and fitness for a particular purpose are disclaimed. In no event shall PARROT
|
||||
// and contributors be liable for any direct, indirect, incidental, special,
|
||||
// exemplary, or
|
||||
// consequential damages (including, but not limited to, procurement of
|
||||
// substitute goods or services; loss of use, data, or profits; or business
|
||||
// interruption) however
|
||||
// caused and on any theory of liability, whether in contract, strict liability,
|
||||
// or tort (including negligence or otherwise) arising in any way out of the use
|
||||
// of this
|
||||
// software, even if advised of the possibility of such damage.
|
||||
|
||||
// Author : Daniel Schmidt
|
||||
// Publishing date : 2010-01-06
|
||||
// based on work by : Wilke Jansoone
|
||||
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions
|
||||
// are met:
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions, the disclaimer and the original author of the source
|
||||
// code.
|
||||
// - Neither the name of the PixVillage Team, nor the names of its contributors
|
||||
// may be used to endorse or promote products derived from this software without
|
||||
// specific prior written permission.
|
||||
|
||||
public class uint
|
||||
{
|
||||
private int base2;
|
||||
|
||||
public uint(byte[] bp, int start)
|
||||
{
|
||||
try
|
||||
{
|
||||
byte[] b = new byte[4];
|
||||
b[0] = bp[start + 3];
|
||||
b[1] = bp[start + 2];
|
||||
b[2] = bp[start + 1];
|
||||
b[3] = bp[start + 0];
|
||||
|
||||
ByteArrayInputStream bas = new ByteArrayInputStream(b);
|
||||
DataInputStream din = new DataInputStream(bas);
|
||||
|
||||
this.base2 = din.readInt();
|
||||
} catch(Exception e)
|
||||
{
|
||||
throw new RuntimeException("error creating uint", e);
|
||||
}
|
||||
}
|
||||
|
||||
public uint(ByteBuffer bp, int start)
|
||||
{
|
||||
try
|
||||
{
|
||||
ByteBuffer bb = ByteBuffer.allocate(4);
|
||||
bb.put(bp.array()[start + 3]);
|
||||
bb.put(bp.array()[start + 2]);
|
||||
bb.put(bp.array()[start + 1]);
|
||||
bb.put(bp.array()[start + 0]);
|
||||
// bb.put(bp.get(start + 3));
|
||||
// bb.put(bp.get(start + 2));
|
||||
// bb.put(bp.get(start + 1));
|
||||
// bb.put(bp.get(start ));
|
||||
bb.flip();
|
||||
this.base2 = bb.getInt();
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
throw new RuntimeException("error creating uint", e);
|
||||
}
|
||||
}
|
||||
|
||||
public uint(int base)
|
||||
{
|
||||
this.base2 = base;
|
||||
}
|
||||
|
||||
public uint(uint that)
|
||||
{
|
||||
this.base2 = that.base2;
|
||||
}
|
||||
|
||||
public uint and(int andval)
|
||||
{
|
||||
int retval = base2 & andval;
|
||||
return new uint(retval);
|
||||
}
|
||||
|
||||
public int flipBits()
|
||||
{
|
||||
int base = ~base2;
|
||||
return base;
|
||||
}
|
||||
|
||||
public int intValue()
|
||||
{
|
||||
return base2;
|
||||
|
||||
}
|
||||
|
||||
public uint or(uint orval)
|
||||
{
|
||||
int retval = base2 | orval.base2;
|
||||
return new uint(retval);
|
||||
}
|
||||
|
||||
public uint shiftLeft(int i)
|
||||
{
|
||||
int base = base2;
|
||||
base <<= i;
|
||||
|
||||
return new uint(base);
|
||||
}
|
||||
|
||||
public void shiftLeftEquals(int i)
|
||||
{
|
||||
int base = base2;
|
||||
base <<= i;
|
||||
base2 = base;
|
||||
}
|
||||
|
||||
public uint shiftRight(int i)
|
||||
{
|
||||
int base = base2;
|
||||
base = base >>> i;
|
||||
return new uint(base);
|
||||
}
|
||||
|
||||
public void shiftRightEquals(int i)
|
||||
{
|
||||
int base = base2;
|
||||
base >>>= i;
|
||||
base2 = base;
|
||||
}
|
||||
|
||||
public short times(short i)
|
||||
{
|
||||
return (short) (intValue() * i);
|
||||
}
|
||||
|
||||
public String toString()
|
||||
{
|
||||
return Integer.toString(base2, 2);
|
||||
}
|
||||
|
||||
}
|
||||
Referência em uma Nova Issue
Bloquear um usuário