summaryrefslogtreecommitdiff
path: root/isoparser/src/main/java/com
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 /isoparser/src/main/java/com
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
Diffstat (limited to 'isoparser/src/main/java/com')
-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
4 files changed, 9 insertions, 3 deletions
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