@class DolbyVisionComposer, DolbyVisionMR, SpatialResampler, DISPHDRProcessing, NSObject, MSRHDRProcessing, DolbyVisionDisplayManagement; @protocol MTLDevice, OS_dispatch_semaphore, MTLCommandQueue, OS_dispatch_queue; @interface HDRProcessor : NSObject { id _device; id _commandQueue; unsigned long long chipID; MSRHDRProcessing *_msr; DISPHDRProcessing *_disp; DolbyVisionComposer *_composer; SpatialResampler *_resampler; DolbyVisionDisplayManagement *_dm; DolbyVisionMR *_mr; struct EDRMetaData_RBSP { void /* function */ **x0; unsigned long long x1; int x2; unsigned int x3; unsigned int x4; char *x5; char *x6; char *x7; unsigned char x8; unsigned char x9; unsigned int x10; char *x11; char *x12; char *x13; int x14; unsigned long long x15; unsigned long long x16; int x17; char *x18; unsigned char x19; unsigned char x20; char *x21; unsigned int x22; unsigned int x23; unsigned int x24; unsigned int x25; unsigned int x26; unsigned int x27; unsigned int x28; unsigned int x29; unsigned int x30; unsigned int x31; unsigned int x32; unsigned int x33; unsigned int x34; unsigned int x35; unsigned int x36; unsigned int x37; unsigned int x38; unsigned int x39; unsigned int x40; unsigned int x41; unsigned int x42; unsigned int x43; unsigned int x44; unsigned int x45; unsigned int x46; unsigned int x47; unsigned int x48; unsigned int x49; unsigned int x50; unsigned int x51; unsigned int x52; unsigned int x53; unsigned int x54; unsigned int x55; unsigned int x56; unsigned int x57; unsigned int x58; unsigned int x59[3]; unsigned int x60[3]; unsigned int x61; unsigned int x62; unsigned int x63; unsigned int x64; unsigned int x65; unsigned int x66; unsigned int x67[3]; unsigned int x68[3][9]; unsigned int x69[3][18]; unsigned int x70; unsigned int x71[3]; unsigned int x72; unsigned int x73[3]; unsigned int x74; unsigned int x75; unsigned int x76[9]; unsigned int x77[9]; unsigned int x78; unsigned int x79; unsigned int x80; unsigned int x81; unsigned int x82[1][1][3][9]; unsigned int x83[4][1][1][3][9]; unsigned int x84[1][1][3][9]; unsigned int x85[1][1][3][9]; unsigned int x86[4][3][9]; unsigned int x87[1][1][3][9]; unsigned int x88[1][1][3][9]; unsigned int x89[1][1][3][9]; unsigned int x90[1][1][3][9]; int x91[1][1][3][9][3]; unsigned int x92[1][1][3][9][3]; unsigned int x93[1][1][3][9]; int x94[1][1][3][9]; unsigned int x95[1][1][3][9]; int x96[1][1][3][9][4][7]; unsigned int x97[1][1][3][9][4][7]; int x98[1][1][3][9][6]; unsigned int x99[1][1][3][9][6]; unsigned int x100[1][1][3][16384]; unsigned int x101[1][1][3][16384]; unsigned int x102[1][1][2]; unsigned int x103[2]; unsigned int x104[1][1][2]; unsigned int x105[1][1][3]; unsigned int x106[1][1][2][2][8][8]; unsigned int x107[1][1][2][2]; unsigned int x108[2][2]; unsigned int x109[1][1][2][2]; unsigned int x110[1][1][2][2]; unsigned int x111[1][1][2][2][12]; unsigned int x112[4]; int x113[2][2][4][8]; unsigned int x114[2][2][4][8]; unsigned int x115[1][1][9][3]; unsigned int x116[1][1][9][3]; unsigned int x117[1][1][9][3]; unsigned int x118[9][3]; unsigned int x119[1][1][9][3]; unsigned int x120[1][1][9][3]; unsigned int x121[1][1][9][3]; unsigned int x122[1][1][9][3]; unsigned int x123[1][1][9][3]; unsigned int x124[1][1][9][3]; unsigned int x125[1][1][9][3]; unsigned int x126[1][1][9][3]; unsigned int x127[1][1][9][3]; unsigned int x128[2][2][17]; unsigned int x129; unsigned int x130; unsigned int x131; int x132[9]; unsigned int x133[3]; int x134[9]; unsigned int x135; unsigned int x136; unsigned int x137; unsigned int x138; unsigned int x139; unsigned int x140; unsigned int x141; unsigned int x142; unsigned int x143; unsigned int x144; unsigned int x145; unsigned int x146; unsigned int x147; unsigned int x148; unsigned int x149; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; } x150; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; unsigned short x5; unsigned short x6; short x7; } x151[8]; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; } x152; struct { unsigned short x0; unsigned short x1; unsigned short x2; } x153; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; } x154; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; } x155; struct { unsigned short x0; unsigned short x1; unsigned char x2; unsigned short x3; unsigned short x4; unsigned short x5; unsigned short x6; unsigned short x7; unsigned short x8; unsigned short x9; unsigned short x10; unsigned char x11[6]; unsigned char x12[6]; } x156[5]; struct { unsigned short x0; unsigned short x1; unsigned char x2; short x3; short x4; short x5; short x6; short x7; short x8; short x9; short x10; } x157; struct { unsigned short x0; unsigned short x1; unsigned char x2; unsigned short x3; unsigned short x4; unsigned char x5; short x6; short x7; short x8; short x9; short x10; short x11; short x12; short x13; } x158[4]; struct { unsigned short x0; unsigned char x1; unsigned char x2; unsigned char x3; unsigned char x4; } x159; struct { unsigned short x0; unsigned char x1; unsigned char x2; } x160; struct { unsigned short x0; unsigned char x1; unsigned char x2; unsigned char x3; unsigned char x4; unsigned char x5; unsigned char x6; } x161; int x162[9]; unsigned int x163[3]; int x164[9]; int x165[1][1][3][9][3]; unsigned int x166[3][18]; unsigned int x167[1][1][3][9]; unsigned int x168[3]; } *_parser; struct { struct { unsigned int BL_bit_depth_minus8; unsigned int EL_bit_depth_minus8; unsigned int vdr_bit_depth; unsigned int EL_chroma_format_idc; unsigned int BL_chroma_format_idc; unsigned int mapping_chroma_format_idc; unsigned int num_x_partitions; unsigned int num_y_partitions; unsigned int overlapped_prediction_method; unsigned int el_spatial_resampling_filter_flag; unsigned int coefficient_data_type; unsigned int coefficient_log2_denom; unsigned int num_pivots[3]; unsigned int pivot_value[3][18]; unsigned int mapping_idc[1][1][3][9]; unsigned int poly_order[1][1][3][9]; unsigned int linear_interp_flag[1][1][3][9]; unsigned int pred_linear_interp_value_int[1][1][3][9]; unsigned int pred_linear_interp_value[1][1][3][9]; int poly_coef_int[1][1][3][9][3]; unsigned int poly_coef[1][1][3][9][3]; long long fp_poly_coef[1][1][3][9][6]; float fp_poly_coef_float[1][1][3][9][6]; unsigned int mmr_order[1][1][3][9]; int mmr_constant_int[1][1][3][9]; unsigned int mmr_constant[1][1][3][9]; int mmr_coef_int[1][1][3][9][4][7]; unsigned int mmr_coef[1][1][3][9][4][7]; long long fp_mmr_coef[1][1][3][9][4][7]; float fp_mmr_coef_float[1][1][3][9][4][7]; int pow_coef_int[1][1][3][9][6]; unsigned int pow_coef[1][1][3][9][6]; unsigned int disable_residual_flag; unsigned int nlq_method_idc; unsigned int nlq_num_pivots; unsigned int nlq_pivot_value[9]; unsigned int nlq_offset[1][1][9][3]; unsigned int vdr_in_max_int[1][1][9][3]; unsigned int vdr_in_max[1][1][9][3]; long long fp_vdr_in_max[1][1][9][3]; unsigned int linear_deadzone_slope_int[1][1][9][3]; unsigned int linear_deadzone_slope[1][1][9][3]; long long linear_dz_slope[1][1][9][3]; unsigned int linear_deadzone_threshold_int[1][1][9][3]; unsigned int linear_deadzone_threshold[1][1][9][3]; long long linear_dz_th[1][1][9][3]; unsigned int mu_law_levels[1][1][9][3]; unsigned int mu_law_mu[1][1][9][3]; unsigned int pred_LUT_value_int[1][1][3][16384]; unsigned int pred_LUT_value[1][1][3][16384]; unsigned int el_frame_crop_bottom_offset; } composerData; struct { unsigned int vdr_dm_metadata_present_flag; unsigned int affected_dm_metadata_id; unsigned int current_dm_metadata_id; unsigned int scene_refresh_flag; int YCCtoRGB_coef[9]; unsigned int YCCtoRGB_offset[3]; int RGBtoLMS_coef[9]; unsigned int signal_eotf; unsigned int signal_eotf_param0; unsigned int signal_eotf_param1; unsigned int signal_eotf_param2; unsigned int signal_bit_depth; unsigned int signal_color_space; unsigned int signal_chroma_format; unsigned int signal_full_range_flag; unsigned int source_min_PQ; unsigned int source_max_PQ; unsigned int source_diagonal; unsigned int num_ext_blocks; unsigned int num_blocks_l2; unsigned int num_blocks_l8; struct { unsigned short valid; unsigned short min_PQ; unsigned short max_PQ; unsigned short avg_PQ; } L1; struct { unsigned short valid; unsigned short target_max_PQ; unsigned short trim_slope; unsigned short trim_offset; unsigned short trim_power; unsigned short trim_chroma_weight; unsigned short trim_saturation_gain; short ms_weight; } L2[8]; struct { unsigned short valid; unsigned short min_PQ_offset; unsigned short max_PQ_offset; unsigned short avg_PQ_offset; } L3; struct { unsigned short valid; unsigned short anchor_PQ; unsigned short anchor_power; } L4; struct { unsigned short valid; unsigned short active_area_left_offset; unsigned short active_area_right_offset; unsigned short active_area_top_offset; unsigned short active_area_bottom_offset; } L5; struct { unsigned short valid; unsigned short max_display_mastering_luminance; unsigned short min_display_mastering_luminance; unsigned short max_content_light_level; unsigned short max_frame_average_light_level; } L6; struct { unsigned short valid; unsigned short length; unsigned char target_display_index; unsigned short trim_slope; unsigned short trim_offset; unsigned short trim_power; unsigned short trim_chroma_weight; unsigned short trim_saturation_gain; unsigned short ms_weight; unsigned short target_mid_contrast; unsigned short clip_trim; unsigned char saturation_vector_field[6]; unsigned char hue_vector_field[6]; } L8[5]; struct { unsigned short valid; unsigned short length; unsigned char source_primary_index; short source_primary_red_x; short source_primary_red_y; short source_primary_green_x; short source_primary_green_y; short source_primary_blue_x; short source_primary_blue_y; short source_primary_white_x; short source_primary_white_y; } L9; struct { unsigned short valid; unsigned short length; unsigned char target_display_index; unsigned short target_max_PQ; unsigned short target_min_PQ; unsigned char target_primary_index; short target_primary_red_x; short target_primary_red_y; short target_primary_green_x; short target_primary_green_y; short target_primary_blue_x; short target_primary_blue_y; short target_primary_white_x; short target_primary_white_y; } L10[4]; struct { unsigned short valid; unsigned char content_type; unsigned char white_point; unsigned char L11_byte2; unsigned char L11_byte3; } L11; struct { unsigned short valid; unsigned char dm_mode; unsigned char dm_version_index; } L254; struct { unsigned short valid; unsigned char dm_run_mode; unsigned char dm_run_version; unsigned char dm_debug0; unsigned char dm_debug1; unsigned char dm_debug2; unsigned char dm_debug3; } L255; unsigned short target_max_PQ; } dmData; struct ToneCurve_Control { double targetMaxLinear; double targetMinLinear; double maxForwardTargetInNits; float diffuseInNits; float maxEDRValue; float EDRFactor; float AmbientInNits; float contrastRatio; float averagePixelThreshold; float sustainedBrightnessInNits; double targetMaxLinearOutput; BOOL atmEnable; BOOL isDRM; float sdrMaxBrightnessInNits; BOOL HDRProcessingFullAmbientAdaptation; int HDRProcessingDisplayAdjustsBlackLevel; struct __CFString *targetColorPrimaries; int targetMatrixCoeffs; int targetColorSpace; int targetTransferFunction; unsigned int outputPixelFormatRaw; unsigned int outputPixelFormat; unsigned int operationFromDict; unsigned int orientation; float forwardDM_tMaxPq; float forwardDM_tMinPq; float mid; float crush; float clip; unsigned int dovi50toHDR10TVMode; unsigned char ptvMode : 1; unsigned char passThroughTM : 1; float Tmax_nits; struct _AuxData { int hdr10TmPreset; int hlgTmPreset; int doviTmPreset; float edrAdaptationGain; float ambAdaptationRatio; float targetDisplayContrastRatio; float targetDisplayReflectionRatio; int dpcMode; float dpcGain; float Send_nits; float tm_Send_nits; BOOL isDoViL2TrimAvailable; } auxData; struct _TMData { int hdr10TmMode; int hlgTmMode; int hlgOOTFMixingMode; int doviTmMode; int edrAdaptationMode; float edrAdaptationGain; float edrFactor; float diffuseInNits; int ambAdaptationMode; float ambReflected_nits; float Smin_nits; float Smax_nits; float tm_Tmin_nits; float Tmin_nits; float Tmax_nits; float tm_Tmax_nits; float Cmin_nits; float Cmax_nits; float Cend_nits; float Capl_nits; float ambientPQ; float nominalPQ; float div_C_r; float Sdiv_nits; float SDRTmax_nits; int processingType; int gradingAmbientEnvironmentType; float adjMaxEDRValue; float adjTmax_nits; struct _Percentiles_t { float percents[8]; float percentiles[8]; unsigned int n; } contentPercentiles; BOOL enableRangeAdjustment; BOOL enableHistogram; BOOL useDM4TmForDM3DoVi84Bright; } tmData; struct _HDR10TMParam { BOOL on; float Smin_nits; float Smax_nits; float Tmin_nits; float Tmax_nits; float tm_Smin_nits; float tm_Smid_nits; float tm_Smax_nits; float tm_Send_nits; float tm_Tmin_nits; float tm_Tmid_nits; float tm_Tmax_nits; float tm_Tend_nits; float tm_Smin_C; float tm_Smid_C; float tm_Smax_C; float tm_Send_C; float tm_Tmin_C; float tm_Tmid_C; float tm_Tmax_C; float tm_Tend_C; struct _TMCurveParam { int curveType; union { struct _splCurveParam { unsigned short n; float XsC[6]; float YsC[6]; float MsC[6]; float splCs[5][4]; float polyCs[5][4]; float linCs[2][2]; } spl; struct _ebzCurveParam { unsigned short n; float XsC[6]; float YsC[6]; float MsC[6]; unsigned short ms[5]; float arrPsC[5][14]; float XsCA[6]; float bezierAnchors[5][15]; float genericPolyCoeffs[5][15]; float stdPolyCoeffs[5][15]; } ebz; struct _doviCurveParam { float sl; float c1; float c2; float c3; } dovi; } param; } tmCurveParam; float linearOffset; float linearScaler; float nonlinearOffset; float nonlinearScaler; int linearStretchMode; float lumaMixXMinRatio; float lumaMixXMaxRatio; float lumaMixYMinRatio; float lumaMixYMaxRatio; float lumaMixPower; } hdr10TmParam; struct _HLGTMParam { float systemGamma; struct _HDR10TMParam { BOOL on; float Smin_nits; float Smax_nits; float Tmin_nits; float Tmax_nits; float tm_Smin_nits; float tm_Smid_nits; float tm_Smax_nits; float tm_Send_nits; float tm_Tmin_nits; float tm_Tmid_nits; float tm_Tmax_nits; float tm_Tend_nits; float tm_Smin_C; float tm_Smid_C; float tm_Smax_C; float tm_Send_C; float tm_Tmin_C; float tm_Tmid_C; float tm_Tmax_C; float tm_Tend_C; struct _TMCurveParam { int curveType; union { struct _splCurveParam { unsigned short n; float XsC[6]; float YsC[6]; float MsC[6]; float splCs[5][4]; float polyCs[5][4]; float linCs[2][2]; } spl; struct _ebzCurveParam { unsigned short n; float XsC[6]; float YsC[6]; float MsC[6]; unsigned short ms[5]; float arrPsC[5][14]; float XsCA[6]; float bezierAnchors[5][15]; float genericPolyCoeffs[5][15]; float stdPolyCoeffs[5][15]; } ebz; struct _doviCurveParam { float sl; float c1; float c2; float c3; } dovi; } param; } tmCurveParam; float linearOffset; float linearScaler; float nonlinearOffset; float nonlinearScaler; int linearStretchMode; float lumaMixXMinRatio; float lumaMixXMaxRatio; float lumaMixYMinRatio; float lumaMixYMaxRatio; float lumaMixPower; } artisticOOTFParam; BOOL applyArtisticOOTF; float OOTFMixingFactor; float SDRTmax_nits; float Tend_nits; float adjTmax_nits; BOOL enableHwOOTF; BOOL enableHwOotfForHLG; } hlgTmParam; struct _DoViTMParam { BOOL on; float Smin_nits; float Smax_nits; float Tmin_nits; float Tmax_nits; float adjTmax_nits; float tm_Smin_nits; float tm_Smid_nits; float tm_Smax_nits; float tm_Send_nits; float tm_Tmin_nits; float tm_Tmid_nits; float tm_Tmax_nits; float tm_Tend_nits; float tm_Smin_C; float tm_Smid_C; float tm_Smax_C; float tm_Send_C; float tm_Tmin_C; float tm_Tmid_C; float tm_Tmax_C; float tm_Tend_C; float sl; float c1; float c2; float c3; float brightAdjBySat2; float systemGamma; float SDRTmax_nits; float OOTFMixingFactor; float linearOffset; float linearScaler; float nonlinearOffset; float nonlinearScaler; int linearStretchMode; float extraPTTrimPower; } doviTmParam; struct _EdrAdaptationData { int mode; float edrFactor; float Smax_C; float tm_Tmin_C; float tm_Tend_C; float Sdiv_C; float div_C_r; float Sdiv_tm_C; float Tdiv_C; float k0Gain; float k1Gain; float k2Gain; BOOL applyAdaptiveKyGain; float adaptiveKyGainPower; float adaptiveKyGainLowerBase; float adaptiveKyGainUpperBase; float fixedKyGain; unsigned int adjLUTID; float adjTdivGainLowerSlope; float adjTdivGainUpperSlope; float adjTdivX0; float adjTdivY0; float adjTdivX1; float adjTdivY1; float adjTdivPower; float YsOffset; float YsScale; float tm_Smin_C; float tm_Smid_C; float tm_Smax_C; float tm_Tmid_C; float tm_Tmax_C; float ambReflected_nits; BOOL withLinearExtension; } edrAdaptationData; struct _EdrAdaptationParam { BOOL on; unsigned short n; float Xs[3]; float Ys[3]; float Ms[3]; BOOL withLinearExtension; float splCs[2][4]; float polyCs[2][4]; float linCs[2][2]; } edrAdaptationParam; struct _AmbAdaptationData { int mode; float edrFactor; float ambientNits; float tm_Tmin_nits; float tm_Tend_nits; float tm_Tmin_C; float tm_Tend_C; float tm_Smin_C; BOOL withLinearExtension; float amb_Smid_C; } ambAdaptationData; struct _AmbAdaptationParam { BOOL on; unsigned short n; float XsC[3]; float YsC[3]; float MsC[3]; float aL; float bL; BOOL withLinearExtension; float splCs[2][4]; float polyCs[2][4]; float linCs[2][2]; float TmaxNits; } ambAdaptationParam; struct _DpcData { int mode; float edrFactor; float rangeMax; float gain; } dpcData; int lowerTargetBrightnessAdjustmentMode; } tcControl; struct { unsigned int hdrContent; unsigned int hdrProfile; unsigned int hwType; unsigned int operation; unsigned int convertType; unsigned int hasRPU; unsigned int inputFormatRaw; unsigned int inputFormat; unsigned int bitDepth; unsigned int displayType; unsigned int displayDiagonalSize; unsigned int maxDisplayBrightnessNits; float minDisplayBrightnessNits; unsigned int videoFullRangeFlag; unsigned int colourPrimaries; unsigned int matrixCoeffs; unsigned int transferFunction; unsigned int colorSpace; float YCCtoRGB_coef[9]; float RGBtoLMS_coef[9]; unsigned int maxMasteringNits; float minMasteringNits; unsigned int displayPipelineCompensationType; float displayPipelineGammaValue; BOOL mmrEnable; int gradingAmbientEnvironmentType; unsigned int originalTransferFunction; BOOL gpuTmRefMode; } hdrControl; struct { struct { unsigned short display_primaries_xg; unsigned short display_primaries_yg; unsigned short display_primaries_xb; unsigned short display_primaries_yb; unsigned short display_primaries_xr; unsigned short display_primaries_yr; unsigned short white_point_x; unsigned short white_point_y; unsigned int max_display_mastering_luminance; unsigned int min_display_mastering_luminance; } sei; struct { unsigned short max_content_light_level; unsigned short max_frame_average_light_level; } ll; } infoFrameData; } _edrMetaData[2]; struct HDR10PlusMetaData_RBSP { void /* function */ **x0; unsigned long long x1; int x2; unsigned int x3; unsigned int x4; char *x5; char *x6; char *x7; unsigned char x8; unsigned char x9; unsigned int x10; char *x11; char *x12; char *x13; int x14; unsigned char x15; unsigned char x16; unsigned char x17; unsigned short x18; unsigned short x19; unsigned char x20; unsigned char x21; unsigned char x22; unsigned int x23; BOOL x24; unsigned int x25[3]; unsigned int x26; unsigned char x27; unsigned char x28[9]; unsigned int x29[9]; unsigned short x30; BOOL x31; BOOL x32; unsigned short x33; unsigned short x34; unsigned char x35; unsigned short x36[9]; BOOL x37; unsigned char x38[9]; } *_hdr10PlusMetaDataParser; struct { unsigned int targeted_system_display_maximum_luminance; unsigned int maxscl[3]; unsigned int average_maxrgb; unsigned char num_distributions; unsigned char distribution_index[9]; unsigned int distribution_values[9]; BOOL tone_mapping_flag; unsigned short knee_point_x; unsigned short knee_point_y; unsigned char num_bezier_curve_anchors; unsigned short bezier_curve_anchors[9]; } _hdr10PlusMetaData; long long _callerApiVersion; unsigned int _hardwareType; unsigned int _hdrMode; unsigned int _hdrProfile; unsigned long long _bitDepth; float _sdrMaxBrightnessInNits; unsigned int _displayType; unsigned long long _displayDiagonalSize; unsigned long long _maxDisplayBrightnessNits; float _minDisplayBrightnessNits; float _displayContrastRatio; float _displayAveragePixelThreshold; float _displayAveragePixelWeightR; float _displayAveragePixelWeightG; float _displayAveragePixelWeightB; float _displaySustainedBrightnessInNits; double _displayPrimaries[8]; unsigned int _displayCompensationType; float _displayCompensationGammaValue; unsigned int _ambientViewingEnvironmentIlluminance; int _ambientViewingEnvironmentType; unsigned int _inputFormatRaw; unsigned int _outputFormatRaw; unsigned int _inputFormat; unsigned int _outputFormat; unsigned long long _videoFullRangeFlag; unsigned long long _colourPrimaries; unsigned long long _transferFunction; unsigned long long _matrixCoeffs; unsigned long long _colorSpace; unsigned long long _outputColorSpace; unsigned long long _outputMatrixCoeffs; unsigned long long _outputTransferFunction; unsigned long long _maxMasteringNits; float _minMasteringNits; BOOL _maxMasteringNitsIsSet; BOOL _minMasteringNitsIsSet; unsigned long long _numberOfRequestedFrames; unsigned long long _numberOfScheduledFrames; unsigned long long _numberOfProcessedFrames; unsigned long long _numberOfComputedFrames; struct { unsigned int width; unsigned int height; unsigned int usage; unsigned int targetNits; unsigned int outputPixelFormat; struct __CFString *targetColorPrimaries; unsigned int outputMetaDataFormat; unsigned int hardwareType; } _configurationParameters; struct __CVPixelBufferPool { } *_420vPool; struct __CVPixelBufferPool { } *_x420Pool; NSObject *_scheduleQueue; NSObject *_completionQueue; NSObject *_scheduleSemaphone; struct __CFError { } *_error_success; unsigned long long logInstanceID; BOOL _logOnce; } @property float defaultMaxEDRValue; @property float defaultEDRFactorValue; @property float defaultAmbientLightValue; @property float defaultContrastRatioValue; @property double targetNits; @property double targetMinNits; @property struct __CFString { } *targetColorPrimaries; + (void)dolbyIOMFBMetadata:(struct { unsigned int x0; union { struct { struct { unsigned char x0[4][128]; unsigned int x1; unsigned int x2; } x0; } x0; } x1; } *)a0 withMinBrightness:(float)a1 maxBrightness:(float)a2; + (BOOL)isNSDataNonEmpty:(id)a0 dataLength:(unsigned long long *)a1 dataBytes:(char **)a2; + (long long)parseHDR10PlusSEI:(id)a0 outputMetadata:(struct { unsigned char x0; union { struct { unsigned int x0; unsigned int x1; unsigned int x2[9]; unsigned short x3; unsigned short x4; unsigned short x5[9]; unsigned char x6; unsigned char x7; unsigned char x8; unsigned char x9; } x0; } x1; } *)a1; + (long long)parseHDR10PlusSEIMessage:(id)a0 outputMetadata:(struct { unsigned char x0; union { struct { unsigned int x0; unsigned int x1; unsigned int x2[9]; unsigned short x3; unsigned short x4; unsigned short x5[9]; unsigned char x6; unsigned char x7; unsigned char x8; unsigned char x9; } x0; } x1; } *)a1; + (long long)parseHDR10PlusSEIWithInputSurface:(struct __IOSurface { } *)a0 outputMetadata:(struct { unsigned char x0; union { struct { unsigned int x0; unsigned int x1; unsigned int x2[9]; unsigned short x3; unsigned short x4; unsigned short x5[9]; unsigned char x6; unsigned char x7; unsigned char x8; unsigned char x9; } x0; } x1; } *)a1; - (void)releaseResources; - (id)initWithConfig:(struct { unsigned int x0; unsigned int x1; unsigned int x2; unsigned int x3; unsigned int x4; struct __CFString *x5; unsigned int x6; unsigned int x7; } *)a0; - (void)dealloc; - (void).cxx_destruct; - (BOOL)allocateResources; - (long long)encodeToCommandBuffer:(id)a0 inputSurfaceLayer0:(struct __IOSurface { } *)a1 inputSurfacelayer1:(struct __IOSurface { } *)a2 outputSurface:(struct __IOSurface { } *)a3 metadata:(id)a4; - (long long)generateMSRColorConfigWithOperation:(unsigned int)a0 inputSurface:(struct __IOSurface { } *)a1 outputSurface:(struct __IOSurface { } *)a2 metadata:(id)a3 histogram:(struct RgbHistogram_t { unsigned int x0; unsigned int x1[128]; unsigned int x2[128]; unsigned int x3[128]; } *)a4 config:(id *)a5; - (id)initWithDevice:(id)a0 config:(const struct { unsigned int x0; unsigned int x1; unsigned int x2; unsigned int x3; unsigned int x4; struct __CFString *x5; unsigned int x6; unsigned int x7; } *)a1; - (long long)ValidateDISPColorConfigInput:(unsigned int)a0 inputSurface:(struct __IOSurface { } *)a1; - (long long)ValidateMSRColorConfigInput:(unsigned int)a0 inputSurface:(struct __IOSurface { } *)a1 outputSurface:(struct __IOSurface { } *)a2; - (BOOL)allocateEngineResources; - (BOOL)applyDoVi81PolicyWithInput:(struct __IOSurface { } *)a0 WithRPU:(BOOL)a1; - (void)checkInputIOSurface:(struct __IOSurface { } *)a0 forInfoFrame:(struct { struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; unsigned short x5; unsigned short x6; unsigned short x7; unsigned int x8; unsigned int x9; } x0; struct { unsigned short x0; unsigned short x1; } x1; } *)a1 withRPUData:(BOOL)a2; - (long long)checkInputOutputIOSurface:(struct __IOSurface { } *)a0 output:(struct __IOSurface { } *)a1 tcControl:(struct ToneCurve_Control { double x0; double x1; double x2; float x3; float x4; float x5; float x6; float x7; float x8; float x9; double x10; BOOL x11; BOOL x12; float x13; BOOL x14; int x15; struct __CFString *x16; int x17; int x18; int x19; unsigned int x20; unsigned int x21; unsigned int x22; unsigned int x23; float x24; float x25; float x26; float x27; float x28; unsigned int x29; unsigned char x30 : 1; unsigned char x31 : 1; float x32; struct _AuxData { int x0; int x1; int x2; float x3; float x4; float x5; float x6; int x7; float x8; float x9; float x10; BOOL x11; } x33; struct _TMData { int x0; int x1; int x2; int x3; int x4; float x5; float x6; float x7; int x8; float x9; float x10; float x11; float x12; float x13; float x14; float x15; float x16; float x17; float x18; float x19; float x20; float x21; float x22; float x23; float x24; int x25; int x26; float x27; float x28; struct _Percentiles_t { float x0[8]; float x1[8]; unsigned int x2; } x29; BOOL x30; BOOL x31; BOOL x32; } x34; struct _HDR10TMParam { BOOL x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; float x8; float x9; float x10; float x11; float x12; float x13; float x14; float x15; float x16; float x17; float x18; float x19; float x20; struct _TMCurveParam { int x0; union { struct _splCurveParam { unsigned short x0; float x1[6]; float x2[6]; float x3[6]; float x4[5][4]; float x5[5][4]; float x6[2][2]; } x0; struct _ebzCurveParam { unsigned short x0; float x1[6]; float x2[6]; float x3[6]; unsigned short x4[5]; float x5[5][14]; float x6[6]; float x7[5][15]; float x8[5][15]; float x9[5][15]; } x1; struct _doviCurveParam { float x0; float x1; float x2; float x3; } x2; } x1; } x21; float x22; float x23; float x24; float x25; int x26; float x27; float x28; float x29; float x30; float x31; } x35; struct _HLGTMParam { float x0; struct _HDR10TMParam { BOOL x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; float x8; float x9; float x10; float x11; float x12; float x13; float x14; float x15; float x16; float x17; float x18; float x19; float x20; struct _TMCurveParam { int x0; union { struct _splCurveParam { unsigned short x0; float x1[6]; float x2[6]; float x3[6]; float x4[5][4]; float x5[5][4]; float x6[2][2]; } x0; struct _ebzCurveParam { unsigned short x0; float x1[6]; float x2[6]; float x3[6]; unsigned short x4[5]; float x5[5][14]; float x6[6]; float x7[5][15]; float x8[5][15]; float x9[5][15]; } x1; struct _doviCurveParam { float x0; float x1; float x2; float x3; } x2; } x1; } x21; float x22; float x23; float x24; float x25; int x26; float x27; float x28; float x29; float x30; float x31; } x1; BOOL x2; float x3; float x4; float x5; float x6; BOOL x7; BOOL x8; } x36; struct _DoViTMParam { BOOL x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; float x8; float x9; float x10; float x11; float x12; float x13; float x14; float x15; float x16; float x17; float x18; float x19; float x20; float x21; float x22; float x23; float x24; float x25; float x26; float x27; float x28; float x29; float x30; float x31; float x32; float x33; int x34; float x35; } x37; struct _EdrAdaptationData { int x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; float x8; float x9; float x10; float x11; BOOL x12; float x13; float x14; float x15; float x16; unsigned int x17; float x18; float x19; float x20; float x21; float x22; float x23; float x24; float x25; float x26; float x27; float x28; float x29; float x30; float x31; float x32; BOOL x33; } x38; struct _EdrAdaptationParam { BOOL x0; unsigned short x1; float x2[3]; float x3[3]; float x4[3]; BOOL x5; float x6[2][4]; float x7[2][4]; float x8[2][2]; } x39; struct _AmbAdaptationData { int x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; BOOL x8; float x9; } x40; struct _AmbAdaptationParam { BOOL x0; unsigned short x1; float x2[3]; float x3[3]; float x4[3]; float x5; float x6; BOOL x7; float x8[2][4]; float x9[2][4]; float x10[2][2]; float x11; } x41; struct _DpcData { int x0; float x1; float x2; float x3; } x42; int x43; } *)a2 forInfoFrame:(struct { struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; unsigned short x5; unsigned short x6; unsigned short x7; unsigned int x8; unsigned int x9; } x0; struct { unsigned short x0; unsigned short x1; } x1; } *)a3 withRPUData:(BOOL)a4; - (void)checkOutputIOSurface:(struct __IOSurface { } *)a0; - (void)extractCAMetaData:(id)a0 withRPU:(BOOL)a1; - (void)extractFrameMetadata:(struct __CFDictionary { } *)a0 intoTCControl:(struct ToneCurve_Control { double x0; double x1; double x2; float x3; float x4; float x5; float x6; float x7; float x8; float x9; double x10; BOOL x11; BOOL x12; float x13; BOOL x14; int x15; struct __CFString *x16; int x17; int x18; int x19; unsigned int x20; unsigned int x21; unsigned int x22; unsigned int x23; float x24; float x25; float x26; float x27; float x28; unsigned int x29; unsigned char x30 : 1; unsigned char x31 : 1; float x32; struct _AuxData { int x0; int x1; int x2; float x3; float x4; float x5; float x6; int x7; float x8; float x9; float x10; BOOL x11; } x33; struct _TMData { int x0; int x1; int x2; int x3; int x4; float x5; float x6; float x7; int x8; float x9; float x10; float x11; float x12; float x13; float x14; float x15; float x16; float x17; float x18; float x19; float x20; float x21; float x22; float x23; float x24; int x25; int x26; float x27; float x28; struct _Percentiles_t { float x0[8]; float x1[8]; unsigned int x2; } x29; BOOL x30; BOOL x31; BOOL x32; } x34; struct _HDR10TMParam { BOOL x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; float x8; float x9; float x10; float x11; float x12; float x13; float x14; float x15; float x16; float x17; float x18; float x19; float x20; struct _TMCurveParam { int x0; union { struct _splCurveParam { unsigned short x0; float x1[6]; float x2[6]; float x3[6]; float x4[5][4]; float x5[5][4]; float x6[2][2]; } x0; struct _ebzCurveParam { unsigned short x0; float x1[6]; float x2[6]; float x3[6]; unsigned short x4[5]; float x5[5][14]; float x6[6]; float x7[5][15]; float x8[5][15]; float x9[5][15]; } x1; struct _doviCurveParam { float x0; float x1; float x2; float x3; } x2; } x1; } x21; float x22; float x23; float x24; float x25; int x26; float x27; float x28; float x29; float x30; float x31; } x35; struct _HLGTMParam { float x0; struct _HDR10TMParam { BOOL x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; float x8; float x9; float x10; float x11; float x12; float x13; float x14; float x15; float x16; float x17; float x18; float x19; float x20; struct _TMCurveParam { int x0; union { struct _splCurveParam { unsigned short x0; float x1[6]; float x2[6]; float x3[6]; float x4[5][4]; float x5[5][4]; float x6[2][2]; } x0; struct _ebzCurveParam { unsigned short x0; float x1[6]; float x2[6]; float x3[6]; unsigned short x4[5]; float x5[5][14]; float x6[6]; float x7[5][15]; float x8[5][15]; float x9[5][15]; } x1; struct _doviCurveParam { float x0; float x1; float x2; float x3; } x2; } x1; } x21; float x22; float x23; float x24; float x25; int x26; float x27; float x28; float x29; float x30; float x31; } x1; BOOL x2; float x3; float x4; float x5; float x6; BOOL x7; BOOL x8; } x36; struct _DoViTMParam { BOOL x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; float x8; float x9; float x10; float x11; float x12; float x13; float x14; float x15; float x16; float x17; float x18; float x19; float x20; float x21; float x22; float x23; float x24; float x25; float x26; float x27; float x28; float x29; float x30; float x31; float x32; float x33; int x34; float x35; } x37; struct _EdrAdaptationData { int x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; float x8; float x9; float x10; float x11; BOOL x12; float x13; float x14; float x15; float x16; unsigned int x17; float x18; float x19; float x20; float x21; float x22; float x23; float x24; float x25; float x26; float x27; float x28; float x29; float x30; float x31; float x32; BOOL x33; } x38; struct _EdrAdaptationParam { BOOL x0; unsigned short x1; float x2[3]; float x3[3]; float x4[3]; BOOL x5; float x6[2][4]; float x7[2][4]; float x8[2][2]; } x39; struct _AmbAdaptationData { int x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; BOOL x8; float x9; } x40; struct _AmbAdaptationParam { BOOL x0; unsigned short x1; float x2[3]; float x3[3]; float x4[3]; float x5; float x6; BOOL x7; float x8[2][4]; float x9[2][4]; float x10[2][2]; float x11; } x41; struct _DpcData { int x0; float x1; float x2; float x3; } x42; int x43; } *)a1; - (void)extractHEVCHDRParameterFromInputIOSurface:(struct __IOSurface { } *)a0 forInfoFrame:(struct { struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; unsigned short x5; unsigned short x6; unsigned short x7; unsigned int x8; unsigned int x9; } x0; struct { unsigned short x0; unsigned short x1; } x1; } *)a1; - (void)extractHEVCHDRParameterFromInputIOSurfaceForDovi:(struct __IOSurface { } *)a0 forInfoFrame:(struct { struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; unsigned short x5; unsigned short x6; unsigned short x7; unsigned int x8; unsigned int x9; } x0; struct { unsigned short x0; unsigned short x1; } x1; } *)a1; - (void)extractHEVCHDRParameterFromOutputIOSurface:(struct __IOSurface { } *)a0; - (void)getAmbientViewingEnvironmentType:(struct __IOSurface { } *)a0; - (id)getDispHDRProcessing; - (void)getDisplayPipelineCompensationType:(id)a0 gamma:(float)a1; - (BOOL)hasMetalDeviceChanged:(id)a0; - (id)initProcessingEngine:(id)a0 config:(const struct { unsigned int x0; unsigned int x1; unsigned int x2; unsigned int x3; unsigned int x4; struct __CFString *x5; unsigned int x6; unsigned int x7; } *)a1; - (long long)iterateDisplayConfigWithType:(int)a0 operation:(unsigned int)a1 inputSurface:(struct __IOSurface { } *)a2 options:(id)a3 config:(id /* block */)a4; - (long long)processFrameInternalWithLayer0:(struct __IOSurface { } *)a0 layer1:(struct __IOSurface { } *)a1 outout:(struct __IOSurface { } *)a2 metadata:(id)a3 commandbuffer:(id)a4 operation:(unsigned int)a5 config:(struct { int x0; unsigned int x1; struct HDRFrameProcessingControl_t { union { unsigned int x0[9216]; struct ProcessingControlV0_t { struct DMAConfig_t { unsigned char x0; int x1; int x2; BOOL x3; float x4; float x5; unsigned char x6; int x7; } x0; struct Reshaping_t { unsigned short x0; unsigned short x1[3][1024]; } x1; struct ChromaScaling_t { unsigned short x0; unsigned char x1; float x2[15][32]; unsigned short x3; unsigned char x4; float x5[9][32]; } x2; struct SourceToRGB_t { unsigned int x0; struct MSRCSC_t { unsigned int x0; float x1[3]; float x2[3]; float x3[3]; int x4[3][3]; float x5[3]; float x6[3]; float x7[3]; } x1; } x3; struct Linearization_t { unsigned int x0; unsigned int x1[3][514]; } x4; struct ColorspaceAToCommonColorspace_t { unsigned int x0; struct MSRCSC_t { unsigned int x0; float x1[3]; float x2[3]; float x3[3]; int x4[3][3]; float x5[3]; float x6[3]; float x7[3]; } x1; } x5; struct ChromaticAdaptation_t { BOOL x0; unsigned int x1; struct MSRCSC_t { unsigned int x0; float x1[3]; float x2[3]; float x3[3]; int x4[3][3]; float x5[3]; float x6[3]; float x7[3]; } x2; int x3; union { struct { unsigned int x0; } x0; struct { unsigned char x0; unsigned char x1; unsigned char x2; unsigned char x3; unsigned char x4; int x5[3]; int x6; int x7[3]; unsigned int x8[8]; } x1; struct { unsigned char x0; unsigned char x1; unsigned char x2; unsigned char x3; unsigned char x4; unsigned char x5; } x2; } x4; unsigned int x5[4][513]; unsigned int x6; float x7[11]; float x8[5]; float x9[5]; float x10[5]; float x11[11]; float x12; float x13; unsigned int x14; struct MSRCSC_t { unsigned int x0; float x1[3]; float x2[3]; float x3[3]; int x4[3][3]; float x5[3]; float x6[3]; float x7[3]; } x15; BOOL x16; } x6; struct CommonColorspaceToColorspaceB_t { unsigned int x0; struct MSRCSC_t { unsigned int x0; float x1[3]; float x2[3]; float x3[3]; int x4[3][3]; float x5[3]; float x6[3]; float x7[3]; } x1; } x7; struct GammaEncoding_t { unsigned int x0; float x1[3][706]; } x8; struct RGBtoYCC_t { unsigned int x0; struct MSRCSC_t { unsigned int x0; float x1[3]; float x2[3]; float x3[3]; int x4[3][3]; float x5[3]; float x6[3]; float x7[3]; } x1; } x9; } x1; } x0; } x2; } *)a6 histogram:(struct RgbHistogram_t { unsigned int x0; unsigned int x1[128]; unsigned int x2[128]; unsigned int x3[128]; } *)a7 data:(id *)a8; - (long long)processFrameWithLayer0:(struct __CVBuffer { } *)a0 layer1:(struct __CVBuffer { } *)a1 output:(struct __CVBuffer { } *)a2 metadata:(id)a3 commandbuffer:(id)a4 callback:(id /* block */)a5; - (long long)processPixelsWithLayer0:(struct __IOSurface { } *)a0 layer1:(struct __IOSurface { } *)a1 output:(struct __IOSurface { } *)a2 metaData:(struct { struct { unsigned int x0; unsigned int x1; unsigned int x2; unsigned int x3; unsigned int x4; unsigned int x5; unsigned int x6; unsigned int x7; unsigned int x8; unsigned int x9; unsigned int x10; unsigned int x11; unsigned int x12[3]; unsigned int x13[3][18]; unsigned int x14[1][1][3][9]; unsigned int x15[1][1][3][9]; unsigned int x16[1][1][3][9]; unsigned int x17[1][1][3][9]; unsigned int x18[1][1][3][9]; int x19[1][1][3][9][3]; unsigned int x20[1][1][3][9][3]; long long x21[1][1][3][9][6]; float x22[1][1][3][9][6]; unsigned int x23[1][1][3][9]; int x24[1][1][3][9]; unsigned int x25[1][1][3][9]; int x26[1][1][3][9][4][7]; unsigned int x27[1][1][3][9][4][7]; long long x28[1][1][3][9][4][7]; float x29[1][1][3][9][4][7]; int x30[1][1][3][9][6]; unsigned int x31[1][1][3][9][6]; unsigned int x32; unsigned int x33; unsigned int x34; unsigned int x35[9]; unsigned int x36[1][1][9][3]; unsigned int x37[1][1][9][3]; unsigned int x38[1][1][9][3]; long long x39[1][1][9][3]; unsigned int x40[1][1][9][3]; unsigned int x41[1][1][9][3]; long long x42[1][1][9][3]; unsigned int x43[1][1][9][3]; unsigned int x44[1][1][9][3]; long long x45[1][1][9][3]; unsigned int x46[1][1][9][3]; unsigned int x47[1][1][9][3]; unsigned int x48[1][1][3][16384]; unsigned int x49[1][1][3][16384]; unsigned int x50; } x0; struct { unsigned int x0; unsigned int x1; unsigned int x2; unsigned int x3; int x4[9]; unsigned int x5[3]; int x6[9]; unsigned int x7; unsigned int x8; unsigned int x9; unsigned int x10; unsigned int x11; unsigned int x12; unsigned int x13; unsigned int x14; unsigned int x15; unsigned int x16; unsigned int x17; unsigned int x18; unsigned int x19; unsigned int x20; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; } x21; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; unsigned short x5; unsigned short x6; short x7; } x22[8]; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; } x23; struct { unsigned short x0; unsigned short x1; unsigned short x2; } x24; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; } x25; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; } x26; struct { unsigned short x0; unsigned short x1; unsigned char x2; unsigned short x3; unsigned short x4; unsigned short x5; unsigned short x6; unsigned short x7; unsigned short x8; unsigned short x9; unsigned short x10; unsigned char x11[6]; unsigned char x12[6]; } x27[5]; struct { unsigned short x0; unsigned short x1; unsigned char x2; short x3; short x4; short x5; short x6; short x7; short x8; short x9; short x10; } x28; struct { unsigned short x0; unsigned short x1; unsigned char x2; unsigned short x3; unsigned short x4; unsigned char x5; short x6; short x7; short x8; short x9; short x10; short x11; short x12; short x13; } x29[4]; struct { unsigned short x0; unsigned char x1; unsigned char x2; unsigned char x3; unsigned char x4; } x30; struct { unsigned short x0; unsigned char x1; unsigned char x2; } x31; struct { unsigned short x0; unsigned char x1; unsigned char x2; unsigned char x3; unsigned char x4; unsigned char x5; unsigned char x6; } x32; unsigned short x33; } x1; struct ToneCurve_Control { double x0; double x1; double x2; float x3; float x4; float x5; float x6; float x7; float x8; float x9; double x10; BOOL x11; BOOL x12; float x13; BOOL x14; int x15; struct __CFString *x16; int x17; int x18; int x19; unsigned int x20; unsigned int x21; unsigned int x22; unsigned int x23; float x24; float x25; float x26; float x27; float x28; unsigned int x29; unsigned char x30 : 1; unsigned char x31 : 1; float x32; struct _AuxData { int x0; int x1; int x2; float x3; float x4; float x5; float x6; int x7; float x8; float x9; float x10; BOOL x11; } x33; struct _TMData { int x0; int x1; int x2; int x3; int x4; float x5; float x6; float x7; int x8; float x9; float x10; float x11; float x12; float x13; float x14; float x15; float x16; float x17; float x18; float x19; float x20; float x21; float x22; float x23; float x24; int x25; int x26; float x27; float x28; struct _Percentiles_t { float x0[8]; float x1[8]; unsigned int x2; } x29; BOOL x30; BOOL x31; BOOL x32; } x34; struct _HDR10TMParam { BOOL x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; float x8; float x9; float x10; float x11; float x12; float x13; float x14; float x15; float x16; float x17; float x18; float x19; float x20; struct _TMCurveParam { int x0; union { struct _splCurveParam { unsigned short x0; float x1[6]; float x2[6]; float x3[6]; float x4[5][4]; float x5[5][4]; float x6[2][2]; } x0; struct _ebzCurveParam { unsigned short x0; float x1[6]; float x2[6]; float x3[6]; unsigned short x4[5]; float x5[5][14]; float x6[6]; float x7[5][15]; float x8[5][15]; float x9[5][15]; } x1; struct _doviCurveParam { float x0; float x1; float x2; float x3; } x2; } x1; } x21; float x22; float x23; float x24; float x25; int x26; float x27; float x28; float x29; float x30; float x31; } x35; struct _HLGTMParam { float x0; struct _HDR10TMParam { BOOL x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; float x8; float x9; float x10; float x11; float x12; float x13; float x14; float x15; float x16; float x17; float x18; float x19; float x20; struct _TMCurveParam { int x0; union { struct _splCurveParam { unsigned short x0; float x1[6]; float x2[6]; float x3[6]; float x4[5][4]; float x5[5][4]; float x6[2][2]; } x0; struct _ebzCurveParam { unsigned short x0; float x1[6]; float x2[6]; float x3[6]; unsigned short x4[5]; float x5[5][14]; float x6[6]; float x7[5][15]; float x8[5][15]; float x9[5][15]; } x1; struct _doviCurveParam { float x0; float x1; float x2; float x3; } x2; } x1; } x21; float x22; float x23; float x24; float x25; int x26; float x27; float x28; float x29; float x30; float x31; } x1; BOOL x2; float x3; float x4; float x5; float x6; BOOL x7; BOOL x8; } x36; struct _DoViTMParam { BOOL x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; float x8; float x9; float x10; float x11; float x12; float x13; float x14; float x15; float x16; float x17; float x18; float x19; float x20; float x21; float x22; float x23; float x24; float x25; float x26; float x27; float x28; float x29; float x30; float x31; float x32; float x33; int x34; float x35; } x37; struct _EdrAdaptationData { int x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; float x8; float x9; float x10; float x11; BOOL x12; float x13; float x14; float x15; float x16; unsigned int x17; float x18; float x19; float x20; float x21; float x22; float x23; float x24; float x25; float x26; float x27; float x28; float x29; float x30; float x31; float x32; BOOL x33; } x38; struct _EdrAdaptationParam { BOOL x0; unsigned short x1; float x2[3]; float x3[3]; float x4[3]; BOOL x5; float x6[2][4]; float x7[2][4]; float x8[2][2]; } x39; struct _AmbAdaptationData { int x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; BOOL x8; float x9; } x40; struct _AmbAdaptationParam { BOOL x0; unsigned short x1; float x2[3]; float x3[3]; float x4[3]; float x5; float x6; BOOL x7; float x8[2][4]; float x9[2][4]; float x10[2][2]; float x11; } x41; struct _DpcData { int x0; float x1; float x2; float x3; } x42; int x43; } x2; struct { unsigned int x0; unsigned int x1; unsigned int x2; unsigned int x3; unsigned int x4; unsigned int x5; unsigned int x6; unsigned int x7; unsigned int x8; unsigned int x9; unsigned int x10; unsigned int x11; float x12; unsigned int x13; unsigned int x14; unsigned int x15; unsigned int x16; unsigned int x17; float x18[9]; float x19[9]; unsigned int x20; float x21; unsigned int x22; float x23; BOOL x24; int x25; unsigned int x26; BOOL x27; } x3; struct { struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; unsigned short x5; unsigned short x6; unsigned short x7; unsigned int x8; unsigned int x9; } x0; struct { unsigned short x0; unsigned short x1; } x1; } x4; } *)a3 tcControl:(struct ToneCurve_Control { double x0; double x1; double x2; float x3; float x4; float x5; float x6; float x7; float x8; float x9; double x10; BOOL x11; BOOL x12; float x13; BOOL x14; int x15; struct __CFString *x16; int x17; int x18; int x19; unsigned int x20; unsigned int x21; unsigned int x22; unsigned int x23; float x24; float x25; float x26; float x27; float x28; unsigned int x29; unsigned char x30 : 1; unsigned char x31 : 1; float x32; struct _AuxData { int x0; int x1; int x2; float x3; float x4; float x5; float x6; int x7; float x8; float x9; float x10; BOOL x11; } x33; struct _TMData { int x0; int x1; int x2; int x3; int x4; float x5; float x6; float x7; int x8; float x9; float x10; float x11; float x12; float x13; float x14; float x15; float x16; float x17; float x18; float x19; float x20; float x21; float x22; float x23; float x24; int x25; int x26; float x27; float x28; struct _Percentiles_t { float x0[8]; float x1[8]; unsigned int x2; } x29; BOOL x30; BOOL x31; BOOL x32; } x34; struct _HDR10TMParam { BOOL x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; float x8; float x9; float x10; float x11; float x12; float x13; float x14; float x15; float x16; float x17; float x18; float x19; float x20; struct _TMCurveParam { int x0; union { struct _splCurveParam { unsigned short x0; float x1[6]; float x2[6]; float x3[6]; float x4[5][4]; float x5[5][4]; float x6[2][2]; } x0; struct _ebzCurveParam { unsigned short x0; float x1[6]; float x2[6]; float x3[6]; unsigned short x4[5]; float x5[5][14]; float x6[6]; float x7[5][15]; float x8[5][15]; float x9[5][15]; } x1; struct _doviCurveParam { float x0; float x1; float x2; float x3; } x2; } x1; } x21; float x22; float x23; float x24; float x25; int x26; float x27; float x28; float x29; float x30; float x31; } x35; struct _HLGTMParam { float x0; struct _HDR10TMParam { BOOL x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; float x8; float x9; float x10; float x11; float x12; float x13; float x14; float x15; float x16; float x17; float x18; float x19; float x20; struct _TMCurveParam { int x0; union { struct _splCurveParam { unsigned short x0; float x1[6]; float x2[6]; float x3[6]; float x4[5][4]; float x5[5][4]; float x6[2][2]; } x0; struct _ebzCurveParam { unsigned short x0; float x1[6]; float x2[6]; float x3[6]; unsigned short x4[5]; float x5[5][14]; float x6[6]; float x7[5][15]; float x8[5][15]; float x9[5][15]; } x1; struct _doviCurveParam { float x0; float x1; float x2; float x3; } x2; } x1; } x21; float x22; float x23; float x24; float x25; int x26; float x27; float x28; float x29; float x30; float x31; } x1; BOOL x2; float x3; float x4; float x5; float x6; BOOL x7; BOOL x8; } x36; struct _DoViTMParam { BOOL x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; float x8; float x9; float x10; float x11; float x12; float x13; float x14; float x15; float x16; float x17; float x18; float x19; float x20; float x21; float x22; float x23; float x24; float x25; float x26; float x27; float x28; float x29; float x30; float x31; float x32; float x33; int x34; float x35; } x37; struct _EdrAdaptationData { int x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; float x8; float x9; float x10; float x11; BOOL x12; float x13; float x14; float x15; float x16; unsigned int x17; float x18; float x19; float x20; float x21; float x22; float x23; float x24; float x25; float x26; float x27; float x28; float x29; float x30; float x31; float x32; BOOL x33; } x38; struct _EdrAdaptationParam { BOOL x0; unsigned short x1; float x2[3]; float x3[3]; float x4[3]; BOOL x5; float x6[2][4]; float x7[2][4]; float x8[2][2]; } x39; struct _AmbAdaptationData { int x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; BOOL x8; float x9; } x40; struct _AmbAdaptationParam { BOOL x0; unsigned short x1; float x2[3]; float x3[3]; float x4[3]; float x5; float x6; BOOL x7; float x8[2][4]; float x9[2][4]; float x10[2][2]; float x11; } x41; struct _DpcData { int x0; float x1; float x2; float x3; } x42; int x43; } *)a4 hdrControl:(struct { unsigned int x0; unsigned int x1; unsigned int x2; unsigned int x3; unsigned int x4; unsigned int x5; unsigned int x6; unsigned int x7; unsigned int x8; unsigned int x9; unsigned int x10; unsigned int x11; float x12; unsigned int x13; unsigned int x14; unsigned int x15; unsigned int x16; unsigned int x17; float x18[9]; float x19[9]; unsigned int x20; float x21; unsigned int x22; float x23; BOOL x24; int x25; unsigned int x26; BOOL x27; } *)a5 hdr10InfoFrame:(struct { struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; unsigned short x5; unsigned short x6; unsigned short x7; unsigned int x8; unsigned int x9; } x0; struct { unsigned short x0; unsigned short x1; } x1; } *)a6 commandbuffer:(id)a7; - (unsigned int)selectHDRUsage:(unsigned int)a0 withRPU:(BOOL)a1; - (void)setCSCMatrixInHDRControl:(struct { unsigned int x0; unsigned int x1; unsigned int x2; unsigned int x3; unsigned int x4; unsigned int x5; unsigned int x6; unsigned int x7; unsigned int x8; unsigned int x9; unsigned int x10; unsigned int x11; float x12; unsigned int x13; unsigned int x14; unsigned int x15; unsigned int x16; unsigned int x17; float x18[9]; float x19[9]; unsigned int x20; float x21; unsigned int x22; float x23; BOOL x24; int x25; unsigned int x26; BOOL x27; } *)a0 forIndex:(unsigned int)a1; - (void)setHDRControl:(struct { unsigned int x0; unsigned int x1; unsigned int x2; unsigned int x3; unsigned int x4; unsigned int x5; unsigned int x6; unsigned int x7; unsigned int x8; unsigned int x9; unsigned int x10; unsigned int x11; float x12; unsigned int x13; unsigned int x14; unsigned int x15; unsigned int x16; unsigned int x17; float x18[9]; float x19[9]; unsigned int x20; float x21; unsigned int x22; float x23; BOOL x24; int x25; unsigned int x26; BOOL x27; } *)a0 withTCControl:(struct ToneCurve_Control { double x0; double x1; double x2; float x3; float x4; float x5; float x6; float x7; float x8; float x9; double x10; BOOL x11; BOOL x12; float x13; BOOL x14; int x15; struct __CFString *x16; int x17; int x18; int x19; unsigned int x20; unsigned int x21; unsigned int x22; unsigned int x23; float x24; float x25; float x26; float x27; float x28; unsigned int x29; unsigned char x30 : 1; unsigned char x31 : 1; float x32; struct _AuxData { int x0; int x1; int x2; float x3; float x4; float x5; float x6; int x7; float x8; float x9; float x10; BOOL x11; } x33; struct _TMData { int x0; int x1; int x2; int x3; int x4; float x5; float x6; float x7; int x8; float x9; float x10; float x11; float x12; float x13; float x14; float x15; float x16; float x17; float x18; float x19; float x20; float x21; float x22; float x23; float x24; int x25; int x26; float x27; float x28; struct _Percentiles_t { float x0[8]; float x1[8]; unsigned int x2; } x29; BOOL x30; BOOL x31; BOOL x32; } x34; struct _HDR10TMParam { BOOL x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; float x8; float x9; float x10; float x11; float x12; float x13; float x14; float x15; float x16; float x17; float x18; float x19; float x20; struct _TMCurveParam { int x0; union { struct _splCurveParam { unsigned short x0; float x1[6]; float x2[6]; float x3[6]; float x4[5][4]; float x5[5][4]; float x6[2][2]; } x0; struct _ebzCurveParam { unsigned short x0; float x1[6]; float x2[6]; float x3[6]; unsigned short x4[5]; float x5[5][14]; float x6[6]; float x7[5][15]; float x8[5][15]; float x9[5][15]; } x1; struct _doviCurveParam { float x0; float x1; float x2; float x3; } x2; } x1; } x21; float x22; float x23; float x24; float x25; int x26; float x27; float x28; float x29; float x30; float x31; } x35; struct _HLGTMParam { float x0; struct _HDR10TMParam { BOOL x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; float x8; float x9; float x10; float x11; float x12; float x13; float x14; float x15; float x16; float x17; float x18; float x19; float x20; struct _TMCurveParam { int x0; union { struct _splCurveParam { unsigned short x0; float x1[6]; float x2[6]; float x3[6]; float x4[5][4]; float x5[5][4]; float x6[2][2]; } x0; struct _ebzCurveParam { unsigned short x0; float x1[6]; float x2[6]; float x3[6]; unsigned short x4[5]; float x5[5][14]; float x6[6]; float x7[5][15]; float x8[5][15]; float x9[5][15]; } x1; struct _doviCurveParam { float x0; float x1; float x2; float x3; } x2; } x1; } x21; float x22; float x23; float x24; float x25; int x26; float x27; float x28; float x29; float x30; float x31; } x1; BOOL x2; float x3; float x4; float x5; float x6; BOOL x7; BOOL x8; } x36; struct _DoViTMParam { BOOL x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; float x8; float x9; float x10; float x11; float x12; float x13; float x14; float x15; float x16; float x17; float x18; float x19; float x20; float x21; float x22; float x23; float x24; float x25; float x26; float x27; float x28; float x29; float x30; float x31; float x32; float x33; int x34; float x35; } x37; struct _EdrAdaptationData { int x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; float x8; float x9; float x10; float x11; BOOL x12; float x13; float x14; float x15; float x16; unsigned int x17; float x18; float x19; float x20; float x21; float x22; float x23; float x24; float x25; float x26; float x27; float x28; float x29; float x30; float x31; float x32; BOOL x33; } x38; struct _EdrAdaptationParam { BOOL x0; unsigned short x1; float x2[3]; float x3[3]; float x4[3]; BOOL x5; float x6[2][4]; float x7[2][4]; float x8[2][2]; } x39; struct _AmbAdaptationData { int x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; BOOL x8; float x9; } x40; struct _AmbAdaptationParam { BOOL x0; unsigned short x1; float x2[3]; float x3[3]; float x4[3]; float x5; float x6; BOOL x7; float x8[2][4]; float x9[2][4]; float x10[2][2]; float x11; } x41; struct _DpcData { int x0; float x1; float x2; float x3; } x42; int x43; } *)a1 withRPU:(BOOL)a2 withMMR:(BOOL)a3 withDmData:(struct { unsigned int x0; unsigned int x1; unsigned int x2; unsigned int x3; int x4[9]; unsigned int x5[3]; int x6[9]; unsigned int x7; unsigned int x8; unsigned int x9; unsigned int x10; unsigned int x11; unsigned int x12; unsigned int x13; unsigned int x14; unsigned int x15; unsigned int x16; unsigned int x17; unsigned int x18; unsigned int x19; unsigned int x20; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; } x21; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; unsigned short x5; unsigned short x6; short x7; } x22[8]; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; } x23; struct { unsigned short x0; unsigned short x1; unsigned short x2; } x24; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; } x25; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; } x26; struct { unsigned short x0; unsigned short x1; unsigned char x2; unsigned short x3; unsigned short x4; unsigned short x5; unsigned short x6; unsigned short x7; unsigned short x8; unsigned short x9; unsigned short x10; unsigned char x11[6]; unsigned char x12[6]; } x27[5]; struct { unsigned short x0; unsigned short x1; unsigned char x2; short x3; short x4; short x5; short x6; short x7; short x8; short x9; short x10; } x28; struct { unsigned short x0; unsigned short x1; unsigned char x2; unsigned short x3; unsigned short x4; unsigned char x5; short x6; short x7; short x8; short x9; short x10; short x11; short x12; short x13; } x29[4]; struct { unsigned short x0; unsigned char x1; unsigned char x2; unsigned char x3; unsigned char x4; } x30; struct { unsigned short x0; unsigned char x1; unsigned char x2; } x31; struct { unsigned short x0; unsigned char x1; unsigned char x2; unsigned char x3; unsigned char x4; unsigned char x5; unsigned char x6; } x32; unsigned short x33; } *)a4 withOperation:(unsigned int)a5; - (long long)updateDoVi81StateWithRPU:(BOOL)a0 hasHDR10PlusSEIData:(BOOL)a1; @end