-------------------------------------------------------------------------------
                       Matrox Imaging Library (MIL) 10.0
                           Release Notes (milsolios)
                                 December, 2013
            (c) Copyright Matrox Electronic Systems Ltd., 1992-2013.
-------------------------------------------------------------------------------

This document outlines what is new with MIL for Matrox Solios and explains
the current limitations and particularities when using MIL with Matrox Solios.

It also presents last minute information that did not make it into the manual
or on-line help. Note that this text file serves to complement your manual. The
information found in this file overrides your formally documented material.

Contents

1. Matrox Solios with MIL.
   1.1 What’s new
      1.1.1 Differences between MIL 10.0 and MIL 9.0 Update 43.
      1.1.2 Differences between MIL 9.0 Update 43 and MIL 9.0 Update 5.
      1.1.3 Differences between MIL 9.0 Update 5 and MIL 9.0 Update 4.
      1.1.4 Differences between MIL 9.0 Update 4 and MIL 9.0.
      1.1.5 Differences between MIL 9.0 and MIL 8.0 Update 16a.
   1.2 Limitations and particularities
2. Supported operating systems.
3. Location of examples (in the help file)

-------------------------------------------------------------------------------

1. Matrox Solios with MIL.

1.1 What’s new

      1.1.1 Differences between MIL 10.0 and MIL 9.0 Update 43.

         - Support for Microsoft® Windows® 8.

         - MIL 10 has a new mechanism to control and inquire IO signals. 
           It has unified some concepts under the M_IO_... constants of 
           MdigControl/MdigInquire and generalized others that were 
           being used for more than their original purpose (for example, 
           M_GRAB_EXPOSURE_... to M_TIMER_...). For the correlation between 
           old and new MIL constants, refer to the 
           MilSoliosCameraLinkIOConversionTable and 
           MilSoliosAnalogIOConversionTable release notes.

      1.1.2 Differences between MIL 9.0 Update 43 and MIL 9.0 Update 5.

       - Updated the MilConfig tool to support selection for the amount of 
         memory mapped on-board the Solios. This is useful to reduce the amount 
         of memory mapped on the PCI/PCIe bus. The unmapped memory is still 
         available for acquisition.

       - Added support for GenICam™ for Camera Link® (CLProtocol). Requires 
         third party CLProtocol communication DLL supplied by the camera 
         vendor.
         
       - Updated the Intellicam tool to support a Feature Browser for 
         Camera-Link®.

       - Updated the MilConfig tool to support GenICam™ for Camera Link® 
         default parameters.
         
       - Added clprotocol.cpp Solios specific example. Demonstrates the use of 
         GenICam™ for Camera Link® CLProtocol. Enables the use of 
         MdigControlFeature() and MdigInquireFeature() to control camera 
         features (parameters) as well as the feature browser dialog window.
       
       - Added support for MdigControlFeature() and MdigInquireFeature(). 
         See the MIL documentation for details.
      
       - Added support for the new Solios eV-CL with MDR26 Camera Link® 
         connectors (SOL2MEVCLBL* and SOL2MEVCLFL*).
       
       - Fixed error: "Error MdigProcess(): the command was aborted." This 
         error could have occurred after calling MdigProcess and M_STOP 
         without M_WAIT.
       
       - Fixed a glitch that could have occurred when timers were used in 
         continuous mode.
       
       - Updated the analog firmware to fix an acquisition problem.
       
       - Additions to MdigControl()
       
          - M_GC_CLPROTOCOL: Controls the activation of GenICam™ for Camera 
            Link® CLProtocol.
             - Values:
                M_ENABLE: Enables GenICam™ for Camera Link® (CLProtocol). A 
                          Device ID template must be specified prior to 
                          enabling CLProtocol. See M_GC_CLPROTOCOL_DEVICEID.

          - M_GC_CLPROTOCOL_DEVICEID: Specifies the GenICam™ for Camera Link® 
           (CLProtocol) device ID template, which must match the camera 
           connected to the Solios card. The installed device IDs can be 
           inquired by calling MdigInquire() with M_GC_CLPROTOCOL_DEVICEID+n. 
           See clprotocol Solios-specific example for more details.
             - Values:
                A MIL_TEXT_PTR string representing the GenICam™ for Camera 
                Link® (CLProtocol) device ID template.
                
          - M_GC_FEATURE_BROWSER: Opens the device feature browser dialog from 
            a MIL console application. Supported control values are:
             - Values:
                - M_DEFAULT: Opens the feature browser dialog. The calling 
                  thread is blocked.
                - M_OPEN+M_SYNCHRONOUS: same as M_DEFAULT.
                - M_OPEN+M_ASYNCHRONOUS: Opens the feature browser dialog. The 
                                         calling thread returns as soon as the 
                                         feature browser is created.
                - M_CLOSE: Closes the feature browser dialog.
                
       - Additions to MdigInquire()
       
          - M_GC_CLPROTOCOL: Returns information regarding activation of 
                             GenICam™ for Camera Link® CLProtocol.
             - Values:
                M_ENABLE: GenICam™ for Camera Link® CLProtocol is active.
                M_DISABLE: GenICam™ for Camera Link® CLProtocol is not active.
                
          - M_GC_CLPROTOCOL_DEVICEID_NUM: Returns a MIL_INT, representing the 
            number of installed GenICam™ for Camera Link® device ID templates.
                                          
          - M_GC_CLPROTOCOL_DEVICEID_SIZE_MAX: Returns a MIL_INT, representing 
            the maximum string length required to store the device ID 
            templates.
                                               
          - M_GC_CLPROTOCOL_DEVICEID+n: Returns a MIL_TEXT_PTR string, 
            representing the nth GenICam™ for Camera Link® device ID template 
            installed.

      1.1.3 Differences between MIL 9.0 Update 5 and MIL 9.0 Update 4.

       - Additions to MsysInquire():

          - M_FIRMWARE_BUILDDATE: Returns the date when the grab firmware was 
            built.
          
          - M_FIRMWARE_REVISION_GRAB: Returns the revision number of the grab 
            firmware.
          
          - M_FIRMWARE_BUILDDATE_PROCESSING: Returns the date when the 
            processing firmware was built.
          
          - M_FIRMWARE_REVISION_PROCESSING: Returns the revision number of the 
            processing firmware.

       
       - Additions to MdigControl() and MdigInquire():
       
         - M_CAMERA_POWER: Controls the power sent to PoCL (Power over Camera-
           Link) cameras.
             - Values:
                M_ON 
                   Enable PoCL mechanism.
                M_OFF
                   Disable PoCL mechanism.
                M_DEFAULT
                   Same as M_ON.

       - Added a setting in MilConfig->Boards->Solios to control the amount of 
         on-board physical memory visible on the PCI bus.

       - Improved speed when calculating Bayer white balance coefficients
         on the Matrox Solios eV/eM-CLB.

       - Improved transfer speed of color images to an M_PLANAR host 
         destination with the Matrox Solios eV/eM-CLB.

       - Added support of host M_RGB24 planar buffers when grabbing from a 
         Bayer camera on the Matrox Solios eV/eM-CLB.
       
       - Added support for 6 taps 8-bit acquisition modes.
       
       - Added support for 4 taps 8-bit time multiplex cameras.

       - Various bug fixes
       
         - Fixed issue where MdigControl commands could have been executed 
           immediately instead of being queued (REF: 116199).
           
         - Fixed MdigGetHookInfo state for user bits. M_ON is always returned 
           since it is the only possible value (REF: 113694).
           
         - Fixed memory leak with MdigLut() (REF: 108109).
           
         - Fixed Bayer support when grabbing in RGB24 packed host buffers
           (REF: 107972).
         
         - Added more detailed error messages when setting invalid exposure 
           values (REF: 107659).
         
         - Fixed issue when grabbing simultaneously from 2 independent 
           acquisition paths. Using MdigFree on one of the paths could have 
           affected the other path (REF: 107410).
           
       - Updated firmwares:

         - Matrox Solios eV-CLB
           - Firmware file name: Soliosclem.firmware.
           - Updated to build id: A90D0C0B, Snap version: 4_94.
           - Improved performance of DMA operations.
           - Fixed issues with hardware Bayer when grabbing at high bandwidth.
           - Fixed issues when grabbing from multi-tap Bayer cameras.
           - Added support of 3 DMA contexts to support RGB planar buffers.
           
         - Matrox Solios eV-CLF
           - Firmware file name: Soliosclemf.firmware.
           - Updated to BuildId: A90A0C0F, Snap version: 4_94.
           - Improved performance of DMA operations.       

      1.1.4 Differences between MIL 9.0 Update 4 and MIL 9.0.

         - Added support of Matrox Solios eM-CL and Matrox Solios eV-CL:
         
         - Matrox Solios eV-CLB and Matrox Solios eM-CLB supports automatic
           Bayer conversion when grabbing from a camera that has a Bayer color
           filter (as specified by the DCF).
           To make use of this feature, use MdigControl() with 
           M_BAYER_CONVERSION enabled. During conversion, the image can be 
           white balanced if white balancing is enabled using MdigControl() 
           with M_WHITE_BALANCE. 

           The white balance coefficients can be set explicitly using 
           MdigControl() with M_BAYER_COEFFICIENTS_ID or calculated 
           automatically using MdigControl() with M_WHITE_BALANCE set to 
           M_CALCULATE. 

           The M_BAYER_... control types can only be used when grabbing from 
           a camera that has a Bayer color filter (as specified by the DCF), 
           otherwise an error will be generated. 

         - Reduced internal non-paged memory utilization.
        
      1.1.5 Differences between MIL 9.0 and MIL 8.0 Update 16.

         - Support for MIL 9.

         - MbufCopy():
            - The DMA transfer line count is not limited to 4095 lines anymore. 

