JOGL v2.6.0-rc-20250712
JOGL, High-Performance Graphics Binding for Java™ (public API).
com.jogamp.opengl.util.av.GLMediaPlayer Interface Reference

GLMediaPlayer interface specifies a TextureSequence state machine using a multiplexed audio/video stream as it's source. More...

Inheritance diagram for com.jogamp.opengl.util.av.GLMediaPlayer:
Collaboration diagram for com.jogamp.opengl.util.av.GLMediaPlayer:

Classes

class  Chapter
 Chapter meta-data of stream, see GLMediaPlayer#getChapters(). More...
 
class  EventMask
 Changes attributes event mask. More...
 
interface  GLMediaEventListener
 As the contract of GLMediaFrameListener and TexSeqEventListener requests, implementations of GLMediaEventListener shall: More...
 
interface  GLMediaFrameListener
 
enum  State
 See Lifecycle. More...
 
class  StreamException
 A StreamException encapsulates a caught exception in the decoder thread, a.k.a StreamWorker, see See StreamWorker Error Handling. More...
 

Public Member Functions

void printNativeInfo (final PrintStream out)
 Print native library information of used implementation to given out PrintStream. More...
 
int getTextureCount ()
 
void setTextureUnit (int u)
 Sets the texture unit. More...
 
void setTextureMinMagFilter (int[] minMagFilter)
 Sets the texture min-mag filter, defaults to GL#GL_NEAREST. More...
 
void setTextureWrapST (int[] wrapST)
 Sets the texture min-mag filter, defaults to GL#GL_CLAMP_TO_EDGE. More...
 
boolean useARatioAdjustment ()
 Returning true indicates texture correction for aspect-ratio in the shader.Graph's Region shader will utilize setTexCoordBBox(Texture, AABBox, boolean, float[], boolean) for texture-coordinate bounding-box calculation. Returning false indicates no correction for aspect-ratio in the shader. Graph's Region shader will utilize setTexCoordBBoxSimple(Texture, AABBox, float[], boolean) for texture-coordinate bounding-box calculation. Default value is implementation specific and toggling is optional.
See also
setTexCoordBBox(Texture, AABBox, boolean, float[], boolean)
setTexCoordBBoxSimple(Texture, AABBox, float[], boolean)
useARatioLetterbox()
More...
 
void setARatioAdjustment (final boolean v)
 Toggles useARatioLetterbox().Default value is implementation specific and toggling is optional.
See also
useARatioLetterbox()
useARatioAdjustment()
More...
 
boolean useARatioLetterbox ()
 Returns whether useARatioAdjustment() shall add letter-box space to match aspect-ratio, otherwise it will be zoomed in.Default value is implementation specific and toggling is optional.
See also
useARatioAdjustment()
setARatioLetterbox(boolean, Vec4f)
More...
 
Vec4f getARatioLetterboxBackColor ()
 Returns useARatioLetterbox() background color for added letter-box space, defaults to transparent zero. More...
 
void setARatioLetterbox (final boolean v, Vec4f backColor)
 Toggles useARatioLetterbox().Default value is implementation specific and toggling is optional. Impacts only if useARatioAdjustment() returns true.
Parameters
vnew value for useARatioLetterbox()
backColoroptional background color for added letter-box space, defaults to transparent zero
See also
useARatioLetterbox()
useARatioAdjustment()
More...
 
void setAudioChannelLimit (final int cc)
 Limit maximum supported audio channels by user. More...
 
void playStream (Uri streamLoc, int vid, int aid, int sid, int textureCount) throws IllegalStateException, IllegalArgumentException
 Issues asynchronous stream initialization. More...
 
void playStream (final Uri streamLoc, final int vid, final String alang, final int aid, final String slang, final int sid, final int reqTextureCount) throws IllegalStateException, IllegalArgumentException
 Same as playStream(Uri, int, int, int, int), but providing desired audio- and subtile languages to be selected. More...
 
void switchStream (final int vid, final int aid, final int sid) throws IllegalStateException, IllegalArgumentException
 Switches current playStream(Uri, int, int, int, int) to given stream IDs and continues at same getVideoPTS(). More...
 
StreamException getStreamException ()
 Returns the StreamException caught in the decoder thread, or null if none occured. More...
 
void initGL (GL gl) throws IllegalStateException, StreamException, GLException
 Initializes OpenGL related resources. More...
 
AudioSink getAudioSink ()
 If implementation uses a AudioSink, it's instance will be returned. More...
 
State destroy (GL gl)
 Releases the GL, stream and other resources, including attached user objects. More...
 
State stop ()
 Stops streaming and releases the GL, stream and other resources, but keeps attached user objects. More...
 
boolean setPlaySpeed (float rate)
 Sets the playback speed. More...
 
float getPlaySpeed ()
 Returns the playback speed. More...
 
boolean setAudioVolume (float v)
 Sets the audio volume, [0f..1f]. More...
 
float getAudioVolume ()
 Returns the audio volume. More...
 
boolean isAudioMuted ()
 Returns true if audio is muted, i.e. More...
 
State resume ()
 Starts or resumes the StreamWorker decoding thread. More...
 
State pause (boolean flush)
 Pauses the StreamWorker decoding thread. More...
 
int seek (int msec)
 Seeks to the new absolute position. More...
 
State getState ()
 See Lifecycle. More...
 
int[] getVStreams ()
 Return an array of detected video stream IDs. More...
 
String[] getVLangs ()
 Return an array of detected video stream language codes, matching getVStreams() array and its indices. More...
 
int getVID ()
 Return the video stream id, see audio and video Stream IDs. More...
 
int getNextVID ()
 Returns the next video stream id, rotates. More...
 
int[] getAStreams ()
 Return an array of detected audio stream IDs. More...
 
String[] getALangs ()
 Return an array of detected audio stream language codes, matching getAStreams() array and its indices. More...
 
int getAID ()
 Return the audio stream id, see audio and video Stream IDs. More...
 
int getNextAID ()
 Returns the next audio stream id, rotates. More...
 
int[] getSStreams ()
 Return an array of detected subtitle stream IDs. More...
 
String[] getSLangs ()
 Return an array of detected subtitle stream language codes, matching getSStreams() array and its indices. More...
 
int getSID ()
 Return the subtitle stream id, see audio and video Stream IDs. More...
 
int getNextSID ()
 Returns the next subtitle stream id, rotates including no-stream. More...
 
boolean hasStreamID (int id)
 Return whether the given stream ID is available, i.e. More...
 
