28package com.jogamp.opengl.util.av;
30import jogamp.opengl.util.av.NullGLMediaPlayer;
32import com.jogamp.common.JogampRuntimeException;
33import com.jogamp.common.util.ReflectionUtil;
36 private static final String AndroidGLMediaPlayerAPI14ClazzName =
"jogamp.opengl.android.av.AndroidGLMediaPlayerAPI14";
37 private static final String FFMPEGMediaPlayerClazzName =
"jogamp.opengl.util.av.impl.FFMPEGMediaPlayer";
38 private static final String OMXGLMediaPlayerClazzName =
"jogamp.opengl.util.av.impl.OMXGLMediaPlayer";
39 private static final String isAvailableMethodName =
"isAvailable";
45 sink =
create(cl, AndroidGLMediaPlayerAPI14ClazzName);
48 sink =
create(cl, FFMPEGMediaPlayerClazzName);
56 if(
GLMediaPlayer.
DEBUG) { System.err.println(
"GLMediaPlayerFactory: Using NullGLMediaPlayer"); }
57 return new NullGLMediaPlayer();
62 if(
GLMediaPlayer.
DEBUG) { System.err.println(
"GLMediaPlayerFactory: Trying: "+implName); }
63 if(((Boolean)ReflectionUtil.callStaticMethod(implName, isAvailableMethodName,
null,
null, cl)).booleanValue()) {
65 if(
GLMediaPlayer.
DEBUG) { System.err.println(
"GLMediaPlayerFactory: Using: "+implName); }
68 if(
GLMediaPlayer.
DEBUG) { System.err.println(
"GLMediaPlayerFactory: Not available: "+implName); }
70 }
catch (
final JogampRuntimeException jre) {
72 final Throwable cause = jre.getCause();
73 System.err.println(
"GLMediaPlayerFactory: Not available: "+implName);
74 System.err.println(
"Caught cause "+cause.getClass().getName()+
": "+cause.getMessage());
76 }
catch (
final Throwable t) {
78 System.err.println(
"GLMediaPlayerFactory: Not available: "+implName);
79 System.err.println(
"Caught "+t.getClass().getName()+
": "+t.getMessage()); t.printStackTrace();