X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/427f94625feece0bd9e55dddf9c37b1fa9969cb3..e03708b0a361c236d7034f35e4585edd4a91bb34:/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp diff --git a/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp b/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp index 074b3185..0372c497 100644 --- a/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp +++ b/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp @@ -92,8 +92,9 @@ eServiceDVD::eServiceDVD(eServiceReference ref): m_current_trick(0), m_pump(eApp, 1) { - int aspect = DDVD_16_9; + int aspect = DDVD_16_9; int policy = DDVD_PAN_SCAN; + int policy2 = DDVD_PAN_SCAN; char tmp[255]; ssize_t rd; @@ -130,7 +131,22 @@ eServiceDVD::eServiceDVD(eServiceReference ref): close(fd); } +#ifdef DDVD_SUPPORTS_16_10_SCALING + fd = open("/proc/stb/video/policy2", O_RDONLY); + if (fd > -1) + { + rd = read(fd, tmp, 255); + if (rd > 6 && !strncmp(tmp, "bestfit", 7)) + policy2 = DDVD_JUSTSCALE; + else if (rd > 8 && !strncmp(tmp, "letterbox", 9)) + policy2 = DDVD_LETTERBOX; + close(fd); + } + ddvd_set_video_ex(m_ddvdconfig, aspect, policy, policy2, DDVD_PAL /*unused*/); +#else ddvd_set_video(m_ddvdconfig, aspect, policy, DDVD_PAL /*unused*/); +#warning please update libdreamdvd for 16:10 scaling support! +#endif CONNECT(m_sn->activated, eServiceDVD::gotMessage); CONNECT(m_pump.recv_msg, eServiceDVD::gotThreadMessage); @@ -188,6 +204,7 @@ void eServiceDVD::gotMessage(int /*what*/) #ifdef DDVD_SUPPORTS_GET_BLIT_DESTINATION ddvd_get_blit_destination(m_ddvdconfig, &x_offset, &y_offset, &width, &height); eDebug("values got from ddvd: %d %d %d %d", x_offset, y_offset, width, height); + y_offset = -y_offset; width -= x_offset * 2; height -= y_offset * 2; #endif @@ -679,7 +696,7 @@ RESULT eServiceDVD::setTrickmode(int /*trick*/) RESULT eServiceDVD::isCurrentlySeekable() { - return m_state == stRunning; + return m_state == stRunning ? 3 : 0; } RESULT eServiceDVD::keyPressed(int key)