String getLang (int id)
 Return the matching language code of given stream ID, matching one of the stream IDs in getVStreams(), getAStreams() or getSStreams(). More...
 
int getDecodedFrameCount ()
 
int getPresentedFrameCount ()
 
PTS getPTS ()
 Returns current System Clock Reference (SCR) presentation timestamp (PTS). More...
 
int getVideoPTS ()
 Returns current video presentation timestamp (PTS) in milliseconds of getLastTexture(), try using getPTS(). More...
 
int getAudioPTS ()
 Returns current audio presentation timestamp (PTS) in milliseconds, try using getPTS(). More...
 
TextureSequence.TextureFrame getLastTexture () throws IllegalStateException
 Returns the last updated texture.In case the instance is just initialized, it shall return a TextureFrame object with valid attributes. The texture content may be undefined until the first call of getNextTexture(GL).
Not blocking.
Exceptions
IllegalStateExceptionif instance is not initialized
More...
 
TextureSequence.TextureFrame getNextTexture (GL gl) throws IllegalStateException
 Returns the next texture to be rendered.Implementation shall return the next frame if available, may block if a next frame may arrive soon. Otherwise implementation shall return the last frame. Shall return null in case no next or last frame is available.
Exceptions
IllegalStateExceptionif instance is not initialized
More...
 
Uri getUri ()
 Return the stream location, as set by playStream(Uri, int, int, int, int). More...
 
CodecID getVideoCodecID ()
 Warning: Optional information, may not be supported by implementation. More...
 
String getVideoCodec ()
 Warning: Optional information, may not be supported by implementation. More...
 
CodecID getAudioCodecID ()
 Warning: Optional information, may not be supported by implementation. More...
 
String getAudioCodec ()
 Warning: Optional information, may not be supported by implementation. More...
 
CodecID getSubtitleCodecID ()
 Warning: Optional information, may not be supported by implementation. More...
 
String getSubtitleCodec ()
 Warning: Optional information, may not be supported by implementation. More...
 
int getVideoFrames ()
 Warning: Optional information, may not be supported by implementation. More...
 
int getAudioFrames ()
 Warning: Optional information, may not be supported by implementation. More...
 
int getDuration ()
 Return total duration of stream in msec. More...
 
long getStreamBitrate ()
 Warning: Optional information, may not be supported by implementation. More...
 
int getVideoBitrate ()
 Warning: Optional information, may not be supported by implementation. More...
 
int getAudioBitrate ()
 Warning: Optional information, may not be supported by implementation. More...
 
float getFramerate ()
 Warning: Optional information, may not be supported by implementation. More...
 
boolean isGLOriented ()
 Returns true if the video frame is oriented in OpenGL's coordinate system, origin at bottom left. More...
 
int getWidth ()
 Returns the width of the video. More...
 
int getHeight ()
 Returns the height of the video. More...
 
String getTitle ()
 Returns title meta-data from stream, available after State#Initialized is reached after issuing playStream(Uri, int, int, int, int). More...
 
Chapter[] getChapters ()
 Returns Chapter meta-data from stream, available after State#Initialized is reached after issuing playStream(Uri, int, int, int, int). More...
 
Chapter getChapter (int msec)
 Returns Chapter covering given time position in milliseconds or null if none covers given time. More...
 
String toString ()
 Returns a string representation of this player, incl. More...
 
String getPerfString ()
 Returns a string representation of this player's performance values. More...
 
void addEventListener (GLMediaEventListener l)
 Adds a GLMediaEventListener to this player. More...
 
void removeEventListener (GLMediaEventListener l)
 Removes a GLMediaEventListener to this player. More...
 
GLMediaEventListener[] getEventListeners ()
 Return all GLMediaEventListener of this player. More...
 
void addFrameListener (GLMediaFrameListener l)
 Adds a GLMediaFrameListener to this player. More...
 
void removeFrameListener (GLMediaFrameListener l)
 Removes a GLMediaFrameListener to this player. More...
 
GLMediaFrameListener[] getFrameListeners ()
 Return all GLMediaFrameListener of this player. More...
 
void setSubtitleEventListener (SubtitleEventListener l)
 Sets the SubtitleEventListener for this player. More...
 
SubtitleEventListener getSubtitleEventListener ()
 Returns the setSubtitleEventListener(SubtitleEventListener) of this player. More...
 
Object getAttachedObject (String name)
 Returns the attached user object for the given name. More...
 
Object attachObject (String name, Object obj)
 Attaches the user object for the given name. More...
 
Object detachObject (String name)
 Detaches the user object for the given name. More...
 
- Public Member Functions inherited from com.jogamp.opengl.util.texture.TextureSequence
int getTextureTarget ()
 Returns the texture target used by implementation. More...
 
int getTextureUnit ()
 Return the texture unit used to render the current frame. More...
 
int[] getTextureMinMagFilter ()
 
int[] getTextureWrapST ()
 
boolean useARatioAdjustment ()
 Returning true indicates texture correction for aspect-ratio in the shader. More...
 
void setARatioAdjustment (final boolean v)
 Toggles useARatioLetterbox(). More...
 
boolean useARatioLetterbox ()
 Returns whether useARatioAdjustment() shall add letter-box space to match aspect-ratio, otherwise it will be zoomed in. More...
 
Vec4f getARatioLetterboxBackColor ()
 Returns useARatioLetterbox() background color for added letter-box space, defaults to transparent zero. More...
 
void setARatioLetterbox (final boolean v, Vec4f backColor)
 Toggles useARatioLetterbox(). More...
 
boolean isTextureAvailable ()
 Returns true if texture source is ready and a texture is available via getNextTexture(GL) and getLastTexture(). More...
 
TextureFrame getLastTexture () throws IllegalStateException
 Returns the last updated texture. More...
 
TextureFrame getNextTexture (GL gl) throws IllegalStateException
 Returns the next texture to be rendered. More...
 
String getRequiredExtensionsShaderStub () throws IllegalStateException
 In case a shader extension is required, based on the implementation and the runtime GL profile, this method returns the preprocessor macros, e.g. More...
 
String getTextureSampler2DType () throws IllegalStateException
 Returns either sampler2D or samplerExternalOES depending on getLastTexture(). More...
 
String setTextureLookupFunctionName (String texLookupFuncName) throws IllegalStateException
 Set the desired shader code's texture lookup function name. More...
 
String getTextureLookupFunctionName () throws IllegalStateException
 Returns the chosen lookup function name, which can be set via setTextureLookupFunctionName(String). More...
 
