Package org.xiph.speex.ant
Class JSpeexDecoderTask
- java.lang.Object
-
- org.apache.tools.ant.ProjectComponent
-
- org.apache.tools.ant.Task
-
- org.xiph.speex.ant.JSpeexDecoderTask
-
- All Implemented Interfaces:
java.lang.Cloneable
public class JSpeexDecoderTask extends org.apache.tools.ant.Task
AntTask
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 Stringstatic int
DEBUG
Print level for messages : Print debug informationprivate java.io.File
destDir
Directory to place destination filesprivate java.io.File
destFile
Destination file of decoded audioprivate 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 errorsprivate boolean
failOnError
static int
FILE_FORMAT_OGG
File format for input or output audio file: Oggstatic int
FILE_FORMAT_RAW
File format for input or output audio file: Rawstatic int
FILE_FORMAT_WAVE
File format for input or output audio file: Wavestatic int
INFO
Print level for messages : Print basic informationprivate 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 messagesprivate 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 outputprotected 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 Decoderprivate java.io.File
srcFile
Source file to decodeprivate java.util.Vector
srcFileset
List of source files to decodeprivate 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 possiblestatic java.lang.String
VERSION
Version of the Speex Encoderstatic int
WARN
Print level for messages : Print only warnings and errors
-
Constructor Summary
Constructors Constructor Description JSpeexDecoderTask()
-
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 thefileset
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 thedestdir
attribute.void
setDestfile(java.io.File file)
Handles thedestfile
attribute.void
setEnhanced(boolean enhanced)
Handles theenhanced
attribute.void
setFailonerror(boolean failOnError)
Handles thefailonerror
attribute.void
setQuiet(boolean quiet)
Handles thequiet
attribute.void
setSrcfile(java.io.File file)
Handles thesrcfile
attribute.private void
setupTask(java.io.File srcPath, java.io.File destPath)
Setup some task variables.void
setVerbose(boolean verbose)
Handles theverbose
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
-
-
-
-
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.
-
-
Method Detail
-
execute
public void execute() throws org.apache.tools.ant.BuildException
The method executing the task.- Overrides:
execute
in classorg.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 thefileset
child element.- Parameters:
set
-
-
setSrcfile
public void setSrcfile(java.io.File file)
Handles thesrcfile
attribute.- Parameters:
file
- the attribute value converted to a File.
-
setDestfile
public void setDestfile(java.io.File file)
Handles thedestfile
attribute.- Parameters:
file
- the attribute value converted to a File.
-
setDestdir
public void setDestdir(java.io.File dir)
Handles thedestdir
attribute.- Parameters:
dir
- the attribute value converted to a File.
-
setFailonerror
public void setFailonerror(boolean failOnError)
Handles thefailonerror
attribute.- Parameters:
failOnError
- the attribute value converted to a boolean.
-
setQuiet
public void setQuiet(boolean quiet)
Handles thequiet
attribute.- Parameters:
quiet
- the attribute value converted to a boolean.
-
setVerbose
public void setVerbose(boolean verbose)
Handles theverbose
attribute.- Parameters:
verbose
- the attribute value converted to a boolean.
-
setEnhanced
public void setEnhanced(boolean enhanced)
Handles theenhanced
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.
-
-