public List<TrackRunBox> getTrackRunBoxes() { return getBoxes(TrackRunBox.class, true); }
private Box createMoof(StreamingTrack streamingTrack, List<StreamingSample> samples) { MovieFragmentBox moof = new MovieFragmentBox(); createMfhd(sequenceNumber, moof); createTraf(streamingTrack, moof, samples); TrackRunBox firstTrun = moof.getTrackRunBoxes().get(0); firstTrun.setDataOffset(1); // dummy to make size correct firstTrun.setDataOffset((int) (8 + moof.getSize())); // mdat header + moof size return moof; }
protected void createMfhd(long startSample, long endSample, Track track, int sequenceNumber, MovieFragmentBox parent) { MovieFragmentHeaderBox mfhd = new MovieFragmentHeaderBox(); mfhd.setSequenceNumber(sequenceNumber); parent.addBox(mfhd); }
for (MovieFragmentBox moof : moofs) { dumpBox(moof); MovieFragmentHeaderBox mfhd = moof.getBoxes(MovieFragmentHeaderBox.class).get(0); if (mfhd != null) { log.debug("Sequence: {}", mfhd.getSequenceNumber()); List<TrackFragmentBox> trafs = moof.getBoxes(TrackFragmentBox.class); for (TrackFragmentBox traf : trafs) { TrackFragmentHeaderBox tfhd = traf.getTrackFragmentHeaderBox(); log.debug("tfhd: {}", tfhd); List<TrackExtendsBox> trexs = moof.getBoxes(TrackExtendsBox.class); for (TrackExtendsBox trex : trexs) { log.debug("trex - track id: {} duration: {} sample size: {}", trex.getTrackId(), trex.getDefaultSampleDuration(), trex.getDefaultSampleSize()); List<TrackRunBox> truns = moof.getTrackRunBoxes(); log.info("Fragment contains {} TrackRunBox entries", truns.size()); for (TrackRunBox trun : truns) {
for (MovieFragmentBox moof : moofs) { dumpBox(moof); MovieFragmentHeaderBox mfhd = moof.getBoxes(MovieFragmentHeaderBox.class).get(0); if (mfhd != null) { log.debug("Sequence: {}", mfhd.getSequenceNumber()); List<TrackFragmentBox> trafs = moof.getBoxes(TrackFragmentBox.class); for (TrackFragmentBox traf : trafs) { TrackFragmentHeaderBox tfhd = traf.getTrackFragmentHeaderBox(); log.debug("tfhd: {}", tfhd); List<TrackExtendsBox> trexs = moof.getBoxes(TrackExtendsBox.class); for (TrackExtendsBox trex : trexs) { log.debug("trex - track id: {} duration: {} sample size: {}", trex.getTrackId(), trex.getDefaultSampleDuration(), trex.getDefaultSampleSize()); List<TrackRunBox> truns = moof.getTrackRunBoxes(); log.info("Fragment contains {} TrackRunBox entries", truns.size()); for (TrackRunBox trun : truns) {
/** * Creates a 'moof' box for a given sequence of samples. * * @param startSample low endpoint (inclusive) of the sample sequence * @param endSample high endpoint (exclusive) of the sample sequence * @param track source of the samples * @param sequenceNumber the fragment index of the requested list of samples * @return the list of TrackRun boxes. */ protected ParsableBox createMoof(long startSample, long endSample, Track track, int sequenceNumber) { MovieFragmentBox moof = new MovieFragmentBox(); createMfhd(startSample, endSample, track, sequenceNumber, moof); createTraf(startSample, endSample, track, sequenceNumber, moof); TrackRunBox firstTrun = moof.getTrackRunBoxes().get(0); firstTrun.setDataOffset(1); // dummy to make size correct firstTrun.setDataOffset((int) (8 + moof.getSize())); // mdat header + moof size return moof; }
public int getTrackCount() { return getBoxes(TrackFragmentBox.class, false).size(); }
private void createMfhd(long sequenceNumber, MovieFragmentBox moof) { MovieFragmentHeaderBox mfhd = new MovieFragmentHeaderBox(); mfhd.setSequenceNumber(sequenceNumber); moof.addBox(mfhd); }
/** * Creates a 'moof' box for a given sequence of samples. * * @param startSample low endpoint (inclusive) of the sample sequence * @param endSample high endpoint (exclusive) of the sample sequence * @param track source of the samples * @param sequenceNumber the fragment index of the requested list of samples * @return the list of TrackRun boxes. */ protected ParsableBox createMoof(long startSample, long endSample, Track track, int sequenceNumber) { MovieFragmentBox moof = new MovieFragmentBox(); createMfhd(startSample, endSample, track, sequenceNumber, moof); createTraf(startSample, endSample, track, sequenceNumber, moof); TrackRunBox firstTrun = moof.getTrackRunBoxes().get(0); firstTrun.setDataOffset(1); // dummy to make size correct firstTrun.setDataOffset((int) (8 + moof.getSize())); // mdat header + moof size return moof; }
/** * Returns the track numbers associated with this <code>MovieBox</code>. * * @return the tracknumbers (IDs) of the tracks in their order of appearance in the file */ public long[] getTrackNumbers() { List<TrackFragmentBox> trackBoxes = this.getBoxes(TrackFragmentBox.class, false); long[] trackNumbers = new long[trackBoxes.size()]; for (int trackCounter = 0; trackCounter < trackBoxes.size(); trackCounter++) { TrackFragmentBox trackBoxe = trackBoxes.get(trackCounter); trackNumbers[trackCounter] = trackBoxe.getTrackFragmentHeaderBox().getTrackId(); } return trackNumbers; }
protected void createTraf(long startSample, long endSample, Track track, int sequenceNumber, MovieFragmentBox parent) { TrackFragmentBox traf = new TrackFragmentBox(); parent.addBox(traf); createTfhd(startSample, endSample, track, sequenceNumber, traf); createTfdt(startSample, track, traf);
/** * Creates a 'moof' box for a given sequence of samples. * * @param startSample low endpoint (inclusive) of the sample sequence * @param endSample high endpoint (exclusive) of the sample sequence * @param track source of the samples * @param sequenceNumber the fragment index of the requested list of samples * @return the list of TrackRun boxes. */ protected Box createMoof(long startSample, long endSample, Track track, int sequenceNumber) { MovieFragmentBox moof = new MovieFragmentBox(); createMfhd(sequenceNumber, moof); createTraf(startSample, endSample, track, moof); TrackRunBox firstTrun = moof.getTrackRunBoxes().get(0); firstTrun.setDataOffset(1); // dummy to make size correct firstTrun.setDataOffset((int) (8 + moof.getSize())); // mdat header + moof size return moof; }
private void initAllFragments() { List<TrackFragmentBox> trafs = new ArrayList<>(); for (MovieFragmentBox moof : isofile.getBoxes(MovieFragmentBox.class)) { for (TrackFragmentBox trackFragmentBox : moof.getBoxes(TrackFragmentBox.class)) { if (trackFragmentBox.getTrackFragmentHeaderBox().getTrackId() == trackBox.getTrackHeaderBox().getTrackId()) { trafs.add(trackFragmentBox); traf2moof.put(trackFragmentBox, moof); } } } allTrafs = trafs; int firstSample = 1; firstSamples = new int[allTrafs.size()]; for (int i = 0; i < allTrafs.size(); i++) { firstSamples[i] = firstSample; firstSample += getTrafSize(allTrafs.get(i)); } }
private void createTraf(StreamingTrack streamingTrack, MovieFragmentBox moof, List<StreamingSample> samples) { TrackFragmentBox traf = new TrackFragmentBox(); moof.addBox(traf); createTfhd(streamingTrack, traf); createTfdt(streamingTrack, traf);
List<TrackFragmentBox> trafs = ((MovieFragmentBox) box).getBoxes(TrackFragmentBox.class); for (int i = 0; i < trafs.size(); i++) { TrackFragmentBox traf = trafs.get(i);
protected void createMfhd(long startSample, long endSample, Track track, int sequenceNumber, MovieFragmentBox parent) { MovieFragmentHeaderBox mfhd = new MovieFragmentHeaderBox(); mfhd.setSequenceNumber(sequenceNumber); parent.addBox(mfhd); }
@Override public int size() { if (size_ != -1) { return size_; } int i = 0; for (MovieFragmentBox moof : isofile.getBoxes(MovieFragmentBox.class)) { for (TrackFragmentBox trackFragmentBox : moof.getBoxes(TrackFragmentBox.class)) { if (trackFragmentBox.getTrackFragmentHeaderBox().getTrackId() == trackBox.getTrackHeaderBox().getTrackId()) { for (TrackRunBox trackRunBox : trackFragmentBox.getBoxes(TrackRunBox.class)) { i += trackRunBox.getSampleCount(); } } } } size_ = i; return i; }
protected void createMfhd(int sequenceNumber, MovieFragmentBox parent) { MovieFragmentHeaderBox mfhd = new MovieFragmentHeaderBox(); mfhd.setSequenceNumber(sequenceNumber); parent.addBox(mfhd); }
List<TrackFragmentBox> trafs = movieFragmentBox.getBoxes(TrackFragmentBox.class); for (TrackFragmentBox traf : trafs) { if (traf.getTrackFragmentHeaderBox().getTrackId() == trackId) {
protected void createTraf(long startSample, long endSample, Track track, int sequenceNumber, MovieFragmentBox parent) { TrackFragmentBox traf = new TrackFragmentBox(); parent.addBox(traf); createTfhd(startSample, endSample, track, sequenceNumber, traf); createTfdt(startSample, track, traf);