servicedvb.cpp: dont cache audio pid when not ac3 or mpeg
[enigma2.git] / lib / service / servicedvb.cpp
index 4b762b9933b014f93455e5c1c1cae96cc98d4b63..b3ce13daf6337b401c65f08f287e766f23f641df 100644 (file)
@@ -1602,7 +1602,7 @@ RESULT eDVBServicePlay::selectTrack(unsigned int i)
 {
        int ret = selectAudioStream(i);
 
 {
        int ret = selectAudioStream(i);
 
-       if (m_decoder->play())
+       if (m_decoder->set())
                return -5;
 
        return ret;
                return -5;
 
        return ret;
@@ -1716,11 +1716,16 @@ int eDVBServicePlay::selectAudioStream(int i)
                        m_dvb_service->setCacheEntry(eDVBService::cAPID, apid);
                        m_dvb_service->setCacheEntry(eDVBService::cAC3PID, -1);
                }
                        m_dvb_service->setCacheEntry(eDVBService::cAPID, apid);
                        m_dvb_service->setCacheEntry(eDVBService::cAC3PID, -1);
                }
-               else
+               else if (apidtype == eDVBAudio::aAC3)
                {
                        m_dvb_service->setCacheEntry(eDVBService::cAPID, -1);
                        m_dvb_service->setCacheEntry(eDVBService::cAC3PID, apid);
                }
                {
                        m_dvb_service->setCacheEntry(eDVBService::cAPID, -1);
                        m_dvb_service->setCacheEntry(eDVBService::cAC3PID, apid);
                }
+               else
+               {
+                       m_dvb_service->setCacheEntry(eDVBService::cAPID, -1);
+                       m_dvb_service->setCacheEntry(eDVBService::cAC3PID, -1);
+               }
        }
 
        h.resetCachedProgram();
        }
 
        h.resetCachedProgram();