WMF: fixed compilation on Windows Vista.

We were using one function which is available only on Windows 7 (and
later). Replace it with Vista-compatible calls.

Task-number: QTBUG-32864
Change-Id: I77492a407330c3689dfbf8dc1180894cf7ca5f8d
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
This commit is contained in:
Yoann Lopes
2013-10-11 14:11:53 +02:00
committed by The Qt Project
parent 7d24543c27
commit 6f0cdc264f

View File

@@ -1875,12 +1875,23 @@ void MFPlayerSession::handleSessionEvent(IMFMediaEvent *sessionEvent)
emit error(QMediaPlayer::FormatError, tr("Unsupported media, a codec is missing."), true); emit error(QMediaPlayer::FormatError, tr("Unsupported media, a codec is missing."), true);
} else { } else {
if (m_audioSampleGrabberNode) { if (m_audioSampleGrabberNode) {
IUnknown *obj = 0;
if (SUCCEEDED(m_audioSampleGrabberNode->GetObject(&obj))) {
IMFStreamSink *streamSink = 0;
if (SUCCEEDED(obj->QueryInterface(IID_PPV_ARGS(&streamSink)))) {
IMFMediaTypeHandler *typeHandler = 0;
if (SUCCEEDED(streamSink->GetMediaTypeHandler((&typeHandler)))) {
IMFMediaType *mediaType = 0; IMFMediaType *mediaType = 0;
hr = MFGetTopoNodeCurrentType(m_audioSampleGrabberNode, 0, FALSE, &mediaType); if (SUCCEEDED(typeHandler->GetCurrentMediaType(&mediaType))) {
if (SUCCEEDED(hr)) {
m_audioSampleGrabber->setFormat(audioFormatForMFMediaType(mediaType)); m_audioSampleGrabber->setFormat(audioFormatForMFMediaType(mediaType));
mediaType->Release(); mediaType->Release();
} }
typeHandler->Release();
}
streamSink->Release();
}
obj->Release();
}
} }
if (SUCCEEDED(MFGetService(m_session, MR_POLICY_VOLUME_SERVICE, IID_PPV_ARGS(&m_volumeControl)))) { if (SUCCEEDED(MFGetService(m_session, MR_POLICY_VOLUME_SERVICE, IID_PPV_ARGS(&m_volumeControl)))) {