From: ghost Date: Thu, 26 Nov 2009 17:34:31 +0000 (+0100) Subject: servicedvb.cpp: fix "some seconds no audio after audio track change on TS Playback" X-Git-Tag: 2.7.0~32^2~15^2~2 X-Git-Url: https://git.cweiske.de/enigma2.git/commitdiff_plain/99a717e9813eab30cd34f5da6f4a5ab6e791dc1f servicedvb.cpp: fix "some seconds no audio after audio track change on TS Playback" --- diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp index 21effd57..b71271a9 100644 --- a/lib/service/servicedvb.cpp +++ b/lib/service/servicedvb.cpp @@ -1743,6 +1743,7 @@ int eDVBServicePlay::selectAudioStream(int i) { eDVBServicePMTHandler::program program; eDVBServicePMTHandler &h = m_timeshift_active ? m_service_handler_timeshift : m_service_handler; + pts_t position = -1; if (h.getProgramInfo(program)) return -1; @@ -1765,6 +1766,9 @@ int eDVBServicePlay::selectAudioStream(int i) apidtype = program.audioStreams[stream].type; } + if (i != -1 && apid != m_current_audio_pid && (m_is_pvr || m_timeshift_active)) + eDebug("getPlayPosition ret %d, pos %lld in selectAudioStream", getPlayPosition(position), position); + m_current_audio_pid = apid; if (m_is_primary && m_decoder->setAudioPID(apid, apidtype)) @@ -1773,6 +1777,9 @@ int eDVBServicePlay::selectAudioStream(int i) return -4; } + if (position != -1) + eDebug("seekTo ret %d", seekTo(position)); + int rdsPid = apid; /* if we are not in PVR mode, timeshift is not active and we are not in pip mode, check if we need to enable the rds reader */