Пример #1
0
        static Tables()
        {
            Array[] arrays = ArrayUnpacker.UnpackArrays(PackedTables.Tables);

            HuffmanSpectrumA = GenerateHuffmanCodebooks((short[][][])arrays[4], (byte[][][])arrays[0], (byte[][])arrays[6]);
            HuffmanSpectrumB = GenerateHuffmanCodebooks((short[][][])arrays[5], (byte[][][])arrays[1], (byte[][])arrays[7]);
            HuffmanSpectrum  = new[] { HuffmanSpectrumA, HuffmanSpectrumB };

            HuffmanScaleFactorsUnsigned = GenerateHuffmanCodebooks((short[][])arrays[9], (byte[][])arrays[2], (byte[])arrays[8]);
            HuffmanScaleFactorsSigned   = GenerateHuffmanCodebooks((short[][])arrays[10], (byte[][])arrays[3], (byte[])arrays[8]);

            ScaleFactorWeights = (byte[][])arrays[11];

            BexGroupInfo          = (byte[][])arrays[12];
            BexEncodedValueCounts = (byte[][])arrays[13];
            BexDataLengths        = (byte[][][])arrays[14];

            BexMode0Bands3     = (double[][])arrays[15];
            BexMode0Bands4     = (double[][])arrays[16];
            BexMode0Bands5     = (double[][])arrays[17];
            BexMode2Scale      = (double[])arrays[18];
            BexMode3Initial    = (double[])arrays[19];
            BexMode3Rate       = (double[])arrays[20];
            BexMode4Multiplier = (double[])arrays[21];
        }
Пример #2
0
        public static void TestPackingIndividual(Array array, Array expected, Type type)
        {
            expected = expected ?? array;
            var packer = new ArrayPacker();

            packer.Add(array, type);
            byte[] packed = packer.Pack();

            Array[] unpacked = ArrayUnpacker.UnpackArrays(packed);
            Assert.Equal(expected, unpacked[0]);
        }
Пример #3
0
 static CriHcaTables()
 {
     Array[] arrays = ArrayUnpacker.UnpackArrays(PackedTables);
     QuantizeSpectrumBits     = (byte[][])arrays[0];
     QuantizeSpectrumValue    = (byte[][])arrays[1];
     QuantizedSpectrumBits    = (byte[][])arrays[2];
     QuantizedSpectrumMaxBits = (byte[])arrays[3];
     QuantizedSpectrumValue   = (sbyte[][])arrays[4];
     ScaleToResolutionCurve   = (byte[])arrays[5];
     AthCurve              = (byte[])arrays[6];
     MdctWindow            = (double[])arrays[7];
     DefaultChannelMapping = (byte[])arrays[8];
     ValidChannelMappings  = (byte[][])arrays[9];
 }
Пример #4
0
        public static void TestPackingAll(object[][] arrays)
        {
            var packer = new ArrayPacker();

            foreach (object[] array in arrays)
            {
                packer.Add(array[0] as Array, array[2] as Type);
            }
            byte[]  packed   = packer.Pack();
            Array[] unpacked = ArrayUnpacker.UnpackArrays(packed);

            for (int i = 0; i < arrays.Length; i++)
            {
                object expected = arrays[i][1] ?? arrays[i][0];
                Assert.Equal(expected, unpacked[i]);
            }
        }