i++; try { Thread.sleep(Math.max((long) (1000 / frameRate.getDouble()) - (System.currentTimeMillis() - now), 0)); } catch (InterruptedException e) { e.printStackTrace();
/** * Returns the duration of the video in seconds. * * @return The duration of the video in seconds. */ public synchronized long getDuration() { final long duration = (this.reader.getContainer().getStream(this.streamIndex).getDuration()); final double timebase = this.reader.getContainer().getStream(this.streamIndex).getTimeBase().getDouble(); return Math.round(duration * timebase); }
/** * Returns the duration of the video in seconds. * * @return The duration of the video in seconds. */ public synchronized long getDuration() { final long duration = (this.reader.getContainer().getStream(this.streamIndex).getDuration()); final double timebase = this.reader.getContainer().getStream(this.streamIndex).getTimeBase().getDouble(); return Math.round(duration * timebase); }
this.streamIndex).getTimeBase().getDouble(); final long position = (long) (timestamp / timebase);
this.streamIndex).getTimeBase().getDouble(); final long position = (long) (timestamp / timebase);
this.streamIndex).getTimeBase().getDouble(); final long position = (long) (timestamp / timebase);
this.streamIndex).getTimeBase().getDouble(); final long position = (long) (timestamp / timebase);
/** * {@inheritDoc} * * @see com.xuggle.mediatool.MediaToolAdapter#onVideoPicture(com.xuggle.mediatool.event.IVideoPictureEvent) */ @Override public void onVideoPicture(final IVideoPictureEvent event) { // event.getPicture().getTimeStamp(); if (event.getStreamIndex() == XuggleVideo.this.streamIndex) { XuggleVideo.this.currentMBFImage = ((MBFImageWrapper) event.getImage()).img; XuggleVideo.this.currentFrameIsKeyFrame = event.getMediaData().isKeyFrame(); XuggleVideo.this.timestamp = (long) ((event.getPicture().getTimeStamp() * event.getPicture().getTimeBase().getDouble()) * 1000) + XuggleVideo.this.timestampOffset; XuggleVideo.this.currentFrameUpdated = true; } } }
/** * {@inheritDoc} * * @see com.xuggle.mediatool.MediaToolAdapter#onVideoPicture(com.xuggle.mediatool.event.IVideoPictureEvent) */ @Override public void onVideoPicture(final IVideoPictureEvent event) { // event.getPicture().getTimeStamp(); if (event.getStreamIndex() == XuggleVideo.this.streamIndex) { XuggleVideo.this.currentMBFImage = ((MBFImageWrapper) event.getImage()).img; XuggleVideo.this.currentFrameIsKeyFrame = event.getMediaData().isKeyFrame(); XuggleVideo.this.timestamp = (long) ((event.getPicture().getTimeStamp() * event.getPicture().getTimeBase().getDouble()) * 1000) + XuggleVideo.this.timestampOffset; XuggleVideo.this.currentFrameUpdated = true; } } }
else this.length = (long) (s.getDuration() * s.getTimeBase().getDouble() * 1000d);
else this.length = (long) (s.getDuration() * s.getTimeBase().getDouble() * 1000d);