org.xiph.speex.ant
Class JSpeexDecoderTask

java.lang.Object
  extended by org.apache.tools.ant.ProjectComponent
      extended by org.apache.tools.ant.Task
          extended by org.xiph.speex.ant.JSpeexDecoderTask
All Implemented Interfaces:
java.lang.Cloneable

public class JSpeexDecoderTask
extends org.apache.tools.ant.Task

Ant Task to Decode an audio file from Speex to PCM Wave. Here is an usage example:

 
 
   
     
       
     
   
 
 

Version:
$Revision: 1.2 $
Author:
Marc Gimpel, Wimba S.A. (mgimpel@horizonwimba.com)

Field Summary
private  int channels
          If input is raw, defines th number of channels (1=mono, 2=stereo).
static java.lang.String COPYRIGHT
          Copyright display String
static int DEBUG
          Print level for messages : Print debug information
private  java.io.File destDir
          Directory to place destination files
private  java.io.File destFile
          Destination file of decoded audio
private  int destFormat
          Defines File format for output audio file (Raw or Wave).
private  boolean enhanced
          Defines whether or not the perceptual enhancement is used.
static int ERROR
          Print level for messages : Print only errors
private  boolean failOnError
           
static int FILE_FORMAT_OGG
          File format for input or output audio file: Ogg
static int FILE_FORMAT_RAW
          File format for input or output audio file: Raw
static int FILE_FORMAT_WAVE
          File format for input or output audio file: Wave
static int INFO
          Print level for messages : Print basic information
private  int loss
          The percentage of packets to lose in the packet loss simulation.
private  int mode
          If input is raw, defines the decoder mode (0=NB, 1=WB and 2-UWB).
private  int nframes
          If input is raw, defines the number of frmaes per packet.
private  int printlevel
          Print level for messages
private  int quality
          If input is raw, defines the quality setting used by the encoder.
private  boolean quiet
          Tells the task to suppress all but the most important output
protected static java.util.Random random
          Random number generator for packet loss simulation.
private  int sampleRate
          If input is raw, defines the sample rate of the audio.
protected  SpeexDecoder speexDecoder
          Speex Decoder
private  java.io.File srcFile
          Source file to decode
private  java.util.Vector srcFileset
          List of source files to decode
private  int srcFormat
          Defines File format for input audio file (Raw, Ogg or Wave).
private  boolean vbr
           
private  float vbr_quality
           
private  boolean verbose
          Tells the task to output as much information as possible
static java.lang.String VERSION
          Version of the Speex Encoder
static int WARN
          Print level for messages : Print only warnings and errors
 
Fields inherited from class org.apache.tools.ant.Task
target, taskName, taskType, wrapper
 
Fields inherited from class org.apache.tools.ant.ProjectComponent
description, location, project
 
Constructor Summary
JSpeexDecoderTask()
           
 
Method Summary
 void addFileset(org.apache.tools.ant.types.FileSet set)
          Handles the fileset child element.
private  java.io.File buildDestFile(java.io.File srcFile)
          Builds and returns the destination file.
 void decode(java.io.File srcPath, java.io.File destPath)
          Decodes a spx file to wave.
 void execute()
          The method executing the task.
protected static int readInt(byte[] data, int offset)
          Converts Little Endian (Windows) bytes to an int (Java uses Big Endian).
protected static int readShort(byte[] data, int offset)
          Converts Little Endian (Windows) bytes to an short (Java uses Big Endian).
private  boolean readSpeexHeader(byte[] packet, int offset, int bytes)
          Reads the header packet.
 void setDestdir(java.io.File dir)
          Handles the destdir attribute.
 void setDestfile(java.io.File file)
          Handles the destfile attribute.
 void setEnhanced(boolean enhanced)
          Handles the enhanced attribute.
 void setFailonerror(boolean failOnError)
          Handles the failonerror attribute.
 void setQuiet(boolean quiet)
          Handles the quiet attribute.
 void setSrcfile(java.io.File file)
          Handles the srcfile attribute.
private  void setupTask(java.io.File srcPath, java.io.File destPath)
          Setup some task variables.
 void setVerbose(boolean verbose)
          Handles the verbose attribute.
 void version()
          Prints the version.
 
Methods inherited from class org.apache.tools.ant.Task
bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType
 
Methods inherited from class org.apache.tools.ant.ProjectComponent
clone, getDescription, getLocation, getProject, setDescription, setLocation, setProject
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

VERSION

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

See Also:
Constant Field Values

COPYRIGHT

public static final java.lang.String COPYRIGHT
Copyright display String

See Also:
Constant Field Values

DEBUG

public static final int DEBUG
Print level for messages : Print debug information

See Also:
Constant Field Values

INFO

public static final int INFO
Print level for messages : Print basic information

See Also:
Constant Field Values

WARN

public static final int WARN
Print level for messages : Print only warnings and errors

See Also:
Constant Field Values

ERROR

public static final int ERROR
Print level for messages : Print only errors

See Also:
Constant Field Values

FILE_FORMAT_RAW

public static final int FILE_FORMAT_RAW
File format for input or output audio file: Raw

See Also:
Constant Field Values

FILE_FORMAT_OGG

