aboutsummaryrefslogtreecommitdiffstats
path: root/src/jogl/classes/jogamp/opengl/android/av/AndroidGLMediaPlayerAPI14.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/jogl/classes/jogamp/opengl/android/av/AndroidGLMediaPlayerAPI14.java')
-rw-r--r--src/jogl/classes/jogamp/opengl/android/av/AndroidGLMediaPlayerAPI14.java23
1 files changed, 20 insertions, 3 deletions
diff --git a/src/jogl/classes/jogamp/opengl/android/av/AndroidGLMediaPlayerAPI14.java b/src/jogl/classes/jogamp/opengl/android/av/AndroidGLMediaPlayerAPI14.java
index 667c03458..bc31b6aea 100644
--- a/src/jogl/classes/jogamp/opengl/android/av/AndroidGLMediaPlayerAPI14.java
+++ b/src/jogl/classes/jogamp/opengl/android/av/AndroidGLMediaPlayerAPI14.java
@@ -34,9 +34,12 @@ import com.jogamp.opengl.GL;
import com.jogamp.opengl.GLES2;
import com.jogamp.opengl.GLException;
import com.jogamp.common.os.AndroidVersion;
+import com.jogamp.common.os.Clock;
import com.jogamp.common.os.Platform;
+import com.jogamp.common.av.PTS;
import com.jogamp.common.av.TimeFrameI;
import com.jogamp.opengl.util.av.GLMediaPlayer;
+import com.jogamp.opengl.util.av.GLMediaPlayer.State;
import com.jogamp.opengl.util.texture.Texture;
import com.jogamp.opengl.util.texture.TextureSequence;
@@ -137,7 +140,7 @@ public class AndroidGLMediaPlayerAPI14 extends GLMediaPlayerImpl {
@Override
protected final boolean resumeImpl() {
- playStart = Platform.currentTimeMillis();
+ playStart = Platform.currentMillis();
if(null != mp) {
try {
mp.start();
@@ -209,7 +212,21 @@ public class AndroidGLMediaPlayerAPI14 extends GLMediaPlayerImpl {
}
@Override
- protected final int getAudioPTSImpl() { return null != mp ? mp.getCurrentPosition() : 0; }
+ protected PTS getAudioPTSImpl() { return audio_pts; }
+ @Override
+ protected PTS getUpdatedAudioPTS() {
+ if( null != mp ) {
+ audio_pts.set(Clock.currentMillis(), mp.getCurrentPosition());
+ } else {
+ audio_pts.set(Clock.currentMillis(), 0);
+ }
+ return audio_pts;
+ }
+ @Override
+ protected int getAudioQueuedDuration() { return 0; }
+ @Override
+ protected int getLastBufferedAudioPTS() { return audio_pts.getLast(); }
+ private final PTS audio_pts = new PTS( () -> { return State.Playing == getState() ? getPlaySpeed() : 0f; } );
@Override
protected final void destroyImpl() {
@@ -416,7 +433,7 @@ public class AndroidGLMediaPlayerAPI14 extends GLMediaPlayerImpl {
if( null != mp ) {
pts = mp.getCurrentPosition();
} else {
- pts = (int) ( Platform.currentTimeMillis() - playStart );
+ pts = (int) ( Platform.currentMillis() - playStart );
}
// stex.getTransformMatrix(atex.getSTMatrix());
}