diff options
Diffstat (limited to 'stream/dvb_tune.c')
-rw-r--r-- | stream/dvb_tune.c | 335 |
1 files changed, 89 insertions, 246 deletions
diff --git a/stream/dvb_tune.c b/stream/dvb_tune.c index d9b350f876..d18f70f7a9 100644 --- a/stream/dvb_tune.c +++ b/stream/dvb_tune.c @@ -30,13 +30,12 @@ #include <poll.h> #include <unistd.h> #include <fcntl.h> -#include <time.h> #include <errno.h> #include <linux/dvb/dmx.h> #include <linux/dvb/frontend.h> -#include "config.h" #include "osdep/io.h" +#include "osdep/timer.h" #include "dvbin.h" #include "dvb_tune.h" #include "common/msg.h" @@ -77,95 +76,22 @@ unsigned int dvb_get_tuner_delsys_mask(int fe_fd, struct mp_log *log) unsigned int ret_mask = 0, delsys; struct dtv_property prop[1]; struct dtv_properties cmdseq = {.num = 1, .props = prop}; - struct dvb_frontend_info fe_info; -#ifdef DVB_USE_S2API - /* S2API is the DVB API new since 2.6.28. - It allows to query frontends with multiple delivery systems. */ - mp_verbose(log, "Querying tuner frontend type via DVBv5 API for frontend FD %d\n", - fe_fd); prop[0].cmd = DTV_ENUM_DELSYS; if (ioctl(fe_fd, FE_GET_PROPERTY, &cmdseq) < 0) { - mp_err(log, "DVBv5: FE_GET_PROPERTY(DTV_ENUM_DELSYS) error: %d, FD: %d\n\n", errno, fe_fd); - goto old_api; + mp_err(log, "DVBv5: FE_GET_PROPERTY(DTV_ENUM_DELSYS) error: %d\n", errno); + return ret_mask; } - unsigned int i, delsys_count = prop[0].u.buffer.len; - mp_verbose(log, "DVBv5: Number of supported delivery systems: %d\n", delsys_count); + unsigned int delsys_count = prop[0].u.buffer.len; if (delsys_count == 0) { - mp_err(log, "DVBv5: Frontend FD %d returned no delivery systems!\n", fe_fd); - goto old_api; + mp_err(log, "DVBv5: Frontend returned no delivery systems!\n"); + return ret_mask; } - for (i = 0; i < delsys_count; i++) { + mp_verbose(log, "DVBv5: Number of supported delivery systems: %d\n", delsys_count); + for (unsigned int i = 0; i < delsys_count; i++) { delsys = (unsigned int)prop[0].u.buffer.data[i]; DELSYS_SET(ret_mask, delsys); - mp_verbose(log, "DVBv5: Tuner frontend type seems to be %s\n", get_dvb_delsys(delsys)); - } - - return ret_mask; - -old_api: -#endif - mp_verbose(log, "Querying tuner frontend type via pre-DVBv5 API for frontend FD %d\n", - fe_fd); - - memset(&fe_info, 0x00, sizeof(struct dvb_frontend_info)); - if (ioctl(fe_fd, FE_GET_INFO, &fe_info) < 0) { - mp_err(log, "DVBv3: FE_GET_INFO error: %d, FD: %d\n\n", errno, fe_fd); - return ret_mask; - } - /* Try to get kernel DVB API version. */ - prop[0].cmd = DTV_API_VERSION; - if (ioctl(fe_fd, FE_GET_PROPERTY, &cmdseq) < 0) { - prop[0].u.data = 0x0300; /* Fail, assume 3.0 */ - } - - mp_verbose(log, "DVBv3: Queried tuner frontend type of device named '%s', FD: %d\n", - fe_info.name, fe_fd); - switch (fe_info.type) { - case FE_OFDM: - DELSYS_SET(ret_mask, SYS_DVBT); - if (prop[0].u.data < 0x0500) - break; - if (FE_CAN_2G_MODULATION & fe_info.caps) { - DELSYS_SET(ret_mask, SYS_DVBT2); - } - break; - case FE_QPSK: - DELSYS_SET(ret_mask, SYS_DVBS); - if (prop[0].u.data < 0x0500) - break; - if (FE_CAN_2G_MODULATION & fe_info.caps) { - DELSYS_SET(ret_mask, SYS_DVBS2); - } -#if 0 /* Not used now. */ - if (FE_CAN_TURBO_FEC & fe_info.caps) { - DELSYS_SET(ret_mask, SYS_TURBO); - } -#endif - break; - case FE_QAM: - DELSYS_SET(ret_mask, SYS_DVBC_ANNEX_A); - DELSYS_SET(ret_mask, SYS_DVBC_ANNEX_C); - break; -#ifdef DVB_ATSC - case FE_ATSC: - if ((FE_CAN_8VSB | FE_CAN_16VSB) & fe_info.caps) { - DELSYS_SET(ret_mask, SYS_ATSC); - } - if ((FE_CAN_QAM_64 | FE_CAN_QAM_256 | FE_CAN_QAM_AUTO) & fe_info.caps) { - DELSYS_SET(ret_mask, SYS_DVBC_ANNEX_B); - } - break; -#endif - default: - mp_err(log, "DVBv3: Unknown tuner frontend type: %d\n", fe_info.type); - return ret_mask; - } - - for (delsys = 0; delsys < SYS_DVB__COUNT__; delsys ++) { - if (!DELSYS_IS_SET(ret_mask, delsys)) - continue; /* Skip unsupported. */ - mp_verbose(log, "DVBv3: Tuner frontend type seems to be %s\n", get_dvb_delsys(delsys)); + mp_verbose(log, " %s\n", get_dvb_delsys(delsys)); } return ret_mask; @@ -174,70 +100,63 @@ old_api: int dvb_open_devices(dvb_priv_t *priv, unsigned int adapter, unsigned int frontend, unsigned int demux_cnt) { - unsigned int i; - char frontend_dev[PATH_MAX], dvr_dev[PATH_MAX], demux_dev[PATH_MAX]; - dvb_state_t* state = priv->state; + dvb_state_t *state = priv->state; + char frontend_dev[100], dvr_dev[100], demux_dev[100]; snprintf(frontend_dev, sizeof(frontend_dev), "/dev/dvb/adapter%u/frontend%u", adapter, frontend); snprintf(dvr_dev, sizeof(dvr_dev), "/dev/dvb/adapter%u/dvr0", adapter); snprintf(demux_dev, sizeof(demux_dev), "/dev/dvb/adapter%u/demux0", adapter); - MP_VERBOSE(priv, "DVB_OPEN_DEVICES: frontend: %s\n", frontend_dev); + + MP_VERBOSE(priv, "Opening frontend device %s\n", frontend_dev); 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); + MP_ERR(priv, "Error opening frontend device: %d\n", errno); return 0; } + state->demux_fds_cnt = 0; - MP_VERBOSE(priv, "DVB_OPEN_DEVICES(%d)\n", demux_cnt); - for (i = 0; i < demux_cnt; i++) { + MP_VERBOSE(priv, "Opening %d demuxers\n", demux_cnt); + for (unsigned int i = 0; i < demux_cnt; i++) { 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); + MP_ERR(priv, "Error opening demux0: %d\n", errno); return 0; - } else { - MP_VERBOSE(priv, "OPEN(%d), file %s: FD=%d, CNT=%d\n", i, demux_dev, - state->demux_fds[i], state->demux_fds_cnt); - state->demux_fds_cnt++; } + state->demux_fds_cnt++; } 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); + MP_ERR(priv, "Error opening dvr device %s: %d\n", dvr_dev, errno); return 0; } return 1; } - int dvb_fix_demuxes(dvb_priv_t *priv, unsigned int cnt) { - int i; - char demux_dev[PATH_MAX]; - - dvb_state_t* state = priv->state; + dvb_state_t *state = priv->state; + char demux_dev[100]; snprintf(demux_dev, sizeof(demux_dev), "/dev/dvb/adapter%d/demux0", state->adapters[state->cur_adapter].devno); - MP_VERBOSE(priv, "FIX %d -> %d\n", state->demux_fds_cnt, cnt); + + MP_VERBOSE(priv, "Changing demuxer count %d -> %d\n", state->demux_fds_cnt, cnt); if (state->demux_fds_cnt >= cnt) { - for (i = state->demux_fds_cnt - 1; i >= (int)cnt; i--) { - MP_VERBOSE(priv, "FIX, CLOSE fd(%d): %d\n", i, state->demux_fds[i]); + for (int i = state->demux_fds_cnt - 1; i >= (int)cnt; i--) { close(state->demux_fds[i]); } state->demux_fds_cnt = cnt; } else { - for (i = state->demux_fds_cnt; i < cnt; i++) { + for (int 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, state->demux_fds[i]); if (state->demux_fds[i] < 0) { - MP_ERR(priv, "ERROR OPENING DEMUX 0: %d\n", errno); + MP_ERR(priv, "Error opening demux0: %d\n", errno); return 0; - } else - state->demux_fds_cnt++; + } + state->demux_fds_cnt++; } } @@ -259,19 +178,17 @@ int dvb_set_ts_filt(dvb_priv_t *priv, int fd, uint16_t pid, { int buffersize = 256 * 1024; if (ioctl(fd, DMX_SET_BUFFER_SIZE, buffersize) < 0) - MP_ERR(priv, "ERROR IN DMX_SET_BUFFER_SIZE %i for fd %d: ERRNO: %d\n", - pid, fd, errno); + MP_ERR(priv, "Error in DMX_SET_BUFFER_SIZE %i: errno=%d\n", + pid, errno); } errno = 0; if ((i = ioctl(fd, DMX_SET_PES_FILTER, &pesFilterParams)) < 0) { - MP_ERR(priv, "ERROR IN SETTING DMX_FILTER %i for fd %d: ERRNO: %d\n", - pid, fd, errno); + MP_ERR(priv, "Error in DMX_SET_PES_FILTER %i: errno=%d\n", + pid, errno); return 0; } - MP_VERBOSE(priv, "SET PES FILTER ON PID %d to fd %d, RESULT: %d, ERRNO: %d\n", - pid, fd, i, errno); return 1; } @@ -279,12 +196,10 @@ int dvb_get_pmt_pid(dvb_priv_t *priv, int devno, int service_id) { /* We need special filters on the demux, so open one locally, and close also here. */ - char demux_dev[PATH_MAX]; + char demux_dev[100]; snprintf(demux_dev, sizeof(demux_dev), "/dev/dvb/adapter%d/demux0", devno); - struct dmx_sct_filter_params fparams; - - memset(&fparams, 0x00, sizeof(fparams)); + struct dmx_sct_filter_params fparams = {0}; fparams.pid = 0; fparams.filter.filter[0] = 0x00; fparams.filter.mask[0] = 0xff; @@ -293,18 +208,17 @@ int dvb_get_pmt_pid(dvb_priv_t *priv, int devno, int service_id) int pat_fd; if ((pat_fd = open(demux_dev, O_RDWR)) < 0) { - MP_ERR(priv, "Opening PAT DEMUX failed, error: %d", errno); + MP_ERR(priv, "Opening PAT demux failed: %d", errno); return -1; } if (ioctl(pat_fd, DMX_SET_FILTER, &fparams) < 0) { - MP_ERR(priv, "ioctl DMX_SET_FILTER failed, error: %d", errno); + MP_ERR(priv, "ioctl DMX_SET_FILTER failed: %d", errno); close(pat_fd); return -1; } int bytes_read; - int section_length; unsigned char buft[4096]; unsigned char *bufptr = buft; @@ -312,17 +226,16 @@ int dvb_get_pmt_pid(dvb_priv_t *priv, int devno, int service_id) bool pat_read = false; while (!pat_read) { - if (((bytes_read = - read(pat_fd, bufptr, - sizeof(buft))) < 0) && errno == EOVERFLOW) + bytes_read = read(pat_fd, bufptr, sizeof(buft)); + if (bytes_read < 0 && errno == EOVERFLOW) bytes_read = read(pat_fd, bufptr, sizeof(buft)); if (bytes_read < 0) { - MP_ERR(priv, "PAT: read_sections: read error: %d", errno); + MP_ERR(priv, "PAT: read error: %d", errno); close(pat_fd); return -1; } - section_length = ((bufptr[1] & 0x0f) << 8) | bufptr[2]; + int section_length = ((bufptr[1] & 0x0f) << 8) | bufptr[2]; if (bytes_read != section_length + 3) continue; @@ -366,17 +279,16 @@ static void print_status(dvb_priv_t *priv, fe_status_t festatus) static int check_status(dvb_priv_t *priv, int fd_frontend, int tmout) { - int32_t strength; fe_status_t festatus; - struct pollfd pfd[1]; - int ok = 0, locks = 0; - time_t tm1, tm2; + bool ok = false; + int locks = 0; + struct pollfd pfd[1]; pfd[0].fd = fd_frontend; pfd[0].events = POLLPRI; MP_VERBOSE(priv, "Getting frontend status\n"); - tm1 = tm2 = time((time_t *) NULL); + int tm1 = (int)mp_time_sec(); while (!ok) { festatus = 0; if (poll(pfd, 1, tmout * 1000) > 0) { @@ -388,34 +300,35 @@ static int check_status(dvb_priv_t *priv, int fd_frontend, int tmout) } } usleep(10000); - tm2 = time((time_t *) NULL); + int tm2 = (int)mp_time_sec(); if ((festatus & FE_TIMEDOUT) || (locks >= 2) || (tm2 - tm1 >= tmout)) - ok = 1; + ok = true; } - if (festatus & FE_HAS_LOCK) { - strength = 0; - if (ioctl(fd_frontend, FE_READ_BER, &strength) >= 0) - MP_VERBOSE(priv, "Bit error rate: %d\n", strength); - - strength = 0; - if (ioctl(fd_frontend, FE_READ_SIGNAL_STRENGTH, &strength) >= 0) - MP_VERBOSE(priv, "Signal strength: %d\n", strength); - - strength = 0; - if (ioctl(fd_frontend, FE_READ_SNR, &strength) >= 0) - MP_VERBOSE(priv, "SNR: %d\n", strength); - - strength = 0; - if (ioctl(fd_frontend, FE_READ_UNCORRECTED_BLOCKS, &strength) >= 0) - MP_VERBOSE(priv, "UNC: %d\n", strength); - - print_status(priv, festatus); - } else { + if (!(festatus & FE_HAS_LOCK)) { MP_ERR(priv, "Not able to lock to the signal on the given frequency, " "timeout: %d\n", tmout); return -1; } + + int32_t strength = 0; + if (ioctl(fd_frontend, FE_READ_BER, &strength) >= 0) + MP_VERBOSE(priv, "Bit error rate: %d\n", strength); + + strength = 0; + if (ioctl(fd_frontend, FE_READ_SIGNAL_STRENGTH, &strength) >= 0) + MP_VERBOSE(priv, "Signal strength: %d\n", strength); + + strength = 0; + if (ioctl(fd_frontend, FE_READ_SNR, &strength) >= 0) + MP_VERBOSE(priv, "SNR: %d\n", strength); + + strength = 0; + if (ioctl(fd_frontend, FE_READ_UNCORRECTED_BLOCKS, &strength) >= 0) + MP_VERBOSE(priv, "UNC: %d\n", strength); + + print_status(priv, festatus); + return 0; } @@ -463,25 +376,21 @@ static int do_diseqc(int secfd, int sat_no, int polv, int hi_lo) ((sat_no / 4) % 2) ? SEC_MINI_B : SEC_MINI_A); } -#ifdef DVB_USE_S2API static int dvbv5_tune(dvb_priv_t *priv, int fd_frontend, unsigned int delsys, struct dtv_properties* cmdseq) { - MP_VERBOSE(priv, "Tuning via S2API, channel is %s.\n", - get_dvb_delsys(delsys)); MP_VERBOSE(priv, "Dumping raw tuning commands and values:\n"); for (int i = 0; i < cmdseq->num; ++i) { - MP_VERBOSE(priv, "%02d: 0x%x(%d) => 0x%x(%d)\n", + MP_VERBOSE(priv, " %02d: 0x%x(%d) => 0x%x(%d)\n", i, cmdseq->props[i].cmd, cmdseq->props[i].cmd, cmdseq->props[i].u.data, cmdseq->props[i].u.data); } if (ioctl(fd_frontend, FE_SET_PROPERTY, cmdseq) < 0) { - MP_ERR(priv, "ERROR tuning channel\n"); + MP_ERR(priv, "Error tuning channel\n"); return -1; } return 0; } -#endif static int tune_it(dvb_priv_t *priv, int fd_frontend, unsigned int delsys, unsigned int freq, unsigned int srate, char pol, @@ -495,12 +404,9 @@ static int tune_it(dvb_priv_t *priv, int fd_frontend, unsigned int delsys, fe_code_rate_t LP_CodeRate, fe_hierarchy_t hier, int timeout) { - int hi_lo = 0, bandwidth_hz = 0; - dvb_state_t* state = priv->state; - struct dvb_frontend_parameters feparams; + dvb_state_t *state = priv->state; - - MP_VERBOSE(priv, "TUNE_IT, fd_frontend %d, %s freq %lu, srate %lu, " + MP_VERBOSE(priv, "tune_it: fd_frontend %d, %s freq %lu, srate %lu, " "pol %c, diseqc %u\n", fd_frontend, get_dvb_delsys(delsys), (long unsigned int)freq, (long unsigned int)srate, @@ -519,15 +425,12 @@ static int tune_it(dvb_priv_t *priv, int fd_frontend, unsigned int delsys, } } - /* Prepare params, be verbose. */ + /* Prepare params, be verbose. */ + int hi_lo = 0, bandwidth_hz = 0; switch (delsys) { case SYS_DVBT2: -#ifndef DVB_USE_S2API - MP_ERR(priv, "ERROR: Can not tune to T2 channel, S2-API not " - "available, will tune to DVB-T!\n"); -#endif - /* PASSTROUTH. */ case SYS_DVBT: + case SYS_ISDBT: if (freq < 1000000) freq *= 1000UL; switch (bandwidth) { @@ -562,11 +465,6 @@ static int tune_it(dvb_priv_t *priv, int fd_frontend, unsigned int delsys, get_dvb_delsys(delsys), freq, bandwidth_hz); break; case SYS_DVBS2: -#ifndef DVB_USE_S2API - MP_ERR(priv, "ERROR: Can not tune to S2 channel, S2-API not " - "available, will tune to DVB-S!\n"); -#endif - /* PASSTROUTH. */ case SYS_DVBS: if (freq > 2200000) { // this must be an absolute frequency @@ -595,19 +493,16 @@ static int tune_it(dvb_priv_t *priv, int fd_frontend, unsigned int delsys, MP_VERBOSE(priv, "tuning %s to %d, srate=%d\n", get_dvb_delsys(delsys), freq, srate); break; -#ifdef DVB_ATSC case SYS_ATSC: case SYS_DVBC_ANNEX_B: MP_VERBOSE(priv, "tuning %s to %d, modulation=%d\n", get_dvb_delsys(delsys), freq, modulation); break; -#endif default: - MP_VERBOSE(priv, "Unknown FE type. Aborting\n"); + MP_VERBOSE(priv, "Unknown FE type, aborting.\n"); return 0; } -#ifdef DVB_USE_S2API /* S2API is the DVB API new since 2.6.28. * It is needed to tune to new delivery systems, e.g. DVB-S2. * It takes a struct with a list of pairs of command + parameter. @@ -622,7 +517,7 @@ static int tune_it(dvb_priv_t *priv, int fd_frontend, unsigned int delsys, .props = p_clear }; if (ioctl(fd_frontend, FE_SET_PROPERTY, &cmdseq_clear) < 0) { - MP_ERR(priv, "FE_SET_PROPERTY DTV_CLEAR failed\n"); + MP_ERR(priv, "DTV_CLEAR failed\n"); } /* Tune. */ @@ -646,12 +541,13 @@ static int tune_it(dvb_priv_t *priv, int fd_frontend, unsigned int delsys, .props = p }; if (dvbv5_tune(priv, fd_frontend, delsys, &cmdseq) != 0) { - goto old_api; + goto error_tune; } } break; case SYS_DVBT: case SYS_DVBT2: + case SYS_ISDBT: { struct dtv_property p[] = { { .cmd = DTV_DELIVERY_SYSTEM, .u.data = delsys }, @@ -673,7 +569,7 @@ static int tune_it(dvb_priv_t *priv, int fd_frontend, unsigned int delsys, .props = p }; if (dvbv5_tune(priv, fd_frontend, delsys, &cmdseq) != 0) { - goto old_api; + goto error_tune; } } break; @@ -694,11 +590,10 @@ static int tune_it(dvb_priv_t *priv, int fd_frontend, unsigned int delsys, .props = p }; if (dvbv5_tune(priv, fd_frontend, delsys, &cmdseq) != 0) { - goto old_api; + goto error_tune; } } break; -#ifdef DVB_ATSC case SYS_ATSC: case SYS_DVBC_ANNEX_B: { @@ -714,73 +609,21 @@ static int tune_it(dvb_priv_t *priv, int fd_frontend, unsigned int delsys, .props = p }; if (dvbv5_tune(priv, fd_frontend, delsys, &cmdseq) != 0) { - goto old_api; + goto error_tune; } } break; -#endif } int tune_status = check_status(priv, fd_frontend, timeout); if (tune_status != 0) { - MP_ERR(priv, "ERROR locking to channel when tuning with S2API, clearing and falling back to DVBv3-tuning.\n"); - if (ioctl(fd_frontend, FE_SET_PROPERTY, &cmdseq_clear) < 0) { - MP_ERR(priv, "FE_SET_PROPERTY DTV_CLEAR failed\n"); - } - goto old_api; - } else { - return tune_status; - } - -old_api: -#endif - - MP_VERBOSE(priv, "Tuning via DVB-API version 3.\n"); - - if (stream_id != NO_STREAM_ID_FILTER && stream_id != 0) { - MP_ERR(priv, "DVB-API version 3 does not support stream_id (PLP).\n"); - return -1; - } - memset(&feparams, 0x00, sizeof(feparams)); - feparams.frequency = freq; - feparams.inversion = specInv; - - switch (delsys) { - case SYS_DVBT: - case SYS_DVBT2: - feparams.u.ofdm.bandwidth = bandwidth; - feparams.u.ofdm.code_rate_HP = HP_CodeRate; - feparams.u.ofdm.code_rate_LP = LP_CodeRate; - feparams.u.ofdm.constellation = modulation; - feparams.u.ofdm.transmission_mode = TransmissionMode; - feparams.u.ofdm.guard_interval = guardInterval; - feparams.u.ofdm.hierarchy_information = hier; - break; - case SYS_DVBS: - case SYS_DVBS2: - feparams.u.qpsk.symbol_rate = srate; - feparams.u.qpsk.fec_inner = HP_CodeRate; - break; - case SYS_DVBC_ANNEX_A: - case SYS_DVBC_ANNEX_C: - feparams.u.qam.symbol_rate = srate; - feparams.u.qam.fec_inner = HP_CodeRate; - feparams.u.qam.modulation = modulation; - break; -#ifdef DVB_ATSC - case SYS_ATSC: - case SYS_DVBC_ANNEX_B: - feparams.u.vsb.modulation = modulation; - break; -#endif - } - - if (ioctl(fd_frontend, FE_SET_FRONTEND, &feparams) < 0) { - MP_ERR(priv, "ERROR tuning channel\n"); - return -1; + MP_ERR(priv, "Error locking to channel\n"); } + return tune_status; - return check_status(priv, fd_frontend, timeout); +error_tune: + MP_ERR(priv, "Error tuning channel\n"); + return -1; } int dvb_tune(dvb_priv_t *priv, unsigned int delsys, @@ -792,10 +635,10 @@ int dvb_tune(dvb_priv_t *priv, unsigned int delsys, fe_code_rate_t LP_CodeRate, fe_hierarchy_t hier, int timeout) { - MP_INFO(priv, "dvb_tune %s Freq: %lu\n", + MP_INFO(priv, "Tuning to %s frequency %lu Hz\n", get_dvb_delsys(delsys), (long unsigned int) freq); - dvb_state_t* state = priv->state; + dvb_state_t *state = priv->state; int ris = tune_it(priv, state->fe_fd, delsys, freq, srate, pol, stream_id, specInv, diseqc, modulation, @@ -803,7 +646,7 @@ int dvb_tune(dvb_priv_t *priv, unsigned int delsys, bandWidth, LP_CodeRate, hier, timeout); if (ris != 0) - MP_INFO(priv, "dvb_tune, TUNING FAILED\n"); + MP_INFO(priv, "Tuning failed\n"); return ris == 0; } |