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)); }
if (videoFrame.getPacket().getFrameNo() < firstVideoFrame.getPacket().getFrameNo()) firstVideoFrame = videoFrame;
throw new NullPointerException("inFrame == null"); inTrack.gotoFrame(inFrame.getFrameNo());
private void decodeLeadingFrames() throws IOException, JCodecException { SeekableDemuxerTrack sdt = sdt(); int curFrame = (int) sdt.getCurFrame(); int keyFrame = detectKeyFrame(curFrame); sdt.gotoFrame(keyFrame); Packet frame = sdt.nextFrame(); if (decoder == null) decoder = detectDecoder(sdt); while (frame.getFrameNo() < curFrame) { decoder.decodeFrame(frame, getBuffer()); frame = sdt.nextFrame(); } sdt.gotoFrame(curFrame); }
for (int i = 0; pkt != null && i < 150; i++) { videoTrack.addFrame(MP4Packet.createMP4Packet(pkt.getData(), pkt.getPts() - firstPts, pkt.getTimescale(), pkt .getDuration(), pkt.getFrameNo(), pkt.getFrameType(), pkt.getTapeTimecode(), 0, pkt.getPts() - firstPts, 0)); pkt = video.nextFrame();
} else { ++videoFramesRead[s]; printLegend((int) nextVideoFrame.getPacket().getFrameNo(), 0, nextVideoFrame.getPacket());