Class AbstractContainerBox

java.lang.Object
org.mp4parser.BasicContainer
org.mp4parser.support.AbstractContainerBox
All Implemented Interfaces:
Box, Container, ParsableBox
Direct Known Subclasses:
AbstractSampleEntry, AppleItemListBox, AppleReferenceMovieBox, AppleReferenceMovieDescriptorBox, AppleWaveBox, DataInformationBox, DataReferenceBox, EditBox, FullContainerBox, GenericMediaHeaderAtom, ItemProtectionBox, MediaBox, MediaInformationBox, MetaBox, MovieBox, MovieExtendsBox, MovieFragmentBox, MovieFragmentRandomAccessBox, ProtectionSchemeInformationBox, SampleDescriptionBox, SampleTableBox, SchemeInformationBox, TrackApertureModeDimensionAtom, TrackBox, TrackFragmentBox, TrackReferenceBox, UserDataBox

public class AbstractContainerBox extends BasicContainer implements ParsableBox
Abstract base class suitable for most boxes acting purely as container for other boxes.
  • Field Details

    • type

      protected String type
    • largeBox

      protected boolean largeBox
  • Constructor Details

    • AbstractContainerBox

      public AbstractContainerBox(String type)
  • Method Details

    • setParent

      public void setParent(Container parent)
    • getSize

      public long getSize()
      Specified by:
      getSize in interface Box
    • getType

      public String getType()
      Description copied from interface: Box
      The box's 4-cc type.
      Specified by:
      getType in interface Box
      Returns:
      the 4 character type of the box
    • getHeader

      protected ByteBuffer getHeader()
    • parse

      public void parse(ReadableByteChannel dataSource, ByteBuffer header, long contentSize, BoxParser boxParser) throws IOException
      Description copied from interface: ParsableBox
      Parses the box excluding the already parsed header (size, 4cc, [long-size], [user-type]). The remaining size of the box is the contentSize, contentSize number of bytes should be read from the box source (readableByteChannel). If you need the header buffer at a later stage you have to create a copy.
      Specified by:
      parse in interface ParsableBox
      Parameters:
      dataSource - the source for this box
      header - the box' already parsed header (create copy if you need it later as it will be overwritten)
      contentSize - remaining bytes of this box
      boxParser - use it to parse sub-boxes.
      Throws:
      IOException - in case of an error during a read operation
    • getBox

      public void getBox(WritableByteChannel writableByteChannel) throws IOException
      Description copied from interface: Box
      Writes the complete box - size | 4-cc | content - to the given writableByteChannel.
      Specified by:
      getBox in interface Box
      Parameters:
      writableByteChannel - the box's sink
      Throws:
      IOException - in case of problems with the Channel