FileDocCategorySizeDatePackage
ScalingList.javaAPI Docmp4parser 1.0-RC-172945Wed Dec 19 20:10:37 GMT 2012com.googlecode.mp4parser.h264.model

ScalingList

public class ScalingList extends Object
Scaling list entity

capable to serialize / deserialize with CAVLC bitstream

author
Stanislav Vitvitskiy

Fields Summary
public int[]
scalingList
public boolean
useDefaultScalingMatrixFlag
Constructors Summary
Methods Summary
public static com.googlecode.mp4parser.h264.model.ScalingListread(com.googlecode.mp4parser.h264.read.CAVLCReader is, int sizeOfScalingList)


        ScalingList sl = new ScalingList();
        sl.scalingList = new int[sizeOfScalingList];
        int lastScale = 8;
        int nextScale = 8;
        for (int j = 0; j < sizeOfScalingList; j++) {
            if (nextScale != 0) {
                int deltaScale = is.readSE("deltaScale");
                nextScale = (lastScale + deltaScale + 256) % 256;
                sl.useDefaultScalingMatrixFlag = (j == 0 && nextScale == 0);
            }
            sl.scalingList[j] = nextScale == 0 ? lastScale : nextScale;
            lastScale = sl.scalingList[j];
        }
        return sl;
    
public java.lang.StringtoString()

        return "ScalingList{" +
                "scalingList=" + scalingList +
                ", useDefaultScalingMatrixFlag=" + useDefaultScalingMatrixFlag +
                '}";
    
public voidwrite(com.googlecode.mp4parser.h264.write.CAVLCWriter out)

        if (useDefaultScalingMatrixFlag) {
            out.writeSE(0, "SPS: ");
            return;
        }

        int lastScale = 8;
        int nextScale = 8;
        for (int j = 0; j < scalingList.length; j++) {
            if (nextScale != 0) {
                int deltaScale = scalingList[j] - lastScale - 256;
                out.writeSE(deltaScale, "SPS: ");
            }
            lastScale = scalingList[j];
        }