summaryrefslogtreecommitdiff
path: root/sys/d3d11/gstd3d11videoprocessor.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/d3d11/gstd3d11videoprocessor.c')
-rw-r--r--sys/d3d11/gstd3d11videoprocessor.c19
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