Class JSpeexDecoderTask

java.lang.Object
org.apache.tools.ant.ProjectComponent
org.apache.tools.ant.Task
org.xiph.speex.ant.JSpeexDecoderTask
All Implemented Interfaces:
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

    Fields
    Modifier and Type
    Field
    Description
    private int
    If input is raw, defines th number of channels (1=mono, 2=stereo).
    static final String
    Copyright display String
    static final int
    Print level for messages : Print debug information
    private File
    Directory to place destination files
    private File
    Destination file of decoded audio
    private int
    Defines File format for output audio file (Raw or Wave).
    private boolean
    Defines whether or not the perceptual enhancement is used.
    static final int
    Print level for messages : Print only errors
    private boolean
     
    static final int
    File format for input or output audio file: Ogg
    static final int
    File format for input or output audio file: Raw
    static final int
    File format for input or output audio file: Wave
    static final int
    Print level for messages : Print basic information
    private int
    The percentage of packets to lose in the packet loss simulation.
    private int
    If input is raw, defines the decoder mode (0=NB, 1=WB and 2-UWB).
    private int
    If input is raw, defines the number of frmaes per packet.
    private int
    Print level for messages
    private int
    If input is raw, defines the quality setting used by the encoder.
    private boolean
    Tells the task to suppress all but the most important output
    protected static Random
    Random number generator for packet loss simulation.
    private int
    If input is raw, defines the sample rate of the audio.
    protected SpeexDecoder
    Speex Decoder
    private File
    Source file to decode
    private final Vector
    List of source files to decode
    private int
    Defines File format for input audio file (Raw, Ogg or Wave).
    private boolean
     
    private float
     
    private boolean
    Tells the task to output as much information as possible
    static final String
    Version of the Speex Encoder
    static final int
    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

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addFileset(org.apache.tools.ant.types.FileSet set)
    Handles the fileset child element.
    private File
    Builds and returns the destination file.
    void
    decode(File srcPath, File destPath)
    Decodes a spx file to wave.
    void
    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
    Handles the destdir attribute.
    void
    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
    Handles the srcfile attribute.
    private void
    setupTask(File srcPath, File destPath)
    Setup some task variables.
    void
    setVerbose(boolean verbose)
    Handles the verbose attribute.
    void
    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 Details

    • VERSION

      public static final String VERSION
      Version of the Speex Encoder
      See Also:
    • DEBUG

      public static final int DEBUG
      Print level for messages : Print debug information
      See Also:
    • INFO

      public static final int INFO
      Print level for messages : Print basic information
      See Also:
    • WARN

      public static final int WARN
      Print level for messages : Print only warnings and errors
      See Also:
    • ERROR

      public static final int ERROR
      Print level for messages : Print only errors
      See Also:
    • FILE_FORMAT_RAW

      public static final int FILE_FORMAT_RAW
      File format for input or output audio file: Raw
      See Also:
    • FILE_FORMAT_OGG

      public static final int FILE_FORMAT_OGG
      File format for input or output audio file: Ogg
      See Also:
    • FILE_FORMAT_WAVE

      public static final int FILE_FORMAT_WAVE
      File format for input or output audio file: Wave
      See Also:
    • random

      protected static Random random
      Random number generator for packet loss simulation.
    • speexDecoder

      protected SpeexDecoder speexDecoder
      Speex Decoder
    • srcFile

      private File srcFile
      Source file to decode
    • srcFileset

      private final Vector srcFileset
      List of source files to decode
    • destFile

      private File destFile
      Destination file of decoded audio
    • destDir

      private 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 Details

    • JSpeexDecoderTask

      public JSpeexDecoderTask()
  • Method Details

    • 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 File buildDestFile(File srcFile)
      Builds and returns the destination file.
      Parameters:
      srcFile -
      Returns:
      the destination file.
    • setupTask

      private void setupTask(File srcPath, 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(File file)
      Handles the srcfile attribute.
      Parameters:
      file - the attribute value converted to a File.
    • setDestfile

      public void setDestfile(File file)
      Handles the destfile attribute.
      Parameters:
      file - the attribute value converted to a File.
    • setDestdir

      public void setDestdir(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(File srcPath, File destPath) throws IOException
      Decodes a spx file to wave.
      Parameters:
      srcPath - the Speex encoded source file.
      destPath - the destination file.
      Throws:
      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.