VirtualBox

Ignore:
Timestamp:
Nov 17, 2023 12:51:09 PM (14 months ago)
Author:
vboxsync
Message:

WDDM: D3D11_1DDI_VIDEODEVICEFUNCS: bugref:10529

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  
    55
    66/*
    7  * Copyright (C) 2020-2023 Oracle and/or its affiliates.
     7 * Copyright (C) 2023 Oracle and/or its affiliates.
    88 *
    99 * This file is part of VirtualBox base platform packages, as
     
    4040
    4141#include "VBoxDX.h"
     42#include "VBoxDXCmd.h"
    4243
    4344#include <VBoxWddmUmHlp.h>
    4445
    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 VBOXDXVIDEOPROCESSORINPUTVIEW
    89 {
    90     PVBOXDX_DEVICE pDevice;
    91     D3D11_1DDI_HRTVIDEOPROCESSORINPUTVIEW hRTView;
    92     D3D11_1DDIARG_CREATEVIDEOPROCESSORINPUTVIEW CreateData;
    93 } VBOXDXVIDEOPROCESSORINPUTVIEW, *PVBOXDXVIDEOPROCESSORINPUTVIEW;
    94 
    95 typedef struct VBOXDXVIDEOPROCESSOROUTPUTVIEW
    96 {
    97     PVBOXDX_DEVICE pDevice;
    98     D3D11_1DDI_HRTVIDEOPROCESSOROUTPUTVIEW hRTView;
    99     D3D11_1DDIARG_CREATEVIDEOPROCESSOROUTPUTVIEW CreateData;
    100 } VBOXDXVIDEOPROCESSOROUTPUTVIEW, *PVBOXDXVIDEOPROCESSOROUTPUTVIEW;
    101 
    102 typedef struct VBOXDXVIDEOPROCESSORFILTER
    103 {
    104     BOOL Enable;
    105     int Level;
    106 } VBOXDXVIDEOPROCESSORFILTER;
    107 
    108 typedef struct VBOXDXVIDEOPROCESSORSTREAM
    109 {
    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 VBOXDXVIDEOPROCESSOR
    138 {
    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 VBOXDXVIDEOPROCESSORENUM
    160 {
    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 VBOXDXVIDEODECODEROUTPUTVIEW
    168 {
    169     PVBOXDX_DEVICE pDevice;
    170     D3D11_1DDI_HRTVIDEODECODEROUTPUTVIEW hRTView;
    171     D3D11_1DDIARG_CREATEVIDEODECODEROUTPUTVIEW CreateData;
    172 } VBOXDXVIDEODECODEROUTPUTVIEW, *PVBOXDXVIDEODECODEROUTPUTVIEW;
    173 
    174 typedef struct VBOXDXVIDEODECODER
    175 {
    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 VBOXDXVIDEOCRYPTOSESSION
    185 {
    186     PVBOXDX_DEVICE pDevice;
    187     D3D11_1DDI_HRTCRYPTOSESSION hRTCryptoSession;
    188     uint32_t au32Dummy[3];
    189 } VBOXDXVIDEOCRYPTOSESSION, *PVBOXDXVIDEOCRYPTOSESSION;
    190 
    191 typedef struct VBOXDXVIDEOAUTHCHANNEL
    192 {
    193     PVBOXDX_DEVICE pDevice;
    194     D3D11_1DDI_HRTAUTHCHANNEL hRTAuthChannel;
    195     uint32_t au32Dummy[4];
    196 } VBOXDXVIDEOAUTHCHANNEL, *PVBOXDXVIDEOAUTHCHANNEL;
    197 
    19846
    19947static VOID APIENTRY ddi11_1GetVideoDecoderProfileCount(
     
    20250{
    20351    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);
    20854}
    20955
     
    21460{
    21561    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);
    22164}
    22265
     
    22871{
    22972    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);
    23875}
    23976
     
    24481{
    24582    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);
    25085}
    25186
     
    25792{
    25893    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,
    282101 * otherwise Windows refuses to use the decoder.
    283102 */
    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 },
     103static 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 },
    290109    { 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 },
    295114};
    296115
     
    301120{
    302121    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    303     DEBUG_BREAKPOINT_TEST();
     122    //DEBUG_BREAKPOINT_TEST();
    304123    RT_NOREF(pDevice, pDecodeDesc);
    305     *pBufferTypeCount = RT_ELEMENTS(aBufferInfo);
    306     return;
     124    *pBufferTypeCount = RT_ELEMENTS(g_aBufferInfo);
    307125}
    308126
     
    314132{
    315133    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    316     DEBUG_BREAKPOINT_TEST();
     134    //DEBUG_BREAKPOINT_TEST();
    317135    RT_NOREF(pDevice, pDecodeDesc);
    318     *pInfo = aBufferInfo[Index];
    319     return;
     136    *pInfo = g_aBufferInfo[Index];
    320137}
    321138
     
    325142{
    326143    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    327     DEBUG_BREAKPOINT_TEST();
     144    //DEBUG_BREAKPOINT_TEST();
    328145    RT_NOREF(pDevice, pDecoder);
    329146    return sizeof(VBOXDXVIDEODECODER);
     
    338155    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    339156    PVBOXDXVIDEODECODER pVideoDecoder = (PVBOXDXVIDEODECODER)hDecoder.pDrvPrivate;
    340     DEBUG_BREAKPOINT_TEST();
    341     RT_NOREF(pDevice);
     157    //DEBUG_BREAKPOINT_TEST();
     158
    342159    RT_ZERO(*pVideoDecoder);
    343     pVideoDecoder->pDevice = pDevice;
    344160    pVideoDecoder->hRTVideoDecoder = hRTDecoder;
    345     pVideoDecoder->CreateData = *pCreateData;
    346     return S_OK;
     161    return vboxDXCreateVideoDecoder(pDevice, pVideoDecoder, pCreateData->Desc, pCreateData->Config);
    347162}
    348163
     
    353168    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    354169    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);
    358173}
    359174
     
    376191    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    377192    PVBOXDXVIDEODECODER pVideoDecoder = (PVBOXDXVIDEODECODER)hDecoder.pDrvPrivate;
    378     DEBUG_BREAKPOINT_TEST();
    379     RT_NOREF(pDevice);
     193    //DEBUG_BREAKPOINT_TEST();
     194
    380195    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);
    384199}
    385200
     
    390205    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    391206    PVBOXDXVIDEODECODER pVideoDecoder = (PVBOXDXVIDEODECODER)hDecoder.pDrvPrivate;
    392     DEBUG_BREAKPOINT_TEST();
    393     RT_NOREF(pDevice);
     207    //DEBUG_BREAKPOINT_TEST();
     208
    394209    pVideoDecoder->Frame.pOutputView = NULL;
    395     return;
     210    vboxDXVideoDecoderEndFrame(pDevice, pVideoDecoder);
    396211}
    397212
     
    404219    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    405220    PVBOXDXVIDEODECODER pVideoDecoder = (PVBOXDXVIDEODECODER)hDecoder.pDrvPrivate;
    406     DEBUG_BREAKPOINT_TEST();
    407     RT_NOREF(pDevice, pVideoDecoder);
     221    //DEBUG_BREAKPOINT_TEST();
     222
     223#ifdef LOG_ENABLED
    408224    for (UINT i = 0; i < BufferCount; ++i)
    409225    {
     
    412228        RT_NOREF(pDesc);
    413229    }
    414     return S_OK;
     230#endif
     231
     232    return vboxDXVideoDecoderSubmitBuffers(pDevice, pVideoDecoder, BufferCount, pBufferDesc);
    415233}
    416234
     
    431249    D3D11_1DDI_HRTVIDEOPROCESSORENUM hRTVideoProcessorEnum)
    432250{
     251    /* HOST CONFIG */
    433252    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    434253    PVBOXDXVIDEOPROCESSORENUM pVideoProcessorEnum = (PVBOXDXVIDEOPROCESSORENUM)hVideoProcessorEnum.pDrvPrivate;
    435254    //DEBUG_BREAKPOINT_TEST();
     255    RT_NOREF(pDevice);
    436256    RT_ZERO(*pVideoProcessorEnum);
    437     pVideoProcessorEnum->pDevice = pDevice;
    438257    pVideoProcessorEnum->hRTVideoProcessorEnum = hRTVideoProcessorEnum;
    439258    pVideoProcessorEnum->Desc = pCreateData->Desc;
     
    445264    D3D11_1DDI_HVIDEOPROCESSORENUM hProcessorEnum)
    446265{
     266    /* HOST CONFIG */
    447267    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    448268    PVBOXDXVIDEOPROCESSORENUM pVideoProcessorEnum = (PVBOXDXVIDEOPROCESSORENUM)hProcessorEnum.pDrvPrivate;
     
    459279    UINT *pSupported)
    460280{
    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();
    463284    RT_NOREF(pDevice, hVideoProcessorEnum, Format);
    464285    if (   Format == DXGI_FORMAT_NV12
     
    476297    D3D11_1DDI_VIDEO_PROCESSOR_CAPS *pCaps)
    477298{
     299    /* HOST CONFIG */
    478300    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    479301    PVBOXDXVIDEOPROCESSORENUM pVideoProcessorEnum = (PVBOXDXVIDEOPROCESSORENUM)hProcessorEnum.pDrvPrivate;
    480     DEBUG_BREAKPOINT_TEST();
     302    //DEBUG_BREAKPOINT_TEST();
    481303    RT_NOREF(pDevice, pVideoProcessorEnum);
    482304    RT_ZERO(*pCaps);
     
    510332    D3D11_1DDI_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS *pCaps)
    511333{
    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();
    514337    RT_NOREF(pDevice, hProcessorEnum, RateConversionIndex);
    515338    RT_ZERO(*pCaps);
     
    549372    D3D11_1DDI_VIDEO_PROCESSOR_FILTER_RANGE *pFilterRange)
    550373{
    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();
    553377    RT_NOREF(pDevice, hProcessorEnum, Filter);
    554378    pFilterRange->Minimum = 0;
     
    564388{
    565389    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    566     DEBUG_BREAKPOINT_TEST();
     390    //DEBUG_BREAKPOINT_TEST();
    567391    RT_NOREF(pDevice, pVideoProcessor);
    568392    return sizeof(VBOXDXVIDEOPROCESSOR);
     
    576400{
    577401    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
    580406    RT_ZERO(*pVideoProcessor);
    581     pVideoProcessor->pDevice = pDevice;
    582407    pVideoProcessor->hRTVideoProcessor = hRTVideoProcessor;
    583     RT_NOREF(pCreateData);
    584     return S_OK;
     408    return vboxDXCreateVideoProcessor(pDevice, pVideoProcessor, pVideoProcessorEnum, pCreateData->RateConversionCapsIndex);
    585409}
    586410
     
    591415    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    592416    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);
    596420}
    597421
     
    604428    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    605429    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);
    611433}
    612434
     
    619441    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    620442    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);
    626446}
    627447
     
    633453    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    634454    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);
    639458}
    640459
     
    647466    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    648467    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);
    653471}
    654472
     
    661479    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    662480    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);
    668484}
    669485
     
    674490{
    675491    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);
    679496}
    680497
     
    713530    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    714531    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);
    719535}
    720536
     
    727543    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    728544    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);
    733548}
    734549
     
    743558    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    744559    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);
    751563}
    752564
     
    760572    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    761573    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);
    767577}
    768578
     
    776586    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    777587    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);
    783591}
    784592
     
    791599{
    792600    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);
    796605}
    797606
     
    818627{
    819628    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);
    823633}
    824634
     
    833643    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    834644    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);
    841648}
    842649
     
    853660{
    854661    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);
    858667}
    859668
     
    866675    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    867676    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);
    872680}
    873681
     
    882690    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    883691    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);
    889695}
    890696
     
    897703{
    898704    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);
    902709}
    903710
     
    911718{
    912719    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    913     DEBUG_BREAKPOINT_TEST();
     720    //DEBUG_BREAKPOINT_TEST();
    914721    RT_NOREF(pDevice, hVideoProcessor, StreamIndex, pGuid, DataSize, pData);
    915722    return S_OK;
     
    939746{
    940747    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);
    944753}
    945754
     
    949758{
    950759    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    951     DEBUG_BREAKPOINT_TEST();
     760    //DEBUG_BREAKPOINT_TEST();
    952761    RT_NOREF(pDevice, pView);
    953762    return sizeof(VBOXDXVIDEODECODEROUTPUTVIEW);
     
    961770{
    962771    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
     772    PVBOXDX_RESOURCE pResource = (PVBOXDX_RESOURCE)pCreateData->hDrvResource.pDrvPrivate;
    963773    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);
    967777    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);
    970780}
    971781
     
    976786    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    977787    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);
    981791}
    982792
     
    986796{
    987797    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    988     DEBUG_BREAKPOINT_TEST();
     798    //DEBUG_BREAKPOINT_TEST();
    989799    RT_NOREF(pDevice, pView);
    990800    return sizeof(VBOXDXVIDEOPROCESSORINPUTVIEW);
     
    998808{
    999809    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
     810    PVBOXDX_RESOURCE pResource = (PVBOXDX_RESOURCE)pCreateData->hDrvResource.pDrvPrivate;
     811    PVBOXDXVIDEOPROCESSORENUM pVideoProcessorEnum = (PVBOXDXVIDEOPROCESSORENUM)pCreateData->hDrvVideoProcessorEnum.pDrvPrivate;
    1000812    PVBOXDXVIDEOPROCESSORINPUTVIEW pVideoProcessorInputView = (PVBOXDXVIDEOPROCESSORINPUTVIEW)hView.pDrvPrivate;
    1001     DEBUG_BREAKPOINT_TEST();
    1002     RT_NOREF(pDevice);
    1003     pVideoProcessorInputView->pDevice = pDevice;
     813    //DEBUG_BREAKPOINT_TEST();
     814
    1004815    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);
    1007818}
    1008819
     
    1013824    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    1014825    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);
    1018829}
    1019830
     
    1023834{
    1024835    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    1025     DEBUG_BREAKPOINT_TEST();
     836    //DEBUG_BREAKPOINT_TEST();
    1026837    RT_NOREF(pDevice, pView);
    1027838    return sizeof(VBOXDXVIDEOPROCESSOROUTPUTVIEW);
     
    1035846{
    1036847    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
     848    PVBOXDX_RESOURCE pResource = (PVBOXDX_RESOURCE)pCreateData->hDrvResource.pDrvPrivate;
     849    PVBOXDXVIDEOPROCESSORENUM pVideoProcessorEnum = (PVBOXDXVIDEOPROCESSORENUM)pCreateData->hDrvVideoProcessorEnum.pDrvPrivate;
    1037850    PVBOXDXVIDEOPROCESSOROUTPUTVIEW pVideoProcessorOutputView = (PVBOXDXVIDEOPROCESSOROUTPUTVIEW)hView.pDrvPrivate;
    1038     DEBUG_BREAKPOINT_TEST();
    1039     RT_NOREF(pDevice);
    1040     pVideoProcessorOutputView->pDevice = pDevice;
     851    //DEBUG_BREAKPOINT_TEST();
     852
    1041853    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);
    1044856}
    1045857
     
    1050862    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    1051863    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);
    1055867}
    1056868
     
    1061873{
    1062874    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    1063     DEBUG_BREAKPOINT_TEST();
     875    //DEBUG_BREAKPOINT_TEST();
    1064876    RT_NOREF(pDevice, hView, hResource);
    1065877    return;
     
    1096908{
    1097909    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    1098     DEBUG_BREAKPOINT_TEST();
     910    //DEBUG_BREAKPOINT_TEST();
    1099911    RT_NOREF(pDevice, pCreateData);
    1100912    return sizeof(VBOXDXVIDEOCRYPTOSESSION);
     
    1110922    PVBOXDXVIDEOCRYPTOSESSION pCryptoSession = (PVBOXDXVIDEOCRYPTOSESSION)hCryptoSession.pDrvPrivate;
    1111923    DEBUG_BREAKPOINT_TEST();
     924    RT_NOREF(pDevice);
    1112925    RT_ZERO(*pCryptoSession);
    1113     pCryptoSession->pDevice = pDevice;
    1114926    pCryptoSession->hRTCryptoSession = hRTCryptoSession;
    1115927    RT_NOREF(pCreateData);
     
    12331045{
    12341046    PVBOXDX_DEVICE pDevice = (PVBOXDX_DEVICE)hDevice.pDrvPrivate;
    1235     DEBUG_BREAKPOINT_TEST();
     1047    //DEBUG_BREAKPOINT_TEST();
    12361048    RT_NOREF(pDevice, pCreateData);
    12371049    return sizeof(VBOXDXVIDEOAUTHCHANNEL);
     
    12471059    PVBOXDXVIDEOAUTHCHANNEL pAuthChannel = (PVBOXDXVIDEOAUTHCHANNEL)hAuthChannel.pDrvPrivate;
    12481060    DEBUG_BREAKPOINT_TEST();
     1061    RT_NOREF(pDevice);
    12491062    RT_ZERO(*pAuthChannel);
    1250     pAuthChannel->pDevice = pDevice;
    12511063    pAuthChannel->hRTAuthChannel = hRTAuthChannel;
    12521064    RT_NOREF(pCreateData);
     
    13371149HRESULT ddi11_1RetrieveVideoFunctions(PVBOXDX_DEVICE pDevice, D3D11_1DDI_VIDEO_INPUT *pVideoInput)
    13381150{
    1339     DEBUG_BREAKPOINT_TEST();
     1151    //DEBUG_BREAKPOINT_TEST();
    13401152    RT_NOREF(pDevice);
    13411153
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette