diff options
| author | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2008-08-05 13:04:15 +0000 |
|---|---|---|
| committer | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2008-08-05 13:04:15 +0000 |
| commit | f283e77337caad447dc77286f7f6e44e3c3a3174 (patch) | |
| tree | d312595dd640034e468dc000d8f3e54d86df1bc2 /lib/dvb | |
| parent | fb245070e55dcdcdf54d3db1961d8cc7264f5779 (diff) | |
| download | enigma2-f283e77337caad447dc77286f7f6e44e3c3a3174.tar.gz enigma2-f283e77337caad447dc77286f7f6e44e3c3a3174.zip | |
add support for "frame rate changed" and "progressive changed" video event
(the last needs new drivers)
Diffstat (limited to 'lib/dvb')
| -rw-r--r-- | lib/dvb/decoder.cpp | 14 | ||||
| -rw-r--r-- | lib/dvb/idvb.h | 8 |
2 files changed, 21 insertions, 1 deletions
diff --git a/lib/dvb/decoder.cpp b/lib/dvb/decoder.cpp index 7ad1a25d..71b3f39e 100644 --- a/lib/dvb/decoder.cpp +++ b/lib/dvb/decoder.cpp @@ -563,6 +563,20 @@ void eDVBVideo::video_event(int) event.width = evt.u.size.w; /* emit */ m_event(event); } + else if (evt.type == VIDEO_EVENT_FRAME_RATE_CHANGED) + { + struct iTSMPEGDecoder::videoEvent event; + event.type = iTSMPEGDecoder::videoEvent::eventFrameRateChanged; + event.framerate = evt.u.frame_rate; + /* emit */ m_event(event); + } + else if (evt.type == 16 /*VIDEO_EVENT_PROGRESSIVE_CHANGED*/) + { + struct iTSMPEGDecoder::videoEvent event; + event.type = iTSMPEGDecoder::videoEvent::eventProgressiveChanged; + event.progressive = evt.u.frame_rate; + /* emit */ m_event(event); + } else eDebug("unhandled DVBAPI Video Event %d", evt.type); } diff --git a/lib/dvb/idvb.h b/lib/dvb/idvb.h index 2aee67e6..1030b534 100644 --- a/lib/dvb/idvb.h +++ b/lib/dvb/idvb.h @@ -697,10 +697,16 @@ public: struct videoEvent { - enum { eventUnknown = 0, eventSizeChanged = VIDEO_EVENT_SIZE_CHANGED } type; + enum { eventUnknown = 0, + eventSizeChanged = VIDEO_EVENT_SIZE_CHANGED, + eventFrameRateChanged = VIDEO_EVENT_FRAME_RATE_CHANGED, + eventProgressiveChanged = 16 + } type; unsigned char aspect; unsigned short height; unsigned short width; + bool progressive; + unsigned short framerate; }; virtual RESULT connectVideoEvent(const Slot1<void, struct videoEvent> &event, ePtr<eConnection> &connection) = 0; |
