# HDRMetrics default configuration file
# format: parameter=value or parameter="stringvalue", no SPACES!

###############################################################################
#
# Input file information
#
###############################################################################
Input0File=""    # 1st Input file name
Input1File=""   # 2nd Input file name
LogFile=""                                                     # Output Log file name
NumberOfFrames=10                                              # Number of frames to process
SilentMode=0                                                   # Enable Silent mode
MaxSampleValue=10000.0                                         # Maximum sample value for floating point (openEXR) data files
###############################################################################
#
# Metrics
#
###############################################################################
EnableMSSSIM=1                                                 # Enable MSSSIM computation
EnableSSIM=1 	                                               # Enable SSIM computation

###############################################################################
#
# First input parameters
#
###############################################################################
Input0Width=1280                                               # 1st Input source width
Input0Height=720                                               # 1st Input source height
Input0ChromaFormat=1                                           # 1st Input Chroma Format
                                                               # 0 : 400
                                                               # 1 : 420
                                                               # 2 : 422
                                                               # 3 : 444
Input0Interleaved=0                                            # 1st Input Interleaved Source
Input0FourCCCode=0                                             # 1st Input Pixel Format
                                                               # 0: UYVY
                                                               # 1: YUY2
                                                               # 2: YUYV
                                                               # 3: YVYU
                                                               # 4: BGR
                                                               # 5: V210
                                                               # 6: Y444I
Input0BitDepthCmp0=8                                           # 1st Input Bitdepth Cmp0
Input0BitDepthCmp1=8                                           # 1st Input Bitdepth Cmp1
Input0BitDepthCmp2=8                                           # 1st Input Bitdepth Cmp2
Input0ColorSpace=0                                             # 1st Input Color Space
                                                               # 0: YUV
                                                               # 1: RGB
                                                               # 2: XYZ
Input0ColorPrimaries=0                                         # 1st Input Color Primaries
                                                               # 0: BT.709
                                                               # 1: BT.2020
                                                               # 2: P3D60
                                                               # 3: P3D65
                                                               # 4: None
Input0FileHeader=0                                             # 1st Input Header (bytes)
Input0StartFrame=0                                             # 1st Input Start Frame
Input0FrameSkip=0                                              # 1st Input Frame Skipping
Input0Rate=24.0                                                # 1st Input Frame Rate

###############################################################################
#
# Second input source parameters
#
###############################################################################
Input1Width=1280                                               # 2nd Input source width
Input1Height=720                                               # 2nd Input source height
Input1ChromaFormat=1                                           # 2nd Input Chroma Format
                                                               # 0 : 400
                                                               # 1 : 420
                                                               # 2 : 422
                                                               # 3 : 444
Input1Interleaved=0                                            # 2nd Input Interleaved Source
Input1FourCCCode=0                                             # 2nd Input Pixel Format
                                                               # 0: UYVY
                                                               # 1: YUY2
                                                               # 2: YUYV
                                                               # 3: YVYU
                                                               # 4: BGR
                                                               # 5: V210
                                                               # 6: Y444I
Input1BitDepthCmp0=8                                           # 2nd Input Bitdepth Cmp0
Input1BitDepthCmp1=8                                           # 2nd Input Bitdepth Cmp1
Input1BitDepthCmp2=8                                           # 2nd Input Bitdepth Cmp2
Input1ColorSpace=0                                             # 2nd Input Color Space
                                                               # 0: YUV
                                                               # 1: RGB
                                                               # 2: XYZ
Input1ColorPrimaries=0                                         # 2nd Input Color Primaries
                                                               # 0: BT.709
                                                               # 1: BT.2020
                                                               # 2: P3D60
                                                               # 3: P3D65
                                                               # 4: None
Input1FileHeader=0                                             # 2nd Input Header (bytes)
Input1StartFrame=0                                             # 2nd Input Start Frame
Input1FrameSkip=0                                              # 2nd Input Frame Skipping
Input0Rate=24.0                                                # 2nd Input Frame Rate
