dont start radiotext decoder in playback / timeshift mode.. (not working
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>
Thu, 17 Aug 2006 00:04:28 +0000 (00:04 +0000)
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>
Thu, 17 Aug 2006 00:04:28 +0000 (00:04 +0000)
yet)

lib/service/servicedvb.cpp

index 977399697396d438a699ff60c21dadd8b8070142..3008a9d2d22627dc1080b7531ad476770ee03689 100644 (file)
@@ -1740,16 +1740,6 @@ void eDVBServicePlay::updateDecoder()
                m_teletext_parser = new eDVBTeletextParser(m_decode_demux);
                m_teletext_parser->connectNewPage(slot(*this, &eDVBServicePlay::newSubtitlePage), m_new_subtitle_page_connection);
 #endif
                m_teletext_parser = new eDVBTeletextParser(m_decode_demux);
                m_teletext_parser->connectNewPage(slot(*this, &eDVBServicePlay::newSubtitlePage), m_new_subtitle_page_connection);
 #endif
-               if (apid != 1)
-               {
-                       ePtr<iDVBDemux> data_demux;
-                       if ( (m_timeshift_active && !m_service_handler_timeshift.getDataDemux(data_demux))
-                               || (!m_timeshift_active && !m_service_handler.getDataDemux(data_demux)))
-                       {
-                               m_radiotext_parser = new eDVBRadioTextParser(data_demux);
-                               m_radiotext_parser->connectUpdatedRadiotext(slot(*this, &eDVBServicePlay::radioTextUpdated), m_radiotext_updated_connection);
-                       }
-               }
        }
 
        if (m_decoder)
        }
 
        if (m_decoder)
@@ -1792,7 +1782,18 @@ void eDVBServicePlay::updateDecoder()
                m_current_audio_stream = 0;
                m_decoder->setAudioPID(apid, apidtype);
                if (!(m_is_pvr || m_timeshift_active || !m_is_primary))
                m_current_audio_stream = 0;
                m_decoder->setAudioPID(apid, apidtype);
                if (!(m_is_pvr || m_timeshift_active || !m_is_primary))
+               {
                        m_decoder->setSyncPCR(pcrpid);
                        m_decoder->setSyncPCR(pcrpid);
+                       if (apid != 1)
+                       {
+                               ePtr<iDVBDemux> data_demux;
+                               if (h.getDataDemux(data_demux))
+                               {
+                                       m_radiotext_parser = new eDVBRadioTextParser(data_demux);
+                                       m_radiotext_parser->connectUpdatedRadiotext(slot(*this, &eDVBServicePlay::radioTextUpdated), m_radiotext_updated_connection);
+                               }
+                       }
+               }
                else
                        m_decoder->setSyncPCR(-1);
 
                else
                        m_decoder->setSyncPCR(-1);