bool CVideoPlayerAudio::SwitchCodecIfNeeded() { CLog::Log(LOGDEBUG, "CVideoPlayerAudio: Sample rate changed, checking for passthrough"); bool allowpassthrough = !CServiceBroker::GetSettings().GetBool(CSettings::SETTING_VIDEOPLAYER_USEDISPLAYASCLOCK); if (m_streaminfo.realtime) allowpassthrough = false; CAEStreamInfo::DataType streamType = m_audioSink.GetPassthroughStreamType(m_streaminfo.codec, m_streaminfo.samplerate); allowpassthrough |= CServiceBroker::GetSettings().GetInt("audiooutput.plladjust") > 0; CDVDAudioCodec *codec = CDVDFactoryCodec::CreateAudioCodec(m_streaminfo, m_processInfo, allowpassthrough, m_processInfo.AllowDTSHDDecode(), streamType); if (!codec || codec->NeedPassthrough() == m_pAudioCodec->NeedPassthrough()) { // passthrough state has not changed delete codec; return false; } delete m_pAudioCodec; m_pAudioCodec = codec; return true; }
bool CDVDPlayerAudio::SwitchCodecIfNeeded() { CLog::Log(LOGDEBUG, "CDVDPlayerAudio: Sample rate changed, checking for passthrough"); CDVDAudioCodec *codec = CDVDFactoryCodec::CreateAudioCodec(m_streaminfo); if (!codec || codec->NeedPassthrough() == m_pAudioCodec->NeedPassthrough()) { // passthrough state has not changed delete codec; return false; } delete m_pAudioCodec; m_pAudioCodec = codec; return true; }
bool CDVDPlayerAudio::SwitchCodecIfNeeded() { // check if passthrough is disabled if (!AUDIO_IS_BITSTREAM(CSettings::Get().GetInt("audiooutput.mode"))) return false; CLog::Log(LOGDEBUG, "CDVDPlayerAudio: Sample rate changed, checking for passthrough"); CDVDAudioCodec *codec = CDVDFactoryCodec::CreateAudioCodec(m_streaminfo, true); if (!codec || codec->NeedPassthrough() == m_pAudioCodec->NeedPassthrough()) { // passthrough state has not changed delete codec; return false; } delete m_pAudioCodec; m_pAudioCodec = codec; return true; }
bool CVideoPlayerAudio::SwitchCodecIfNeeded() { CLog::Log(LOGDEBUG, "CVideoPlayerAudio: Sample rate changed, checking for passthrough"); bool allowpassthrough = !CSettings::GetInstance().GetBool(CSettings::SETTING_VIDEOPLAYER_USEDISPLAYASCLOCK); if (m_streaminfo.realtime) allowpassthrough = false; CDVDAudioCodec *codec = CDVDFactoryCodec::CreateAudioCodec(m_streaminfo, allowpassthrough, m_processInfo.AllowDTSHDDecode()); if (!codec || codec->NeedPassthrough() == m_pAudioCodec->NeedPassthrough()) { // passthrough state has not changed delete codec; return false; } delete m_pAudioCodec; m_pAudioCodec = codec; return true; }