diff options
author | XhmikosR <xhmikosr@users.sourceforge.net> | 2013-03-31 18:30:31 +0400 |
---|---|---|
committer | XhmikosR <xhmikosr@users.sourceforge.net> | 2013-03-31 18:30:31 +0400 |
commit | 4368ca10903e2f054ef2c4daa51f494c6a4771a3 (patch) | |
tree | f3884019641c4712ab56a81e78d35d717195c5e1 /src/filters/transform | |
parent | 4be10e6959765f2f9a95737166755b6121d6257a (diff) |
Revert "MPCVideoDec: fixed playback h264 after "stop" on Intel HD Graphics (force recreate dxva decoder)."
This reverts commit 6d51fc694ab79ea51e530ba7eeab7ea3a548e9a8.
This caused many issues like green screen when starting playback.
Diffstat (limited to 'src/filters/transform')
-rw-r--r-- | src/filters/transform/MPCVideoDec/MPCVideoDecFilter.cpp | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/src/filters/transform/MPCVideoDec/MPCVideoDecFilter.cpp b/src/filters/transform/MPCVideoDec/MPCVideoDecFilter.cpp index 1c814f612..5e24f8dbc 100644 --- a/src/filters/transform/MPCVideoDec/MPCVideoDecFilter.cpp +++ b/src/filters/transform/MPCVideoDec/MPCVideoDecFilter.cpp @@ -2363,15 +2363,14 @@ HRESULT CMPCVideoDecFilter::CreateDXVA2Decoder(UINT nNumRenderTargets, IDirect3D pDecoderRenderTargets, nNumRenderTargets, &pDirectXVideoDec);
if (SUCCEEDED(hr)) {
- // need recreate dxva decoder after "stop" on Intel HD Graphics
- SAFE_DELETE (m_pDXVADecoder);
- m_pDXVADecoder = CDXVADecoder::CreateDecoder(this, pDirectXVideoDec, &m_DXVADecoderGUID, GetPicEntryNumber(), &m_DXVA2Config);
- if (m_pDXVADecoder) {
- m_pDXVADecoder->SetExtraData((BYTE*)m_pAVCtx->extradata, m_pAVCtx->extradata_size);
- m_pDXVADecoder->SetDirectXVideoDec(pDirectXVideoDec);
- } else {
- hr = E_FAIL;
+ if (!m_pDXVADecoder) {
+ m_pDXVADecoder = CDXVADecoder::CreateDecoder(this, pDirectXVideoDec, &m_DXVADecoderGUID, GetPicEntryNumber(), &m_DXVA2Config);
+ if (m_pDXVADecoder) {
+ m_pDXVADecoder->SetExtraData((BYTE*)m_pAVCtx->extradata, m_pAVCtx->extradata_size);
+ }
}
+
+ m_pDXVADecoder->SetDirectXVideoDec(pDirectXVideoDec);
}
return hr;
|