Changeset 102137 in vbox for trunk/src/VBox/Additions/WINNT/Graphics
- Timestamp:
- Nov 17, 2023 12:51:09 PM (14 months ago)
- Location:
- trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/dx
- Files:
-
- 1 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/dx/VBoxDXDDIVideo.cpp
r101303 r102137 5 5 6 6 /* 7 * Copyright (C) 202 0-2023 Oracle and/or its affiliates.7 * Copyright (C) 2023 Oracle and/or its affiliates. 8 8 * 9 9 * This file is part of VirtualBox base platform packages, as … … 40 40 41 41 #include "VBoxDX.h" 42 #include "VBoxDXCmd.h" 42 43 43 44 #include <VBoxWddmUmHlp.h> 44 45 45 static const GUID gaDecoderProfiles[] =46 {47 //D3D11_DECODER_PROFILE_MPEG2_MOCOMP,48 //D3D11_DECODER_PROFILE_MPEG2_IDCT,49 //D3D11_DECODER_PROFILE_MPEG2_VLD,50 //D3D11_DECODER_PROFILE_MPEG1_VLD,51 //D3D11_DECODER_PROFILE_MPEG2and1_VLD,52 //D3D11_DECODER_PROFILE_H264_MOCOMP_NOFGT,53 //D3D11_DECODER_PROFILE_H264_MOCOMP_FGT,54 //D3D11_DECODER_PROFILE_H264_IDCT_NOFGT,55 //D3D11_DECODER_PROFILE_H264_IDCT_FGT,56 D3D11_DECODER_PROFILE_H264_VLD_NOFGT,57 //D3D11_DECODER_PROFILE_H264_VLD_FGT,58 //D3D11_DECODER_PROFILE_H264_VLD_WITHFMOASO_NOFGT,59 //D3D11_DECODER_PROFILE_H264_VLD_STEREO_PROGRESSIVE_NOFGT,60 //D3D11_DECODER_PROFILE_H264_VLD_STEREO_NOFGT,61 //D3D11_DECODER_PROFILE_H264_VLD_MULTIVIEW_NOFGT,62 //D3D11_DECODER_PROFILE_WMV8_POSTPROC,63 //D3D11_DECODER_PROFILE_WMV8_MOCOMP,64 //D3D11_DECODER_PROFILE_WMV9_POSTPROC,65 //D3D11_DECODER_PROFILE_WMV9_MOCOMP,66 //D3D11_DECODER_PROFILE_WMV9_IDCT,67 //D3D11_DECODER_PROFILE_VC1_POSTPROC,68 //D3D11_DECODER_PROFILE_VC1_MOCOMP,69 //D3D11_DECODER_PROFILE_VC1_IDCT,70 //D3D11_DECODER_PROFILE_VC1_VLD,71 //D3D11_DECODER_PROFILE_VC1_D2010,72 //D3D11_DECODER_PROFILE_MPEG4PT2_VLD_SIMPLE,73 //D3D11_DECODER_PROFILE_MPEG4PT2_VLD_ADVSIMPLE_NOGMC,74 //D3D11_DECODER_PROFILE_MPEG4PT2_VLD_ADVSIMPLE_GMC,75 //D3D11_DECODER_PROFILE_HEVC_VLD_MAIN,76 //D3D11_DECODER_PROFILE_HEVC_VLD_MAIN10,77 //D3D11_DECODER_PROFILE_VP9_VLD_PROFILE0,78 //D3D11_DECODER_PROFILE_VP9_VLD_10BIT_PROFILE2,79 //D3D11_DECODER_PROFILE_VP8_VLD,80 //D3D11_DECODER_PROFILE_AV1_VLD_PROFILE0,81 //D3D11_DECODER_PROFILE_AV1_VLD_PROFILE1,82 //D3D11_DECODER_PROFILE_AV1_VLD_PROFILE2,83 //D3D11_DECODER_PROFILE_AV1_VLD_12BIT_PROFILE2,84 //D3D11_DECODER_PROFILE_AV1_VLD_12BIT_PROFILE2_420,85 };86 87 88 typedef struct VBOXDXVIDEOPROCESSORINPUTVIEW89 {90 PVBOXDX_DEVICE pDevice;91 D3D11_1DDI_HRTVIDEOPROCESSORINPUTVIEW hRTView;92 D3D11_1DDIARG_CREATEVIDEOPROCESSORINPUTVIEW CreateData;93 } VBOXDXVIDEOPROCESSORINPUTVIEW, *PVBOXDXVIDEOPROCESSORINPUTVIEW;94 95 typedef struct VBOXDXVIDEOPROCESSOROUTPUTVIEW96 {97 PVBOXDX_DEVICE pDevice;98 D3D11_1DDI_HRTVIDEOPROCESSOROUTPUTVIEW hRTView;99 D3D11_1DDIARG_CREATEVIDEOPROCESSOROUTPUTVIEW CreateData;100 } VBOXDXVIDEOPROCESSOROUTPUTVIEW, *PVBOXDXVIDEOPROCESSOROUTPUTVIEW;101 102 typedef struct VBOXDXVIDEOPROCESSORFILTER103 {104 BOOL Enable;105 int Level;106 } VBOXDXVIDEOPROCESSORFILTER;107 108 typedef struct VBOXDXVIDEOPROCESSORSTREAM109 {110 D3D11_1DDI_VIDEO_PROCESSOR_ALPHA_FILL_MODE AlphaFillMode;111 D3D11_1DDI_VIDEO_FRAME_FORMAT FrameFormat;112 D3D11_1DDI_VIDEO_PROCESSOR_COLOR_SPACE ColorSpace;113 struct {114 D3D11_1DDI_VIDEO_PROCESSOR_OUTPUT_RATE OutputRate;115 BOOL RepeatFrame;116 DXGI_RATIONAL CustomRate;117 } OutputRate;118 struct {119 BOOL Enable;120 RECT SourceRect;121 } SourceRect;122 struct {123 BOOL Enable;124 RECT DestRect;125 } DestRect;126 struct {127 BOOL Enable;128 FLOAT Lower;129 FLOAT Upper;130 } LumaKey;131 struct {132 BOOL Enable;133 } AutoProcessingMode;134 VBOXDXVIDEOPROCESSORFILTER aFilters[D3D11_1DDI_VIDEO_PROCESSOR_FILTER_STEREO_ADJUSTMENT + 1];135 } VBOXDXVIDEOPROCESSORSTREAM;136 137 typedef struct VBOXDXVIDEOPROCESSOR138 {139 PVBOXDX_DEVICE pDevice;140 D3D11_1DDI_HRTVIDEOPROCESSOR hRTVideoProcessor;141 uint32_t au32Dummy[1];142 struct {143 BOOL Enable;144 RECT Rect;145 } OutputRect;146 struct {147 BOOL YCbCr;148 D3D11_1DDI_VIDEO_COLOR Color;149 } OutputBackgroundColor;150 D3D11_1DDI_VIDEO_PROCESSOR_COLOR_SPACE Colorspace;151 struct {152 BOOL Enabled;153 SIZE ConstrictonSize;154 } OutputConstriction;155 156 VBOXDXVIDEOPROCESSORSTREAM aStreams[2];157 } VBOXDXVIDEOPROCESSOR, *PVBOXDXVIDEOPROCESSOR;158 159 typedef struct VBOXDXVIDEOPROCESSORENUM160 {161 PVBOXDX_DEVICE pDevice;162 D3D11_1DDI_HRTVIDEOPROCESSORENUM hRTVideoProcessorEnum;163 D3D11_1DDI_VIDEO_PROCESSOR_CONTENT_DESC Desc;164 } VBOXDXVIDEOPROCESSORENUM, *PVBOXDXVIDEOPROCESSORENUM;165 166 167 typedef struct VBOXDXVIDEODECODEROUTPUTVIEW168 {169 PVBOXDX_DEVICE pDevice;170 D3D11_1DDI_HRTVIDEODECODEROUTPUTVIEW hRTView;171 D3D11_1DDIARG_CREATEVIDEODECODEROUTPUTVIEW CreateData;172 } VBOXDXVIDEODECODEROUTPUTVIEW, *PVBOXDXVIDEODECODEROUTPUTVIEW;173 174 typedef struct VBOXDXVIDEODECODER175 {176 PVBOXDX_DEVICE pDevice;177 D3D11_1DDI_HRTDECODE hRTVideoDecoder;178 D3D11_1DDIARG_CREATEVIDEODECODER CreateData;179 struct {180 PVBOXDXVIDEODECODEROUTPUTVIEW pOutputView;181 } Frame;182 } VBOXDXVIDEODECODER, *PVBOXDXVIDEODECODER;183 184 typedef struct VBOXDXVIDEOCRYPTOSESSION185 {186 PVBOXDX_DEVICE pDevice;187 D3D11_1DDI_HRTCRYPTOSESSION hRTCryptoSession;188 uint32_t au32Dummy[3];189 } VBOXDXVIDEOCRYPTOSESSION, *PVBOXDXVIDEOCRYPTOSESSION;190 191 typedef struct VBOXDXVIDEOAUTHCHANNEL192 {193 PVBOXDX_DEVICE pDevice;194 D3D11_1DDI_HRTAUTHCHANNEL hRTAuthChannel;195 uint32_t au32Dummy[4];196 } VBOXDXVIDEOAUTHCHANNEL, *PVBOXDXVIDEOAUTHCHANNEL;197 198 46 199 47 static VOID APIENTRY ddi11_1GetVideoDecoderProfileCount( … … 202 50 { 203 51 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 204 DEBUG_BREAKPOINT_TEST(); 205 RT_NOREF(pDevice); 206 *pDecodeProfileCount = RT_ELEMENTS(gaDecoderProfiles); 207 return; 52 //DEBUG_BREAKPOINT_TEST(); 53 vboxDXGetVideoDecoderProfileCount(pDevice, pDecodeProfileCount); 208 54 } 209 55 … … 214 60 { 215 61 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 216 D3D11_1DDI_VIDEO_DECODER_DESC *pDecodeDesc = (D3D11_1DDI_VIDEO_DECODER_DESC *)pGuid; 217 DEBUG_BREAKPOINT_TEST(); 218 RT_NOREF(pDevice, Index, pDecodeDesc); 219 *pGuid = gaDecoderProfiles[Index]; 220 return; 62 //DEBUG_BREAKPOINT_TEST(); 63 vboxDXGetVideoDecoderProfile(pDevice, Index, pGuid); 221 64 } 222 65 … … 228 71 { 229 72 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 230 DEBUG_BREAKPOINT_TEST(); 231 RT_NOREF(pDevice, pDecoderProfile, Format); 232 if ( Format == DXGI_FORMAT_NV12 233 || Format == DXGI_FORMAT_B8G8R8A8_UNORM) 234 *pSupported = TRUE; 235 else 236 *pSupported = FALSE; 237 return; 73 //DEBUG_BREAKPOINT_TEST(); 74 vboxDXCheckVideoDecoderFormat(pDevice, pDecoderProfile, Format, pSupported); 238 75 } 239 76 … … 244 81 { 245 82 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 246 DEBUG_BREAKPOINT_TEST(); 247 RT_NOREF(pDevice, pDecodeDesc); 248 *pConfigCount = 1; 249 return; 83 //DEBUG_BREAKPOINT_TEST(); 84 vboxDXGetVideoDecoderConfigCount(pDevice, pDecodeDesc, pConfigCount); 250 85 } 251 86 … … 257 92 { 258 93 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 259 DEBUG_BREAKPOINT_TEST(); 260 RT_NOREF(pDevice, pDecodeDesc, Index); 261 pConfig->guidConfigBitstreamEncryption = DXVADDI_NoEncrypt; 262 pConfig->guidConfigMBcontrolEncryption = DXVADDI_NoEncrypt; 263 pConfig->guidConfigResidDiffEncryption = DXVADDI_NoEncrypt; 264 pConfig->ConfigBitstreamRaw = 1; 265 pConfig->ConfigMBcontrolRasterOrder = 0; 266 pConfig->ConfigResidDiffHost = 0; 267 pConfig->ConfigSpatialResid8 = 0; 268 pConfig->ConfigResid8Subtraction = 0; 269 pConfig->ConfigSpatialHost8or9Clipping = 0; 270 pConfig->ConfigSpatialResidInterleaved = 0; 271 pConfig->ConfigIntraResidUnsigned = 0; 272 pConfig->ConfigResidDiffAccelerator = 0; 273 pConfig->ConfigHostInverseScan = 0; 274 pConfig->ConfigSpecificIDCT = 0; 275 pConfig->Config4GroupedCoefs = 0; 276 pConfig->ConfigMinRenderTargetBuffCount = 0; 277 pConfig->ConfigDecoderSpecific = 0; 278 return; 279 } 280 281 /* D3D11_1DDI_VIDEO_DECODER_BUFFER_INFO::Usage has to be D3D11_1DDI_VIDEO_USAGE_OPTIMAL_QUALITY, 94 //DEBUG_BREAKPOINT_TEST(); 95 vboxDXGetVideoDecoderConfig(pDevice, pDecodeDesc, Index, pConfig); 96 } 97 98 /* There are no corresponding D3D11 host API so return the hardcoded information bout buffers. 99 * 100 * D3D11_1DDI_VIDEO_DECODER_BUFFER_INFO::Usage has to be D3D11_1DDI_VIDEO_USAGE_OPTIMAL_QUALITY, 282 101 * otherwise Windows refuses to use the decoder. 283 102 */ 284 static D3D11_1DDI_VIDEO_DECODER_BUFFER_INFO const aBufferInfo[] =285 { 286 { D3D11_1DDI_VIDEO_DECODER_BUFFER_PICTURE_PARAMETERS, _64K, D3D11_1DDI_VIDEO_USAGE_OPTIMAL_QUALITY },287 { D3D11_1DDI_VIDEO_DECODER_BUFFER_MACROBLOCK_CONTROL, _64K, D3D11_1DDI_VIDEO_USAGE_OPTIMAL_QUALITY },288 { D3D11_1DDI_VIDEO_DECODER_BUFFER_RESIDUAL_DIFFERENCE, _64K, D3D11_1DDI_VIDEO_USAGE_OPTIMAL_QUALITY },289 { D3D11_1DDI_VIDEO_DECODER_BUFFER_DEBLOCKING_CONTROL, _64K, D3D11_1DDI_VIDEO_USAGE_OPTIMAL_QUALITY },103 static D3D11_1DDI_VIDEO_DECODER_BUFFER_INFO const g_aBufferInfo[] = 104 { 105 { D3D11_1DDI_VIDEO_DECODER_BUFFER_PICTURE_PARAMETERS, _64K, D3D11_1DDI_VIDEO_USAGE_OPTIMAL_QUALITY }, 106 { D3D11_1DDI_VIDEO_DECODER_BUFFER_MACROBLOCK_CONTROL, _64K, D3D11_1DDI_VIDEO_USAGE_OPTIMAL_QUALITY }, 107 { D3D11_1DDI_VIDEO_DECODER_BUFFER_RESIDUAL_DIFFERENCE, _64K, D3D11_1DDI_VIDEO_USAGE_OPTIMAL_QUALITY }, 108 { D3D11_1DDI_VIDEO_DECODER_BUFFER_DEBLOCKING_CONTROL, _64K, D3D11_1DDI_VIDEO_USAGE_OPTIMAL_QUALITY }, 290 109 { D3D11_1DDI_VIDEO_DECODER_BUFFER_INVERSE_QUANTIZATION_MATRIX, _64K, D3D11_1DDI_VIDEO_USAGE_OPTIMAL_QUALITY }, 291 { D3D11_1DDI_VIDEO_DECODER_BUFFER_SLICE_CONTROL, _64K, D3D11_1DDI_VIDEO_USAGE_OPTIMAL_QUALITY },292 { D3D11_1DDI_VIDEO_DECODER_BUFFER_BITSTREAM, _64K, D3D11_1DDI_VIDEO_USAGE_OPTIMAL_QUALITY },293 { D3D11_1DDI_VIDEO_DECODER_BUFFER_MOTION_VECTOR, _64K, D3D11_1DDI_VIDEO_USAGE_OPTIMAL_QUALITY },294 { D3D11_1DDI_VIDEO_DECODER_BUFFER_FILM_GRAIN, _64K, D3D11_1DDI_VIDEO_USAGE_OPTIMAL_QUALITY },110 { D3D11_1DDI_VIDEO_DECODER_BUFFER_SLICE_CONTROL, _64K, D3D11_1DDI_VIDEO_USAGE_OPTIMAL_QUALITY }, 111 { D3D11_1DDI_VIDEO_DECODER_BUFFER_BITSTREAM, _64K, D3D11_1DDI_VIDEO_USAGE_OPTIMAL_QUALITY }, 112 { D3D11_1DDI_VIDEO_DECODER_BUFFER_MOTION_VECTOR, _64K, D3D11_1DDI_VIDEO_USAGE_OPTIMAL_QUALITY }, 113 { D3D11_1DDI_VIDEO_DECODER_BUFFER_FILM_GRAIN, _64K, D3D11_1DDI_VIDEO_USAGE_OPTIMAL_QUALITY }, 295 114 }; 296 115 … … 301 120 { 302 121 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 303 DEBUG_BREAKPOINT_TEST();122 //DEBUG_BREAKPOINT_TEST(); 304 123 RT_NOREF(pDevice, pDecodeDesc); 305 *pBufferTypeCount = RT_ELEMENTS(aBufferInfo); 306 return; 124 *pBufferTypeCount = RT_ELEMENTS(g_aBufferInfo); 307 125 } 308 126 … … 314 132 { 315 133 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 316 DEBUG_BREAKPOINT_TEST();134 //DEBUG_BREAKPOINT_TEST(); 317 135 RT_NOREF(pDevice, pDecodeDesc); 318 *pInfo = aBufferInfo[Index]; 319 return; 136 *pInfo = g_aBufferInfo[Index]; 320 137 } 321 138 … … 325 142 { 326 143 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 327 DEBUG_BREAKPOINT_TEST();144 //DEBUG_BREAKPOINT_TEST(); 328 145 RT_NOREF(pDevice, pDecoder); 329 146 return sizeof(VBOXDXVIDEODECODER); … … 338 155 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 339 156 PVBOXDXVIDEODECODER pVideoDecoder = (PVBOXDXVIDEODECODER)hDecoder.pDrvPrivate; 340 DEBUG_BREAKPOINT_TEST();341 RT_NOREF(pDevice); 157 //DEBUG_BREAKPOINT_TEST(); 158 342 159 RT_ZERO(*pVideoDecoder); 343 pVideoDecoder->pDevice = pDevice;344 160 pVideoDecoder->hRTVideoDecoder = hRTDecoder; 345 pVideoDecoder->CreateData = *pCreateData; 346 return S_OK; 161 return vboxDXCreateVideoDecoder(pDevice, pVideoDecoder, pCreateData->Desc, pCreateData->Config); 347 162 } 348 163 … … 353 168 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 354 169 PVBOXDXVIDEODECODER pVideoDecoder = (PVBOXDXVIDEODECODER)hDecoder.pDrvPrivate; 355 DEBUG_BREAKPOINT_TEST();356 RT_NOREF(pDevice, pVideoDecoder); 357 return;170 //DEBUG_BREAKPOINT_TEST(); 171 172 vboxDXDestroyVideoDecoder(pDevice, pVideoDecoder); 358 173 } 359 174 … … 376 191 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 377 192 PVBOXDXVIDEODECODER pVideoDecoder = (PVBOXDXVIDEODECODER)hDecoder.pDrvPrivate; 378 DEBUG_BREAKPOINT_TEST();379 RT_NOREF(pDevice); 193 //DEBUG_BREAKPOINT_TEST(); 194 380 195 pVideoDecoder->Frame.pOutputView = (PVBOXDXVIDEODECODEROUTPUTVIEW)pBeginFrame->hOutputView.pDrvPrivate; 381 //pBeginFrame->pContentKey;382 //pBeginFrame->ContentKeySize;383 return S_OK;196 return vboxDXVideoDecoderBeginFrame(pDevice, pVideoDecoder, 197 pVideoDecoder->Frame.pOutputView, 198 pBeginFrame->pContentKey, pBeginFrame->ContentKeySize); 384 199 } 385 200 … … 390 205 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 391 206 PVBOXDXVIDEODECODER pVideoDecoder = (PVBOXDXVIDEODECODER)hDecoder.pDrvPrivate; 392 DEBUG_BREAKPOINT_TEST();393 RT_NOREF(pDevice); 207 //DEBUG_BREAKPOINT_TEST(); 208 394 209 pVideoDecoder->Frame.pOutputView = NULL; 395 return;210 vboxDXVideoDecoderEndFrame(pDevice, pVideoDecoder); 396 211 } 397 212 … … 404 219 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 405 220 PVBOXDXVIDEODECODER pVideoDecoder = (PVBOXDXVIDEODECODER)hDecoder.pDrvPrivate; 406 DEBUG_BREAKPOINT_TEST(); 407 RT_NOREF(pDevice, pVideoDecoder); 221 //DEBUG_BREAKPOINT_TEST(); 222 223 #ifdef LOG_ENABLED 408 224 for (UINT i = 0; i < BufferCount; ++i) 409 225 { … … 412 228 RT_NOREF(pDesc); 413 229 } 414 return S_OK; 230 #endif 231 232 return vboxDXVideoDecoderSubmitBuffers(pDevice, pVideoDecoder, BufferCount, pBufferDesc); 415 233 } 416 234 … … 431 249 D3D11_1DDI_HRTVIDEOPROCESSORENUM hRTVideoProcessorEnum) 432 250 { 251 /* HOST CONFIG */ 433 252 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 434 253 PVBOXDXVIDEOPROCESSORENUM pVideoProcessorEnum = (PVBOXDXVIDEOPROCESSORENUM)hVideoProcessorEnum.pDrvPrivate; 435 254 //DEBUG_BREAKPOINT_TEST(); 255 RT_NOREF(pDevice); 436 256 RT_ZERO(*pVideoProcessorEnum); 437 pVideoProcessorEnum->pDevice = pDevice;438 257 pVideoProcessorEnum->hRTVideoProcessorEnum = hRTVideoProcessorEnum; 439 258 pVideoProcessorEnum->Desc = pCreateData->Desc; … … 445 264 D3D11_1DDI_HVIDEOPROCESSORENUM hProcessorEnum) 446 265 { 266 /* HOST CONFIG */ 447 267 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 448 268 PVBOXDXVIDEOPROCESSORENUM pVideoProcessorEnum = (PVBOXDXVIDEOPROCESSORENUM)hProcessorEnum.pDrvPrivate; … … 459 279 UINT *pSupported) 460 280 { 461 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 462 DEBUG_BREAKPOINT_TEST(); 281 /* HOST CONFIG */ 282 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 283 //DEBUG_BREAKPOINT_TEST(); 463 284 RT_NOREF(pDevice, hVideoProcessorEnum, Format); 464 285 if ( Format == DXGI_FORMAT_NV12 … … 476 297 D3D11_1DDI_VIDEO_PROCESSOR_CAPS *pCaps) 477 298 { 299 /* HOST CONFIG */ 478 300 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 479 301 PVBOXDXVIDEOPROCESSORENUM pVideoProcessorEnum = (PVBOXDXVIDEOPROCESSORENUM)hProcessorEnum.pDrvPrivate; 480 DEBUG_BREAKPOINT_TEST();302 //DEBUG_BREAKPOINT_TEST(); 481 303 RT_NOREF(pDevice, pVideoProcessorEnum); 482 304 RT_ZERO(*pCaps); … … 510 332 D3D11_1DDI_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS *pCaps) 511 333 { 512 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 513 DEBUG_BREAKPOINT_TEST(); 334 /* HOST CONFIG */ 335 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 336 //DEBUG_BREAKPOINT_TEST(); 514 337 RT_NOREF(pDevice, hProcessorEnum, RateConversionIndex); 515 338 RT_ZERO(*pCaps); … … 549 372 D3D11_1DDI_VIDEO_PROCESSOR_FILTER_RANGE *pFilterRange) 550 373 { 551 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 552 DEBUG_BREAKPOINT_TEST(); 374 /* HOST CONFIG */ 375 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 376 //DEBUG_BREAKPOINT_TEST(); 553 377 RT_NOREF(pDevice, hProcessorEnum, Filter); 554 378 pFilterRange->Minimum = 0; … … 564 388 { 565 389 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 566 DEBUG_BREAKPOINT_TEST();390 //DEBUG_BREAKPOINT_TEST(); 567 391 RT_NOREF(pDevice, pVideoProcessor); 568 392 return sizeof(VBOXDXVIDEOPROCESSOR); … … 576 400 { 577 401 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 578 PVBOXDXVIDEOPROCESSOR pVideoProcessor = (PVBOXDXVIDEOPROCESSOR)hVideoProcessor.pDrvPrivate; 579 DEBUG_BREAKPOINT_TEST(); 402 PVBOXDXVIDEOPROCESSORENUM pVideoProcessorEnum = (PVBOXDXVIDEOPROCESSORENUM)pCreateData->hVideoProcessorEnum.pDrvPrivate; 403 PVBOXDXVIDEOPROCESSOR pVideoProcessor = (PVBOXDXVIDEOPROCESSOR)hVideoProcessor.pDrvPrivate; 404 //DEBUG_BREAKPOINT_TEST(); 405 580 406 RT_ZERO(*pVideoProcessor); 581 pVideoProcessor->pDevice = pDevice;582 407 pVideoProcessor->hRTVideoProcessor = hRTVideoProcessor; 583 RT_NOREF(pCreateData); 584 return S_OK; 408 return vboxDXCreateVideoProcessor(pDevice, pVideoProcessor, pVideoProcessorEnum, pCreateData->RateConversionCapsIndex); 585 409 } 586 410 … … 591 415 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 592 416 PVBOXDXVIDEOPROCESSOR pVideoProcessor = (PVBOXDXVIDEOPROCESSOR)hVideoProcessor.pDrvPrivate; 593 DEBUG_BREAKPOINT_TEST();594 RT_NOREF(pDevice, pVideoProcessor); 595 return;417 //DEBUG_BREAKPOINT_TEST(); 418 419 vboxDXDestroyVideoProcessor(pDevice, pVideoProcessor); 596 420 } 597 421 … … 604 428 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 605 429 PVBOXDXVIDEOPROCESSOR pVideoProcessor = (PVBOXDXVIDEOPROCESSOR)hVideoProcessor.pDrvPrivate; 606 DEBUG_BREAKPOINT_TEST(); 607 RT_NOREF(pDevice); 608 pVideoProcessor->OutputRect.Enable = Enable; 609 pVideoProcessor->OutputRect.Rect = *pOutputRect; 610 return; 430 //DEBUG_BREAKPOINT_TEST(); 431 432 vboxDXVideoProcessorSetOutputTargetRect(pDevice, pVideoProcessor, Enable, pOutputRect); 611 433 } 612 434 … … 619 441 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 620 442 PVBOXDXVIDEOPROCESSOR pVideoProcessor = (PVBOXDXVIDEOPROCESSOR)hVideoProcessor.pDrvPrivate; 621 DEBUG_BREAKPOINT_TEST(); 622 RT_NOREF(pDevice); 623 pVideoProcessor->OutputBackgroundColor.YCbCr = YCbCr; 624 pVideoProcessor->OutputBackgroundColor.Color = *pColor; 625 return; 443 //DEBUG_BREAKPOINT_TEST(); 444 445 vboxDXVideoProcessorSetOutputBackgroundColor(pDevice, pVideoProcessor, YCbCr, pColor); 626 446 } 627 447 … … 633 453 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 634 454 PVBOXDXVIDEOPROCESSOR pVideoProcessor = (PVBOXDXVIDEOPROCESSOR)hVideoProcessor.pDrvPrivate; 635 DEBUG_BREAKPOINT_TEST(); 636 RT_NOREF(pDevice); 637 pVideoProcessor->Colorspace = *pColorspace; 638 return; 455 //DEBUG_BREAKPOINT_TEST(); 456 457 vboxDXVideoProcessorSetOutputColorSpace(pDevice, pVideoProcessor, pColorspace); 639 458 } 640 459 … … 647 466 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 648 467 PVBOXDXVIDEOPROCESSOR pVideoProcessor = (PVBOXDXVIDEOPROCESSOR)hVideoProcessor.pDrvPrivate; 649 DEBUG_BREAKPOINT_TEST(); 650 RT_NOREF(pDevice); 651 pVideoProcessor->aStreams[StreamIndex].AlphaFillMode = FillMode; 652 return; 468 //DEBUG_BREAKPOINT_TEST(); 469 470 vboxDXVideoProcessorSetOutputAlphaFillMode(pDevice, pVideoProcessor, FillMode, StreamIndex); 653 471 } 654 472 … … 661 479 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 662 480 PVBOXDXVIDEOPROCESSOR pVideoProcessor = (PVBOXDXVIDEOPROCESSOR)hVideoProcessor.pDrvPrivate; 663 DEBUG_BREAKPOINT_TEST(); 664 RT_NOREF(pDevice); 665 pVideoProcessor->OutputConstriction.Enabled = Enabled; 666 pVideoProcessor->OutputConstriction.ConstrictonSize = ConstrictonSize; 667 return; 481 //DEBUG_BREAKPOINT_TEST(); 482 483 vboxDXVideoProcessorSetOutputConstriction(pDevice, pVideoProcessor, Enabled, ConstrictonSize); 668 484 } 669 485 … … 674 490 { 675 491 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 676 DEBUG_BREAKPOINT_TEST(); 677 RT_NOREF(pDevice, hVideoProcessor, Enable); 678 return; 492 PVBOXDXVIDEOPROCESSOR pVideoProcessor = (PVBOXDXVIDEOPROCESSOR)hVideoProcessor.pDrvPrivate; 493 //DEBUG_BREAKPOINT_TEST(); 494 495 vboxDXVideoProcessorSetOutputStereoMode(pDevice, pVideoProcessor, Enable); 679 496 } 680 497 … … 713 530 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 714 531 PVBOXDXVIDEOPROCESSOR pVideoProcessor = (PVBOXDXVIDEOPROCESSOR)hVideoProcessor.pDrvPrivate; 715 DEBUG_BREAKPOINT_TEST(); 716 RT_NOREF(pDevice); 717 pVideoProcessor->aStreams[StreamIndex].FrameFormat = Format; 718 return; 532 //DEBUG_BREAKPOINT_TEST(); 533 534 vboxDXVideoProcessorSetStreamFrameFormat(pDevice, pVideoProcessor, StreamIndex, Format); 719 535 } 720 536 … … 727 543 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 728 544 PVBOXDXVIDEOPROCESSOR pVideoProcessor = (PVBOXDXVIDEOPROCESSOR)hVideoProcessor.pDrvPrivate; 729 DEBUG_BREAKPOINT_TEST(); 730 RT_NOREF(pDevice); 731 pVideoProcessor->aStreams[StreamIndex].ColorSpace = *pColorSpace; 732 return; 545 //DEBUG_BREAKPOINT_TEST(); 546 547 vboxDXVideoProcessorSetStreamColorSpace(pDevice, pVideoProcessor, StreamIndex, pColorSpace); 733 548 } 734 549 … … 743 558 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 744 559 PVBOXDXVIDEOPROCESSOR pVideoProcessor = (PVBOXDXVIDEOPROCESSOR)hVideoProcessor.pDrvPrivate; 745 DEBUG_BREAKPOINT_TEST(); 746 RT_NOREF(pDevice); 747 pVideoProcessor->aStreams[StreamIndex].OutputRate.OutputRate = OutputRate; 748 pVideoProcessor->aStreams[StreamIndex].OutputRate.RepeatFrame = RepeatFrame; 749 pVideoProcessor->aStreams[StreamIndex].OutputRate.CustomRate = *pCustomRate; 750 return; 560 //DEBUG_BREAKPOINT_TEST(); 561 562 vboxDXVideoProcessorSetStreamOutputRate(pDevice, pVideoProcessor, StreamIndex, OutputRate, RepeatFrame, pCustomRate); 751 563 } 752 564 … … 760 572 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 761 573 PVBOXDXVIDEOPROCESSOR pVideoProcessor = (PVBOXDXVIDEOPROCESSOR)hVideoProcessor.pDrvPrivate; 762 DEBUG_BREAKPOINT_TEST(); 763 RT_NOREF(pDevice); 764 pVideoProcessor->aStreams[StreamIndex].SourceRect.Enable = Enable; 765 pVideoProcessor->aStreams[StreamIndex].SourceRect.SourceRect = *pSourceRect; 766 return; 574 //DEBUG_BREAKPOINT_TEST(); 575 576 vboxDXVideoProcessorSetStreamSourceRect(pDevice, pVideoProcessor, StreamIndex, Enable, pSourceRect); 767 577 } 768 578 … … 776 586 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 777 587 PVBOXDXVIDEOPROCESSOR pVideoProcessor = (PVBOXDXVIDEOPROCESSOR)hVideoProcessor.pDrvPrivate; 778 DEBUG_BREAKPOINT_TEST(); 779 RT_NOREF(pDevice); 780 pVideoProcessor->aStreams[StreamIndex].DestRect.Enable = Enable; 781 pVideoProcessor->aStreams[StreamIndex].DestRect.DestRect = *pDestRect; 782 return; 588 //DEBUG_BREAKPOINT_TEST(); 589 590 vboxDXVideoProcessorSetStreamDestRect(pDevice, pVideoProcessor, StreamIndex, Enable, pDestRect); 783 591 } 784 592 … … 791 599 { 792 600 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 793 DEBUG_BREAKPOINT_TEST(); 794 RT_NOREF(pDevice, hVideoProcessor, StreamIndex, Enable, Alpha); 795 return; 601 PVBOXDXVIDEOPROCESSOR pVideoProcessor = (PVBOXDXVIDEOPROCESSOR)hVideoProcessor.pDrvPrivate; 602 //DEBUG_BREAKPOINT_TEST(); 603 604 vboxDXVideoProcessorSetStreamAlpha(pDevice, pVideoProcessor, StreamIndex, Enable, Alpha); 796 605 } 797 606 … … 818 627 { 819 628 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 820 DEBUG_BREAKPOINT_TEST(); 821 RT_NOREF(pDevice, hVideoProcessor, StreamIndex, Enable, pSourceRatio, pDestRatio); 822 return; 629 PVBOXDXVIDEOPROCESSOR pVideoProcessor = (PVBOXDXVIDEOPROCESSOR)hVideoProcessor.pDrvPrivate; 630 //DEBUG_BREAKPOINT_TEST(); 631 632 vboxDXVideoProcessorSetStreamPixelAspectRatio(pDevice, pVideoProcessor, StreamIndex, Enable, pSourceRatio, pDestRatio); 823 633 } 824 634 … … 833 643 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 834 644 PVBOXDXVIDEOPROCESSOR pVideoProcessor = (PVBOXDXVIDEOPROCESSOR)hVideoProcessor.pDrvPrivate; 835 DEBUG_BREAKPOINT_TEST(); 836 RT_NOREF(pDevice); 837 pVideoProcessor->aStreams[StreamIndex].LumaKey.Enable = Enable; 838 pVideoProcessor->aStreams[StreamIndex].LumaKey.Lower = Lower; 839 pVideoProcessor->aStreams[StreamIndex].LumaKey.Upper = Upper; 840 return; 645 //DEBUG_BREAKPOINT_TEST(); 646 647 vboxDXVideoProcessorSetStreamLumaKey(pDevice, pVideoProcessor, StreamIndex, Enable, Lower, Upper); 841 648 } 842 649 … … 853 660 { 854 661 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 855 DEBUG_BREAKPOINT_TEST(); 856 RT_NOREF(pDevice, hVideoProcessor, StreamIndex, Enable, StereoFormat, LeftViewFrame0, BaseViewFrame0, FlipMode, MonoOffset); 857 return; 662 PVBOXDXVIDEOPROCESSOR pVideoProcessor = (PVBOXDXVIDEOPROCESSOR)hVideoProcessor.pDrvPrivate; 663 //DEBUG_BREAKPOINT_TEST(); 664 665 vboxDXVideoProcessorSetStreamStereoFormat(pDevice, pVideoProcessor, StreamIndex, Enable, 666 StereoFormat, LeftViewFrame0, BaseViewFrame0, FlipMode, MonoOffset); 858 667 } 859 668 … … 866 675 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 867 676 PVBOXDXVIDEOPROCESSOR pVideoProcessor = (PVBOXDXVIDEOPROCESSOR)hVideoProcessor.pDrvPrivate; 868 DEBUG_BREAKPOINT_TEST(); 869 RT_NOREF(pDevice); 870 pVideoProcessor->aStreams[StreamIndex].AutoProcessingMode.Enable = Enable; 871 return; 677 //DEBUG_BREAKPOINT_TEST(); 678 679 vboxDXVideoProcessorSetStreamAutoProcessingMode(pDevice, pVideoProcessor, StreamIndex, Enable); 872 680 } 873 681 … … 882 690 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 883 691 PVBOXDXVIDEOPROCESSOR pVideoProcessor = (PVBOXDXVIDEOPROCESSOR)hVideoProcessor.pDrvPrivate; 884 DEBUG_BREAKPOINT_TEST(); 885 RT_NOREF(pDevice); 886 pVideoProcessor->aStreams[StreamIndex].aFilters[Filter].Enable = Enable; 887 pVideoProcessor->aStreams[StreamIndex].aFilters[Filter].Level = Level; 888 return; 692 //DEBUG_BREAKPOINT_TEST(); 693 694 vboxDXVideoProcessorSetStreamFilter(pDevice, pVideoProcessor, StreamIndex, Enable, Filter, Level); 889 695 } 890 696 … … 897 703 { 898 704 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 899 DEBUG_BREAKPOINT_TEST(); 900 RT_NOREF(pDevice, hVideoProcessor, StreamIndex, Enable, Rotation); 901 return; 705 PVBOXDXVIDEOPROCESSOR pVideoProcessor = (PVBOXDXVIDEOPROCESSOR)hVideoProcessor.pDrvPrivate; 706 //DEBUG_BREAKPOINT_TEST(); 707 708 vboxDXVideoProcessorSetStreamRotation(pDevice, pVideoProcessor, StreamIndex, Enable, Rotation); 902 709 } 903 710 … … 911 718 { 912 719 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 913 DEBUG_BREAKPOINT_TEST();720 //DEBUG_BREAKPOINT_TEST(); 914 721 RT_NOREF(pDevice, hVideoProcessor, StreamIndex, pGuid, DataSize, pData); 915 722 return S_OK; … … 939 746 { 940 747 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 941 DEBUG_BREAKPOINT_TEST(); 942 RT_NOREF(pDevice, hVideoProcessor, hOutputView, OutputFrame, StreamCount, pStream); 943 return S_OK; 748 PVBOXDXVIDEOPROCESSOR pVideoProcessor = (PVBOXDXVIDEOPROCESSOR)hVideoProcessor.pDrvPrivate; 749 PVBOXDXVIDEOPROCESSOROUTPUTVIEW pVideoProcessorOutputView = (PVBOXDXVIDEOPROCESSOROUTPUTVIEW)hOutputView.pDrvPrivate; 750 //DEBUG_BREAKPOINT_TEST(); 751 752 return vboxDXVideoProcessorBlt(pDevice, pVideoProcessor, pVideoProcessorOutputView, OutputFrame, StreamCount, pStream); 944 753 } 945 754 … … 949 758 { 950 759 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 951 DEBUG_BREAKPOINT_TEST();760 //DEBUG_BREAKPOINT_TEST(); 952 761 RT_NOREF(pDevice, pView); 953 762 return sizeof(VBOXDXVIDEODECODEROUTPUTVIEW); … … 961 770 { 962 771 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 772 PVBOXDX_RESOURCE pResource = (PVBOXDX_RESOURCE)pCreateData->hDrvResource.pDrvPrivate; 963 773 PVBOXDXVIDEODECODEROUTPUTVIEW pVideoDecoderOutputView = (PVBOXDXVIDEODECODEROUTPUTVIEW)hView.pDrvPrivate; 964 DEBUG_BREAKPOINT_TEST();965 RT_NOREF(pDevice); 966 pVideoDecoderOutputView->pDevice = pDevice;774 //DEBUG_BREAKPOINT_TEST(); 775 776 RT_ZERO(*pVideoDecoderOutputView); 967 777 pVideoDecoderOutputView->hRTView = hRTView; 968 pVideoDecoderOutputView->CreateData = *pCreateData;969 return S_OK;778 return vboxDXCreateVideoDecoderOutputView(pDevice, pVideoDecoderOutputView, pResource, 779 pCreateData->DecodeProfile, pCreateData->MipSlice, pCreateData->FirstArraySlice, pCreateData->ArraySize); 970 780 } 971 781 … … 976 786 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 977 787 PVBOXDXVIDEODECODEROUTPUTVIEW pVideoDecoderOutputView = (PVBOXDXVIDEODECODEROUTPUTVIEW)hView.pDrvPrivate; 978 DEBUG_BREAKPOINT_TEST();979 RT_NOREF(pDevice, pVideoDecoderOutputView); 980 return;788 //DEBUG_BREAKPOINT_TEST(); 789 790 vboxDXDestroyVideoDecoderOutputView(pDevice, pVideoDecoderOutputView); 981 791 } 982 792 … … 986 796 { 987 797 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 988 DEBUG_BREAKPOINT_TEST();798 //DEBUG_BREAKPOINT_TEST(); 989 799 RT_NOREF(pDevice, pView); 990 800 return sizeof(VBOXDXVIDEOPROCESSORINPUTVIEW); … … 998 808 { 999 809 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 810 PVBOXDX_RESOURCE pResource = (PVBOXDX_RESOURCE)pCreateData->hDrvResource.pDrvPrivate; 811 PVBOXDXVIDEOPROCESSORENUM pVideoProcessorEnum = (PVBOXDXVIDEOPROCESSORENUM)pCreateData->hDrvVideoProcessorEnum.pDrvPrivate; 1000 812 PVBOXDXVIDEOPROCESSORINPUTVIEW pVideoProcessorInputView = (PVBOXDXVIDEOPROCESSORINPUTVIEW)hView.pDrvPrivate; 1001 DEBUG_BREAKPOINT_TEST(); 1002 RT_NOREF(pDevice); 1003 pVideoProcessorInputView->pDevice = pDevice; 813 //DEBUG_BREAKPOINT_TEST(); 814 1004 815 pVideoProcessorInputView->hRTView = hRTView; 1005 pVideoProcessorInputView->CreateData = *pCreateData;1006 return S_OK;816 return vboxDXCreateVideoProcessorInputView(pDevice, pVideoProcessorInputView, pResource, pVideoProcessorEnum, 817 pCreateData->FourCC, pCreateData->MipSlice, pCreateData->FirstArraySlice, pCreateData->ArraySize); 1007 818 } 1008 819 … … 1013 824 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 1014 825 PVBOXDXVIDEOPROCESSORINPUTVIEW pVideoProcessorInputView = (PVBOXDXVIDEOPROCESSORINPUTVIEW)hView.pDrvPrivate; 1015 DEBUG_BREAKPOINT_TEST();1016 RT_NOREF(pDevice, pVideoProcessorInputView); 1017 return;826 //DEBUG_BREAKPOINT_TEST(); 827 828 vboxDXDestroyVideoProcessorInputView(pDevice, pVideoProcessorInputView); 1018 829 } 1019 830 … … 1023 834 { 1024 835 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 1025 DEBUG_BREAKPOINT_TEST();836 //DEBUG_BREAKPOINT_TEST(); 1026 837 RT_NOREF(pDevice, pView); 1027 838 return sizeof(VBOXDXVIDEOPROCESSOROUTPUTVIEW); … … 1035 846 { 1036 847 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 848 PVBOXDX_RESOURCE pResource = (PVBOXDX_RESOURCE)pCreateData->hDrvResource.pDrvPrivate; 849 PVBOXDXVIDEOPROCESSORENUM pVideoProcessorEnum = (PVBOXDXVIDEOPROCESSORENUM)pCreateData->hDrvVideoProcessorEnum.pDrvPrivate; 1037 850 PVBOXDXVIDEOPROCESSOROUTPUTVIEW pVideoProcessorOutputView = (PVBOXDXVIDEOPROCESSOROUTPUTVIEW)hView.pDrvPrivate; 1038 DEBUG_BREAKPOINT_TEST(); 1039 RT_NOREF(pDevice); 1040 pVideoProcessorOutputView->pDevice = pDevice; 851 //DEBUG_BREAKPOINT_TEST(); 852 1041 853 pVideoProcessorOutputView->hRTView = hRTView; 1042 pVideoProcessorOutputView->CreateData = *pCreateData;1043 return S_OK;854 return vboxDXCreateVideoProcessorOutputView(pDevice, pVideoProcessorOutputView, pResource, pVideoProcessorEnum, 855 pCreateData->MipSlice, pCreateData->FirstArraySlice, pCreateData->ArraySize); 1044 856 } 1045 857 … … 1050 862 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 1051 863 PVBOXDXVIDEOPROCESSOROUTPUTVIEW pVideoProcessorOutputView = (PVBOXDXVIDEOPROCESSOROUTPUTVIEW)hView.pDrvPrivate; 1052 DEBUG_BREAKPOINT_TEST();1053 RT_NOREF(pDevice, pVideoProcessorOutputView); 1054 return;864 //DEBUG_BREAKPOINT_TEST(); 865 866 vboxDXDestroyVideoProcessorOutputView(pDevice, pVideoProcessorOutputView); 1055 867 } 1056 868 … … 1061 873 { 1062 874 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 1063 DEBUG_BREAKPOINT_TEST();875 //DEBUG_BREAKPOINT_TEST(); 1064 876 RT_NOREF(pDevice, hView, hResource); 1065 877 return; … … 1096 908 { 1097 909 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 1098 DEBUG_BREAKPOINT_TEST();910 //DEBUG_BREAKPOINT_TEST(); 1099 911 RT_NOREF(pDevice, pCreateData); 1100 912 return sizeof(VBOXDXVIDEOCRYPTOSESSION); … … 1110 922 PVBOXDXVIDEOCRYPTOSESSION pCryptoSession = (PVBOXDXVIDEOCRYPTOSESSION)hCryptoSession.pDrvPrivate; 1111 923 DEBUG_BREAKPOINT_TEST(); 924 RT_NOREF(pDevice); 1112 925 RT_ZERO(*pCryptoSession); 1113 pCryptoSession->pDevice = pDevice;1114 926 pCryptoSession->hRTCryptoSession = hRTCryptoSession; 1115 927 RT_NOREF(pCreateData); … … 1233 1045 { 1234 1046 PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate; 1235 DEBUG_BREAKPOINT_TEST();1047 //DEBUG_BREAKPOINT_TEST(); 1236 1048 RT_NOREF(pDevice, pCreateData); 1237 1049 return sizeof(VBOXDXVIDEOAUTHCHANNEL); … … 1247 1059 PVBOXDXVIDEOAUTHCHANNEL pAuthChannel = (PVBOXDXVIDEOAUTHCHANNEL)hAuthChannel.pDrvPrivate; 1248 1060 DEBUG_BREAKPOINT_TEST(); 1061 RT_NOREF(pDevice); 1249 1062 RT_ZERO(*pAuthChannel); 1250 pAuthChannel->pDevice = pDevice;1251 1063 pAuthChannel->hRTAuthChannel = hRTAuthChannel; 1252 1064 RT_NOREF(pCreateData); … … 1337 1149 HRESULT ddi11_1RetrieveVideoFunctions(PVBOXDX_DEVICE pDevice, D3D11_1DDI_VIDEO_INPUT *pVideoInput) 1338 1150 { 1339 DEBUG_BREAKPOINT_TEST();1151 //DEBUG_BREAKPOINT_TEST(); 1340 1152 RT_NOREF(pDevice); 1341 1153
Note:
See TracChangeset
for help on using the changeset viewer.