public static final int FILE_FORMAT_OGG
File format for input or output audio file: Ogg

See Also:
Constant Field Values

FILE_FORMAT_WAVE

public static final int FILE_FORMAT_WAVE
File format for input or output audio file: Wave

See Also:
Constant Field Values

random

protected static java.util.Random random
Random number generator for packet loss simulation.


speexDecoder

protected SpeexDecoder speexDecoder
Speex Decoder


srcFile

private java.io.File srcFile
Source file to decode


srcFileset

private final java.util.Vector srcFileset
List of source files to decode


destFile

private java.io.File destFile
Destination file of decoded audio


destDir

private java.io.File destDir
Directory to place destination files


failOnError

private boolean failOnError

printlevel

private int printlevel
Print level for messages


quiet

private boolean quiet
Tells the task to suppress all but the most important output


verbose

private boolean verbose
Tells the task to output as much information as possible


srcFormat

private int srcFormat
Defines File format for input audio file (Raw, Ogg or Wave).


destFormat

private int destFormat
Defines File format for output audio file (Raw or Wave).


enhanced

private boolean enhanced
Defines whether or not the perceptual enhancement is used.


mode

private int mode
If input is raw, defines the decoder mode (0=NB, 1=WB and 2-UWB).


quality

private int quality
If input is raw, defines the quality setting used by the encoder.


nframes

private int nframes
If input is raw, defines the number of frmaes per packet.


sampleRate

private int sampleRate
If input is raw, defines the sample rate of the audio.


vbr_quality

private float vbr_quality

vbr

private boolean vbr

channels

private int channels
If input is raw, defines th number of channels (1=mono, 2=stereo).


loss

private int loss
The percentage of packets to lose in the packet loss simulation.

Constructor Detail

JSpeexDecoderTask

public JSpeexDecoderTask()
Method Detail

execute

public void execute()
             throws org.apache.tools.ant.BuildException
The method executing the task.

Overrides:
execute in class org.apache.tools.ant.Task
Throws:
org.apache.tools.ant.BuildException

buildDestFile

private java.io.File buildDestFile(java.io.File srcFile)
Builds and returns the destination file.

Parameters:
srcFile -
Returns:
the destination file.

setupTask

private void setupTask(java.io.File srcPath,
                       java.io.File destPath)
Setup some task variables.

Parameters:
srcPath - the Speex encoded source file.
destPath - the destination file.

addFileset

public void addFileset(org.apache.tools.ant.types.FileSet set)
Handles the fileset child element.

Parameters:
set -

setSrcfile

public void setSrcfile(java.io.File file)
Handles the srcfile attribute.

Parameters:
file - the attribute value converted to a File.

setDestfile

public void setDestfile(java.io.File file)
Handles the destfile attribute.

Parameters:
file - the attribute value converted to a File.

setDestdir

public void setDestdir(java.io.File dir)
Handles the destdir attribute.

Parameters:
dir - the attribute value converted to a File.

setFailonerror

public void setFailonerror(boolean failOnError)
Handles the failonerror attribute.

Parameters:
failOnError - the attribute value converted to a boolean.

setQuiet

public void setQuiet(boolean quiet)
Handles the quiet attribute.

Parameters:
quiet - the attribute value converted to a boolean.

setVerbose

public void setVerbose(boolean verbose)
Handles the verbose attribute.

Parameters:
verbose - the attribute value converted to a boolean.

setEnhanced

public void setEnhanced(boolean enhanced)
Handles the enhanced attribute.

Parameters:
enhanced - the attribute value converted to a boolean.

version

public void version()
Prints the version.


decode

public void decode(java.io.File srcPath,
                   java.io.File destPath)
            throws java.io.IOException
Decodes a spx file to wave.

Parameters:
srcPath - the Speex encoded source file.
destPath - the destination file.
Throws:
java.io.IOException

readSpeexHeader

private boolean readSpeexHeader(byte[] packet,
                                int offset,
                                int bytes)
Reads the header packet.
  0 -  7: speex_string: "Speex   "
  8 - 27: speex_version: "speex-1.0"
 28 - 31: speex_version_id: 1
 32 - 35: header_size: 80
 36 - 39: rate
 40 - 43: mode: 0=narrowband, 1=wb, 2=uwb
 44 - 47: mode_bitstream_version: 4
 48 - 51: nb_channels
 52 - 55: bitrate: -1
 56 - 59: frame_size: 160
 60 - 63: vbr
 64 - 67: frames_per_packet
 68 - 71: extra_headers: 0
 72 - 75: reserved1
 76 - 79: reserved2
 

Parameters:
packet -
offset -
bytes -
Returns:
true if the Speex header was successfully parsed, false otherwise.

readInt

protected static int readInt(byte[] data,
                             int offset)
Converts Little Endian (Windows) bytes to an int (Java uses Big Endian).

Parameters:
data - the data to read.
offset - the offset from which to start reading.
Returns:
the integer value of the reassembled bytes.

readShort

protected static int readShort(byte[] data,
                               int offset)
Converts Little Endian (Windows) bytes to an short (Java uses Big Endian).

Parameters:
data - the data to read.
offset - the offset from which to start reading.
Returns:
the integer value of the reassembled bytes.


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