1dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhupackage com.coremedia.iso.boxes.apple; 2dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 3dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhuimport com.coremedia.iso.IsoTypeReader; 4dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhuimport com.coremedia.iso.Utf8; 5dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhuimport com.googlecode.mp4parser.AbstractFullBox; 6dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 7dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhuimport java.nio.ByteBuffer; 8dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 9dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu/** 10dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu * Apple Name box. Allowed as subbox of "----" box. 11dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu * 12dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu * @see AppleGenericBox 13dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu */ 14dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhupublic final class AppleNameBox extends AbstractFullBox { 15dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu public static final String TYPE = "name"; 16dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu private String name; 17dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 18dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu public AppleNameBox() { 19dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu super(TYPE); 20dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu } 21dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 22dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu protected long getContentSize() { 23dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu return 4 + Utf8.convert(name).length; 24dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu } 25dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 26dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu public String getName() { 27dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu return name; 28dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu } 29dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 30dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu public void setName(String name) { 31dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu this.name = name; 32dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu } 33dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 34dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu @Override 35dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu public void _parseDetails(ByteBuffer content) { 36dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu parseVersionAndFlags(content); 37dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu name = IsoTypeReader.readString(content, content.remaining()); 38dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu } 39dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu 40dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu @Override 41dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu protected void getContent(ByteBuffer byteBuffer) { 42dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu writeVersionAndFlags(byteBuffer); 43dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu byteBuffer.put(Utf8.convert(name)); 44dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu } 45dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu} 46