public void close() throws IOException { Container c = trackBox.getParent(); if (c instanceof BasicContainer) { ((BasicContainer) c).close(); } if (fragments != null) { for (IsoFile fragment : fragments) { fragment.close(); } } }
public SampleList(TrackBox trackBox, IsoFile... additionalFragments) { Container topLevel = ((Box) trackBox.getParent()).getParent(); if (trackBox.getParent().getBoxes(MovieExtendsBox.class).isEmpty()) { if (additionalFragments.length > 0) { throw new RuntimeException("The TrackBox comes from a standard MP4 file. Only use the additionalFragments param if you are dealing with ( fragmented MP4 files AND additional fragments in standalone files )"); } samples = new DefaultMp4SampleList(trackBox.getTrackHeaderBox().getTrackId(), topLevel); } else { samples = new FragmentedMp4SampleList(trackBox.getTrackHeaderBox().getTrackId(), topLevel, additionalFragments); } }
List<MovieExtendsBox> movieExtendsBoxes = trackBox.getParent().getBoxes(MovieExtendsBox.class);
List<MovieExtendsBox> movieExtendsBoxes = trackBox.getParent().getBoxes(MovieExtendsBox.class);
if (trackBox.getParent().getBoxes(MovieExtendsBox.class).size() > 0) { for (MovieFragmentBox movieFragmentBox : ((Box) trackBox.getParent()).getParent().getBoxes(MovieFragmentBox.class)) { List<TrackFragmentBox> trafs = movieFragmentBox.getBoxes(TrackFragmentBox.class); for (TrackFragmentBox traf : trafs) { long baseOffset; if (traf.getTrackFragmentHeaderBox().hasBaseDataOffset()) { base = ((Box) trackBox.getParent()).getParent(); baseOffset = traf.getTrackFragmentHeaderBox().getBaseDataOffset(); } else { SampleAuxiliaryInformationSizesBox saiz = saizSaioPair.saiz; Container topLevel = ((MovieBox) trackBox.getParent()).getParent();
final List<MovieExtendsBox> movieExtendsBoxes = trackBox.getParent().getBoxes(MovieExtendsBox.class); if (movieExtendsBoxes.size() > 0) { for (MovieExtendsBox mvex : movieExtendsBoxes) {
final List<MovieExtendsBox> movieExtendsBoxes = trackBox.getParent().getBoxes(MovieExtendsBox.class); if (movieExtendsBoxes.size() > 0) { for (MovieExtendsBox mvex : movieExtendsBoxes) {
movieFragmentBoxes.addAll(((Box) trackBox.getParent()).getParent().getBoxes(MovieFragmentBox.class)); for (IsoFile fragment : fragments) { movieFragmentBoxes.addAll(fragment.getBoxes(MovieFragmentBox.class)); final List<MovieExtendsBox> movieExtendsBoxes = trackBox.getParent().getBoxes(MovieExtendsBox.class); if (movieExtendsBoxes.size() > 0) { for (MovieExtendsBox mvex : movieExtendsBoxes) { for (TrackExtendsBox trex : trackExtendsBoxes) { if (trex.getTrackId() == trackId) { List<SubSampleInformationBox> subss = Path.getPaths(((Box) trackBox.getParent()).getParent(), "/moof/traf/subs"); if (subss.size() > 0) { subSampleInformationBox = new SubSampleInformationBox();