aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2023-10-04 18:10:03 +0200
committerSven Gothel <[email protected]>2023-10-04 18:10:03 +0200
commit86210fde931400ff6f1b0a2da48ca031a957df8d (patch)
treef0c600a69566bd731d943d9a5ab2339ffe87ad7d
parente066250b908f0f2187d468d2c5ab586341031753 (diff)
Bug 1472: GLMediaPlayerImpl: Track repeatedFrame count
-rw-r--r--src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java b/src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java
index 845db7207..bc3768abc 100644
--- a/src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java
+++ b/src/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java
@@ -980,6 +980,7 @@ public abstract class GLMediaPlayerImpl implements GLMediaPlayer {
private TextureFrame cachedFrame = null;
private long lastTimeMillis = 0;
+ private int repeatedFrame = 0;
private final boolean[] stGotVFrame = { false };
@@ -991,7 +992,6 @@ public abstract class GLMediaPlayerImpl implements GLMediaPlayer {
try {
do {
final boolean droppedFrame;
- final boolean repeatedFrame;
if( dropFrame ) {
presentedFrameCount--;
dropFrame = false;
@@ -1009,9 +1009,9 @@ public abstract class GLMediaPlayerImpl implements GLMediaPlayer {
presentedFrameCount--;
video_pts = nextFrame.getPTS();
hasVideoFrame = true;
- repeatedFrame = true;
+ repeatedFrame++;
} else {
- repeatedFrame = false;
+ repeatedFrame = 0;
if( null != videoFramesDecoded ) {
// multi-threaded and video available
nextFrame = videoFramesDecoded.get();
@@ -1112,14 +1112,14 @@ public abstract class GLMediaPlayerImpl implements GLMediaPlayer {
// frame is too late and one decoded frame is already available.
dropFrame = true;
mode_C = 'd';
- } else if( repeatedFrame ) {
+ } else if( repeatedFrame > 0 ) {
mode_C = 'r';
} else {
mode_C = '_';
}
video_pts_last = video_pts;
if( DEBUG_AVSYNC ) {
- System.err.println( "AV"+mode_C+": dT "+(currentTimeMillis-lastTimeMillis)+", dt "+dt+", maxD "+maxVideoDelay+", "+
+ System.err.println( "AV"+mode_C+": dT "+(currentTimeMillis-lastTimeMillis)+", dt "+dt+"/"+maxVideoDelay+", r"+repeatedFrame+", "+
getPerfStringImpl( video_scr, video_pts, d_vpts,
audio_scr, audio_pts, audio_pts_lb, d_apts,
video_dpts_avg_diff ) +