Esempio n. 1
0
        private void DecodeResidue()
        {
            residueArray[0] = new double[window.n];
            residueArray[1] = new double[window.n];

            Logger.LogDebug("■DecodeResidue");

            Byte[] do_not_decode_flag = new Byte[2];

            for (int i = 0; i < mappingHeader.subMapsAdd1; i++)
            {
                int ch = 0;

                for (int j = 0; j < vorbisHeader.identification.audioChannels; j++)
                {
                    if (mappingHeader.mux[j] == i)
                    {
                        if (noResidue[j] == 0x01)
                        {
                            Logger.LogDebug("noResidue");

                            do_not_decode_flag[ch] = 0x01;
                        }
                        else
                        {
                            Logger.LogDebug("Residue");

                            do_not_decode_flag[ch] = 0x00;
                        }

                        ch++;
                    }
                    else
                    {
                        Logger.LogError("■lMappingHeader.mux[j] != i");
                    }
                }

                int           lResidueNumber = mappingHeader.subMapResidue[i];
                ResidueHeader lResidueHeader = vorbisHeader.setup.residue.header[lResidueNumber];
                lResidueHeader.DecodePacket(byteArray, vorbisHeader.identification.audioChannels, vorbisHeader.setup.codebook.headerArray, window.n, ch, do_not_decode_flag, residueArray);

                ch = 0;

                for (int j = 0; j < vorbisHeader.identification.audioChannels; j++)
                {
                    if (mappingHeader.mux[j] == i)
                    {
                        //i. residue vector for channel [j] is set to decoded residue vector [ch]
                        ch++;
                    }
                }
            }
        }
Esempio n. 2
0
        public VorbisResidue(ByteArray aByteArray)
        {
            count = ( Byte )(aByteArray.ReadBitsAsByte(6) + 1);

            Logger.LogWarning("Vorbis Residue Count:" + count.ToString());

            header = new ResidueHeader[count];

            for (int i = 0; i < count; i++)
            {
                header[i] = new ResidueHeader(aByteArray);
            }
        }