diff options
author | Yoann Lopes <yoann.lopes@digia.com> | 2012-11-30 16:42:14 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2012-11-30 16:55:35 +0100 |
commit | 6a6c9ca37c0cf9ee8e1156860db7d32508a9dc5a (patch) | |
tree | fe5edc158ede365748c244b41b1af7ddfcfc9c86 /src/plugins/wmf/player | |
parent | 1315dcf09c9a4908b1b74d56a1a6b8de87b5d9bd (diff) | |
download | qtmultimedia-6a6c9ca37c0cf9ee8e1156860db7d32508a9dc5a.tar.gz |
WMF: Disabled the video probe control.
Using the video probe cause unstability in the video playback.
Disabled for 5.0 release.
Should be fixed and re-enabled in the next version.
Change-Id: I274212a0943ac098194ad59d6e07bed7740bc8a3
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
Diffstat (limited to 'src/plugins/wmf/player')
-rw-r--r-- | src/plugins/wmf/player/mfplayerservice.cpp | 11 | ||||
-rw-r--r-- | src/plugins/wmf/player/mfplayersession.cpp | 98 |
2 files changed, 57 insertions, 52 deletions
diff --git a/src/plugins/wmf/player/mfplayerservice.cpp b/src/plugins/wmf/player/mfplayerservice.cpp index 2e9823f49..2ca74ad3e 100644 --- a/src/plugins/wmf/player/mfplayerservice.cpp +++ b/src/plugins/wmf/player/mfplayerservice.cpp @@ -115,11 +115,12 @@ QMediaControl* MFPlayerService::requestControl(const char *name) } return 0; } else if (qstrcmp(name,QMediaVideoProbeControl_iid) == 0) { - if (m_session) { - MFVideoProbeControl *probe = new MFVideoProbeControl(this); - m_session->addProbe(probe); - return probe; - } + // FIXME!! Disabled in Qt 5.0 because it is unstable +// if (m_session) { +// MFVideoProbeControl *probe = new MFVideoProbeControl(this); +// m_session->addProbe(probe); +// return probe; +// } return 0; } diff --git a/src/plugins/wmf/player/mfplayersession.cpp b/src/plugins/wmf/player/mfplayersession.cpp index e48f133b8..e9c40567c 100644 --- a/src/plugins/wmf/player/mfplayersession.cpp +++ b/src/plugins/wmf/player/mfplayersession.cpp @@ -979,69 +979,73 @@ IMFTopology *MFPlayerSession::insertMFT(IMFTopology *topology, TOPOID outputNode if (FAILED(topoLoader->Load(topology, &resolvedTopology, NULL))) break; +// FIXME!! VideoProbe disabled in Qt 5.0 because it is unstable. +// Commented out the following code to skip inserting the transform node +// getting the video frames. + // Get all output nodes and search for video output node. - if (FAILED(resolvedTopology->GetOutputNodeCollection(&outputNodes))) - break; +// if (FAILED(resolvedTopology->GetOutputNodeCollection(&outputNodes))) +// break; - DWORD elementCount = 0; - if (FAILED(outputNodes->GetElementCount(&elementCount))) - break; +// DWORD elementCount = 0; +// if (FAILED(outputNodes->GetElementCount(&elementCount))) +// break; - for (DWORD n = 0; n < elementCount; n++) { - IUnknown *element = 0; - IMFTopologyNode *node = 0; - IMFTopologyNode *inputNode = 0; - IMFTopologyNode *mftNode = 0; +// for (DWORD n = 0; n < elementCount; n++) { +// IUnknown *element = 0; +// IMFTopologyNode *node = 0; +// IMFTopologyNode *inputNode = 0; +// IMFTopologyNode *mftNode = 0; - do { - if (FAILED(outputNodes->GetElement(n, &element))) - break; +// do { +// if (FAILED(outputNodes->GetElement(n, &element))) +// break; - if (FAILED(element->QueryInterface(IID_IMFTopologyNode, (void**)&node))) - break; +// if (FAILED(element->QueryInterface(IID_IMFTopologyNode, (void**)&node))) +// break; - TOPOID id; - if (FAILED(node->GetTopoNodeID(&id))) - break; +// TOPOID id; +// if (FAILED(node->GetTopoNodeID(&id))) +// break; - if (id != outputNodeId) - break; +// if (id != outputNodeId) +// break; - // Insert MFT between the output node and the node connected to it. - DWORD outputIndex = 0; - if (FAILED(node->GetInput(0, &inputNode, &outputIndex))) - break; +// // Insert MFT between the output node and the node connected to it. +// DWORD outputIndex = 0; +// if (FAILED(node->GetInput(0, &inputNode, &outputIndex))) +// break; - if (FAILED(MFCreateTopologyNode(MF_TOPOLOGY_TRANSFORM_NODE, &mftNode))) - break; +// if (FAILED(MFCreateTopologyNode(MF_TOPOLOGY_TRANSFORM_NODE, &mftNode))) +// break; - if (FAILED(mftNode->SetObject(m_videoProbeMFT))) - break; +// if (FAILED(mftNode->SetObject(m_videoProbeMFT))) +// break; - if (FAILED(resolvedTopology->AddNode(mftNode))) - break; +// if (FAILED(resolvedTopology->AddNode(mftNode))) +// break; - if (FAILED(inputNode->ConnectOutput(0, mftNode, 0))) - break; +// if (FAILED(inputNode->ConnectOutput(0, mftNode, 0))) +// break; - if (FAILED(mftNode->ConnectOutput(0, node, 0))) - break; +// if (FAILED(mftNode->ConnectOutput(0, node, 0))) +// break; - isNewTopology = true; - } while (false); +// isNewTopology = true; +// } while (false); - if (mftNode) - mftNode->Release(); - if (inputNode) - inputNode->Release(); - if (node) - node->Release(); - if (element) - element->Release(); +// if (mftNode) +// mftNode->Release(); +// if (inputNode) +// inputNode->Release(); +// if (node) +// node->Release(); +// if (element) +// element->Release(); - if (isNewTopology) - break; - } +// if (isNewTopology) +// break; +// } } while (false); if (outputNodes) |