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

###############################################################################
#
# Input/output file parameters
#
###############################################################################
ScaleOnly=1
ScalingMode=12

NumberOfFrames=1        # number of frames to process
SourceFile="D:\YUVs\AV2-CTC\a1_4k\Crosswalk_3840x2160_5994fps_10bit_420.y4m"
OutputFile="Crosswalk_1920x1080_5994fps_10bit_420.y4m" # Scaled YUV file

SourceWidth=3840         # input frame height
SourceHeight=2160        # input frame height
OutputWidth=1920         # input frame height
OutputHeight=1080        # input frame height
SourceRate=59.94         # input frame rate
OutputRate=59.94         # output frame rate

SourceInterleaved=0      # Interleaved or Planar data
SourceChromaFormat=1     # Input chroma format
                         # 0 : 400
                         # 1 : 420
                         # 2 : 422
                         # 3 : 444
SourceBitDepthCmp0=10    # Input bit depth of luma component
SourceBitDepthCmp1=10    # Input bit depth of u/cb component
SourceBitDepthCmp2=10    # Input bit depth of v/cr component
SourceFourCCCode=6       # FourCC code for input source
                         # 0: UYVY
                         # 1: YUY2
                         # 2: YUYV
                         # 3: YVYU
                         # 4: BGR
                         # 5: V210
                         # 6: Y444I
SourceColorSpace=0       # 0: CM_YUV
                         # 1: CM_RGB
                         # 2: CM_XYZ

SourceColorPrimaries=0   # 0: BT.709
                         # 1: BT.2020
                         # 2: P3D60
                         # 3: P3D65
                         # 4: None
SourceTransferFunction=12
OutputChromaFormat=1     # Output Chroma format
                         # 0 : 400
                         # 1 : 420
                         # 2 : 422
                         # 3 : 444

OutputBitDepthCmp0=10     # bit depth of luma component for distortion computation
OutputBitDepthCmp1=10     # bit depth of u/cb component for distortion computation
OutputBitDepthCmp2=10    # bit depth of v/cr component for distortion computation
OutputColorSpace=0       # 0: CM_YUV
                         # 1: CM_RGB
                         # 2: CM_XYZ

OutputColorPrimaries=0   # 0: BT.709
                         # 1: BT.2020
                         # 2: P3D60
                         # 3: P3D65
                         # 4: None

InputFileHeader=0        # Input File header to be skipped (in bytes).
StartFrame=0             # Number of frames to skip before start

SilentMode=1             # Enable Silent mode

OutputTransferFunction=12       # Transfer Function
                         # 0: NULL (no new TF applied)
                         # 1: PQ
                         # 2: PH
