void _DeleteMediaType(AM_MEDIA_TYPE *pmt);
DEFINE_GUID(MEDIATYPE_Subtitle, 0xE487EB08, 0x6B26, 0x4be9, 0x9D, 0xD3, 0x99, 0x34, 0x34, 0xD3, 0x13, 0xFD);
+DEFINE_GUID(CLSID_VSFilter, 0x9852A670, 0xF845, 0x491B, 0x9B, 0xE6, 0xEB, 0xD8, 0x41, 0xB8, 0xA6, 0x13);
+DEFINE_GUID(CLSID_VSFilter_no_autoload, 0x93A22E7A, 0x5091, 0x45EF, 0xBA, 0x61, 0x6D, 0xA2, 0x61, 0x56, 0xA5, 0xD0);
AniPlayerDShowInternal::AniPlayerDShowInternal(AniPlayerDShow *player_) : player(player_)
{
pAudioControl = 0;
+ vobsub = 0;
+
mutedVolume = -1;
HRESULT hr;
goto done;
}
+ IGraphConfig *pConfig = NULL;
+ {
+ HRESULT hr = pGraph->QueryInterface(IID_PPV_ARGS(&pConfig));
+ if (FAILED(hr))
+ {
+ goto done;
+ }
+
+ hr = CoCreateInstance(CLSID_VSFilter, NULL, CLSCTX_INPROC_SERVER,
+ IID_PPV_ARGS(&vobsub));
+ if (FAILED(hr))
+ {
+ goto done;
+ }
+
+ hr = pConfig->AddFilterToCache(vobsub);
+ if (FAILED(hr))
+ {
+ goto done;
+ }
+
+ }
+ SafeRelease(&pConfig);
// m_state = STATE_STOPPED;
done:
SafeRelease(&pEvent);
SafeRelease(&pSeeking);
SafeRelease(&pAudioControl);
+ SafeRelease(&vobsub);
// delete m_pVideo;
// pVideo = NULL;