Class 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

      Fields 
      Modifier and Type Field Description
      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
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      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.