summaryrefslogtreecommitdiff
path: root/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/FreeBox.java.svn-base
diff options
context:
space:
mode:
Diffstat (limited to 'isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/FreeBox.java.svn-base')
-rw-r--r--isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/FreeBox.java.svn-base114
1 files changed, 0 insertions, 114 deletions
diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/FreeBox.java.svn-base b/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/FreeBox.java.svn-base
deleted file mode 100644
index 636c9a7..0000000
--- a/isoparser/src/main/java/com/coremedia/iso/boxes/.svn/text-base/FreeBox.java.svn-base
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright 2008 CoreMedia AG, Hamburg
- *
- * Licensed under the Apache License, Version 2.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.coremedia.iso.boxes;
-
-
-import com.coremedia.iso.BoxParser;
-import com.coremedia.iso.ChannelHelper;
-import com.coremedia.iso.IsoTypeWriter;
-import com.googlecode.mp4parser.AbstractBox;
-
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.nio.channels.FileChannel;
-import java.nio.channels.ReadableByteChannel;
-import java.nio.channels.WritableByteChannel;
-import java.util.LinkedList;
-import java.util.List;
-
-import static com.googlecode.mp4parser.util.CastUtils.l2i;
-
-/**
- * A free box. Just a placeholder to enable editing without rewriting the whole file.
- */
-public class FreeBox implements Box {
- public static final String TYPE = "free";
- ByteBuffer data;
- List<Box> replacers = new LinkedList<Box>();
- private ContainerBox parent;
-
- public FreeBox() {
- }
-
- public FreeBox(int size) {
- this.data = ByteBuffer.allocate(size);
- }
-
-
- public ByteBuffer getData() {
- return data;
- }
-
- public void setData(ByteBuffer data) {
- this.data = data;
- }
-
- public void getBox(WritableByteChannel os) throws IOException {
- for (Box replacer : replacers) {
- replacer.getBox(os);
- }
- ByteBuffer header = ByteBuffer.allocate(8);
- IsoTypeWriter.writeUInt32(header, 8 + data.limit());
- header.put(TYPE.getBytes());
- header.rewind();
- os.write(header);
- data.rewind();
- os.write(data);
-
- }
-
- public ContainerBox getParent() {
- return parent;
- }
-
- public void setParent(ContainerBox parent) {
- this.parent = parent;
- }
-
- public long getSize() {
- long size = 8;
- for (Box replacer : replacers) {
- size += replacer.getSize();
- }
- size += data.limit();
- return size;
- }
-
- public String getType() {
- return TYPE;
- }
-
- public void parse(ReadableByteChannel readableByteChannel, ByteBuffer header, long contentSize, BoxParser boxParser) throws IOException {
- if (readableByteChannel instanceof FileChannel && contentSize > 1024 * 1024) {
- // It's quite expensive to map a file into the memory. Just do it when the box is larger than a MB.
- data = ((FileChannel) readableByteChannel).map(FileChannel.MapMode.READ_ONLY, ((FileChannel) readableByteChannel).position(), contentSize);
- ((FileChannel) readableByteChannel).position(((FileChannel) readableByteChannel).position() + contentSize);
- } else {
- assert contentSize < Integer.MAX_VALUE;
- data = ChannelHelper.readFully(readableByteChannel, contentSize);
- }
- }
-
-
- public void addAndReplace(Box box) {
- data.position(l2i(box.getSize()));
- data = data.slice();
- replacers.add(box);
- }
-
-
-} \ No newline at end of file