String getTextureLookupFragmentShaderImpl () throws IllegalStateException
 Returns the complete texture2D lookup function code of type. More...
 
String getTextureFragmentShaderHashID ()
 Returns the concatenated string representing the following values utilized for getTextureFragmentShaderHashCode(). More...
 
int getTextureFragmentShaderHashCode ()
 Returns the hash code of the string getTextureFragmentShaderHashID(). More...
 

Static Public Attributes

static final boolean DEBUG = Debug.debug("GLMediaPlayer")
 
static final boolean DEBUG_AVSYNC = Debug.debug("GLMediaPlayer.AVSync")
 
static final boolean DEBUG_NATIVE = Debug.debug("GLMediaPlayer.Native")
 
static final int TEXTURE_COUNT_DEFAULT = 3
 Default texture count, value {@value}. More...
 
static final int TEXTURE_COUNT_MIN = 1
 Minimum texture count, value {@value}. More...
 
static final int STREAM_ID_NONE = -2
 Constant {@value} for mute or not available. More...
 
static final int STREAM_ID_AUTO = -1
 Constant {@value} for auto or unspecified. More...
 
static final Uri.Encoded CameraInputScheme = Uri.Encoded.cast("camera")
 Uri scheme name {@value} for camera input. More...
 
static final String CameraPropSizeS = "size"
 Camera property {@value}, size as string, e.g. More...
 
static final String CameraPropWidth = "width"
 Camera property {@value}. More...
 
static final String CameraPropHeight = "height"
 Camera property {@value}. More...
 
static final String CameraPropRate = "rate"
 Camera property {@value}. More...
 
static final int MAX_VIDEO_ASYNC = 22
 Maximum video frame async of {@value} milliseconds. More...
 
static final int MIN_VIDEO_ASYNC = 11
 
- Static Public Attributes inherited from com.jogamp.opengl.util.texture.TextureSequence
static final String samplerExternalOES = "samplerExternalOES"
 
static final String sampler2D = "sampler2D"
 

Additional Inherited Members

- Static Public Member Functions inherited from com.jogamp.opengl.util.texture.TextureSequence
static void setTexCoordBBoxSimple (final Texture tex, final AABBox box, final float[] colorTexBBox, final boolean verbose)
 Calculates the texture coordinates bounding box w/o correcting aspect-ratio. More...
 
static void setTexCoordBBox (final Texture tex, final AABBox box, final boolean letterBox, final float[] colorTexBBox, final boolean verbose)
 Calculates the texture coordinates bounding box while correcting for aspect-ratio. More...
 

Detailed Description

GLMediaPlayer interface specifies a TextureSequence state machine using a multiplexed audio/video stream as it's source.

Audio maybe supported and played back internally or via an AudioSink implementation.

Audio and video streams can be selected or muted via playStream(Uri, int, int, int, int) or playStream(Uri, int, String, int, String, int, int) using the appropriate stream id's.

Camera input can be selected using the CameraInputScheme Uri.

StreamWorker Decoding Thread

Most of the stream processing is performed on the decoding thread, a.k.a. StreamWorker:

StreamWorker generates it's own GLContext, shared with the one passed to initGL(GL). The shared GLContext allows the decoding thread to push the video frame data directly into the designated TextureFrame, later returned via getNextTexture(GL) and used by the user.

<h7>StreamWorker Error Handling</h7>

Caught exceptions on StreamWorker are delivered as StreamExceptions, which either degrades the State to State#Uninitialized or State#Paused.

An occurring StreamException triggers a EVENT_CHANGE_ERR event, which can be listened to via GLMediaEventListener#attributesChanged(GLMediaPlayer, int, long).

An occurred StreamException can be read via getStreamException().

GLMediaPlayer Lifecycle
Action State Before State After Event
playStream(Uri, int, int, int, int) Uninitialized Initialized1, Uninitialized Init or ( Error + Uninit )
initGL(GL) Initialized, Uninitialized Playing, Uninitialized Play or ( Error + Uninit )
pause(boolean) Playing Paused Pause
resume() Paused Playing Play
stop() Playing, Paused Uninitialized Pause
seek(int) Paused, Playing Paused, Playing none
getNextTexture(GL) any same none
getLastTexture() any same none
END_OF_STREAM Playing Paused EOS + Pause
StreamException any Paused, Uninitialized Error + ( Pause or Uninit )
destroy(GL) any Uninitialized Uninit

Audio and video Stream IDs
value request get
STREAM_ID_NONE mute not available
STREAM_ID_AUTO auto unspecified
≥0 specific stream specific stream

Current implementations (check each API doc link for details):

Implementations of this interface must implement:

   public static final boolean isAvailable();

to be properly considered by GLMediaPlayerFactory#create(ClassLoader, String) and GLMediaPlayerFactory#createDefault().

Timestamp Accuracy

Timestamp type and value range has been chosen to suit embedded CPUs and characteristics of audio and video streaming. See TimeFrameI.

Audio and video synchronization

The class follows a passive A/V synchronization pattern. Audio is being untouched, while getNextTexture(GL) delivers a new video frame only, if its timestamp is less than MAX_VIDEO_ASYNC ahead of time. If its timestamp is more than MAX_VIDEO_ASYNC ahead of time, the previous frame is returned. If its timestamp is more than MAX_VIDEO_ASYNC after time, the frame is dropped and the next frame is being fetched.

https://en.wikipedia.org/wiki/Audio_to_video_synchronization

  d_av = v_pts - a_pts;

Recommendation of audio/video pts time lead/lag at production:

  • Overall: +40ms and -60ms audio ahead video / audio after video
  • Each stage: +5ms and -15ms. audio ahead video / audio after video

Recommendation of av pts time lead/lag at presentation:

  • TV: +15ms and -45ms. audio ahead video / audio after video.
  • Film: +22ms and -22ms. audio ahead video / audio after video.

