public class AbstractContainerBox extends BasicContainer implements Box
Modifier and Type | Field and Description |
---|---|
protected boolean |
largeBox |
protected String |
type |
boxParser, dataSource
Constructor and Description |
---|
AbstractContainerBox(String type) |
Modifier and Type | Method and Description |
---|---|
void |
getBox(WritableByteChannel writableByteChannel)
Writes the complete box - size | 4-cc | content - to the given
writableByteChannel . |
protected ByteBuffer |
getHeader() |
long |
getOffset()
Returns the position of the box in the original file.
|
Container |
getParent() |
long |
getSize() |
String |
getType()
The box's 4-cc type.
|
void |
initContainer(DataSource dataSource,
long containerSize,
BoxParser boxParser) |
void |
parse(DataSource dataSource,
ByteBuffer header,
long contentSize,
BoxParser boxParser)
Parses the box excluding the already parsed header (size, 4cc, [long-size], [user-type]).
|
void |
setParent(Container parent) |
addBox, close, getBoxes, getBoxes, getBoxes, getByteBuffer, getContainerSize, hasNext, next, remove, setBoxes, toString, writeContainer
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
forEachRemaining
protected String type
protected boolean largeBox
public AbstractContainerBox(String type)
public long getOffset()
Box
protected ByteBuffer getHeader()
public void parse(DataSource dataSource, ByteBuffer header, long contentSize, BoxParser boxParser) throws IOException
Box
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.parse
in interface Box
dataSource
- the source for this boxheader
- the box' already parsed header (create copy if you need it
later as it will be overwritten)contentSize
- remaining bytes of this boxboxParser
- use it to parse sub-boxes.IOException
- in case of an error during a read operationpublic void getBox(WritableByteChannel writableByteChannel) throws IOException
Box
writableByteChannel
.getBox
in interface Box
writableByteChannel
- the box's sinkIOException
- in case of problems with the Channel
public void initContainer(DataSource dataSource, long containerSize, BoxParser boxParser) throws IOException
initContainer
in class BasicContainer
IOException
Copyright © 2017. All rights reserved.