From be40133df4db68185931042f43995cf27da480be Mon Sep 17 00:00:00 2001 From: Andreas Monzner Date: Thu, 25 Sep 2008 12:45:39 +0000 Subject: add possibility to query current progressive / framerate state --- lib/service/servicedvb.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'lib/service/servicedvb.cpp') diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp index e036307b..17f841b5 100644 --- a/lib/service/servicedvb.cpp +++ b/lib/service/servicedvb.cpp @@ -1594,8 +1594,16 @@ int eDVBServicePlay::getInfo(int w) if (m_videoEventData.type != iTSMPEGDecoder::videoEvent::eventUnknown) return m_videoEventData.width; return -1; + case sFrameRate: + if (m_videoEventData.type != iTSMPEGDecoder::videoEvent::eventUnknown) + return m_videoEventData.framerate; + return -1; + case sProgressive: + if (m_videoEventData.type != iTSMPEGDecoder::videoEvent::eventUnknown) + return m_videoEventData.progressive; + return -1; #else -#warning "FIXMEE implement sVideoHeight, sVideoWidth for old DVB API" +#warning "FIXMEE implement sFrameRate, sProgressive, sVideoHeight, sVideoWidth for old DVB API" #endif case sAspect: #if HAVE_DVB_API_VERSION >= 3 @@ -2953,15 +2961,19 @@ void eDVBServicePlay::setPCMDelay(int delay) void eDVBServicePlay::video_event(struct iTSMPEGDecoder::videoEvent event) { - memcpy(&m_videoEventData, &event, sizeof(iTSMPEGDecoder::videoEvent)); switch(event.type) { case iTSMPEGDecoder::videoEvent::eventSizeChanged: + m_videoEventData.aspect = event.aspect; + m_videoEventData.height = event.height; + m_videoEventData.width = event.width; m_event((iPlayableService*)this, evVideoSizeChanged); break; case iTSMPEGDecoder::videoEvent::eventFrameRateChanged: + m_videoEventData.framerate = event.framerate; m_event((iPlayableService*)this, evVideoFramerateChanged); break; case iTSMPEGDecoder::videoEvent::eventProgressiveChanged: + m_videoEventData.progressive = event.progressive; m_event((iPlayableService*)this, evVideoProgressiveChanged); break; } -- cgit v1.2.3