1dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhupackage com.coremedia.iso.boxes;
2dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
3dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhuimport com.googlecode.mp4parser.AbstractBox;
4dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
5dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhuimport java.nio.ByteBuffer;
6dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
7dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu/**
8dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu *
9dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu */
10dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhupublic class ItemDataBox extends AbstractBox {
11dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    ByteBuffer data = ByteBuffer.allocate(0);
12dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    public static final String TYPE = "idat";
13dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
14dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
15dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    public ItemDataBox() {
16dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        super(TYPE);
17dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    }
18dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
19dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    public ByteBuffer getData() {
20dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        return data;
21dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    }
22dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
23dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    public void setData(ByteBuffer data) {
24dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        this.data = data;
25dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    }
26dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
27dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    @Override
28dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    protected long getContentSize() {
29dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        return data.limit();
30dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    }
31dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
32dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
33dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    @Override
34dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    public void _parseDetails(ByteBuffer content) {
35dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        data = content.slice();
36dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        content.position(content.position() + content.remaining());
37dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    }
38dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
39dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    @Override
40dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    protected void getContent(ByteBuffer byteBuffer) {
41dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        byteBuffer.put(data);
42dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    }
43dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu}
44