git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
epg fix (fixes bluescreens on ZDF Transponder)
[enigma2.git]
/
lib
/
dvb
/
decoder.cpp
diff --git
a/lib/dvb/decoder.cpp
b/lib/dvb/decoder.cpp
index 8877f3ef16ee9597c5c6aa477e15932ffbd4e876..c93fe26dd97a845a9249dd797add40dfa828a568 100644
(file)
--- a/
lib/dvb/decoder.cpp
+++ b/
lib/dvb/decoder.cpp
@@
-305,6
+305,9
@@
eDVBVideo::eDVBVideo(eDVBDemux *demux, int dev)
char filename[128];
#if HAVE_DVB_API_VERSION < 3
sprintf(filename, "/dev/dvb/card%d/video%d", demux->adapter, dev);
char filename[128];
#if HAVE_DVB_API_VERSION < 3
sprintf(filename, "/dev/dvb/card%d/video%d", demux->adapter, dev);
+ m_fd_video = ::open("/dev/video", O_RDWR);
+ if (m_fd_video < 0)
+ eWarning("/dev/video: %m");
#else
sprintf(filename, "/dev/dvb/adapter%d/video%d", demux->adapter, dev);
#endif
#else
sprintf(filename, "/dev/dvb/adapter%d/video%d", demux->adapter, dev);
#endif
@@
-509,12
+512,17
@@
int eDVBVideo::setFastForward(int skip)
int eDVBVideo::getPTS(pts_t &now)
{
int eDVBVideo::getPTS(pts_t &now)
{
- eDebugNoNewLine("VIDEO_GET_PTS - ");
+#if HAVE_DVB_API_VERSION < 3
+ #define VIDEO_GET_PTS_OLD _IOR('o', 1, unsigned int*)
+ unsigned int pts;
+ int ret = ::ioctl(m_fd_video, VIDEO_GET_PTS_OLD, &pts);
+ now = pts;
+ now *= 2;
+#else
int ret = ::ioctl(m_fd, VIDEO_GET_PTS, &now);
int ret = ::ioctl(m_fd, VIDEO_GET_PTS, &now);
+#endif
if (ret < 0)
if (ret < 0)
- eDebug("failed(%m)");
- else
- eDebug("ok");
+ eDebug("VIDEO_GET_PTS failed(%m)");
return ret;
}
return ret;
}
@@
-531,13
+539,17
@@
eDVBVideo::~eDVBVideo()
::close(m_fd);
if (m_fd_demux >= 0)
::close(m_fd_demux);
::close(m_fd);
if (m_fd_demux >= 0)
::close(m_fd_demux);
+#if HAVE_DVB_API_VERSION < 3
+ if (m_fd_video >= 0)
+ ::close(m_fd_video);
+#endif
}
void eDVBVideo::video_event(int)
{
#if HAVE_DVB_API_VERSION >= 3
struct video_event evt;
}
void eDVBVideo::video_event(int)
{
#if HAVE_DVB_API_VERSION >= 3
struct video_event evt;
- eDebugNoNewLine("VIDEO_GET_EVENT - "
+ eDebugNoNewLine("VIDEO_GET_EVENT - "
);
if (::ioctl(m_fd, VIDEO_GET_EVENT, &evt) < 0)
eDebug("failed (%m)");
else
if (::ioctl(m_fd, VIDEO_GET_EVENT, &evt) < 0)
eDebug("failed (%m)");
else
@@
-696,7
+708,7
@@
int eDVBTText::startPid(int pid)
return -errno;
}
eDebug("ok");
return -errno;
}
eDebug("ok");
- eDebugNoNewLine("DEMUX_START - pcr - "
, pid
);
+ eDebugNoNewLine("DEMUX_START - pcr - ");
if (::ioctl(m_fd_demux, DMX_START) < 0)
{
eDebug("failed(%m)");
if (::ioctl(m_fd_demux, DMX_START) < 0)
{
eDebug("failed(%m)");