-------------------------------------------------------------------------------
                  Matrox Imaging Library (MIL) 10 Update 6
                          Release Notes (MilOrionHD)   
                                  March 2013
            (c) Copyright Matrox Electronic Systems Ltd., 1992-2014.
-------------------------------------------------------------------------------

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

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 Orion HD with MIL.
   1.1 What's new in MIL 10 Update 6.
      1.1.1 Summary of new features.
      1.1.2 Bug fixes.
   1.2 What's new in MIL 10.
      1.2.1 Summary of new features.
      1.2.2 API enhancements.
   1.3 What's new in MIL 9 Update 66.
      1.3.1 Summary of new features.
      1.3.2 API enhancements.
      1.3.3 Bug fixes.
   1.4 What's new in MIL 9 Update 48.
      1.4.1 Summary of new features.
      1.4.2 API enhancements.
      1.4.3 Behavioral change.
      1.4.4 Bug fixes.
   1.5 What's new in MIL 9 Update 24.
2. Limitations and particularities.
3. Supported operating systems.
4. Location of examples (in the help file)

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

1. Matrox Orion HD with MIL.

   1.1 What's new in MIL 10 Update 6.

     1.1.1 Summary of new features.

        - You can simultaneously capture from up to 4 independent input paths 
          (DVI-I and SDI) with the Matrox Orion HD. To do so, you must not use
          it as a graphics controller (from the Matrox PowerDesk, remove all 
          used outputs for the Orion HD). If an output is used, only 2 paths
          are available for acquisition.

     1.1.2 Bug fixes.

        - Fixed issue regarding a lost frame when grabbing an interlaced signal
          while hardware deinterlacing was disabled and CPU usage was high.

        - Fixed grab issue when grabbing a non-standard signal where the 
          digitizer size-X was not a multiple of 32-bits.

        - Optimized the board-specific example MdigCrossBar when converting a 
          BGR32 packed grab buffer to a YUV16 packed buffer.

   1.2 What's new in MIL 10.

     1.2.1 Summary of new features.

        - Support for Microsoft® Windows® 8.

     1.2.2 API enhancements.

        - Modifications to MdigControl/MdigInquire.

           - MdigControl M_DIGITIZER_SCALING_MODE 
                replaced by M_GRAB_SCALE_INTERPOLATION_MODE.
           - MdigControl M_DIGITIZER_INTERPOLATION_MODE
                replaced by M_INPUT_FILTER.

   1.3 What's new in MIL 9 Update 66.

     1.3.1 Summary of new features.

        - With some new DCFs, it is possible to update the frame grab at the 
          field rate instead of the frame rate.
        - Added support of up to 6 Matrox Orion HD.

     1.3.2 API enhancements.

        - Additions to MdigHookFunction.

           - Added support for M_GRAB_FIELD_END_ODD and M_GRAB_FIELD_END_EVEN 
             with new DCF. This allows you to update the frame grab at the 
             field rate.

     1.3.3 Bug fixes.

        - Fixed issue where a system has a Matrox M-Series display adaptor with
          a Matrox Orion HD. In some situations, the MsysAlloc() function did 
          not work properly.

        - Fixed issue when using MdigGetHookInfo() with 
          M_MODIFIED_BUFFER + M_BUFFER_ID of the M_GRAB_END hook function. It 
          was returning an invalid MIL_ID buffer.


   1.4 What's new in MIL 9 Update 48.

     1.4.1 Summary of new features.

        - About Matrox Orion HD examples:
           - Updated the AutoDetect example.
           - Added a new example: MdigCrossbar.
        - Added support of hardware deinterlacing
         (see M_HARDWARE_DEINTERLACING).
        - Added support of hardware scaling
         (see M_DIGITIZER_SCALING_METHOD).
        - Added support of hardware filtering
         (see M_DIGITIZER_INTERPOLATION_MODE).
        - Added new firmware to support hardware deinterlacing, scaling, and 
          filtering. New firmware also fixes SDI output color conversion 
          coefficients, according to ITU-R BT.601 in SD mode, and 
          ITU-R BT.709-5 in HD mode.

     1.4.2 API enhancements.

        - Additions to MdigAlloc.

           - The InitFlag parameter now has the following:

           - Support for M_MINIMAL.
              The purpose of digitizers allocated with the M_MINIMAL InitFlag 
              is for detection of input sources. Grabbing is not permitted with
              these digitizers. If MdigGrab() or MdigProcess() are called, an 
              error will be generated. Up to 4 digitizers from M_DEV0 to M_DEV3
              can be allocated simultaneously with this flag. 
              MdigHookFunction(M_CAMERA_PRESENT) can be used to receive a 
              callback when a camera is connected or disconnected. See the 
              Autodetect example.

           - Additions to MdigControl/MdigInquire

           - Support for M_SELECTED_FRAME_RATE.
              - MdigInquire. Inquire returns a MIL_DOUBLE.
                Returns the detected frame rate.

           - Support for M_FORMAT_DETECTED.
              - MdigInquire. Inquire returns an array of type MIL_TEXT_CHAR.
                Returns the detected DCF name.

           - Support for M_FORMAT_DETECTED_LENGTH.
              - MdigInquire. Inquire returns a MIL_INT.
                Returns the number of characters in the M_FORMAT_DETECTED
                string.

           - Support for M_HARDWARE_DEINTERLACING.
              - MdigControl/Inquire. Inquire returns a MIL_INT.
                   Supported control values are:
                   M_DEFAULT
                     Same as M_DISABLE.
                   M_DISABLE
                     Disable hardware deinterlacing.
                   M_BOB_METHOD
                     Enable hardware deinterlacing by using the BOB algorithm.
                   M_MADI_METHOD 
                     Enable hardware deinterlacing by using the MADI (Motion 
                     Adaptive De-Interlacing) algorithm.

                   These control values can be added to M_BOB_METHOD and 
                   M_MADI_METHOD:
                    + M_ANTIALIASING
                     Enables anti-aliasing.
                    + M_DITHERING
                     Enables dithering.
                    + M_ANTIALIASING + M_DITHERING
                     Enables anti-aliasing and dithering.

           Note: When using hardware deinterlacing, the grab format must be in 
                 a YUV color format. So if grabbing a DVI-D signal the grab
                 format is automatically changed to YUV.

           - Support for M_DIGITIZER_SCALING_MODE.
              - MdigControl/Inquire. Inquire returns a MIL_INT.
                   Supported control values are:
                   M_DEFAULT
                     Same as M_HARDWARE.
                   M_HARDWARE
                     Enable hardware scalar. When using vertical and/or 
                     horizontal scaling, the scaling is done by hardware. The 
                     scaling interpolation can be controlled with 
                     M_DIGITIZER_INTERPOLATION_MODE.
                   M_SOFTWARE
                     Use software scaling. When using vertical and/or 
                     horizontal scaling, the scaling is done by software.
                     The scaling interpolation can be controlled with
                     M_DIGITIZER_INTERPOLATION_MODE.

           - Support for M_DIGITIZER_INTERPOLATION_MODE.
              - MdigControl/Inquire. Inquire returns a MIL_INT.
                   Supported control values are:
                   M_DEFAULT
                     Same as M_NEAREST_NEIGHBOR.
                   M_NEAREST_NEIGHBOR
                     When using vertical and/or horizontal scaling, the 
                     interpolation mode used is nearest neighbor.
                     This value is valid when M_DIGITIZER_SCALING_METHOD is 
                     either set to M_HARDWARE or M_SOFTWARE.
                   M_BILINEAR
                     When using vertical and/or horizontal scaling, the 
                     interpolation mode used is bilinear. This value is valid 
                     when M_DIGITIZER_SCALING_METHOD is set to M_SOFTWARE.
                   M_SMOOTHNESS
                     Uses hardware filtering (Gaussian filter).
                     This value is valid when M_DIGITIZER_SCALING_METHOD is set
                     to M_HARDWARE.

           - Additions to MsysInquire

           - Support for M_PCIE_NUMBER_OF_LANES:
              - Inquire returns a MIL_INT.
                   This inquire returns the number of PCIe lanes that are
                   currently active with the Matrox Orion HD.

           - Support for M_USER_BIT_COUNT_OUT:
              - Inquire returns a MIL_INT.
                   This inquire returns the number of LEDs that can be 
                   accessible.

           - Support for M_USER_BIT_COUNT_IN:
              - Inquire returns a MIL_INT.
                   This inquire returns the number of switches that can be
                   configured manually.

           - Support for M_USER_BIT_MODE:
              - Inquire returns a MIL_INT.
                   This inquire returns the mode of the user bit.
                   Return values are: M_INPUT or M_OUTPUT.

           - Support for M_USER_BIT_VALUE (bit 0 to 5):
              - Inquire returns a MIL_INT.
                   This inquire returns the status of switches situated on the
                   top of the board at SW900.

           - Support of M_USER_BIT_VALUE (bit 6 to 9):
              - Inquire returns a MIL_INT.
                   This inquire returns the state of the LED situated on the
                   bottom of the board at DS300, DS301, DS302, DS303.

           - Additions to MsysControl

           - Support for M_USER_BIT_VALUE:
              - Sets the state of the LED situated on the bottom of the board
                at DS300, DS301, DS302, DS303.

     1.4.3 Behavioral change.

        - When allocating a digitizer with an autodetect DCF and no camera is 
          detected, MdigInquire() of M_SIZE_X, M_SIZE_Y, and M_SIZE_BAND now
          returns the size set in MilConfig default values.

        - Fixed issue with MdigInquire(M_SELECTED_FRAME_RATE) with an SDI 
          interlaced source. It was returning the field rate instead of the
          frame rate. 

        - Fixed issue with MdigInquire(M_CAMERA_PRESENT) when a DVI-D camera is
          connected but is powered off. MdigInquire(M_CAMERA_PRESENT) now
          returns M_NO.

     1.4.4 Bug fixes.

        - Fixed issue with OrionHDBench when multiple Matrox Orion HD boards 
          are present.
        - Fixed issue with MdigHookFunction(M_GRAB_END). In some situations a 
          hook could be missed.
        - Fixed issue with MdigHookFunction(M_CAMERA_PRESENT). In some 
          situations the hook was not called.
        - Fixed issue with MdigHookFunction(M_CAMERA_PRESENT). In some
          situations spikes in CPU usage could occur.
        - Fixed issue with MdigInquire(M_SELECTED_FRAME_RATE) with a DVI-A
          source. In some situations the returned value was off by a few hertz.
          For example it could return 59Hz or 61Hz instead of 60Hz.
        - Fixed issue in OrionHD.sys that could result in a system crash when
          calling MdigAlloc() with a revision 1 board.
        - Fixed issue in OrionHD.sys that could result in a system crash when
          calling MdigAlloc()/MdigFree in a loop.
        - Fixed issue in OrionHD.sys that could result in a system crash when 
          continuously connecting and disconnecting a camera.
        - Reduced non-paged memory usage in OrionHD.sys.
        - Fixed issue when doing a ctrl-alt-delete while a grab is in progress.
        - Fixed issue with MdigInquire(M_FORMAT_DETECTED). In some situations 
          an NULL value could be returned.

   1.5 What's new in MIL 9 Update 24.

        - Additions to MsysAlloc(), System Descriptor parameter:
           - M_SYSTEM_ORION_HD: Allocates a Matrox Orion HD system.

        - The following MdigControls and MdigInquires are supported:
           - M_GRAB_FIELD_NUM
           - M_GRAB_START_MODE
           - M_GRAB_INPUT_GAIN (analog only)

        - The following MdigInquires are supported:
           - M_CAMERA_PRESENT
           - M_SIZE_X
           - M_SIZE_Y
           - M_SIZE_BAND
           - M_INPUT_MODE (returns M_ANALOG, M_DIGITAL)
           - M_COLOR_MODE (returns M_DVI, M_SDI, M_RGB, M_MONOCHROME, 
                           M_COMPOSITE or M_EXTERNAL_CHROMINANCE)
           - M_SCAN_MODE (returns M_PROGRESSIVE or M_INTERLACE)
           - M_GRAB_PERIOD (returns value in ms)

        - MdigHookFunction with M_CAMERA_PRESENT is supported.

        - MdigReference is supported on SD analog inputs.

        - Automatic camera detection:
           The automatic camera detection is activated when MdigAlloc() uses
           AutoDetect.dcf.
           When a camera is connected, the following MdigInquires are updated
           according to the camera: M_CAMERA_PRESENT, M_SIZE_X, M_SIZE_Y, 
           M_SIZE_BAND, M_INPUT_MODE, M_COLOR_MODE, M_SCAN_MODE, M_GRAB_PERIOD.
       
        - A new Orion HD-specific example named AutoDetect is now present in 
          \Users\Public\Documents\Matrox Imaging\Mil\Examples\Board-Specific\OrionHD\
          It demonstrates how to detect input sources.

        - Additions to MsysInquire():

           - M_BOARD_TYPE:
              M_ORION_HD
             
           - M_SYSTEM_DESCRIPTOR:
              M_SYSTEM_ORION_HD
             
           - M_SYSTEM_TYPE:
              M_SYSTEM_ORION_HD_TYPE

           - M_FIRMWARE_REVISION:
              Returns the revision number of the grab firmware. 

           - M_TEMPERATURE:
              Returns the current temperature, in degree Celsius of the graphic
              engine.

