diff options
-rw-r--r-- | src/plugins/winrt/qwinrtcameracontrol.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/plugins/winrt/qwinrtcameracontrol.cpp b/src/plugins/winrt/qwinrtcameracontrol.cpp index 5c41987a0..1eaf27ca5 100644 --- a/src/plugins/winrt/qwinrtcameracontrol.cpp +++ b/src/plugins/winrt/qwinrtcameracontrol.cpp @@ -101,7 +101,13 @@ HRESULT getMediaStreamResolutions(IMediaDeviceController *device, ComPtr<IMediaEncodingProperties> properties; hr = (*propertiesList)->GetAt(index, &properties); Q_ASSERT_SUCCEEDED(hr); - if (type == MediaStreamType_VideoRecord || type == MediaStreamType_VideoPreview) { + HString propertyType; + hr = properties->get_Type(propertyType.GetAddressOf()); + Q_ASSERT_SUCCEEDED(hr); + + const HStringReference videoRef = HString::MakeReference(L"Video"); + const HStringReference imageRef = HString::MakeReference(L"Image"); + if (propertyType == videoRef) { ComPtr<IVideoEncodingProperties> videoProperties; hr = properties.As(&videoProperties); Q_ASSERT_SUCCEEDED(hr); @@ -111,13 +117,10 @@ HRESULT getMediaStreamResolutions(IMediaDeviceController *device, hr = videoProperties->get_Height(&height); Q_ASSERT_SUCCEEDED(hr); resolutions->append(QSize(width, height)); - } else if (type == MediaStreamType_Photo) { + } else if (propertyType == imageRef) { ComPtr<IImageEncodingProperties> imageProperties; hr = properties.As(&imageProperties); - // Asking for Photo also returns video resolutions in addition - // We skip those, as we are only interested in image Type - if (FAILED(hr) || !imageProperties) - continue; + Q_ASSERT_SUCCEEDED(hr); UINT32 width, height; hr = imageProperties->get_Width(&width); Q_ASSERT_SUCCEEDED(hr); |