bool CFGFilterLAVSplitterBase::Settings::GetSettings(CComQIPtr<ILAVFSettings> pLAVFSettings) { if (!pLAVFSettings) { return false; } bTrayIcon = pLAVFSettings->GetTrayIcon(); HRESULT hr; LPWSTR lpwstr = nullptr; hr = pLAVFSettings->GetPreferredLanguages(&lpwstr); if (SUCCEEDED(hr) && lpwstr) { prefAudioLangs = lpwstr; CoTaskMemFree(lpwstr); } lpwstr = nullptr; hr = pLAVFSettings->GetPreferredSubtitleLanguages(&lpwstr); if (SUCCEEDED(hr) && lpwstr) { prefSubLangs = lpwstr; CoTaskMemFree(lpwstr); } lpwstr = nullptr; hr = pLAVFSettings->GetAdvancedSubtitleConfig(&lpwstr); if (SUCCEEDED(hr) && lpwstr) { subtitleAdvanced = lpwstr; CoTaskMemFree(lpwstr); } subtitleMode = pLAVFSettings->GetSubtitleMode(); bPGSForcedStream = pLAVFSettings->GetPGSForcedStream(); bPGSOnlyForced = pLAVFSettings->GetPGSOnlyForced(); iVC1Mode = pLAVFSettings->GetVC1TimestampMode(); bSubstreams = pLAVFSettings->GetSubstreamsEnabled(); bMatroskaExternalSegments = pLAVFSettings->GetLoadMatroskaExternalSegments(); bStreamSwitchRemoveAudio = pLAVFSettings->GetStreamSwitchRemoveAudio(); bImpairedAudio = pLAVFSettings->GetUseAudioForHearingVisuallyImpaired(); bPreferHighQualityAudio = pLAVFSettings->GetPreferHighQualityAudioStreams(); dwQueueMaxMemSize = pLAVFSettings->GetMaxQueueMemSize(); dwQueueMaxPackets = pLAVFSettings->GetMaxQueueSize(); dwNetworkAnalysisDuration = pLAVFSettings->GetNetworkStreamAnalysisDuration(); return true; }