diff options
| author | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2006-07-12 13:40:39 +0000 |
|---|---|---|
| committer | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2006-07-12 13:40:39 +0000 |
| commit | 1479a77bb6c7c2c4c39514129abb3e73734db783 (patch) | |
| tree | ecbe95757d653d0675e7b942ddd90f1da9b9d686 /lib/service/servicedvb.cpp | |
| parent | 81f8c357101ac8b250e763ff815ee302bf0a8058 (diff) | |
| download | enigma2-1479a77bb6c7c2c4c39514129abb3e73734db783.tar.gz enigma2-1479a77bb6c7c2c4c39514129abb3e73734db783.zip | |
fix segfault
Diffstat (limited to 'lib/service/servicedvb.cpp')
| -rw-r--r-- | lib/service/servicedvb.cpp | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp index 8f288982..bae45aae 100644 --- a/lib/service/servicedvb.cpp +++ b/lib/service/servicedvb.cpp @@ -752,9 +752,6 @@ RESULT eDVBServicePlay::start() eServiceReferenceDVB &service = (eServiceReferenceDVB&)m_reference; r = m_service_handler.tune(service, m_is_pvr, m_cue); - // get back correct service reference (after parsing of recording meta files) - m_service_handler.getServiceReference(service); - /* inject EIT if there is a stored one */ if (m_is_pvr) { @@ -1695,12 +1692,11 @@ void eDVBServicePlay::updateDecoder() } else // subservice or recording { - eServiceReferenceDVB parent = ((eServiceReferenceDVB&)m_reference).getParentServiceReference(); - if (!parent && !m_reference.path.empty()) // is recording - { - parent = (eServiceReferenceDVB&)m_reference; - parent.path=""; - } + eServiceReferenceDVB ref; + m_service_handler.getServiceReference(ref); + eServiceReferenceDVB parent = ref.getParentServiceReference(); + if (!parent) + parent = ref; if (parent) { ePtr<eDVBResourceManager> res_mgr; @@ -1712,14 +1708,13 @@ void eDVBServicePlay::updateDecoder() ePtr<eDVBService> origService; if (!db->getService(parent, origService)) { - ac3_delay = origService->getCacheEntry(eDVBService::cAC3DELAY); + ac3_delay = origService->getCacheEntry(eDVBService::cAC3DELAY); pcm_delay = origService->getCacheEntry(eDVBService::cPCMDELAY); } } } } } - m_decoder->setAC3Delay(ac3_delay == -1 ? 0 : ac3_delay); m_decoder->setPCMDelay(pcm_delay == -1 ? 0 : pcm_delay); |
