TimeCodeBox.java revision dd9eb897ee7c7b507cbdcf80263bb4b5de6966bf
1/*
2 * Copyright 2012 Sebastian Annies, Hamburg
3 *
4 * Licensed under the Apache License, Version 2.0 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *     http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package com.googlecode.mp4parser.boxes.apple;
17
18import com.coremedia.iso.boxes.Box;
19import com.coremedia.iso.boxes.sampleentry.SampleEntry;
20
21import java.nio.ByteBuffer;
22
23public class TimeCodeBox extends SampleEntry {
24    byte[] data;
25
26
27    public TimeCodeBox() {
28        super("tmcd");
29    }
30
31    @Override
32    protected long getContentSize() {
33        long size = 26;
34        for (Box box : boxes) {
35            size += box.getSize();
36        }
37        return size;
38    }
39
40    @Override
41    public void _parseDetails(ByteBuffer content) {
42        _parseReservedAndDataReferenceIndex(content);
43        data = new byte[18];
44        content.get(data);
45        _parseChildBoxes(content);
46    }
47
48    @Override
49    protected void getContent(ByteBuffer byteBuffer) {
50        _writeReservedAndDataReferenceIndex(byteBuffer);
51        byteBuffer.put(data);
52        _writeChildBoxes(byteBuffer);
53    }
54}
55