diff options
5 files changed, 10 insertions, 3 deletions
@@ -18,6 +18,7 @@ include $(CLEAR_VARS) LOCAL_MODULE := mp4parser LOCAL_SDK_VERSION := 9 LOCAL_SRC_FILES := $(call all-java-files-under, isoparser/src/main/java) +LOCAL_JAVA_RESOURCE_DIRS := isoparser/src/main/resources include $(BUILD_STATIC_JAVA_LIBRARY) diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/SampleEntry.java b/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/SampleEntry.java index a1a5486..f9eb071 100644 --- a/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/SampleEntry.java +++ b/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/SampleEntry.java @@ -107,8 +107,9 @@ public abstract class SampleEntry extends AbstractBox implements ContainerBox { @Override public void parse(ReadableByteChannel readableByteChannel, ByteBuffer header, long contentSize, BoxParser boxParser) throws IOException { - super.parse(readableByteChannel, header, contentSize, boxParser); this.boxParser = boxParser; + super.parse(readableByteChannel, header, contentSize, boxParser); + } diff --git a/isoparser/src/main/java/com/googlecode/mp4parser/AbstractBox.java b/isoparser/src/main/java/com/googlecode/mp4parser/AbstractBox.java index f75bc1d..a2a4541 100644 --- a/isoparser/src/main/java/com/googlecode/mp4parser/AbstractBox.java +++ b/isoparser/src/main/java/com/googlecode/mp4parser/AbstractBox.java @@ -112,6 +112,10 @@ public abstract class AbstractBox implements Box { assert contentSize < Integer.MAX_VALUE; content = ChannelHelper.readFully(readableByteChannel, contentSize); } + if (isParsed() == false) { + parseDetails(); + } + } public void getBox(WritableByteChannel os) throws IOException { diff --git a/isoparser/src/main/java/com/googlecode/mp4parser/AbstractContainerBox.java b/isoparser/src/main/java/com/googlecode/mp4parser/AbstractContainerBox.java index 93369f3..e1f944f 100644 --- a/isoparser/src/main/java/com/googlecode/mp4parser/AbstractContainerBox.java +++ b/isoparser/src/main/java/com/googlecode/mp4parser/AbstractContainerBox.java @@ -102,8 +102,8 @@ public abstract class AbstractContainerBox extends AbstractBox implements Contai @Override public void parse(ReadableByteChannel readableByteChannel, ByteBuffer header, long contentSize, BoxParser boxParser) throws IOException { - super.parse(readableByteChannel, header, contentSize, boxParser); this.boxParser = boxParser; + super.parse(readableByteChannel, header, contentSize, boxParser); } @Override diff --git a/isoparser/src/main/java/com/googlecode/mp4parser/FullContainerBox.java b/isoparser/src/main/java/com/googlecode/mp4parser/FullContainerBox.java index d16e47d..30eb285 100644 --- a/isoparser/src/main/java/com/googlecode/mp4parser/FullContainerBox.java +++ b/isoparser/src/main/java/com/googlecode/mp4parser/FullContainerBox.java @@ -92,8 +92,9 @@ public abstract class FullContainerBox extends AbstractFullBox implements Contai @Override public void parse(ReadableByteChannel readableByteChannel, ByteBuffer header, long contentSize, BoxParser boxParser) throws IOException { - super.parse(readableByteChannel, header, contentSize, boxParser); this.boxParser = boxParser; + super.parse(readableByteChannel, header, contentSize, boxParser); + } @Override |