Package com.limelight.binding

Source Code of com.limelight.binding.PlatformBinding

package com.limelight.binding;

import java.net.InetAddress;
import java.net.UnknownHostException;
import java.io.File;
import java.io.IOException;

import com.limelight.binding.audio.AlsaAudioRenderer;
import com.limelight.binding.video.ImxDecoder;
import com.limelight.binding.video.ImxDecoderRenderer;
import com.limelight.binding.crypto.PcCryptoProvider;
import com.limelight.binding.video.OmxDecoder;
import com.limelight.binding.video.OmxDecoderRenderer;
import com.limelight.binding.video.AbstractVideoRenderer;
import com.limelight.nvstream.av.audio.AudioRenderer;
import com.limelight.nvstream.av.video.VideoDecoderRenderer;
import com.limelight.nvstream.http.LimelightCryptoProvider;
import com.limelight.LimeLog;

/**
* Used for platform-specific video/audio bindings.
* @author Cameron Gutman<br>
* Iwan Timmer
*/
public class PlatformBinding {
  /**
   * Gets an instance of a video decoder/renderer.
   * @return a video decoder and renderer
   */
  public static VideoDecoderRenderer getVideoDecoderRenderer(boolean debug) {
    AbstractVideoRenderer renderer = null;
    if (OmxDecoder.load())
      renderer = new OmxDecoderRenderer();
    else if (ImxDecoder.load())
      renderer = new ImxDecoderRenderer();

    renderer.debug = debug;
    return renderer;
  }
 
  /**
   * Gets the name of this device.
   * <br>Currently, the hostname of the system.
   * @return the name of this device
   */
  public static String getDeviceName() {
    try {
      return InetAddress.getLocalHost().getHostName();
    } catch (UnknownHostException e) {
      return "Limelight";
    }
  }
 
  /**
   * Gets an instance of an audio decoder/renderer.
   * @return an audio decoder and renderer
   */
  public static AudioRenderer getAudioRenderer(String device) {
    //Try to load local libopus
    try {
      Runtime.getRuntime().load(new File(".").getCanonicalPath()+File.separator+"libopus.so");
      LimeLog.warning("Use local opus library");
    } catch(IOException e) {
      e.printStackTrace();
    }
     
    return new AlsaAudioRenderer(device);
  }
 
  /**
   * Gets an instance of a crypto provider
   * @return a PcCryptoProvider object
   */
  public static LimelightCryptoProvider getCryptoProvider() {
    return new PcCryptoProvider();
  }
}
TOP

Related Classes of com.limelight.binding.PlatformBinding

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.