private static long getFrame(long endPTS, MP4VideoDemuxer demuxer) throws IOException { demuxer.seekToPTS(endPTS); long endFrame = demuxer.getCurrentFrame(); return endFrame; } }
@Override public void finalize() { delete(); }
private static int getFrameRate(MP4VideoDemuxer demuxer) throws IOException { demuxer.seekToFrame(0); long startPts = demuxer.getCurrentPTS(); demuxer.seekToFrame(1); long endPts = demuxer.getCurrentPTS(); double step = endPts - startPts; int rate = (int)Math.round((double)demuxer.getTimescale() / step); System.out.println("Framerate is " + rate); return rate; }
private void openleftEyeVideoFile() { try { leftEyeDemuxer = new MP4VideoDemuxer(new File(leftEyeFilename)); } catch (IOException e) { throw new RuntimeException(e); } }
/** * Seek to time(s). Next call to nextFrame will return frame at given time. * * @throws IOException Cannot decode intraframes */ public void seek(double seconds) throws IOException { videoTrack.seek(seconds); decodeLeadingFrames(); }
/** * Delete native resources held by the demuxer */ public void delete() { demuxerHelper.delete(); }
/** * Get the AvcCBox for H264 videos * * Throws runtime exception for other formats * * @return AvcCBox */ public AvcCBox getAvcCBox() { return demuxerHelper.getAvcCBox(); }
private static int getFrameRate(MP4VideoDemuxer demuxer) throws IOException { demuxer.seekToFrame(0); long startPts = demuxer.getCurrentPTS(); demuxer.seekToFrame(1); long endPts = demuxer.getCurrentPTS(); double step = endPts - startPts; int rate = (int)Math.round((double)demuxer.getTimescale() / step); System.out.println("Framerate is " + rate); return rate; }
private static long getFrame(long endPTS, MP4VideoDemuxer demuxer) throws IOException { demuxer.seekToPTS(endPTS); long endFrame = demuxer.getCurrentFrame(); return endFrame; } }
private void openRightEyeVideoFile() { try { rightEyeDemuxer = new MP4VideoDemuxer(new File(rightEyeFilename)); } catch (IOException e) { throw new RuntimeException(e); } }
public void close() { demuxer.delete(); }
/** * Seek to PTS. Next call to nextFrame will return frame at given PTS * * @throws IOException Cannot decode intraframes */ public void seekToPTS(long pts) throws IOException { videoTrack.seek(pts); decodeLeadingFrames(); }
@Override public void finalize() { delete(); }
/** * Delete native resources held by the demuxer */ public void delete() { demuxerHelper.delete(); }
private static int getFrameRate(MP4VideoDemuxer demuxer) throws IOException { demuxer.seekToFrame(0); long startPts = demuxer.getCurrentPTS(); demuxer.seekToFrame(1); long endPts = demuxer.getCurrentPTS(); double step = endPts - startPts; int rate = (int)Math.round((double)demuxer.getTimescale() / step); System.out.println("Framerate is " + rate); return rate; }
private static long getFrame(long endPTS, MP4VideoDemuxer demuxer) throws IOException { demuxer.seekToPTS(endPTS); long endFrame = demuxer.getCurrentFrame(); return endFrame; } }
/** * Seek to time(s). Next call to nextFrame will return frame at given time. * * @throws IOException Cannot decode intraframes */ public void seek(double seconds) throws IOException { videoTrack.seek(seconds); decodeLeadingFrames(); }
/** * Seek to PTS. Next call to nextFrame will return frame at given PTS * * @throws IOException Cannot decode intraframes */ public void seekToPTS(long pts) throws IOException { videoTrack.seek(pts); decodeLeadingFrames(); }
/** * Seek to frame. Next call to nextFrame will return frameNo * * @throws IOException Cannot decode intraframes */ public void seekToFrame(long frameNo) throws IOException { if(!videoTrack.gotoFrame(frameNo)) { throw new IOException("Invalid frame no: " + frameNo); } decodeLeadingFrames(); }