aboutsummaryrefslogtreecommitdiffstats
path: root/src/jogl/classes/jogamp/opengl/util
diff options
context:
space:
mode:
authorSven Göthel <[email protected]>2024-01-26 20:08:49 +0100
committerSven Göthel <[email protected]>2024-01-26 20:08:49 +0100
commit85ff5a8b745a0dd582d19871f685b7b0beb1af70 (patch)
treedd6c808ac1e9edf17af205cf400de58de7581636 /src/jogl/classes/jogamp/opengl/util
parentf981e929d29157b6128db6cccd585baf58049516 (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.java18
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+"]"+