/****************************************************************************** * * * 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; } }