private MacroblockType(byte mbType, string name, byte numMbPart, MbPartPredMode mbPartPredMode0, MbPartPredMode mbPartPredMode1, byte mbPartPredWidth, byte mbPartPredHeight) { _mbType = mbType; _name = name; _numMbPart = numMbPart; _mbPartPredModes = new MbPartPredMode[2]; _mbPartPredModes[0] = mbPartPredMode0; _mbPartPredModes[1] = mbPartPredMode1; _macroblockPartitioning = MacroblockPartitioning.GetMacroblockPartitioning(mbPartPredWidth, mbPartPredHeight); _intra16X16PredMode = 0; _codedBlockPattern = 0; // encoded in bitstream _table = name.StartsWith("P") ? Table.P : Table.B; }
private MacroblockType(byte mbType, string name, MbPartPredMode mbPartPredMode, byte intra16X16PredMode, byte codedBlockPatternChroma, byte codedBlockPatternLuma) { _mbType = mbType; _name = name; _mbPartPredModes = new MbPartPredMode[2]; _mbPartPredModes[0] = mbPartPredMode; _mbPartPredModes[1] = MbPartPredMode.na; _intra16X16PredMode = intra16X16PredMode; _codedBlockPattern = (byte)((codedBlockPatternChroma << 4) | codedBlockPatternLuma); // Note: Intra-coded blocks do not have parts (na) _numMbPart = 0; _macroblockPartitioning = MacroblockPartitioning.M16X16; _table = name.StartsWith("I") ? Table.I : Table.Si; }