git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add optional notification of childs when parent moves
[enigma2.git]
/
lib
/
dvb
/
demux.cpp
diff --git
a/lib/dvb/demux.cpp
b/lib/dvb/demux.cpp
index c8e711731323c63f1c524b28f5e064b1601d243e..f277468d248b89d0e700a29c17693d81c6e0a011 100644
(file)
--- a/
lib/dvb/demux.cpp
+++ b/
lib/dvb/demux.cpp
@@
-25,7
+25,7
@@
#else
#include <linux/dvb/dmx.h>
#else
#include <linux/dvb/dmx.h>
-
//
#define HAVE_ADD_PID
+#define HAVE_ADD_PID
#ifdef HAVE_ADD_PID
#define DMX_ADD_PID _IO('o', 51)
#ifdef HAVE_ADD_PID
#define DMX_ADD_PID _IO('o', 51)
@@
-379,7
+379,7
@@
RESULT eDVBTSRecorder::start()
dmx_pes_filter_params flt;
flt.pes_type = (dmx_pes_type_t)DMX_TAP_TS;
dmx_pes_filter_params flt;
flt.pes_type = (dmx_pes_type_t)DMX_TAP_TS;
- flt.pid =
0x1234; /* FIXME */
+ flt.pid =
(__u16)-1;
flt.input = DMX_IN_FRONTEND;
flt.output = DMX_OUT_TAP;
flt.flags = 0;
flt.input = DMX_IN_FRONTEND;
flt.output = DMX_OUT_TAP;
flt.flags = 0;
@@
-462,6
+462,7
@@
RESULT eDVBTSRecorder::stop()
m_thread->stop();
close(m_source_fd);
m_thread->stop();
close(m_source_fd);
+ m_source_fd = -1;
if (m_target_filename != "")
m_thread->saveTimingInformation(m_target_filename + ".ap");
if (m_target_filename != "")
m_thread->saveTimingInformation(m_target_filename + ".ap");
@@
-510,10
+511,10
@@
RESULT eDVBTSRecorder::startPID(int pid)
}
m_pids[pid] = fd;
#else
}
m_pids[pid] = fd;
#else
- eDebug("add pid: %08x", pid);
if (::ioctl(m_source_fd, DMX_ADD_PID, pid))
perror("DMX_ADD_PID");
if (::ioctl(m_source_fd, DMX_ADD_PID, pid))
perror("DMX_ADD_PID");
- eDebug("ok");
+ else
+ m_pids[pid] = 1;
#endif
return 0;
}
#endif
return 0;
}
@@
-523,9
+524,12
@@
void eDVBTSRecorder::stopPID(int pid)
#ifndef HAVE_ADD_PID
if (m_pids[pid] != -1)
::close(m_pids[pid]);
#ifndef HAVE_ADD_PID
if (m_pids[pid] != -1)
::close(m_pids[pid]);
- m_pids[pid] = -1;
#else
#else
- if (::ioctl(m_source_fd, DMX_REMOVE_PID, pid))
- perror("DMX_REMOVE_PID");
+ if (m_pids[pid] != -1)
+ {
+ if (::ioctl(m_source_fd, DMX_REMOVE_PID, pid))
+ perror("DMX_REMOVE_PID");
+ }
#endif
#endif
+ m_pids[pid] = -1;
}
}