summaryrefslogtreecommitdiffstats
path: root/src/plugins/wmf/player/mfplayersession.cpp
diff options
context:
space:
mode:
authorYoann Lopes <yoann.lopes@digia.com>2013-10-11 14:11:53 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-10-11 16:08:22 +0200
commit6f0cdc264f58d2c3b7109050d8d5799143bae34d (patch)
tree7cbd9f85d09e69af4f5dd4c9e446b50c0559c96e /src/plugins/wmf/player/mfplayersession.cpp
parent7d24543c27bf3eebe1ac7c8f625c6e9c9fbdbdec (diff)
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>
Diffstat (limited to 'src/plugins/wmf/player/mfplayersession.cpp')
-rw-r--r--src/plugins/wmf/player/mfplayersession.cpp21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/plugins/wmf/player/mfplayersession.cpp b/src/plugins/wmf/player/mfplayersession.cpp
index 4e4b56589..cca42e2ff 100644
--- a/src/plugins/wmf/player/mfplayersession.cpp
+++ b/src/plugins/wmf/player/mfplayersession.cpp
@@ -1875,11 +1875,22 @@ void MFPlayerSession::handleSessionEvent(IMFMediaEvent *sessionEvent)
emit error(QMediaPlayer::FormatError, tr("Unsupported media, a codec is missing."), true);
} else {
if (m_audioSampleGrabberNode) {
- IMFMediaType *mediaType = 0;
- hr = MFGetTopoNodeCurrentType(m_audioSampleGrabberNode, 0, FALSE, &mediaType);
- if (SUCCEEDED(hr)) {
- m_audioSampleGrabber->setFormat(audioFormatForMFMediaType(mediaType));
- mediaType->Release();
+ 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;
+ if (SUCCEEDED(typeHandler->GetCurrentMediaType(&mediaType))) {
+ m_audioSampleGrabber->setFormat(audioFormatForMFMediaType(mediaType));
+ mediaType->Release();
+ }
+ typeHandler->Release();
+ }
+ streamSink->Release();
+ }
+ obj->Release();
}
}