git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix FIXMEE :) (don't open recording filter with pid 0x1234.. use -1)
[enigma2.git]
/
lib
/
dvb
/
demux.cpp
diff --git
a/lib/dvb/demux.cpp
b/lib/dvb/demux.cpp
index bef5c93a02239b0cd5d07f5f83e222d9173fbeca..d391420cab325c275ef09ddb26b6dbf2167f7c40 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)
@@
-116,9
+116,9
@@
RESULT eDVBDemux::createTSRecorder(ePtr<iDVBTSRecorder> &recorder)
return 0;
}
return 0;
}
-RESULT eDVBDemux::getMPEGDecoder(ePtr<iTSMPEGDecoder> &decoder)
+RESULT eDVBDemux::getMPEGDecoder(ePtr<iTSMPEGDecoder> &decoder
, int primary
)
{
{
- decoder = new eTSMPEGDecoder(this,
0
);
+ decoder = new eTSMPEGDecoder(this,
primary ? 0 : 1
);
return 0;
}
return 0;
}
@@
-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 =
-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;
}
}