diff options
| author | ghost <andreas.monzner@multimedia-labs.de> | 2010-03-29 19:02:03 +0200 |
|---|---|---|
| committer | ghost <andreas.monzner@multimedia-labs.de> | 2010-03-31 09:59:57 +0200 |
| commit | 37727defa26822965967c2f26b5e181f19ba7e64 (patch) | |
| tree | aa6737fa78569011cef0e43545b797ccaa32d65c /lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp | |
| parent | aa0c8434aebeb7df775bf30330ab683a676cdba0 (diff) | |
| download | enigma2-37727defa26822965967c2f26b5e181f19ba7e64.tar.gz enigma2-37727defa26822965967c2f26b5e181f19ba7e64.zip | |
lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.h/cpp: add support for autoresolution plugins (needs new libdreamdvd)
this fixes bug #302
Diffstat (limited to 'lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp')
| -rw-r--r-- | lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp | 47 |
1 files changed, 41 insertions, 6 deletions
diff --git a/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp b/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp index 0372c497..2ba53927 100644 --- a/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp +++ b/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp @@ -85,12 +85,9 @@ RESULT eServiceFactoryDVD::offlineOperations(const eServiceReference &, ePtr<iSe DEFINE_REF(eServiceDVD); eServiceDVD::eServiceDVD(eServiceReference ref): - m_ref(ref), - m_ddvdconfig(ddvd_create()), - m_subtitle_widget(0), - m_state(stIdle), - m_current_trick(0), - m_pump(eApp, 1) + m_ref(ref), m_ddvdconfig(ddvd_create()), m_subtitle_widget(0), m_state(stIdle), + m_current_trick(0), m_pump(eApp, 1), m_width(-1), m_height(-1), + m_aspect(-1), m_framerate(-1), m_progressive(-1) { int aspect = DDVD_16_9; int policy = DDVD_PAN_SCAN; @@ -309,6 +306,32 @@ void eServiceDVD::gotMessage(int /*what*/) m_event(this, evSeekableStatusChanged); m_event(this, evUser+12); break; +#ifdef DDVD_SUPPORTS_PICTURE_INFO + case DDVD_SIZE_CHANGED: + { + int changed = m_width != -1 && m_height != -1 && m_aspect != -1; + ddvd_get_last_size(m_ddvdconfig, &m_width, &m_height, &m_aspect); + if (changed) + m_event((iPlayableService*)this, evVideoSizeChanged); + break; + } + case DDVD_PROGRESSIVE_CHANGED: + { + int changed = m_progressive != -1; + ddvd_get_last_progressive(m_ddvdconfig, &m_progressive); + if (changed) + m_event((iPlayableService*)this, evVideoProgressiveChanged); + break; + } + case DDVD_FRAMERATE_CHANGED: + { + int changed = m_framerate != -1; + ddvd_get_last_framerate(m_ddvdconfig, &m_framerate); + if (changed) + m_event((iPlayableService*)this, evVideoFramerateChanged); + break; + } +#endif default: break; } @@ -500,6 +523,18 @@ int eServiceDVD::getInfo(int w) case sUser+7: case sUser+8: return resIsPyObject; +#ifdef DDVD_SUPPORTS_PICTURE_INFO + case sVideoWidth: + return m_width; + case sVideoHeight: + return m_height; + case sAspect: + return m_aspect; + case sProgressive: + return m_progressive; + case sFrameRate: + return m_framerate; +#endif default: return resNA; } |
