diff options
author | Sven Göthel <[email protected]> | 2024-01-26 20:08:49 +0100 |
---|---|---|
committer | Sven Göthel <[email protected]> | 2024-01-26 20:08:49 +0100 |
commit | 85ff5a8b745a0dd582d19871f685b7b0beb1af70 (patch) | |
tree | dd6c808ac1e9edf17af205cf400de58de7581636 /src/jogl/classes/jogamp/opengl/util | |
parent | f981e929d29157b6128db6cccd585baf58049516 (diff) |
GLMediaPlayer: Fix playing with single-threaded mode w/ texture-count 1
Diffstat (limited to 'src/jogl/classes/jogamp/opengl/util')
-rw-r--r-- | src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java b/src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java index 2c916dddc..d0f6fb596 100644 --- a/src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java +++ b/src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java @@ -791,9 +791,9 @@ public abstract class GLMediaPlayerImpl implements GLMediaPlayer { if( null != streamWorker ) { streamWorker.initGL(gl); streamWorker.resume(); - changeState(new GLMediaPlayer.EventMask(), State.Paused); - resume(); } + changeState(new GLMediaPlayer.EventMask(), State.Paused); + resume(); } else if( null == gl ) { width = 0; height = 0; @@ -1129,7 +1129,7 @@ public abstract class GLMediaPlayerImpl implements GLMediaPlayer { hasVideoFrame = true; repeatedFrame++; syncModeA = 'r'; - if( videoFramesFree.isEmpty() && audio_queued_ms <= min0_audio_queued_ms ) { + if( null != videoFramesDecoded && videoFramesFree.isEmpty() && audio_queued_ms <= min0_audio_queued_ms ) { growVideoFrameBuffers(gl, video_queue_growth); syncModeA = 'z'; } @@ -1264,7 +1264,7 @@ public abstract class GLMediaPlayerImpl implements GLMediaPlayer { cachedFrame = nextFrame; nextFrame = null; syncModeB = 'c'; - if( videoFramesFree.isEmpty() && audio_queued_ms <= min1_audio_queued_ms ) { + if( null != videoFramesDecoded && videoFramesFree.isEmpty() && audio_queued_ms <= min1_audio_queued_ms ) { growVideoFrameBuffers(gl, video_queue_growth); syncModeB = 'z'; } @@ -1891,8 +1891,14 @@ public abstract class GLMediaPlayerImpl implements GLMediaPlayer { d_avpts1 = 0; } - final int vFramesQueued = this.videoFramesDecoded.size(); - final int vFramesFree = this.videoFramesFree.size(); + final int vFramesQueued, vFramesFree; + if( null != videoFramesDecoded ) { + vFramesQueued = this.videoFramesDecoded.size(); + vFramesFree = this.videoFramesFree.size(); + } else { + vFramesQueued = 0; + vFramesFree = 1; + } return "frames[p"+presentedFrameCount+" d"+decodedFrameCount+" q"+vFramesQueued+" r"+repeatedFrame+" f"+vFramesFree+"/"+videoFramesOrig.length+"], "+ "dAV[v-a "+d_avpts0+", avg "+d_avpts1+"], SCR "+av_scr.get(currentMillis)+ ", vpts "+video_pts.getLast()+", dSCR["+d_vpts+", avg "+video_dpts_avrg+"]"+ |