org.xiph.speex
Class SpeexDecoder

java.lang.Object
  extended byorg.xiph.speex.SpeexDecoder

public class SpeexDecoder
extends java.lang.Object

Main Speex Decoder class. This class decodes the given Speex packets into PCM 16bit samples.

Here's an example that decodes and recovers one Speex packet.

 SpeexDecoder speexDecoder = new SpeexDecoder();
 speexDecoder.processData(data, packetOffset, packetSize);
 byte[] decoded = new byte[speexDecoder.getProcessedBataByteSize()];
 speexDecoder.getProcessedData(decoded, 0);
 

Version:
$Revision: 1.12 $
Author:
Jim Lawrence, helloNetwork.com, Marc Gimpel, Wimba S.A. (marc@wimba.com)

Field Summary
private  Bits bits
           
private  int channels
           
private  float[] decodedData
           
private  Decoder decoder
           
private  int frameSize
           
private  short[] outputData
           
private  int outputSize
           
private  int sampleRate
           
static java.lang.String VERSION
          Version of the Speex Decoder
 
Constructor Summary
SpeexDecoder()
          Constructor
 
Method Summary
 int getChannels()
          Returns the number of channels.
 int getProcessedData(byte[] data, int offset)
          Pull the decoded data out into a byte array at the given offset and returns the number of bytes processed and just read.
 int getProcessedData(short[] data, int offset)
          Pull the decoded data out into a short array at the given offset and returns tne number of shorts processed and just read
 int getProcessedDataByteSize()
          Returns the number of bytes processed and ready to be read.
 int getSampleRate()
          Returns the sample rate.
 boolean init(int mode, int sampleRate, int channels, boolean enhanced)
          Initialise the Speex Decoder.
 void processData(boolean lost)
          This is where the actual decoding takes place.
 void processData(byte[] data, int offset, int len)
          This is where the actual decoding takes place
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

VERSION

public static final java.lang.String VERSION
Version of the Speex Decoder

See Also:
Constant Field Values

sampleRate

private int sampleRate

channels

private int channels

decodedData

private float[] decodedData

outputData

private short[] outputData

outputSize

private int outputSize

bits

private Bits bits

decoder

private Decoder decoder

frameSize

private int frameSize
Constructor Detail

SpeexDecoder

public SpeexDecoder()
Constructor

Method Detail

init

public boolean init(int mode,
                    int sampleRate,
                    int channels,
                    boolean enhanced)
Initialise the Speex Decoder.

Parameters:
mode -
sampleRate -
channels -
enhanced -
Returns:
true if initialisation successful.

getSampleRate

public int getSampleRate()
Returns the sample rate.

Returns:
the sample rate.

getChannels

public int getChannels()
Returns the number of channels.

Returns:
the number of channels.

getProcessedData

public int getProcessedData(byte[] data,
                            int offset)
Pull the decoded data out into a byte array at the given offset and returns the number of bytes processed and just read.

Parameters:
data -
offset -
Returns:
the number of bytes processed and just read.

getProcessedData

public int getProcessedData(short[] data,
                            int offset)
Pull the decoded data out into a short array at the given offset and returns tne number of shorts processed and just read

Parameters:
data -
offset -
Returns:
the number of samples processed and just read.

getProcessedDataByteSize

public int getProcessedDataByteSize()
Returns the number of bytes processed and ready to be read.

Returns:
the number of bytes processed and ready to be read.

processData

public void processData(byte[] data,
                        int offset,
                        int len)
                 throws java.io.StreamCorruptedException
This is where the actual decoding takes place

Parameters:
data - - the Speex data (frame) to decode. If it is null, the packet is supposed lost.
offset - - the offset from which to start reading the data.
len - - the length of data to read (Speex frame size).
Throws:
java.io.StreamCorruptedException - If the input stream is invalid.

processData

public void processData(boolean lost)
                 throws java.io.StreamCorruptedException
This is where the actual decoding takes place.

Parameters:
lost - - true if the Speex packet has been lost.
Throws:
java.io.StreamCorruptedException - If the input stream is invalid.


Copyright © 1999-2004 Wimba S.A. All Rights Reserved.