1 package com.googlecode.mp4parser.boxes; 2 3 import com.googlecode.mp4parser.AbstractBox; 4 import com.googlecode.mp4parser.boxes.mp4.objectdescriptors.BitReaderBuffer; 5 import com.googlecode.mp4parser.boxes.mp4.objectdescriptors.BitWriterBuffer; 6 7 import java.nio.ByteBuffer; 8 9 public class AC3SpecificBox extends AbstractBox { 10 int fscod; 11 int bsid; 12 int bsmod; 13 int acmod; 14 int lfeon; 15 int bitRateCode; 16 int reserved; 17 AC3SpecificBox()18 public AC3SpecificBox() { 19 super("dac3"); 20 } 21 22 @Override getContentSize()23 protected long getContentSize() { 24 return 3; 25 } 26 27 @Override _parseDetails(ByteBuffer content)28 public void _parseDetails(ByteBuffer content) { 29 BitReaderBuffer brb = new BitReaderBuffer(content); 30 fscod = brb.readBits(2); 31 bsid = brb.readBits(5); 32 bsmod = brb.readBits(3); 33 acmod = brb.readBits(3); 34 lfeon = brb.readBits(1); 35 bitRateCode = brb.readBits(5); 36 reserved = brb.readBits(5); 37 } 38 39 @Override getContent(ByteBuffer byteBuffer)40 protected void getContent(ByteBuffer byteBuffer) { 41 BitWriterBuffer bwb = new BitWriterBuffer(byteBuffer); 42 bwb.writeBits(fscod, 2); 43 bwb.writeBits(bsid, 5); 44 bwb.writeBits(bsmod, 3); 45 bwb.writeBits(acmod, 3); 46 bwb.writeBits(lfeon, 1); 47 bwb.writeBits(bitRateCode, 5); 48 bwb.writeBits(reserved, 5); 49 } 50 getFscod()51 public int getFscod() { 52 return fscod; 53 } 54 setFscod(int fscod)55 public void setFscod(int fscod) { 56 this.fscod = fscod; 57 } 58 getBsid()59 public int getBsid() { 60 return bsid; 61 } 62 setBsid(int bsid)63 public void setBsid(int bsid) { 64 this.bsid = bsid; 65 } 66 getBsmod()67 public int getBsmod() { 68 return bsmod; 69 } 70 setBsmod(int bsmod)71 public void setBsmod(int bsmod) { 72 this.bsmod = bsmod; 73 } 74 getAcmod()75 public int getAcmod() { 76 return acmod; 77 } 78 setAcmod(int acmod)79 public void setAcmod(int acmod) { 80 this.acmod = acmod; 81 } 82 getLfeon()83 public int getLfeon() { 84 return lfeon; 85 } 86 setLfeon(int lfeon)87 public void setLfeon(int lfeon) { 88 this.lfeon = lfeon; 89 } 90 getBitRateCode()91 public int getBitRateCode() { 92 return bitRateCode; 93 } 94 setBitRateCode(int bitRateCode)95 public void setBitRateCode(int bitRateCode) { 96 this.bitRateCode = bitRateCode; 97 } 98 getReserved()99 public int getReserved() { 100 return reserved; 101 } 102 setReserved(int reserved)103 public void setReserved(int reserved) { 104 this.reserved = reserved; 105 } 106 107 @Override toString()108 public String toString() { 109 return "AC3SpecificBox{" + 110 "fscod=" + fscod + 111 ", bsid=" + bsid + 112 ", bsmod=" + bsmod + 113 ", acmod=" + acmod + 114 ", lfeon=" + lfeon + 115 ", bitRateCode=" + bitRateCode + 116 ", reserved=" + reserved + 117 '}'; 118 } 119 } 120