this.reader.getContainer().seekKeyFrame(this.streamIndex, 0, 0, 0, IContainer.SEEK_FLAG_BYTE); this.reader.getContainer().seekKeyFrame(this.streamIndex, 0, 0, 0, IContainer.SEEK_FLAG_FRAME); this.reader.getContainer().seekKeyFrame(this.streamIndex, 0, 0, 0, IContainer.SEEK_FLAG_BACKWARDS); this.reader.getContainer().seekKeyFrame(this.streamIndex, 0, 0, 0, IContainer.SEEK_FLAG_ANY);
this.reader.getContainer().seekKeyFrame(this.streamIndex, 0, 0, 0, IContainer.SEEK_FLAG_BYTE); this.reader.getContainer().seekKeyFrame(this.streamIndex, 0, 0, 0, IContainer.SEEK_FLAG_FRAME); this.reader.getContainer().seekKeyFrame(this.streamIndex, 0, 0, 0, IContainer.SEEK_FLAG_BACKWARDS); this.reader.getContainer().seekKeyFrame(this.streamIndex, 0, 0, 0, IContainer.SEEK_FLAG_ANY);
double timeBase = 0; int videoStreamId = -1; private void seekToMs(IContainer container, long timeMs) { if(videoStreamId == -1) { for(int i = 0; i < container.getNumStreams(); i++) { IStream stream = container.getStream(i); IStreamCoder coder = stream.getStreamCoder(); if (coder.getCodecType() == ICodec.Type.CODEC_TYPE_VIDEO) { videoStreamId = i; timeBase = stream.getTimeBase().getDouble(); break; } } } long seekTo = (long) (timeMs/1000.0/timeBase); container.seekKeyFrame(videoStreamId, seekTo, IContainer.SEEK_FLAG_BACKWARDS); }
final int i = this.reader.getContainer().seekKeyFrame(this.streamIndex, min, position, max, 0);
final long max = position; final int ret = this.reader.getContainer().seekKeyFrame(this.streamIndex, min, position, max, IContainer.SEEK_FLAG_ANY);
final int i = this.reader.getContainer().seekKeyFrame(this.streamIndex, min, position, max, 0);
final long max = position; final int ret = this.reader.getContainer().seekKeyFrame(this.streamIndex, min, position, max, IContainer.SEEK_FLAG_ANY);
container.seekKeyFrame(videoStreamId, target, 0);
container.seekKeyFrame(videoStreamId, target, 0);