1.2 Limitations and particularities.

   -   If used in conjunction with a MIL GigE Vision system, MIL 9 Update 43 
       requires MIL 9 Update 52 (or later MIL 9 update) for GigE Vision. MIL 9 
       Update 43 cannot be used with MIL 9 Update 34 (or earlier MIL 9 support) 
       for GigE Vision.

   - Processing FPGA

      - The Solios eA/XA's processing FPGA option is no longer supported.

   - MdigGrab():

       When grabbing in on-board buffers, the following limitations apply:

         - The buffer Size X and  Y must match the limitations set in the DCF.

         - The buffer type must match the limitations set in the DCF.

         When grabbing with a 10- or 12-bit camera in an on-board 8-bit buffer,
         some image data might be missing or improperly shifted depending on 
         the DCF tap configuration.


   - MdigAlloc():

       The mode of Matrox Solios eCL/XCL can be changed through MILConfig 
       (Solios tab) from its factory-default setting of single-Medium to dual-
       Base. Follow all on-screen procedures. Once changed, the PC must be 
       shut-down and then turned back on (perform a cold-boot) for changes to 
       take effect. Note that simply restarting your computer 
       (using the Start Shut Down Windows Restart command) will not allow the 
       changes to take affect.

       If you change the mode of Matrox Solios, make certain you also change 
       your DCF. Using the wrong DCF when performing a digitizer allocation
       (using MdigAlloc()) will result in an error.

   - MdigChannel():

      - Changing the synchronization channel with M_CHn+M_SYNC is not 
        supported.

   - On Matrox Solios eA/XA:
       When porting an application from MIL 9 to MIL 10 and using M_USER_BIT2, 
       you might receive this error message: "Invalid Aux IO usage: The user-
       defined output signal is already in use by the exposure". In this case, 
       you must set the IO signal to be used as a user bit:
       MdigControl(MilDigitizer, M_IO_SOURCE + M_AUX_IO12, M_USER_BIT2);


2. Supported operating systems.

   This section lists all the supported operating systems.
   - 32-bit Windows® XP
   - 32-bit Windows® 7
   - 64-bit Windows® 7
   - 32-bit Windows® 8
   - 64-bit Windows® 8
   - 32-bit Linux®
   - 64-bit Linux®

3. Location of examples (in the help file)

   - In the help file, the location information written at the top of examples 
     might not be up-to-date. Use MIL Example Launcher to find an example 
     on disk.