package com.coremedia.iso.boxes.rtp; import com.coremedia.iso.BoxParser; import com.coremedia.iso.IsoBufferWrapper; import com.coremedia.iso.IsoFile; import com.coremedia.iso.IsoOutputStream; import com.coremedia.iso.boxes.AbstractBox; import com.coremedia.iso.boxes.Box; import java.io.IOException; /** * The maximum data rate. This atom contains two numbers:<br/> * <p/> * g, followed by m (both 32-bit values). * <ul> * <li>g is the granularity, in milliseconds.</li> * <li>m is the maximum data rate given that granularity.</li> * </ul> * <br/> * For example, if g is 1 second, then m is the maximum data rate over any * 1 second. There may be multiple 'maxr' atoms, with different values for * g. The maximum data rate calculation does not include any network headers * (but does include 12-byte RTP headers). */ public class MaximumDataRateBox extends AbstractBox { public static final String TYPE = "maxr"; public MaximumDataRateBox() { super(IsoFile.fourCCtoBytes(TYPE)); } private long g, m; public long getG() { return g; } public void setG(long g) { this.g = g; } public long getM() { return m; } public void setM(long m) { this.m = m; } protected long getContentSize() { return 8; } public void parse(IsoBufferWrapper in, long size, BoxParser boxParser, Box lastMovieFragmentBox) throws IOException { g = in.readUInt32(); m = in.readUInt32(); } protected void getContent(IsoOutputStream os) throws IOException { os.writeUInt32(g); os.writeUInt32(m); } }