summaryrefslogtreecommitdiffstats
path: root/stream/dvb_tune.c
diff options
context:
space:
mode:
Diffstat (limited to 'stream/dvb_tune.c')
-rw-r--r--stream/dvb_tune.c54
1 files changed, 30 insertions, 24 deletions
diff --git a/stream/dvb_tune.c b/stream/dvb_tune.c
index 951c066032..7ec4bcd9e8 100644
--- a/stream/dvb_tune.c
+++ b/stream/dvb_tune.c
@@ -79,32 +79,34 @@ int dvb_open_devices(dvb_priv_t *priv, int n, int demux_cnt)
int i;
char frontend_dev[32], dvr_dev[32], demux_dev[32];
+ dvb_state_t* state = priv->state;
+
sprintf(frontend_dev, "/dev/dvb/adapter%d/frontend0", n);
sprintf(dvr_dev, "/dev/dvb/adapter%d/dvr0", n);
sprintf(demux_dev, "/dev/dvb/adapter%d/demux0", n);
- priv->fe_fd = open(frontend_dev, O_RDWR | O_NONBLOCK | O_CLOEXEC);
- if (priv->fe_fd < 0) {
+ state->fe_fd = open(frontend_dev, O_RDWR | O_NONBLOCK | O_CLOEXEC);
+ if (state->fe_fd < 0) {
MP_ERR(priv, "ERROR OPENING FRONTEND DEVICE %s: ERRNO %d\n",
frontend_dev, errno);
return 0;
}
- priv->demux_fds_cnt = 0;
+ state->demux_fds_cnt = 0;
MP_VERBOSE(priv, "DVB_OPEN_DEVICES(%d)\n", demux_cnt);
for (i = 0; i < demux_cnt; i++) {
- priv->demux_fds[i] = open(demux_dev, O_RDWR | O_NONBLOCK | O_CLOEXEC);
- if (priv->demux_fds[i] < 0) {
+ state->demux_fds[i] = open(demux_dev, O_RDWR | O_NONBLOCK | O_CLOEXEC);
+ if (state->demux_fds[i] < 0) {
MP_ERR(priv, "ERROR OPENING DEMUX 0: %d\n", errno);
return 0;
} else {
MP_VERBOSE(priv, "OPEN(%d), file %s: FD=%d, CNT=%d\n", i, demux_dev,
- priv->demux_fds[i], priv->demux_fds_cnt);
- priv->demux_fds_cnt++;
+ state->demux_fds[i], state->demux_fds_cnt);
+ state->demux_fds_cnt++;
}
}
- priv->dvr_fd = open(dvr_dev, O_RDONLY | O_NONBLOCK | O_CLOEXEC);
- if (priv->dvr_fd < 0) {
+ state->dvr_fd = open(dvr_dev, O_RDONLY | O_NONBLOCK | O_CLOEXEC);
+ if (state->dvr_fd < 0) {
MP_ERR(priv, "ERROR OPENING DVR DEVICE %s: %d\n", dvr_dev, errno);
return 0;
}
@@ -117,25 +119,27 @@ int dvb_fix_demuxes(dvb_priv_t *priv, int cnt)
{
int i;
char demux_dev[32];
-
- sprintf(demux_dev, "/dev/dvb/adapter%d/demux0", priv->card);
- MP_VERBOSE(priv, "FIX %d -> %d\n", priv->demux_fds_cnt, cnt);
- if (priv->demux_fds_cnt >= cnt) {
- for (i = priv->demux_fds_cnt - 1; i >= cnt; i--) {
- MP_VERBOSE(priv, "FIX, CLOSE fd(%d): %d\n", i, priv->demux_fds[i]);
- close(priv->demux_fds[i]);
+
+ dvb_state_t* state = priv->state;
+
+ sprintf(demux_dev, "/dev/dvb/adapter%d/demux0", state->card);
+ MP_VERBOSE(priv, "FIX %d -> %d\n", state->demux_fds_cnt, cnt);
+ if (state->demux_fds_cnt >= cnt) {
+ for (i = state->demux_fds_cnt - 1; i >= cnt; i--) {
+ MP_VERBOSE(priv, "FIX, CLOSE fd(%d): %d\n", i, state->demux_fds[i]);
+ close(state->demux_fds[i]);
}
- priv->demux_fds_cnt = cnt;
- } else if (priv->demux_fds_cnt < cnt) {
- for (i = priv->demux_fds_cnt; i < cnt; i++) {
- priv->demux_fds[i] = open(demux_dev,
+ state->demux_fds_cnt = cnt;
+ } else if (state->demux_fds_cnt < cnt) {
+ for (i = state->demux_fds_cnt; i < cnt; i++) {
+ state->demux_fds[i] = open(demux_dev,
O_RDWR | O_NONBLOCK | O_CLOEXEC);
- MP_VERBOSE(priv, "FIX, OPEN fd(%d): %d\n", i, priv->demux_fds[i]);
- if (priv->demux_fds[i] < 0) {
+ MP_VERBOSE(priv, "FIX, OPEN fd(%d): %d\n", i, state->demux_fds[i]);
+ if (state->demux_fds[i] < 0) {
MP_ERR(priv, "ERROR OPENING DEMUX 0: %d\n", errno);
return 0;
} else
- priv->demux_fds_cnt++;
+ state->demux_fds_cnt++;
}
}
@@ -548,7 +552,9 @@ int dvb_tune(dvb_priv_t *priv, int freq, char pol, int srate, int diseqc,
{
MP_INFO(priv, "dvb_tune Freq: %lu\n", (long unsigned int) freq);
- int ris = tune_it(priv, priv->fe_fd, freq, srate, pol, tone,
+ dvb_state_t* state = priv->state;
+
+ int ris = tune_it(priv, state->fe_fd, freq, srate, pol, tone,
is_dvb_s2, stream_id, specInv, diseqc, modulation,
HP_CodeRate, TransmissionMode, guardInterval,
bandWidth, LP_CodeRate, hier, timeout);