public Layer3Decoder(Bitstream stream, Header header, SynthesisFilter filter1, SynthesisFilter filter2,
            Decoder player) {
        this.stream = stream;
        this.header = header;
        this.filter1 = filter1;
        this.filter2 = filter2;
        this.player = player;
        channels = (header.mode() == Header.MODE_SINGLE_CHANNEL) ? 1 : 2;
        maxGr = (header.version() == Header.VERSION_MPEG1) ? 2 : 1;
        sfreq = header.sampleFrequency()
                + ((header.version() == Header.VERSION_MPEG1) ? 3 : (header.version() == Header.VERSION_MPEG25_LSF) ? 6
                        : 0);
        if (channels == 2) {
            firstChannel = 0;
            lastChannel = 1;
        }
        nonzero[0] = nonzero[1] = 576;
    }