Test Streams
Big Buck Bunny 24f 16:9
Big Buck Bunny320ph264aac 48000Hz 2 chanhttp://download.blender.org/peach/bigbuckbunny_movies/BigBuckBunny_320x180.mp4
Big Buck Bunny240ph264aac 48000Hz 2 chanhttp://archive.org/download/BigBuckBunny_328/BigBuckBunny_512kb.mp4
Big Buck Bunny720pmpeg4ac3 48000Hz 5.1 chanhttp://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_720p_surround.avi
Big Buck Bunny720pmsmpeg4v2mp3 48000Hz 2 chanhttp://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_720p_stereo.avi
Big Buck Bunny720ptheoravorbis 48000Hz 2 chanhttp://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_720p_stereo.ogg
Big Buck Bunny1080pmpeg4ac3 48000Hz 5.1 chanhttp://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_1080p_surround.avi
WebM/Matroska (vp8/vorbis)
Big Buck Bunny Trailer640pvp8vorbis 44100Hz 1 chanhttp://video.webmfiles.org/big-buck-bunny_trailer.webm
Elephants Dream540pvp8vorbis 44100Hz 1 chanhttp://video.webmfiles.org/elephants-dream.webm
You Tube http/rtsp
Sintelhttp://www.youtube.com/watch?v=eRsGyueVLvQrtsp://v3.cache1.c.youtube.com/CiILENy73wIaGQn0LpXnygYbeRMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp
Audio/Video Sync
Five-minute-sync-test1080phttps://www.youtube.com/watch?v=szoOsG9137Urtsp://v7.cache8.c.youtube.com/CiILENy73wIaGQm133VvsA46sxMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp
Audio-Video-Sync-Test-Calibration-23.98fps-24fpshttps://www.youtube.com/watch?v=cGgf_dbDMsw
sound_in_sync_testhttps://www.youtube.com/watch?v=O-zIZkhXNLE

Definition at line 197 of file GLMediaPlayer.java.

Member Function Documentation

◆ addEventListener()

void com.jogamp.opengl.util.av.GLMediaPlayer.addEventListener ( GLMediaEventListener  l)

Adds a GLMediaEventListener to this player.

Here is the caller graph for this function:

◆ addFrameListener()

void com.jogamp.opengl.util.av.GLMediaPlayer.addFrameListener ( GLMediaFrameListener  l)

Adds a GLMediaFrameListener to this player.

◆ attachObject()

Object com.jogamp.opengl.util.av.GLMediaPlayer.attachObject ( String  name,
Object  obj 
)

Attaches the user object for the given name.

Returns the previously set object, may be null.

Here is the caller graph for this function:

◆ destroy()

State com.jogamp.opengl.util.av.GLMediaPlayer.destroy ( GL  gl)

Releases the GL, stream and other resources, including attached user objects.

Lifecycle: ANY -> State#Uninitialized

Here is the caller graph for this function:

◆ detachObject()

Object com.jogamp.opengl.util.av.GLMediaPlayer.detachObject ( String  name)

Detaches the user object for the given name.

Returns the previously set object, may be null.

◆ getAID()

int com.jogamp.opengl.util.av.GLMediaPlayer.getAID ( )

Return the audio stream id, see audio and video Stream IDs.

Here is the caller graph for this function:

◆ getALangs()

String[] com.jogamp.opengl.util.av.GLMediaPlayer.getALangs ( )

Return an array of detected audio stream language codes, matching getAStreams() array and its indices.

The language code is supposed to be 3-letters of ISO 639-2 language codes.

See also
getLang(int)
Here is the caller graph for this function:

◆ getARatioLetterboxBackColor()

Vec4f com.jogamp.opengl.util.av.GLMediaPlayer.getARatioLetterboxBackColor ( )

Returns useARatioLetterbox() background color for added letter-box space, defaults to transparent zero.

Implements com.jogamp.opengl.util.texture.TextureSequence.

◆ getAStreams()

int[] com.jogamp.opengl.util.av.GLMediaPlayer.getAStreams ( )

Return an array of detected audio stream IDs.

Here is the caller graph for this function:

◆ getAttachedObject()

Object com.jogamp.opengl.util.av.GLMediaPlayer.getAttachedObject ( String  name)

Returns the attached user object for the given name.

◆ getAudioBitrate()

int com.jogamp.opengl.util.av.GLMediaPlayer.getAudioBitrate ( )

Warning: Optional information, may not be supported by implementation.

Returns
the audio bitrate
Here is the caller graph for this function:

◆ getAudioCodec()

String com.jogamp.opengl.util.av.GLMediaPlayer.getAudioCodec ( )

Warning: Optional information, may not be supported by implementation.

Returns
the codec of the audio stream, if available
Here is the caller graph for this function:

◆ getAudioCodecID()

CodecID com.jogamp.opengl.util.av.GLMediaPlayer.getAudioCodecID ( )

Warning: Optional information, may not be supported by implementation.

Returns
the CodecID of the audio stream, if available
Here is the caller graph for this function:

◆ getAudioFrames()

int com.jogamp.opengl.util.av.GLMediaPlayer.getAudioFrames ( )

Warning: Optional information, may not be supported by implementation.

Returns
the total number of audio frames

◆ getAudioPTS()

int com.jogamp.opengl.util.av.GLMediaPlayer.getAudioPTS ( )

Returns current audio presentation timestamp (PTS) in milliseconds, try using getPTS().

The relative millisecond PTS since start of the presentation stored in integer covers a time span of 2'147'483'647 ms (see Integer#MAX_VALUE or 2'147'483 seconds or 24.855 days.

See also
getPTS()

◆ getAudioSink()

AudioSink com.jogamp.opengl.util.av.GLMediaPlayer.getAudioSink ( )

If implementation uses a AudioSink, it's instance will be returned.

The AudioSink instance is available after playStream(Uri, int, int, int, int), if used by implementation.

Here is the caller graph for this function:

◆ getAudioVolume()

float com.jogamp.opengl.util.av.GLMediaPlayer.getAudioVolume ( )

Returns the audio volume.

Here is the caller graph for this function:

◆ getChapter()

Chapter com.jogamp.opengl.util.av.GLMediaPlayer.getChapter ( int  msec)

Returns Chapter covering given time position in milliseconds or null if none covers given time.

Parameters
msecdesired chapter covering time position in milliseconds
Here is the caller graph for this function:

◆ getChapters()

Chapter[] com.jogamp.opengl.util.av.GLMediaPlayer.getChapters ( )

Returns Chapter meta-data from stream, available after State#Initialized is reached after issuing playStream(Uri, int, int, int, int).

◆ getDecodedFrameCount()

int com.jogamp.opengl.util.av.GLMediaPlayer.getDecodedFrameCount ( )
Returns
the current decoded video frame count since resume() and seek(int) as increased by getNextTexture(GL) or the decoding thread.

◆ getDuration()

int com.jogamp.opengl.util.av.GLMediaPlayer.getDuration ( )

Return total duration of stream in msec.

The duration stored in integer covers 2'147'483'647 ms (see Integer#MAX_VALUE or 2'147'483 seconds or 24.855 days.

Here is the caller graph for this function:

