summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTeng-Hui Zhu <ztenghui@google.com>2012-09-23 14:58:04 -0700
committerTeng-Hui Zhu <ztenghui@google.com>2012-09-24 10:00:17 -0700
commit9fcbbdafbb20691e1d519ee1ab35f8a5889bef15 (patch)
tree8fc971e8e3fd520e5d60a3a77f757ae4f858b36f
parentd6072f0a479bb3bb6fe1ef2825b9ee6187827d96 (diff)
downloadmp4parser-9fcbbdafbb20691e1d519ee1ab35f8a5889bef15.tar.gz
Working around the aspectJ implementation.
Instead of fully implementing the aspectJ, here we just parse the Box at the constructor. The code originially use aspects to implement the parse on demand for various member functions. However, we can actually just parse in the constructor since trimming need to parse most of the boxes anyway. bug:7093055 Change-Id: If53fa9a413d561be80dbd6c4c37b0a14a9cec610
-rw-r--r--Android.mk1
-rw-r--r--isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/SampleEntry.java3
-rw-r--r--isoparser/src/main/java/com/googlecode/mp4parser/AbstractBox.java4
-rw-r--r--isoparser/src/main/java/com/googlecode/mp4parser/AbstractContainerBox.java2
-rw-r--r--isoparser/src/main/java/com/googlecode/mp4parser/FullContainerBox.java3
5 files changed, 10 insertions, 3 deletions
diff --git a/Android.mk b/Android.mk
index 6c6a6e9..d5b1561 100644
--- a/Android.mk
+++ b/Android.mk
@@ -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