+#if HAVE_DVB_API_VERSION < 3
+ if (m_changed & changeAudio && m_audio)
+ m_audio->stopPid();
+ if (m_changed & changeVideo && m_video)
+ m_video->stopPid();
+ if (m_changed & changePCR && m_pcr)
+ {
+ m_pcr->stop();
+ m_pcr=0;
+ }
+ if (m_changed & changeAudio && m_audio)
+ {
+ m_audio->stop();
+ m_audio=0;
+ }
+ if (m_changed & changeVideo && m_video)
+ {
+ m_video->stop();
+ m_video=0;
+ }
+ if (m_changed & changePCR)
+ {
+ m_pcr = new eDVBPCR(m_demux);
+ if (m_pcr->startPid(m_pcrpid))
+ {
+ eWarning("video: startpid failed!");
+ res = -1;
+ }
+ m_changed &= ~changePCR;
+ }
+ if (m_changed & changeVideo)
+ {
+ m_video = new eDVBVideo(m_demux, 0);
+ if (m_video->startPid(m_vpid))
+ {
+ eWarning("video: startpid failed!");
+ res = -1;
+ }
+ m_changed &= ~changeVideo;
+ }
+ if (m_changed & changeAudio)
+ {
+ m_audio = new eDVBAudio(m_demux, 0);
+ if (m_audio->startPid(m_apid))
+ {
+ eWarning("audio: startpid failed!");
+ res = -1;
+ }
+ m_changed &= ~changeAudio;
+ }
+#else