◆ getEventListeners()

GLMediaEventListener[] com.jogamp.opengl.util.av.GLMediaPlayer.getEventListeners ( )

Return all GLMediaEventListener of this player.

◆ getFrameListeners()

GLMediaFrameListener[] com.jogamp.opengl.util.av.GLMediaPlayer.getFrameListeners ( )

Return all GLMediaFrameListener of this player.

◆ getFramerate()

float com.jogamp.opengl.util.av.GLMediaPlayer.getFramerate ( )

Warning: Optional information, may not be supported by implementation.

Returns
the framerate of the video
Here is the caller graph for this function:

◆ getHeight()

int com.jogamp.opengl.util.av.GLMediaPlayer.getHeight ( )

Returns the height of the video.

Here is the caller graph for this function:

◆ getLang()

String com.jogamp.opengl.util.av.GLMediaPlayer.getLang ( int  id)

Return the matching language code of given stream ID, matching one of the stream IDs in getVStreams(), getAStreams() or getSStreams().

The language code is supposed to be 3-letters of ISO 639-2 language codes.

If the stream ID is not available, und is returned

See also
getVStreams()
getAStreams()
getSStreams()
getVLangs()
getALangs()
getSLangs()
Here is the caller graph for this function:

◆ getLastTexture()

TextureSequence.TextureFrame com.jogamp.opengl.util.av.GLMediaPlayer.getLastTexture ( ) throws IllegalStateException

Returns the last updated texture.In case the instance is just initialized, it shall return a TextureFrame object with valid attributes. The texture content may be undefined until the first call of getNextTexture(GL).
Not blocking.

Exceptions
IllegalStateExceptionif instance is not initialized

Returns the last decoded Video TextureSequence.TextureFrame.

See audio and video synchronization.

Exceptions
IllegalStateExceptionif not invoked in State#Paused or State#Playing

Implements com.jogamp.opengl.util.texture.TextureSequence.

Here is the caller graph for this function:

◆ getNextAID()

int com.jogamp.opengl.util.av.GLMediaPlayer.getNextAID ( )

Returns the next audio stream id, rotates.

◆ getNextSID()

int com.jogamp.opengl.util.av.GLMediaPlayer.getNextSID ( )

Returns the next subtitle stream id, rotates including no-stream.

◆ getNextTexture()

TextureSequence.TextureFrame com.jogamp.opengl.util.av.GLMediaPlayer.getNextTexture ( GL  gl) throws IllegalStateException

Returns the next texture to be rendered.Implementation shall return the next frame if available, may block if a next frame may arrive soon. Otherwise implementation shall return the last frame. Shall return null in case no next or last frame is available.

Exceptions
IllegalStateExceptionif instance is not initialized

Returns the next Video TextureSequence.TextureFrame to be rendered in sync with getPTS() and keeps decoding going.

In case the current state is not State#Playing, getLastTexture() is returned.

See audio and video synchronization.

Exceptions
IllegalStateExceptionif not invoked in State#Paused or State#Playing
See also
addEventListener(GLMediaEventListener)
GLMediaEventListener::newFrameAvailable(GLMediaPlayer, TextureFrame, long)

Implements com.jogamp.opengl.util.texture.TextureSequence.

Here is the caller graph for this function:

◆ getNextVID()

int com.jogamp.opengl.util.av.GLMediaPlayer.getNextVID ( )

Returns the next video stream id, rotates.

◆ getPerfString()

String com.jogamp.opengl.util.av.GLMediaPlayer.getPerfString ( )

Returns a string representation of this player's performance values.

Here is the caller graph for this function:

◆ getPlaySpeed()

float com.jogamp.opengl.util.av.GLMediaPlayer.getPlaySpeed ( )

Returns the playback speed.

Here is the caller graph for this function:

◆ getPresentedFrameCount()

int com.jogamp.opengl.util.av.GLMediaPlayer.getPresentedFrameCount ( )
Returns
the current presented video frame count since resume() and seek(int) as increased by getNextTexture(GL) for new frames.

◆ getPTS()

PTS com.jogamp.opengl.util.av.GLMediaPlayer.getPTS ( )

Returns current System Clock Reference (SCR) presentation timestamp (PTS).

To retrieve the current interpolated PTS against the stored System Clock Reference (SCR), use:

  int pts = mPlayer.getPTS().get(Clock.currentMillis());
Here is the caller graph for this function:

◆ getSID()

int com.jogamp.opengl.util.av.GLMediaPlayer.getSID ( )

Return the subtitle stream id, see audio and video Stream IDs.

Here is the caller graph for this function:

◆ getSLangs()

String[] com.jogamp.opengl.util.av.GLMediaPlayer.getSLangs ( )

Return an array of detected subtitle stream language codes, matching getSStreams() array and its indices.

The language code is supposed to be 3-letters of ISO 639-2 language codes.

See also
getLang(int)
Here is the caller graph for this function:

◆ getSStreams()

int[] com.jogamp.opengl.util.av.GLMediaPlayer.getSStreams ( )

Return an array of detected subtitle stream IDs.

Here is the caller graph for this function:

◆ getState()

State com.jogamp.opengl.util.av.GLMediaPlayer.getState ( )

See Lifecycle.

Returns
the current state, either State#Uninitialized, State#Initialized, State#Playing or State#Paused
Here is the caller graph for this function:

◆ getStreamBitrate()

long com.jogamp.opengl.util.av.GLMediaPlayer.getStreamBitrate ( )

Warning: Optional information, may not be supported by implementation.

Returns
the overall bitrate of the stream.
Here is the caller graph for this function:

◆ getStreamException()

StreamException com.jogamp.opengl.util.av.GLMediaPlayer.getStreamException ( )

Returns the StreamException caught in the decoder thread, or null if none occured.

Method clears the cached StreamException, hence an immediate subsequent call will return null.

See also
GLMediaEventListener::EVENT_CHANGE_ERR
StreamException
Here is the caller graph for this function:

◆ getSubtitleCodec()

String com.jogamp.opengl.util.av.GLMediaPlayer.getSubtitleCodec ( )

Warning: Optional information, may not be supported by implementation.

Returns
the codec of the subtitle stream, if available
Here is the caller graph for this function:

◆ getSubtitleCodecID()

CodecID com.jogamp.opengl.util.av.GLMediaPlayer.getSubtitleCodecID ( )

Warning: Optional information, may not be supported by implementation.

Returns
the CodecID of the subtitle stream, if available
Here is the caller graph for this function:

◆ getSubtitleEventListener()

