git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
resize ChannelSelection_summary to fit on 96x64 displays
[enigma2.git]
/
lib
/
dvb
/
dvb.cpp
diff --git
a/lib/dvb/dvb.cpp
b/lib/dvb/dvb.cpp
index 6eaadb04db8de3f737c906c7c12bd2930c5aac6d..836851c50fb2a582d9183278a233b666d5c05ca8 100644
(file)
--- a/
lib/dvb/dvb.cpp
+++ b/
lib/dvb/dvb.cpp
@@
-1324,16
+1324,6
@@
void eDVBChannel::getNextSourceSpan(off_t current_offset, size_t bytes_read, off
return;
}
return;
}
- m_cue->m_lock.RdLock();
- if (!m_cue->m_decoding_demux)
- {
- start = current_offset;
- size = max;
- eDebug("getNextSourceSpan, no decoding demux. forcing normal play");
- m_cue->m_lock.Unlock();
- return;
- }
-
if (m_skipmode_n)
{
eDebug("skipmode %d:%d (x%d)", m_skipmode_m, m_skipmode_n, m_skipmode_frames);
if (m_skipmode_n)
{
eDebug("skipmode %d:%d (x%d)", m_skipmode_m, m_skipmode_n, m_skipmode_frames);
@@
-1341,7
+1331,6
@@
void eDVBChannel::getNextSourceSpan(off_t current_offset, size_t bytes_read, off
}
eDebug("getNextSourceSpan, current offset is %08llx, m_skipmode_m = %d!", current_offset, m_skipmode_m);
}
eDebug("getNextSourceSpan, current offset is %08llx, m_skipmode_m = %d!", current_offset, m_skipmode_m);
-
int frame_skip_success = 0;
if (m_skipmode_m)
int frame_skip_success = 0;
if (m_skipmode_m)
@@
-1386,6
+1375,8
@@
void eDVBChannel::getNextSourceSpan(off_t current_offset, size_t bytes_read, off
}
}
}
}
+ m_cue->m_lock.RdLock();
+
while (!m_cue->m_seek_requests.empty())
{
std::pair<int, pts_t> seek = m_cue->m_seek_requests.front();
while (!m_cue->m_seek_requests.empty())
{
std::pair<int, pts_t> seek = m_cue->m_seek_requests.front();
@@
-1410,6
+1401,13
@@
void eDVBChannel::getNextSourceSpan(off_t current_offset, size_t bytes_read, off
eDebug("decoder getPTS failed, can't seek relative");
continue;
}
eDebug("decoder getPTS failed, can't seek relative");
continue;
}
+ if (!m_cue->m_decoding_demux)
+ {
+ eDebug("getNextSourceSpan, no decoding demux. couldn't seek to %llx... ignore request!", pts);
+ start = current_offset;
+ size = max;
+ continue;
+ }
if (getCurrentPosition(m_cue->m_decoding_demux, now, 1))
{
eDebug("seekTo: getCurrentPosition failed!");
if (getCurrentPosition(m_cue->m_decoding_demux, now, 1))
{
eDebug("seekTo: getCurrentPosition failed!");
@@
-1659,6
+1657,18
@@
void eDVBChannel::SDTready(int result)
m_SDT = 0;
}
m_SDT = 0;
}
+int eDVBChannel::reserveDemux()
+{
+ ePtr<iDVBDemux> dmx;
+ if (!getDemux(dmx, 0))
+ {
+ uint8_t id;
+ if (!dmx->getCADemuxID(id))
+ return id;
+ }
+ return -1;
+}
+
RESULT eDVBChannel::requestTsidOnid(ePyObject callback)
{
if (PyCallable_Check(callback))
RESULT eDVBChannel::requestTsidOnid(ePyObject callback)
{
if (PyCallable_Check(callback))