From 18c9d1dcc279837cd2ab0fb1648ad33389b98a3f Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Mon, 2 Feb 2015 15:03:20 +0100 Subject: [PATCH] dvb: add DVB_NO_STREAM_ID_FILTER define --- src/input/mpegts/dvb.h | 2 ++ src/input/mpegts/linuxdvb/linuxdvb_frontend.c | 9 +++++---- src/input/mpegts/mpegts_mux_dvb.c | 5 +++-- src/input/mpegts/scanfile.c | 8 ++++---- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/input/mpegts/dvb.h b/src/input/mpegts/dvb.h index bdd5509e..555c3130 100644 --- a/src/input/mpegts/dvb.h +++ b/src/input/mpegts/dvb.h @@ -424,6 +424,8 @@ typedef enum dvb_polarisation { DVB_POLARISATION_OFF = 0x04 } dvb_polarisation_t; +#define DVB_NO_STREAM_ID_FILTER (-1) + typedef struct dvb_qpsk_config { dvb_polarisation_t polarisation; int orbital_pos; diff --git a/src/input/mpegts/linuxdvb/linuxdvb_frontend.c b/src/input/mpegts/linuxdvb/linuxdvb_frontend.c index fea9bea4..5303f908 100644 --- a/src/input/mpegts/linuxdvb/linuxdvb_frontend.c +++ b/src/input/mpegts/linuxdvb/linuxdvb_frontend.c @@ -1321,12 +1321,13 @@ linuxdvb_frontend_tune0 } else { S2CMD(DTV_PILOT, TR(pilot, pilot_tbl, PILOT_AUTO)); S2CMD(DTV_ROLLOFF, TR(rolloff, rolloff_tbl, ROLLOFF_AUTO)); - r = dmc->dmc_fe_stream_id != -1 ? (dmc->dmc_fe_stream_id & 0xFF) | - ((dmc->dmc_fe_pls_code & 0x3FFFF)<<8) | ((dmc->dmc_fe_pls_mode & 0x3)<<26) : dmc->dmc_fe_stream_id; + r = dmc->dmc_fe_stream_id != DVB_NO_STREAM_ID_FILTER ? (dmc->dmc_fe_stream_id & 0xFF) | + ((dmc->dmc_fe_pls_code & 0x3FFFF)<<8) | ((dmc->dmc_fe_pls_mode & 0x3)<<26) : + DVB_NO_STREAM_ID_FILTER; #if DVB_VER_ATLEAST(5,9) - S2CMD(DTV_STREAM_ID, r ); + S2CMD(DTV_STREAM_ID, r); #elif DVB_VER_ATLEAST(5,3) - S2CMD(DTV_DVBT2_PLP_ID, r); + S2CMD(DTV_DVBT2_PLP_ID, r); #endif } diff --git a/src/input/mpegts/mpegts_mux_dvb.c b/src/input/mpegts/mpegts_mux_dvb.c index 9decd58b..a5eb09e1 100644 --- a/src/input/mpegts/mpegts_mux_dvb.c +++ b/src/input/mpegts/mpegts_mux_dvb.c @@ -223,7 +223,7 @@ const idclass_t dvb_mux_dvbt_class = .id = "plp_id", .name = "PLP ID", .off = offsetof(dvb_mux_t, lm_tuning.dmc_fe_stream_id), - .def.i = 0, + .def.i = DVB_NO_STREAM_ID_FILTER, }, {} } @@ -544,7 +544,7 @@ const idclass_t dvb_mux_dvbs_class = .id = "stream_id", .name = "ISI", .off = offsetof(dvb_mux_t, lm_tuning.dmc_fe_stream_id), - .def.i = -1, + .def.i = DVB_NO_STREAM_ID_FILTER, }, { .type = PT_STR, @@ -712,6 +712,7 @@ dvb_mux_create0 /* Defaults */ lm->lm_tuning.dmc_fe_inversion = DVB_INVERSION_AUTO; lm->lm_tuning.dmc_fe_pilot = DVB_PILOT_AUTO; + lm->lm_tuning.dmc_fe_stream_id = DVB_NO_STREAM_ID_FILTER; /* Parent init and load config */ if (!(mm = mpegts_mux_create0(mm, idc, uuid, diff --git a/src/input/mpegts/scanfile.c b/src/input/mpegts/scanfile.c index 64df1d03..f285d6ae 100644 --- a/src/input/mpegts/scanfile.c +++ b/src/input/mpegts/scanfile.c @@ -142,7 +142,7 @@ scanfile_load_dvbt ( dvb_mux_conf_t *mux, const char *line ) r = sscanf(line+1, "%u %10s %10s %10s %10s %10s %10s %10s %u", &mux->dmc_fe_freq, bw, fec, fec2, qam, mode, guard, hier, &mux->dmc_fe_stream_id); - if(r == 8) mux->dmc_fe_stream_id = -1; else + if(r == 8) mux->dmc_fe_stream_id = DVB_NO_STREAM_ID_FILTER; else if(r != 9) return 1; } mux->dmc_fe_delsys = DVB_SYS_DVBT2; @@ -188,7 +188,7 @@ scanfile_load_dvbs ( dvb_mux_conf_t *mux, const char *line ) mux->dmc_fe_delsys = DVB_SYS_DVBS2; if ((mux->dmc_fe_rolloff = dvb_str2rolloff(rolloff)) == -1) return 1; if ((mux->dmc_fe_modulation = dvb_str2qam(qam)) == -1) return 1; - if (r < (4+v2+1)) mux->dmc_fe_stream_id = -1; + if (r < (4+v2+1)) mux->dmc_fe_stream_id = DVB_NO_STREAM_ID_FILTER; if (r < (4+v2+2)) mux->dmc_fe_pls_code = 1; if (r < (4+v2+3)) mux->dmc_fe_pls_mode = 0; } else { @@ -458,7 +458,7 @@ scanfile_load_dvbv5 ( scanfile_network_t *net, char *line, fb_file *fp ) if ((mux->dmc_fe_inversion = dvb_str2inver(x)) == -1) mux_fail(r, "wrong inversion '%s'", x); if (htsmsg_get_s32(l, "STREAM_ID", &mux->dmc_fe_stream_id)) - mux->dmc_fe_stream_id = -1; + mux->dmc_fe_stream_id = DVB_NO_STREAM_ID_FILTER; } else if (mux->dmc_fe_delsys == DVB_SYS_DVBS || mux->dmc_fe_delsys == DVB_SYS_DVBS2) { @@ -487,7 +487,7 @@ scanfile_load_dvbv5 ( scanfile_network_t *net, char *line, fb_file *fp ) if ((mux->dmc_fe_pilot = dvb_str2rolloff(x)) == -1) mux_fail(r, "wrong pilot '%s'", x); if (htsmsg_get_s32(l, "STREAM_ID", &r)) { - mux->dmc_fe_stream_id = -1; + mux->dmc_fe_stream_id = DVB_NO_STREAM_ID_FILTER; mux->dmc_fe_pls_mode = 0; mux->dmc_fe_pls_code = 1; }