aboutsummaryrefslogtreecommitdiff
path: root/lib/service/servicedvb.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/service/servicedvb.cpp')
-rw-r--r--lib/service/servicedvb.cpp16
1 files changed, 14 insertions, 2 deletions
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;
}