SampleEntry.java
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:1k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. package com.axiosys.bento4;
  2. import java.io.DataOutputStream;
  3. import java.io.IOException;
  4. import java.io.RandomAccessFile;
  5. public class SampleEntry extends ContainerAtom {
  6.     private int dataReferenceIndex;
  7.     
  8.     SampleEntry(int format, int size, RandomAccessFile source, AtomFactory atomFactory) throws IOException, InvalidFormatException {
  9.         super(format, size, false, source);
  10.         
  11.         // read the fields before the children atoms
  12.         int fieldsSize = getFieldsSize();
  13.         readFields(source);
  14.         // read children atoms (ex: esds and maybe others)
  15.         readChildren(atomFactory, source, size-HEADER_SIZE-fieldsSize);
  16.     }
  17.     
  18.     public void write(DataOutputStream stream) throws IOException {
  19.         // write the header
  20.         writeHeader(stream);
  21.         // write the fields
  22.         writeFields(stream);
  23.         // write the children atoms
  24.         writeChildren(stream);
  25.     }
  26.     
  27.     protected int getFieldsSize() {
  28.         return 8;
  29.     }
  30.     
  31.     protected void readFields(RandomAccessFile source) throws IOException {
  32.         source.skipBytes(6);
  33.         dataReferenceIndex = source.readUnsignedShort();    
  34.     }
  35.     
  36.     protected void writeFields(DataOutputStream stream) throws IOException {
  37.         byte[] reserved = new byte[] { 0,0,0,0,0,0 };
  38.         stream.write(reserved);
  39.         stream.writeShort(dataReferenceIndex);
  40.     }
  41.  }