Merge remote-tracking branch 'origin/5.6.1' into 5.6

Change-Id: Iaecbb5c4a33bf0eaffa4f1896bdc09751b1f04c4
This commit is contained in:
Liang Qi
2016-05-19 06:36:02 +02:00
2 changed files with 24 additions and 12 deletions

View File

@@ -43,9 +43,6 @@ qhp.QtMultimedia.subprojects.examples.sortPages = true
exampledirs += ../../../examples \
snippets
# Specify example install dir under QT_INSTALL_EXAMPLES
examplesinstallpath = qtmultimedia
headerdirs += ../..
imagedirs += src/images \

View File

@@ -101,15 +101,30 @@ HRESULT getMediaStreamResolutions(IMediaDeviceController *device,
ComPtr<IMediaEncodingProperties> properties;
hr = (*propertiesList)->GetAt(index, &properties);
Q_ASSERT_SUCCEEDED(hr);
ComPtr<IVideoEncodingProperties> videoProperties;
hr = properties.As(&videoProperties);
Q_ASSERT_SUCCEEDED(hr);
UINT32 width, height;
hr = videoProperties->get_Width(&width);
Q_ASSERT_SUCCEEDED(hr);
hr = videoProperties->get_Height(&height);
Q_ASSERT_SUCCEEDED(hr);
resolutions->append(QSize(width, height));
if (type == MediaStreamType_VideoRecord || type == MediaStreamType_VideoPreview) {
ComPtr<IVideoEncodingProperties> videoProperties;
hr = properties.As(&videoProperties);
Q_ASSERT_SUCCEEDED(hr);
UINT32 width, height;
hr = videoProperties->get_Width(&width);
Q_ASSERT_SUCCEEDED(hr);
hr = videoProperties->get_Height(&height);
Q_ASSERT_SUCCEEDED(hr);
resolutions->append(QSize(width, height));
} else if (type == MediaStreamType_Photo) {
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;
UINT32 width, height;
hr = imageProperties->get_Width(&width);
Q_ASSERT_SUCCEEDED(hr);
hr = imageProperties->get_Height(&height);
Q_ASSERT_SUCCEEDED(hr);
resolutions->append(QSize(width, height));
}
}
return resolutions->isEmpty() ? MF_E_INVALID_FORMAT : hr;
}