--- dvb.cpp.orig 2016-04-18 23:19:54.515073740 +0100 +++ dvb.cpp 2016-04-18 23:20:03.395113971 +0100 @@ -1681,8 +1681,12 @@ eDebug("[eDVBChannel] 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 / 8; +// The / and * are done in order, resulting in a distinct integer +// truncation after bitrate / 8 / 90000 +// I don't think that this is intended... +// m_skipmode_m = bitrate / 8 / 90000 * m_cue->m_skipmode_ratio / 8; m_skipmode_frames = m_cue->m_skipmode_ratio / 90000; + m_skipmode_m = (bitrate / 8) * (m_skipmode_frames / 8); m_skipmode_frames_remainder = 0; if (m_cue->m_skipmode_ratio < 0)