package com.exovlc;
import org.videolan.libvlc.LibVLC;
import android.os.Handler;
import android.view.Surface;
import com.exovlc.VLCVideoSurfaceHandler.Start_Type;
import com.google.android.exoplayer.ExoPlaybackException;
import com.google.android.exoplayer.MediaCodecVideoTrackRenderer;
public class VLCVideoTrackRenderer extends VLCTrackRenderer {
private final VLCVideoSurfaceHandler surfaceHdl;
public VLCVideoTrackRenderer(VLCSampleSource source, Handler eventHandler,
MediaCodecVideoTrackRenderer.EventListener eventListener, VLCVideoSurfaceHandler surfacePlayer, LibVLC vlc) {
super(source, eventHandler, eventListener, vlc);
this.surfaceHdl = surfacePlayer;
new VLCNativeCrashHandler(eventHandler, eventListener, vlc, surfacePlayer);
}
@Override
protected boolean isSupportedMime(String mimeType) {
System.out.println("VLCVideoTrackRenderer.isSupportedMime() mimetype = " + mimeType);
return com.exovlc.ExoVlcUtil.isVLCVideoMimeType(mimeType);
}
public void handleMessage(int messageType, Object message) throws ExoPlaybackException {
if (messageType == com.google.android.exoplayer.MediaCodecVideoTrackRenderer.MSG_SET_SURFACE) {
ExoVlcUtil.log(this, ">>> VLCVideoTrackRenderer.handleMessage() >>> surface = " + (Surface) message);
Thread.dumpStack();
this.surfaceHdl.setVlcSurface((Surface) message, false);
} else {
super.handleMessage(messageType, message);
}
}
@Override
protected void onReleased() throws ExoPlaybackException {
surfaceHdl.release();
super.onReleased();
}
private void p_onStarted() throws ExoPlaybackException {
super.onStarted();
}
@Override
protected void onStarted() throws ExoPlaybackException {
System.out.println(">>>VLCVideoTrackRenderer.onStarted()");
VLCVideoSurfaceHandler.Start_Type t = this.surfaceHdl.doStart(new Runnable() {
@Override
public void run() {
try {
VLCVideoTrackRenderer.this.p_onStarted();
} catch (ExoPlaybackException e) {
e.printStackTrace();
postError(new com.google.android.exoplayer.MediaCodecTrackRenderer.DecoderInitializationException(
null, e, -1));
}
}
});
System.out.println(">>> VLCVideoTrackRenderer.onStarted() t = " + t);
if (t == Start_Type.STARTED_IMMEDIATELY)
super.onStarted();
}
}