diff options
Diffstat (limited to 'isoparser/src/main/java/com/googlecode/mp4parser/boxes/mp4/.svn/text-base')
3 files changed, 166 insertions, 0 deletions
diff --git a/isoparser/src/main/java/com/googlecode/mp4parser/boxes/mp4/.svn/text-base/AbstractDescriptorBox.java.svn-base b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/mp4/.svn/text-base/AbstractDescriptorBox.java.svn-base new file mode 100644 index 0000000..7d614e2 --- /dev/null +++ b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/mp4/.svn/text-base/AbstractDescriptorBox.java.svn-base @@ -0,0 +1,84 @@ +/* + * Copyright 2011 castLabs, Berlin + * + * 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.googlecode.mp4parser.boxes.mp4; + +import com.googlecode.mp4parser.AbstractFullBox; +import com.googlecode.mp4parser.boxes.mp4.objectdescriptors.BaseDescriptor; +import com.googlecode.mp4parser.boxes.mp4.objectdescriptors.ObjectDescriptorFactory; + +import java.io.IOException; +import java.nio.ByteBuffer; +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * ES Descriptor Box. + */ +public class AbstractDescriptorBox extends AbstractFullBox { + private static Logger log = Logger.getLogger(AbstractDescriptorBox.class.getName()); + + + public BaseDescriptor descriptor; + public ByteBuffer data; + + public AbstractDescriptorBox(String type) { + super(type); + } + + @Override + protected void getContent(ByteBuffer byteBuffer) { + writeVersionAndFlags(byteBuffer); + data.rewind(); // has been fforwarded by parsing + byteBuffer.put(data); + } + + @Override + protected long getContentSize() { + return 4 + data.limit(); + } + + public BaseDescriptor getDescriptor() { + return descriptor; + } + + public String getDescriptorAsString() { + return descriptor.toString(); + } + + public void setData(ByteBuffer data) { + this.data = data; + } + + @Override + public void _parseDetails(ByteBuffer content) { + parseVersionAndFlags(content); + data = content.slice(); + content.position(content.position() + content.remaining()); + try { + data.rewind(); + descriptor = ObjectDescriptorFactory.createFrom(-1, data); + } catch (IOException e) { + log.log(Level.WARNING, "Error parsing ObjectDescriptor", e); + //that's why we copied it ;) + } catch (IndexOutOfBoundsException e) { + log.log(Level.WARNING, "Error parsing ObjectDescriptor", e); + //that's why we copied it ;) + } + + } + +} diff --git a/isoparser/src/main/java/com/googlecode/mp4parser/boxes/mp4/.svn/text-base/ESDescriptorBox.java.svn-base b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/mp4/.svn/text-base/ESDescriptorBox.java.svn-base new file mode 100644 index 0000000..5d9d591 --- /dev/null +++ b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/mp4/.svn/text-base/ESDescriptorBox.java.svn-base @@ -0,0 +1,36 @@ +/* + * Copyright 2011 castLabs, Berlin + * + * 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.googlecode.mp4parser.boxes.mp4; + +import com.googlecode.mp4parser.boxes.mp4.objectdescriptors.ESDescriptor; + +/** + * ES Descriptor Box. + */ +public class ESDescriptorBox extends AbstractDescriptorBox { + public static final String TYPE = "esds"; + + public ESDescriptorBox() { + super(TYPE); + } + + public ESDescriptor getEsDescriptor() { + return (ESDescriptor) super.getDescriptor(); + } + + +} diff --git a/isoparser/src/main/java/com/googlecode/mp4parser/boxes/mp4/.svn/text-base/ObjectDescriptorBox.java.svn-base b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/mp4/.svn/text-base/ObjectDescriptorBox.java.svn-base new file mode 100644 index 0000000..c9e7493 --- /dev/null +++ b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/mp4/.svn/text-base/ObjectDescriptorBox.java.svn-base @@ -0,0 +1,46 @@ +/* + * Copyright 2011 Sebastian Annies, 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.googlecode.mp4parser.boxes.mp4; + +/** + * This object contains an Object Descriptor or an Initial Object Descriptor. + * There are a number of possible file types based on usage, depending on the descriptor: + * <ul> + * <li>Presentation, contains IOD which contains a BIFS stream (MP4 file); + * <li>Sub-part of a presentation, contains an IOD without a BIFS stream (MP4 file);</li> + * <li>Sub-part of a presentation, contains an OD (MP4 file);</li> + * <li>Free-form file, referenced by MP4 data references (free-format);</li> + * <li>Sub-part of a presentation, referenced by an ES URL.</li> + * </ul> + * NOTE: <br/> + * The first three are MP4 files, a file referenced by a data reference is not necessarily an MP4 file, as it is + * free-format. Files referenced by ES URLs, by data references, or intended as input to an editing process, need not have + * an Object Descriptor Box. <br/> + * An OD URL may point to an MP4 file. Implicitly, the target of such a URL is the OD/IOD located in the 'iods' + * atom in that file.</br/> + * If an MP4 file contains several object descriptors, only the OD/IOD in the 'iods' atom can be addressed using + * an OD URL from a remote MPEG-4 presentation. + */ +public class ObjectDescriptorBox extends AbstractDescriptorBox { + public static final String TYPE = "iods"; + + public ObjectDescriptorBox() { + super(TYPE); + } + + +} |