diff options
Diffstat (limited to 'sys/d3d11/gstd3d11videoprocessor.c')
-rw-r--r-- | sys/d3d11/gstd3d11videoprocessor.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/sys/d3d11/gstd3d11videoprocessor.c b/sys/d3d11/gstd3d11videoprocessor.c index ed2bd748a..94e601dfe 100644 --- a/sys/d3d11/gstd3d11videoprocessor.c +++ b/sys/d3d11/gstd3d11videoprocessor.c @@ -190,20 +190,25 @@ gst_d3d11_video_processor_supports_format (GstD3D11VideoProcessor * self, DXGI_FORMAT format, gboolean is_input) { HRESULT hr; - UINT flag; + UINT flag = 0; + + hr = ID3D11VideoProcessorEnumerator_CheckVideoProcessorFormat + (self->enumerator, format, &flag); + + if (!gst_d3d11_result (hr, self->device)) + return FALSE; if (is_input) { /* D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT_INPUT, missing in mingw header */ - flag = 1; + if ((flag & 0x1) != 0) + return TRUE; } else { /* D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT_OUTPUT, missing in mingw header */ - flag = 2; + if ((flag & 0x2) != 0) + return TRUE; } - hr = ID3D11VideoProcessorEnumerator_CheckVideoProcessorFormat - (self->enumerator, format, &flag); - - return gst_d3d11_result (hr, self->device); + return FALSE; } gboolean |