don't keep unused references
authorFelix Domke <tmbinc@elitedvb.net>
Fri, 14 Apr 2006 07:23:26 +0000 (07:23 +0000)
committerFelix Domke <tmbinc@elitedvb.net>
Fri, 14 Apr 2006 07:23:26 +0000 (07:23 +0000)
lib/dvb/esection.h
lib/dvb/pmt.cpp
lib/service/servicedvb.cpp

index af5c012..6c1683f 100644 (file)
@@ -104,6 +104,7 @@ public:
        void stop()
        {
                current = next = 0;
        void stop()
        {
                current = next = 0;
+               m_demux = 0;
        }
        
        int begin(eMainloop *m, const eDVBTableSpec &spec, ePtr<iDVBDemux> demux)
        }
        
        int begin(eMainloop *m, const eDVBTableSpec &spec, ePtr<iDVBDemux> demux)
index 679d7a8..5ea4746 100644 (file)
@@ -36,7 +36,7 @@ void eDVBServicePMTHandler::channelStateChanged(iDVBChannel *channel)
        {
                if (m_channel)
                        if (m_channel->getDemux(m_demux, (!m_use_decode_demux) ? 0 : iDVBChannel::capDecode))
        {
                if (m_channel)
                        if (m_channel->getDemux(m_demux, (!m_use_decode_demux) ? 0 : iDVBChannel::capDecode))
-                               eDebug("Allocating a demux for now tuned-in channel failed.");
+                               eDebug("Allocating %s-decoding a demux for now tuned-in channel failed.", m_use_decode_demux ? "" : "non-");
                
                serviceEvent(eventTuned);
                
                
                serviceEvent(eventTuned);
                
index 6f52c12..a6f4eec 100644 (file)
@@ -676,7 +676,8 @@ RESULT eDVBServicePlay::start()
                /* in pvr mode, we only want to use one demux. in tv mode, we're using 
                   two (one for decoding, one for data source), as we must be prepared
                   to start recording from the data demux. */
                /* in pvr mode, we only want to use one demux. in tv mode, we're using 
                   two (one for decoding, one for data source), as we must be prepared
                   to start recording from the data demux. */
-       m_cue = new eCueSheet();
+       if (m_is_pvr)
+               m_cue = new eCueSheet();
 
        m_first_program_info = 1;
        eServiceReferenceDVB &service = (eServiceReferenceDVB&)m_reference;
 
        m_first_program_info = 1;
        eServiceReferenceDVB &service = (eServiceReferenceDVB&)m_reference;
@@ -1446,6 +1447,7 @@ void eDVBServicePlay::switchToLive()
        if (!m_timeshift_active)
                return;
        
        if (!m_timeshift_active)
                return;
        
+       m_cue = 0;
        m_decoder = 0;
        m_decode_demux = 0;
                /* free the timeshift service handler, we need the resources */
        m_decoder = 0;
        m_decode_demux = 0;
                /* free the timeshift service handler, we need the resources */
@@ -1472,6 +1474,7 @@ void eDVBServicePlay::switchToTimeshift()
        eServiceReferenceDVB r = (eServiceReferenceDVB&)m_reference;
        r.path = m_timeshift_file;
        
        eServiceReferenceDVB r = (eServiceReferenceDVB&)m_reference;
        r.path = m_timeshift_file;
        
+       m_cue = new eCueSheet();
        m_service_handler_timeshift.tune(r, 1, m_cue); /* use the decoder demux for everything */
        updateDecoder(); /* mainly to switch off PCR */
 }
        m_service_handler_timeshift.tune(r, 1, m_cue); /* use the decoder demux for everything */
        updateDecoder(); /* mainly to switch off PCR */
 }