SubtitleEventListener com.jogamp.opengl.util.av.GLMediaPlayer.getSubtitleEventListener ( )

◆ getTextureCount()

int com.jogamp.opengl.util.av.GLMediaPlayer.getTextureCount ( )

◆ getTitle()

String com.jogamp.opengl.util.av.GLMediaPlayer.getTitle ( )

Returns title meta-data from stream, available after State#Initialized is reached after issuing playStream(Uri, int, int, int, int).

In case no title meta-data is being used, the getUri() basename w/o suffix is being returned.

Here is the caller graph for this function:

◆ getUri()

Uri com.jogamp.opengl.util.av.GLMediaPlayer.getUri ( )

Return the stream location, as set by playStream(Uri, int, int, int, int).

Since
2.3.0

◆ getVID()

int com.jogamp.opengl.util.av.GLMediaPlayer.getVID ( )

Return the video stream id, see audio and video Stream IDs.

Here is the caller graph for this function:

◆ getVideoBitrate()

int com.jogamp.opengl.util.av.GLMediaPlayer.getVideoBitrate ( )

Warning: Optional information, may not be supported by implementation.

Returns
video bitrate
Here is the caller graph for this function:

◆ getVideoCodec()

String com.jogamp.opengl.util.av.GLMediaPlayer.getVideoCodec ( )

Warning: Optional information, may not be supported by implementation.

Returns
the codec of the video stream, if available
Here is the caller graph for this function:

◆ getVideoCodecID()

CodecID com.jogamp.opengl.util.av.GLMediaPlayer.getVideoCodecID ( )

Warning: Optional information, may not be supported by implementation.

Returns
the CodecID of the video stream, if available
Here is the caller graph for this function:

◆ getVideoFrames()

int com.jogamp.opengl.util.av.GLMediaPlayer.getVideoFrames ( )

Warning: Optional information, may not be supported by implementation.

Returns
the total number of video frames

◆ getVideoPTS()

int com.jogamp.opengl.util.av.GLMediaPlayer.getVideoPTS ( )

Returns current video presentation timestamp (PTS) in milliseconds of getLastTexture(), try using getPTS().

The relative millisecond PTS since start of the presentation stored in integer covers a time span of 2'147'483'647 ms (see Integer#MAX_VALUE or 2'147'483 seconds or 24.855 days.

See also
getPTS()

◆ getVLangs()

String[] com.jogamp.opengl.util.av.GLMediaPlayer.getVLangs ( )

Return an array of detected video stream language codes, matching getVStreams() array and its indices.

The language code is supposed to be 3-letters of ISO 639-2 language codes.

See also
getLang(int)

◆ getVStreams()

int[] com.jogamp.opengl.util.av.GLMediaPlayer.getVStreams ( )

Return an array of detected video stream IDs.

◆ getWidth()

int com.jogamp.opengl.util.av.GLMediaPlayer.getWidth ( )

Returns the width of the video.

Here is the caller graph for this function:

◆ hasStreamID()

boolean com.jogamp.opengl.util.av.GLMediaPlayer.hasStreamID ( int  id)

Return whether the given stream ID is available, i.e.

matching one of the stream IDs in getVStreams(), getAStreams() or getSStreams().

◆ initGL()

void com.jogamp.opengl.util.av.GLMediaPlayer.initGL ( GL  gl) throws IllegalStateException, StreamException, GLException

Initializes OpenGL related resources.

Lifecycle: State#Initialized -> State#Paused or State#Initialized

Argument gl is ignored if video is muted, see playStream(Uri, int, int, int, int).

Parameters
glcurrent GL object. Maybe null, for audio only.
Exceptions
IllegalStateExceptionif not invoked in State#Initialized.
StreamExceptionforwarded from the off-thread stream initialization
GLExceptionin case of difficulties to initialize the GL resources
Here is the caller graph for this function:

◆ isAudioMuted()

boolean com.jogamp.opengl.util.av.GLMediaPlayer.isAudioMuted ( )

Returns true if audio is muted, i.e.

setAudioVolume(float) to zero.

◆ isGLOriented()

boolean com.jogamp.opengl.util.av.GLMediaPlayer.isGLOriented ( )

Returns true if the video frame is oriented in OpenGL's coordinate system, origin at bottom left.

Otherwise returns false, i.e. video frame is oriented origin at top left.

false is the default assumption for videos, but user shall not rely on.

false GL orientation leads to Texture#getMustFlipVertically() == true, as reflected by all TextureFrame's Textures retrieved via getLastTexture() or getNextTexture(GL).

◆ pause()

State com.jogamp.opengl.util.av.GLMediaPlayer.pause ( boolean  flush)

Pauses the StreamWorker decoding thread.

Lifecycle: State#Playing -> State#Paused

If a new frame is desired after the next resume() call, e.g. to make a snapshot of a camera input stream, flush shall be set to true.

Parameters
flushif true flushes the video and audio buffers, otherwise keep them intact.

◆ playStream() [1/2]

void com.jogamp.opengl.util.av.GLMediaPlayer.playStream ( final Uri  streamLoc,
final int  vid,
final String  alang,
final int  aid,
final String  slang,
final int  sid,
final int  reqTextureCount 
) throws IllegalStateException, IllegalArgumentException

Same as playStream(Uri, int, int, int, int), but providing desired audio- and subtile languages to be selected.

Parameters
streamLocthe stream location
vidvideo stream id, see audio and video Stream IDs
alangdesired audio language, pass null to use aid
aidfallback audio stream id in case alang is null, see audio and video Stream IDs
slangdesired subtitle language, pass null to use sid
sidfallback subtitle stream id in case alang is null, see audio and video Stream IDs
textureCountdesired number of buffered textures to be decoded off-thread, will be validated by implementation. The minimum value is TEXTURE_COUNT_MIN (single-threaded) or above to enable multi-threaded stream decoding. Default is TEXTURE_COUNT_DEFAULT. Value is ignored if video is muted.
Exceptions
IllegalStateExceptionif not invoked in State#Uninitialized
IllegalArgumentExceptionif arguments are invalid
See also
playStream(Uri, int, int, int, int)
Since
2.6.0

◆ playStream() [2/2]

void com.jogamp.opengl.util.av.GLMediaPlayer.playStream ( Uri  streamLoc,
int  vid,
int  aid,
int  sid,
int  textureCount 
) throws IllegalStateException, IllegalArgumentException

Issues asynchronous stream initialization.

Lifecycle: State#Uninitialized -> State#Initialized1 or State#Uninitialized

