if (m_pcr)
m_pcr->stop();
m_pcr = 0;
- if ((m_pcrpid >= 0) && (m_pcrpid < 0x1FFF))
- {
- m_pcr = new eDVBPCR(m_demux);
- if (m_pcr->startPid(m_pcrpid))
- res = -1;
- }
- m_changed &= ~changePCR;
}
if (m_changed & changeVideo)
{
- eDebug("VIDEO CHANGED (to %04x)", m_vpid);
if (m_video)
{
m_video->stop();
m_video = 0;
m_video_event_conn = 0;
}
- if ((m_vpid >= 0) && (m_vpid < 0x1FFF))
- {
- m_video = new eDVBVideo(m_demux, m_decoder);
- m_video->connectEvent(slot(*this, &eTSMPEGDecoder::video_event), m_video_event_conn);
- if (m_video->startPid(m_vpid, m_vtype))
- res = -1;
- }
- m_changed &= ~changeVideo;
}
if (m_changed & changeAudio)
{
if (m_audio)
m_audio->stop();
m_audio = 0;
+ }
+ if (m_changed & changeText)
+ {
+ if (m_text)
+ m_text->stop();
+ m_text = 0;
+ }
+ if (m_changed & changePCR)
+ {
+ if ((m_pcrpid >= 0) && (m_pcrpid < 0x1FFF))
+ {
+ m_pcr = new eDVBPCR(m_demux);
+ if (m_pcr->startPid(m_pcrpid))
+ res = -1;
+ }
+ m_changed &= ~changePCR;
+ }
+ if (m_changed & changeAudio)
+ {
if ((m_apid >= 0) && (m_apid < 0x1FFF) && !noaudio)
{
m_audio = new eDVBAudio(m_demux, m_decoder);
}
m_changed &= ~changeAudio;
}
+ if (m_changed & changeVideo)
+ {
+ if ((m_vpid >= 0) && (m_vpid < 0x1FFF))
+ {
+ m_video = new eDVBVideo(m_demux, m_decoder);
+ m_video->connectEvent(slot(*this, &eTSMPEGDecoder::video_event), m_video_event_conn);
+ if (m_video->startPid(m_vpid, m_vtype))
+ res = -1;
+ }
+ m_changed &= ~changeVideo;
+ }
if (m_changed & changeText)
{
- if (m_text)
- m_text->stop();
- m_text = 0;
if ((m_textpid >= 0) && (m_textpid < 0x1FFF) && !nott)
{
m_text = new eDVBTText(m_demux);