- add positioner plugin (just basic gui atm)
[enigma2.git] / lib / dvb / dvb.cpp
index a126aae719969d51df087b4676d0ba540d1a6ff2..f215b906aef7c77d357a00070397f0a659179fbb 100644 (file)
@@ -685,13 +685,16 @@ void eDVBChannel::cueSheetEvent(int event)
                                eDebug("skipmode ratio is %lld:90000, bitrate is %d bit/s", m_cue->m_skipmode_ratio, bitrate);
                                                /* i agree that this might look a bit like black magic. */
                                m_skipmode_n = 512*1024; /* must be 1 iframe at least. */
-                               m_skipmode_m = bitrate / 8 / 90000 * m_cue->m_skipmode_ratio;
+                               m_skipmode_m = bitrate / 8 / 90000 * m_cue->m_skipmode_ratio / 8;
+                               
+                               if (m_cue->m_skipmode_ratio < 0)
+                                       m_skipmode_m -= m_skipmode_n;
        
                                eDebug("resolved to: %d %d", m_skipmode_m, m_skipmode_n);
                                
                                if (abs(m_skipmode_m) < abs(m_skipmode_n))
                                {
-                                       eFatal("damn, something is wrong with this calculation");
+                                       eWarning("something is wrong with this calculation");
                                        m_skipmode_n = m_skipmode_m = 0;
                                }
                                
@@ -946,7 +949,11 @@ RESULT eDVBChannel::playFile(const char *file)
                   THEN DO A REAL FIX HERE! */
        
                /* (this codepath needs to be improved anyway.) */
+#if HAVE_DVB_API_VERSION < 3
+       m_pvr_fd_dst = open("/dev/pvr", O_WRONLY);
+#else
        m_pvr_fd_dst = open("/dev/misc/pvr", O_WRONLY);
+#endif
        if (m_pvr_fd_dst < 0)
        {
                eDebug("can't open /dev/misc/pvr - you need to buy the new(!) $$$ box! (%m)"); // or wait for the driver to be improved.