State#Initialized is reached asynchronous, i.e. user gets notified via attributesChanges(..).

A possible caught asynchronous StreamException while initializing the stream off-thread will be thrown at initGL(GL).

Muted audio can be achieved by passing STREAM_ID_NONE to aid.

Muted video can be achieved by passing STREAM_ID_NONE to vid, in which case textureCount is ignored as well as the passed GL object of the subsequent initGL(GL) call.

Parameters
streamLocthe stream location
vidvideo stream id, see audio and video Stream IDs
aidaudio stream id, see audio and video Stream IDs
sidsubtitle stream id, see audio and video Stream IDs
textureCountdesired number of buffered textures to be decoded off-thread, will be validated by implementation. The minimum value is TEXTURE_COUNT_MIN (single-threaded) or above to enable multi-threaded stream decoding. Default is TEXTURE_COUNT_DEFAULT. Value is ignored if video is muted.
Exceptions
IllegalStateExceptionif not invoked in State#Uninitialized
IllegalArgumentExceptionif arguments are invalid
See also
playStream(Uri, int, String, int, String, int, int)
Since
2.6.0
Here is the caller graph for this function:

◆ printNativeInfo()

void com.jogamp.opengl.util.av.GLMediaPlayer.printNativeInfo ( final PrintStream  out)

Print native library information of used implementation to given out PrintStream.

◆ removeEventListener()

void com.jogamp.opengl.util.av.GLMediaPlayer.removeEventListener ( GLMediaEventListener  l)

Removes a GLMediaEventListener to this player.

◆ removeFrameListener()

void com.jogamp.opengl.util.av.GLMediaPlayer.removeFrameListener ( GLMediaFrameListener  l)

Removes a GLMediaFrameListener to this player.

◆ resume()

State com.jogamp.opengl.util.av.GLMediaPlayer.resume ( )

Starts or resumes the StreamWorker decoding thread.

Lifecycle: State#Paused -> State#Playing

Here is the caller graph for this function:

◆ seek()

int com.jogamp.opengl.util.av.GLMediaPlayer.seek ( int  msec)

Seeks to the new absolute position.

The StreamWorker decoding thread is paused while doing so and the A/V buffers are flushed.

Allowed in state State#Playing and State#Paused, otherwise ignored, see Lifecycle.

Parameters
msecabsolute desired time position in milliseconds
Returns
time current position in milliseconds, after seeking to the desired position
Here is the caller graph for this function:

◆ setARatioAdjustment()

void com.jogamp.opengl.util.av.GLMediaPlayer.setARatioAdjustment ( final boolean  v)

Toggles useARatioLetterbox().Default value is implementation specific and toggling is optional.

See also
useARatioLetterbox()
useARatioAdjustment()

Defaults to true and toggling is not supported.

Implements com.jogamp.opengl.util.texture.TextureSequence.

◆ setARatioLetterbox()

void com.jogamp.opengl.util.av.GLMediaPlayer.setARatioLetterbox ( final boolean  v,
Vec4f  backColor 
)

Toggles useARatioLetterbox().Default value is implementation specific and toggling is optional. Impacts only if useARatioAdjustment() returns true.

Parameters
vnew value for useARatioLetterbox()
backColoroptional background color for added letter-box space, defaults to transparent zero
See also
useARatioLetterbox()
useARatioAdjustment()

Defaults to false.

Implements com.jogamp.opengl.util.texture.TextureSequence.

◆ setAudioChannelLimit()

void com.jogamp.opengl.util.av.GLMediaPlayer.setAudioChannelLimit ( final int  cc)

Limit maximum supported audio channels by user.

Must be set before playStream(Uri, int, int, int, int)

May be utilized to enforce 1 channel (mono) downsampling in combination with JOAL/OpenAL to experience spatial 3D position effects.

Parameters
ccmaximum supported audio channels, will be clipped [1..x], with x being the underlying audio subsystem's maximum
See also
playStream(Uri, int, int, int, int)

◆ setAudioVolume()

boolean com.jogamp.opengl.util.av.GLMediaPlayer.setAudioVolume ( float  v)

Sets the audio volume, [0f..1f].

To simplify test, volume is normalized, i.e.

  • 0.0f: if Math.abs(v) < 0.01f
  • 1.0f: if Math.abs(1.0f - v) < 0.01f
Returns
true if successful, otherwise false, i.e. due to unsupported value range of implementation.
Here is the caller graph for this function:

◆ setPlaySpeed()

boolean com.jogamp.opengl.util.av.GLMediaPlayer.setPlaySpeed ( float  rate)

Sets the playback speed.

To simplify test, play speed is normalized, i.e.

  • 1.0f: if Math.abs(1.0f - rate) < 0.01f
Returns
true if successful, otherwise false, i.e. due to unsupported value range of implementation.
Here is the caller graph for this function:

◆ setSubtitleEventListener()

void com.jogamp.opengl.util.av.GLMediaPlayer.setSubtitleEventListener ( SubtitleEventListener  l)

Sets the SubtitleEventListener for this player.

Here is the caller graph for this function:

◆ setTextureMinMagFilter()

void com.jogamp.opengl.util.av.GLMediaPlayer.setTextureMinMagFilter ( int[]  minMagFilter)

Sets the texture min-mag filter, defaults to GL#GL_NEAREST.

Here is the caller graph for this function:

◆ setTextureUnit()

void com.jogamp.opengl.util.av.GLMediaPlayer.setTextureUnit ( int  u)

Sets the texture unit.

Defaults to 0.

Here is the caller graph for this function:

◆ setTextureWrapST()

void com.jogamp.opengl.util.av.GLMediaPlayer.setTextureWrapST ( int[]  wrapST)

Sets the texture min-mag filter, defaults to GL#GL_CLAMP_TO_EDGE.

◆ stop()

State com.jogamp.opengl.util.av.GLMediaPlayer.stop ( )

Stops streaming and releases the GL, stream and other resources, but keeps attached user objects.

Lifecycle: ANY -> State#Uninitialized

◆ switchStream()

void com.jogamp.opengl.util.av.GLMediaPlayer.switchStream ( final int  vid,
final int  aid,
final int  sid 
) throws IllegalStateException, IllegalArgumentException

Switches current playStream(Uri, int, int, int, int) to given stream IDs and continues at same getVideoPTS().

Implementation just issues stop(), seek(int) and playStream(Uri, int, int, int, int).

