also use refcounting for eTimers
[enigma2.git] / lib / service / servicedvb.cpp
index c259a8115e85d0c68a2679d941123623cf162c60..954a3964dff1390176e31427fcdd575d7e155529 100644 (file)
@@ -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;
                }
        }