summaryrefslogtreecommitdiff
path: root/isoparser/src/main/java/com/googlecode/mp4parser/boxes/mp4/samplegrouping/.svn/text-base/SampleToGroupBox.java.svn-base
diff options
context:
space:
mode:
Diffstat (limited to 'isoparser/src/main/java/com/googlecode/mp4parser/boxes/mp4/samplegrouping/.svn/text-base/SampleToGroupBox.java.svn-base')
-rw-r--r--isoparser/src/main/java/com/googlecode/mp4parser/boxes/mp4/samplegrouping/.svn/text-base/SampleToGroupBox.java.svn-base174
1 files changed, 0 insertions, 174 deletions
diff --git a/isoparser/src/main/java/com/googlecode/mp4parser/boxes/mp4/samplegrouping/.svn/text-base/SampleToGroupBox.java.svn-base b/isoparser/src/main/java/com/googlecode/mp4parser/boxes/mp4/samplegrouping/.svn/text-base/SampleToGroupBox.java.svn-base
deleted file mode 100644
index 0fa059e..0000000
--- a/isoparser/src/main/java/com/googlecode/mp4parser/boxes/mp4/samplegrouping/.svn/text-base/SampleToGroupBox.java.svn-base
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * Copyright 2012 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.samplegrouping;
-
-import com.coremedia.iso.IsoTypeReader;
-import com.coremedia.iso.IsoTypeWriter;
-import com.googlecode.mp4parser.AbstractFullBox;
-
-import java.nio.ByteBuffer;
-import java.util.LinkedList;
-import java.util.List;
-
-import static com.googlecode.mp4parser.util.CastUtils.l2i;
-
-/**
- * This table can be used to find the group that a sample belongs to and the associated description of that
- * sample group. The table is compactly coded with each entry giving the index of the first sample of a run of
- * samples with the same sample group descriptor. The sample group description ID is an index that refers to a
- * SampleGroupDescription box, which contains entries describing the characteristics of each sample group.
- * <p/>
- * There may be multiple instances of this box if there is more than one sample grouping for the samples in a
- * track. Each instance of the SampleToGroup box has a type code that distinguishes different sample
- * groupings. Within a track, there shall be at most one instance of this box with a particular grouping type. The
- * associated SampleGroupDescription shall indicate the same value for the grouping type.
- * <p/>
- * Version 1 of this box should only be used if a grouping type parameter is needed.
- */
-public class SampleToGroupBox extends AbstractFullBox {
- public static final String TYPE = "sbgp";
-
-
- private String groupingType;
- private String groupingTypeParameter;
-
- List<Entry> entries = new LinkedList<Entry>();
-
- public SampleToGroupBox() {
- super(TYPE);
-
- }
-
- @Override
- protected long getContentSize() {
- return this.getVersion() == 1 ? entries.size() * 8 + 16 : entries.size() * 8 + 12;
- }
-
- @Override
- protected void getContent(ByteBuffer byteBuffer) {
- writeVersionAndFlags(byteBuffer);
- byteBuffer.put(groupingType.getBytes());
- if (this.getVersion() == 1) {
- byteBuffer.put(groupingTypeParameter.getBytes());
- }
- IsoTypeWriter.writeUInt32(byteBuffer, entries.size());
- for (Entry entry : entries) {
- IsoTypeWriter.writeUInt32(byteBuffer, entry.getSampleCount());
- IsoTypeWriter.writeUInt32(byteBuffer, entry.getGroupDescriptionIndex());
- }
-
- }
-
- @Override
- protected void _parseDetails(ByteBuffer content) {
- parseVersionAndFlags(content);
- groupingType = IsoTypeReader.read4cc(content);
- if (this.getVersion() == 1) {
- groupingTypeParameter = IsoTypeReader.read4cc(content);
- }
- long entryCount = IsoTypeReader.readUInt32(content);
- while (entryCount-- > 0) {
- entries.add(new Entry(l2i(IsoTypeReader.readUInt32(content)), l2i(IsoTypeReader.readUInt32(content))));
- }
- }
-
- public static class Entry {
- private long sampleCount;
- private int groupDescriptionIndex;
-
- public Entry(long sampleCount, int groupDescriptionIndex) {
- this.sampleCount = sampleCount;
- this.groupDescriptionIndex = groupDescriptionIndex;
- }
-
- public long getSampleCount() {
- return sampleCount;
- }
-
- public void setSampleCount(long sampleCount) {
- this.sampleCount = sampleCount;
- }
-
- public int getGroupDescriptionIndex() {
- return groupDescriptionIndex;
- }
-
- public void setGroupDescriptionIndex(int groupDescriptionIndex) {
- this.groupDescriptionIndex = groupDescriptionIndex;
- }
-
- @Override
- public String toString() {
- return "Entry{" +
- "sampleCount=" + sampleCount +
- ", groupDescriptionIndex=" + groupDescriptionIndex +
- '}';
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
- if (o == null || getClass() != o.getClass()) {
- return false;
- }
-
- Entry entry = (Entry) o;
-
- if (groupDescriptionIndex != entry.groupDescriptionIndex) {
- return false;
- }
- if (sampleCount != entry.sampleCount) {
- return false;
- }
-
- return true;
- }
-
- @Override
- public int hashCode() {
- int result = (int) (sampleCount ^ (sampleCount >>> 32));
- result = 31 * result + groupDescriptionIndex;
- return result;
- }
- }
-
- public String getGroupingType() {
- return groupingType;
- }
-
- public void setGroupingType(String groupingType) {
- this.groupingType = groupingType;
- }
-
- public String getGroupingTypeParameter() {
- return groupingTypeParameter;
- }
-
- public void setGroupingTypeParameter(String groupingTypeParameter) {
- this.groupingTypeParameter = groupingTypeParameter;
- }
-
- public List<Entry> getEntries() {
- return entries;
- }
-
- public void setEntries(List<Entry> entries) {
- this.entries = entries;
- }
-}