Parameters
vidvideo stream id, see audio and video Stream IDs
aidaudio stream id, see audio and video Stream IDs
sidsubtitle stream id, see audio and video Stream IDs
Exceptions
IllegalStateException
IllegalArgumentException
Since
2.6.0

◆ toString()

String com.jogamp.opengl.util.av.GLMediaPlayer.toString ( )

Returns a string representation of this player, incl.

state and audio/video details.

Here is the caller graph for this function:

◆ useARatioAdjustment()

boolean com.jogamp.opengl.util.av.GLMediaPlayer.useARatioAdjustment ( )

Returning true indicates texture correction for aspect-ratio in the shader.Graph's Region shader will utilize setTexCoordBBox(Texture, AABBox, boolean, float[], boolean) for texture-coordinate bounding-box calculation. Returning false indicates no correction for aspect-ratio in the shader. Graph's Region shader will utilize setTexCoordBBoxSimple(Texture, AABBox, float[], boolean) for texture-coordinate bounding-box calculation. Default value is implementation specific and toggling is optional.

See also
setTexCoordBBox(Texture, AABBox, boolean, float[], boolean)
setTexCoordBBoxSimple(Texture, AABBox, float[], boolean)
useARatioLetterbox()

Defaults to true and toggling not supported.

Implements com.jogamp.opengl.util.texture.TextureSequence.

◆ useARatioLetterbox()

boolean com.jogamp.opengl.util.av.GLMediaPlayer.useARatioLetterbox ( )

Returns whether useARatioAdjustment() shall add letter-box space to match aspect-ratio, otherwise it will be zoomed in.Default value is implementation specific and toggling is optional.

See also
useARatioAdjustment()
setARatioLetterbox(boolean, Vec4f)

Defaults to false and toggling is supported via setARatioLetterbox(boolean, Vec4f)

Implements com.jogamp.opengl.util.texture.TextureSequence.

Member Data Documentation

◆ CameraInputScheme

final Uri.Encoded com.jogamp.opengl.util.av.GLMediaPlayer.CameraInputScheme = Uri.Encoded.cast("camera")
static

Uri scheme name {@value} for camera input.

E.g. camera:/0 for the 1st camera device.

The Uri path is being used to identify the camera (<id>), where the root fwd-slash is being cut-off.

The <id> is usually an integer value indexing the camera ranging from [0..max-number].

The <somewhere> is usually empty, since it would imply a networking camera protocol.

The Uri query is used to pass options to the camera using ; as the separator. The latter avoids trouble w/ escaping.

   camera:/<id>
   camera:/<id>?width=640;height=480;rate=15
   camera:/<id>?size=640x480;rate=15
   camera://<somewhere>/<id>
   camera://<somewhere>/<id>?width=640;height=480;rate=15
   camera://<somewhere>/<id>?size=640x480;rate=15
   camera:///<id>?width=640;height=480;rate=15
   camera:///<id>?size=640x480;rate=15
 Uri: [scheme:][//authority][path][?query][#fragment]
 w/ authority: [user-info@]host[:port]
 Note: 'path' starts w/ fwd slash

Definition at line 248 of file GLMediaPlayer.java.

◆ CameraPropHeight

final String com.jogamp.opengl.util.av.GLMediaPlayer.CameraPropHeight = "height"
static

Camera property {@value}.

See CameraInputScheme.

Definition at line 254 of file GLMediaPlayer.java.

◆ CameraPropRate

final String com.jogamp.opengl.util.av.GLMediaPlayer.CameraPropRate = "rate"
static

Camera property {@value}.

See CameraInputScheme.

Definition at line 256 of file GLMediaPlayer.java.

◆ CameraPropSizeS

final String com.jogamp.opengl.util.av.GLMediaPlayer.CameraPropSizeS = "size"
static

Camera property {@value}, size as string, e.g.

1280x720, hd720. May not be supported on all platforms. See CameraInputScheme.

Definition at line 250 of file GLMediaPlayer.java.

◆ CameraPropWidth

final String com.jogamp.opengl.util.av.GLMediaPlayer.CameraPropWidth = "width"
static

Camera property {@value}.

See CameraInputScheme.

Definition at line 252 of file GLMediaPlayer.java.

◆ DEBUG

final boolean com.jogamp.opengl.util.av.GLMediaPlayer.DEBUG = Debug.debug("GLMediaPlayer")
static

Definition at line 198 of file GLMediaPlayer.java.

◆ DEBUG_AVSYNC

final boolean com.jogamp.opengl.util.av.GLMediaPlayer.DEBUG_AVSYNC = Debug.debug("GLMediaPlayer.AVSync")
static

Definition at line 199 of file GLMediaPlayer.java.

◆ DEBUG_NATIVE

final boolean com.jogamp.opengl.util.av.GLMediaPlayer.DEBUG_NATIVE = Debug.debug("GLMediaPlayer.Native")
static

Definition at line 200 of file GLMediaPlayer.java.

◆ MAX_VIDEO_ASYNC

final int com.jogamp.opengl.util.av.GLMediaPlayer.MAX_VIDEO_ASYNC = 22
static

Maximum video frame async of {@value} milliseconds.

Definition at line 259 of file GLMediaPlayer.java.

◆ MIN_VIDEO_ASYNC

final int com.jogamp.opengl.util.av.GLMediaPlayer.MIN_VIDEO_ASYNC = 11
static

Definition at line 260 of file GLMediaPlayer.java.

◆ STREAM_ID_AUTO

final int com.jogamp.opengl.util.av.GLMediaPlayer.STREAM_ID_AUTO = -1
static

Constant {@value} for auto or unspecified.

See Audio and video Stream IDs.

Definition at line 211 of file GLMediaPlayer.java.

◆ STREAM_ID_NONE

final int com.jogamp.opengl.util.av.GLMediaPlayer.STREAM_ID_NONE = -2
static

Constant {@value} for mute or not available.

See Audio and video Stream IDs.

Definition at line 209 of file GLMediaPlayer.java.

◆ TEXTURE_COUNT_DEFAULT

final int com.jogamp.opengl.util.av.GLMediaPlayer.TEXTURE_COUNT_DEFAULT = 3
static

Default texture count, value {@value}.

Definition at line 203 of file GLMediaPlayer.java.

◆ TEXTURE_COUNT_MIN

final int com.jogamp.opengl.util.av.GLMediaPlayer.TEXTURE_COUNT_MIN = 1
static

Minimum texture count, value {@value}.

Using the minimum texture count disables multi-threaded decoding.

Definition at line 206 of file GLMediaPlayer.java.


The documentation for this interface was generated from the following file: