/******************************************************************************
* *
* Copyright (c) 1999-2003 Wimba S.A., All Rights Reserved. *
* *
* COPYRIGHT: *
* This software is the property of Wimba S.A. *
* This software is redistributed under the Xiph.org variant of *
* the BSD license. *
* Redistribution and use in source and binary forms, with or without *
* modification, are permitted provided that the following conditions *
* are met: *
* - Redistributions of source code must retain the above copyright *
* notice, this list of conditions and the following disclaimer. *
* - Redistributions in binary form must reproduce the above copyright *
* notice, this list of conditions and the following disclaimer in the *
* documentation and/or other materials provided with the distribution. *
* - Neither the name of Wimba, the Xiph.org Foundation nor the names of *
* its contributors may be used to endorse or promote products derived *
* from this software without specific prior written permission. *
* *
* WARRANTIES: *
* This software is made available by the authors in the hope *
* that it will be useful, but without any warranty. *
* Wimba S.A. is not liable for any consequence related to the *
* use of the provided software. *
* *
* Class: SpeexEncoding.java *
* *
* Author: Marc GIMPEL *
* *
* Date: 12th July 2003 *
* *
******************************************************************************/
/* $Id: SpeexEncoding.java,v 1.2 2004/10/21 16:21:58 mgimpel Exp $ */
package org.xiph.speex.spi;
import javax.sound.sampled.AudioFormat;
/**
* Encodings used by the Speex audio decoder.
*
* @author Marc Gimpel, Wimba S.A. (mgimpel@horizonwimba.com)
* @version $Revision: 1.2 $
*/
public class SpeexEncoding
extends AudioFormat.Encoding
{
/** Specifies any Speex encoding. */
public static final SpeexEncoding SPEEX = new SpeexEncoding("SPEEX");
/** Specifies constant bitrate, quality 0, Speex encoding. */
public static final SpeexEncoding SPEEX_Q0 =
new SpeexEncoding("SPEEX_quality_0", 0, false);
/** Specifies constant bitrate, quality 1, Speex encoding. */
public static final SpeexEncoding SPEEX_Q1 =
new SpeexEncoding("SPEEX_quality_1", 1, false);
/** Specifies constant bitrate, quality 2, Speex encoding. */
public static final SpeexEncoding SPEEX_Q2 =
new SpeexEncoding("SPEEX_quality_2", 2, false);
/** Specifies constant bitrate, quality 3, Speex encoding. */
public static final SpeexEncoding SPEEX_Q3 =
new SpeexEncoding("SPEEX_quality_3", 3, false);
/** Specifies constant bitrate, quality 4, Speex encoding. */
public static final SpeexEncoding SPEEX_Q4 =
new SpeexEncoding("SPEEX_quality_4", 4, false);
/** Specifies constant bitrate, quality 5, Speex encoding. */
public static final SpeexEncoding SPEEX_Q5 =
new SpeexEncoding("SPEEX_quality_5", 5, false);
/** Specifies constant bitrate, quality 6, Speex encoding. */
public static final SpeexEncoding SPEEX_Q6 =
new SpeexEncoding("SPEEX_quality_6", 6, false);
/** Specifies constant bitrate, quality 7, Speex encoding. */
public static final SpeexEncoding SPEEX_Q7 =
new SpeexEncoding("SPEEX_quality_7", 7, false);
/** Specifies constant bitrate, quality 8, Speex encoding. */
public static final SpeexEncoding SPEEX_Q8 =
new SpeexEncoding("SPEEX_quality_8", 8, false);
/** Specifies constant bitrate, quality 9, Speex encoding. */
public static final SpeexEncoding SPEEX_Q9 =
new SpeexEncoding("SPEEX_quality_9", 9, false);
/** Specifies constant bitrate, quality 10, Speex encoding. */
public static final SpeexEncoding SPEEX_Q10 =
new SpeexEncoding("SPEEX_quality_10", 10, false);
/** Specifies variable bitrate, quality 0, Speex encoding. */
public static final SpeexEncoding SPEEX_VBR0 =
new SpeexEncoding("SPEEX_VBR_quality_0", 0, true);
/** Specifies variable bitrate, quality 1, Speex encoding. */
public static final SpeexEncoding SPEEX_VBR1 =
new SpeexEncoding("SPEEX_VBR_quality_1", 1, true);
/** Specifies variable bitrate, quality 2, Speex encoding. */
public static final SpeexEncoding SPEEX_VBR2 =
new SpeexEncoding("SPEEX_VBR_quality_2", 2, true);
/** Specifies variable bitrate, quality 3, Speex encoding. */
public static final SpeexEncoding SPEEX_VBR3 =
new SpeexEncoding("SPEEX_VBR_quality_3", 3, true);
/** Specifies variable bitrate, quality 4, Speex encoding. */
public static final SpeexEncoding SPEEX_VBR4 =
new SpeexEncoding("SPEEX_VBR_quality_4", 4, true);
/** Specifies variable bitrate, quality 5, Speex encoding. */
public static final SpeexEncoding SPEEX_VBR5 =
new SpeexEncoding("SPEEX_VBR_quality_5", 5, true);
/** Specifies variable bitrate, quality 6, Speex encoding. */
public static final SpeexEncoding SPEEX_VBR6 =
new SpeexEncoding("SPEEX_VBR_quality_6", 6, true);
/** Specifies variable bitrate, quality 7, Speex encoding. */
public static final SpeexEncoding SPEEX_VBR7 =
new SpeexEncoding("SPEEX_VBR_quality_7", 7, true);
/** Specifies variable bitrate, quality 8, Speex encoding. */
public static final SpeexEncoding SPEEX_VBR8 =
new SpeexEncoding("SPEEX_VBR_quality_8", 8, true);
/** Specifies variable bitrate, quality 9, Speex encoding. */
public static final SpeexEncoding SPEEX_VBR9 =
new SpeexEncoding("SPEEX_VBR_quality_9", 9, true);
/** Specifies variable bitrate, quality 10, Speex encoding. */
public static final SpeexEncoding SPEEX_VBR10 =
new SpeexEncoding("SPEEX_VBR_quality_10", 10, true);
/** Default quality setting for the Speex encoding. */
public static final int DEFAULT_QUALITY = 3;
/** Default VBR setting for the Speex encoding. */
public static final boolean DEFAULT_VBR = false;
/** Quality setting for the Speex encoding. */
protected int quality;
/** Defines whether or not the encoding is Variable Bit Rate. */
protected boolean vbr;
/**
* Constructs a new encoding.
* @param name - Name of the Speex encoding.
* @param quality - Quality setting for the Speex encoding.
* @param vbr - Defines whether or not the encoding is Variable Bit Rate.
*/
public SpeexEncoding(final String name,
final int quality,
final boolean vbr)
{
super(name);
this.quality = quality;
this.vbr = vbr;
}
/**
* Constructs a new encoding.
* @param name - Name of the Speex encoding.
*/
public SpeexEncoding(final String name)
{
this(name, DEFAULT_QUALITY, DEFAULT_VBR);
}
/**
* Returns the quality setting for the Speex encoding.
* @return the quality setting for the Speex encoding.
*/
public int getQuality()
{
return quality;
}
/**
* Returns whether or not the encoding is Variable Bit Rate.
* @return whether or not the encoding is Variable Bit Rate.
*/
public boolean isVBR()
{
return vbr;
}
}