servicedvb.cpp: fix "some seconds no audio after audio track change on TS Playback"
authorghost <andreas.monzner@multimedia-labs.de>
Thu, 26 Nov 2009 17:34:31 +0000 (18:34 +0100)
committerghost <andreas.monzner@multimedia-labs.de>
Thu, 26 Nov 2009 17:35:11 +0000 (18:35 +0100)
lib/service/servicedvb.cpp

index 21effd573ac0f52b5e7a9fb34b76580bb5387240..b71271a9add4211c8c612629beaf88ab7863d288 100644 (file)
@@ -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 */