2. Limitations and particularities.

   - The Matrox Orion HD must be present in the PC before installing the
     software.

   - Only DirectX® version 9 is supported.

   - Since Matrox Orion HD is designed as a graphics card and uses MIL GPU
     services, it has the same limitations as any other DirectX capable display
     device.

   - Connecting to the computer using RemoteDesktop causes a Direct3D device to
     become lost and not supported by Matrox Orion HD when a graphics 
     controller is enabled on the Windows Desktop.

   - Do not enable or disable a graphics controller from Windows Desktop 
     while the Matrox Orion HD system (MsysAlloc) is active. This will leave
     the Matrox Orion HD is an unknown state.


   - When automatic camera detection is activated in analog mode, the DCF
     is loaded, by default, in the RGB color space. For example, if the input
     signal is YPBPR 1280x720p @ 60hz, the autodetect loads, by default, the
     "DVI_A_RGB_1280x720P_60Hz.dcf" DCF, instead of loading the
     "DVI_A_YPrPb_1280x720P_60Hz.dcf" DCF.

   - Extended Display Identification Data (EDID) at the input of DEV_0
     and DEV_1, is expected in digital form. Therefore, if your analog source
     expects to get EDID, the source will not output any signal data.

   - When grabbing four inputs at a time, you might get the 
     following error message: "Maximum data video input has been reached." 
     In this case, you have to select the DCF representing the YUV source 
     data format, on device 0 and 1. For example, you must use 
     DVI_D_RGB_TO_YUV_1920x1080p.dcf instead of DVI_D_RGB_1920x1080p.dcf 
     when calling MdigAlloc(), or you can force the source data format by
     setting MdigControl with M_SOURCE_DATA_FORMAT to M_YUV16 + M_PACKED.


3. Supported operating systems.

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

4. 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.