private void decodeLeadingFrames() throws IOException { long frameNo = videoTrack.getCurFrame(); long keyFrame = getPreviousKeyFrame(frameNo); if(keyFrame == frameNo) { return; } if(!videoTrack.gotoFrame(keyFrame)) { throw new IOException("Invalid frame no: " + keyFrame); } Packet frame; do { buffer.clear(); frame = videoTrack.nextFrame(buffer); if(frame == null) { throw new IOException("Cannot decode frame"); } demuxerHelper.skipFrame(frame); } while(frame.getFrameNo() < (frameNo - 1)); }
private void decodeLeadingFrames() throws IOException { long frameNo = videoTrack.getCurFrame(); long keyFrame = getPreviousKeyFrame(frameNo); if(keyFrame == frameNo) { return; } if(!videoTrack.gotoFrame(keyFrame)) { throw new IOException("Invalid frame no: " + keyFrame); } Packet frame; do { buffer.clear(); frame = videoTrack.nextFrame(buffer); if(frame == null) { throw new IOException("Cannot decode frame"); } demuxerHelper.skipFrame(frame); } while(frame.getFrameNo() < (frameNo - 1)); }