SILK8.java :  » UnTagged » sneakbox » org » sipdroid » codecs » Android Open Source

Android Open Source » UnTagged » sneakbox 
sneakbox » org » sipdroid » codecs » SILK8.java
/*
 * Copyright (C) 2009 The Sipdroid Open Source Project
 * 
 * This file is part of Sneakbox (http://sneakbox.googlecode.com)
 * 
 * Sneakbox is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 3 of the License, or
 * (at your option) any later version.
 * 
 * This source code is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this source code; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */
package org.sipdroid.codecs;

import org.sneakbox.sipua.ui.Sneakbox;

class SILK8 extends CodecBase implements Codec {   
  /* 
   *                 | fs (Hz) | BR (kbps)
   * ----------------+---------+---------
   * Narrowband     | 8000    | 6 -20
   * Mediumband      | 12000   | 7 -25
   * Wideband        | 16000   | 8 -30
   * Super Wideband  | 24000   | 12 -40
   *
   * Table 1: fs specifies the audio sampling frequency in Hertz (Hz); BR
   * specifies the adaptive bit rate range in kilobits per second (kbps).
   * 
   * Complexity can be scaled to optimize for CPU resources in real-time,
   * mostly in trade-off to network bit rate. 0 is least CPU demanding and
   * highest bit rate. 
   */
  private static final int DEFAULT_COMPLEXITY = 0;
  
  SILK8() {
    CODEC_USER_NAME = "SILK";  
    CODEC_NAME = "silk8";
    CODEC_DESCRIPTION = "6-20kbit"; 
    CODEC_NUMBER = 117;
    CODEC_DEFAULT_SETTING = "always";
    super.update();
  }


  void load() {
    try {
//      System.loadLibrary("silkcommon"); 
      System.loadLibrary("silk8_jni");
      super.load();
    } catch (Throwable e) {
      if (!Sneakbox.release) e.printStackTrace();
    }
    
  }  
 
  public native int open(int compression);
  public native int decode(byte encoded[], short lin[], int size);
  public native int encode(short lin[], int offset, byte encoded[], int size);
  public native void close();

  public void init() {
    load();
    if (isLoaded())
      open(DEFAULT_COMPLEXITY);
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.