func (d *decoder29) readBlockHeader() error {
	d.br.alignByte()
	n, err := d.br.readBits(1)
	if err == nil {
		if n > 0 {
			d.decode = d.ppm.decode
			err = d.ppm.init(d.br)
		} else {
			d.decode = d.lz.decode
			err = d.lz.init(d.br)
		}
	}
	if err == io.EOF {
		err = errDecoderOutOfData
	}
	return err

}
func (d *decoder29) readBlockHeader() error {
	d.br.alignByte()
	n, err := d.br.readBits(1)
	if err == nil {
		if n > 0 {
			d.decode = d.ppm.decode
			err = d.ppm.init(d.br)
		} else {
			d.decode = d.lz.decode
			err = d.lz.init(d.br)
		}
	}
	if err == io.EOF {
		err = errDecoderOutOfData
	}
	return err

}
func ( d * decoder29 ) readBlockHeader ( ) error { d . br . alignByte ( ) n , err := d . br . readBits ( 1 ) if err == nil { if n > 0 { d . decode = d . ppm . decode err = d . ppm . init ( d . br ) } else { d . decode = d . lz . decode err = d . lz . init ( d . br ) } } if err == io . EOF { err = errDecoderOutOfData } return err }
// readBlockHeader determines and initializes the current decoder for a new decode block.
readBlockHeader determines and initializes the current decoder for a new decode block .