X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/6696994da0d59a3b483eda65d1dc8b1a9df67cc0..41c124fa6370bb3933c28c50ee1964a1450d3ca7:/lib/service/servicedvb.cpp diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp index c259a811..2f98ed6b 100644 --- a/lib/service/servicedvb.cpp +++ b/lib/service/servicedvb.cpp @@ -412,7 +412,7 @@ RESULT eStaticServiceDVBBouquetInformation::getName(const eServiceReference &ref return -1; } -int eStaticServiceDVBBouquetInformation::isPlayable(const eServiceReference &ref, const eServiceReference &ignore) +int eStaticServiceDVBBouquetInformation::isPlayable(const eServiceReference &ref, const eServiceReference &ignore, bool simulate) { if (ref.flags & eServiceReference::isGroup) { @@ -453,7 +453,7 @@ int eStaticServiceDVBBouquetInformation::isPlayable(const eServiceReference &ref { 2, 1, 3 } // -T -S -C }; ((const eServiceReferenceDVB&)*it).getChannelID(chid); - int tmp=res->canAllocateChannel(chid, chid_ignore); + int tmp=res->canAllocateChannel(chid, chid_ignore, simulate); switch(tmp) { case 0: @@ -1065,7 +1065,9 @@ eDVBServicePlay::eDVBServicePlay(const eServiceReference &ref, eDVBService *serv m_tune_state = -1; - CONNECT(m_subtitle_sync_timer.timeout, eDVBServicePlay::checkSubtitleTiming); + m_subtitle_sync_timer = eTimer::create(eApp); + + CONNECT(m_subtitle_sync_timer->timeout, eDVBServicePlay::checkSubtitleTiming); } eDVBServicePlay::~eDVBServicePlay() @@ -1601,22 +1603,22 @@ int eDVBServicePlay::getInfo(int w) { #if HAVE_DVB_API_VERSION >= 3 case sVideoHeight: - if (m_videoEventData.type != iTSMPEGDecoder::videoEvent::eventUnknown) + if (m_videoEventData.type == iTSMPEGDecoder::videoEvent::eventSizeChanged) return m_videoEventData.height; else return readMpegProc("yres", !m_is_primary); case sVideoWidth: - if (m_videoEventData.type != iTSMPEGDecoder::videoEvent::eventUnknown) + if (m_videoEventData.type == iTSMPEGDecoder::videoEvent::eventSizeChanged) return m_videoEventData.width; else return readMpegProc("xres", !m_is_primary); case sFrameRate: - if (m_videoEventData.type != iTSMPEGDecoder::videoEvent::eventUnknown) + if (m_videoEventData.type == iTSMPEGDecoder::videoEvent::eventFrameRateChanged) return m_videoEventData.framerate; else return readMpegProc("framerate", !m_is_primary); case sProgressive: - if (m_videoEventData.type != iTSMPEGDecoder::videoEvent::eventUnknown) + if (m_videoEventData.type == iTSMPEGDecoder::videoEvent::eventProgressiveChanged) return m_videoEventData.progressive; return readMpegProc("progressive", !m_is_primary); #else @@ -1626,7 +1628,7 @@ int eDVBServicePlay::getInfo(int w) { int val; #if HAVE_DVB_API_VERSION >= 3 - if (m_videoEventData.type != iTSMPEGDecoder::videoEvent::eventUnknown) + if (m_videoEventData.type == iTSMPEGDecoder::videoEvent::eventSizeChanged) return m_videoEventData.aspect == VIDEO_FORMAT_4_3 ? 1 : 3; else if ((val=readMpegProc("aspect", !m_is_primary)) != -1) return val; @@ -2926,7 +2928,7 @@ void eDVBServicePlay::checkSubtitleTiming() } else { eDebug("start subtitle delay %d", diff / 90); - m_subtitle_sync_timer.start(diff / 90, 1); + m_subtitle_sync_timer->start(diff / 90, 1); break; } }