From: Jaroslav Kysela Date: Sun, 30 Jun 2019 14:36:14 +0000 (+0200) Subject: mpegts: use 32-bit tsid/onid to define the NONE /unset/ state properly X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=bf7532d2c8548ae2b1519a014d619547a81508c5;p=thirdparty%2Ftvheadend.git mpegts: use 32-bit tsid/onid to define the NONE /unset/ state properly --- diff --git a/src/input/mpegts.h b/src/input/mpegts.h index 7eae6216b..9dda3baca 100644 --- a/src/input/mpegts.h +++ b/src/input/mpegts.h @@ -32,8 +32,8 @@ #include "mpegts/dvb.h" #include "subscriptions.h" -#define MPEGTS_ONID_NONE 0xFFFF -#define MPEGTS_TSID_NONE 0xFFFF +#define MPEGTS_ONID_NONE 0x10000 +#define MPEGTS_TSID_NONE 0x10000 #define MPEGTS_FULLMUX_PID 0x2000 #define MPEGTS_TABLES_PID 0x2001 #define MPEGTS_PID_NONE 0xFFFF @@ -357,7 +357,7 @@ struct mpegts_network int (*mn_bouquet_comment) (mpegts_network_t*, char *buf, size_t len); htsmsg_t * (*mn_config_save) (mpegts_network_t*, char *filename, size_t fsize); mpegts_mux_t* (*mn_create_mux) - (mpegts_network_t*, void *origin, uint16_t onid, uint16_t tsid, + (mpegts_network_t*, void *origin, uint32_t onid, uint32_t tsid, void *conf, int force); mpegts_service_t* (*mn_create_service) (mpegts_mux_t*, uint16_t sid, uint16_t pmt_pid); @@ -439,8 +439,8 @@ struct mpegts_mux mpegts_network_t *mm_network; char *mm_nicename; char *mm_provider_network_name; - uint16_t mm_onid; - uint16_t mm_tsid; + uint32_t mm_onid; + uint32_t mm_tsid; int mm_tsid_checks; int mm_tsid_accept_zero_value; tvhlog_limit_t mm_tsid_loglimit; @@ -852,7 +852,7 @@ static inline mpegts_network_t *mpegts_network_find(const char *uuid) { return idnode_find(uuid, &mpegts_network_class, NULL); } mpegts_mux_t *mpegts_network_find_mux - (mpegts_network_t *mn, uint16_t onid, uint16_t tsid, int check); + (mpegts_network_t *mn, uint32_t onid, uint32_t tsid, int check); mpegts_service_t *mpegts_network_find_active_service (mpegts_network_t *mn, uint16_t sid, mpegts_mux_t **rmm); @@ -876,7 +876,7 @@ void mpegts_network_wizard_create ( const char *clazz, htsmsg_t **nlist, const c mpegts_mux_t *mpegts_mux_create0 ( mpegts_mux_t *mm, const idclass_t *class, const char *uuid, - mpegts_network_t *mn, uint16_t onid, uint16_t tsid, + mpegts_network_t *mn, uint32_t onid, uint32_t tsid, htsmsg_t *conf ); #define mpegts_mux_create(type, uuid, mn, onid, tsid, conf)\ @@ -942,8 +942,8 @@ int mpegts_mux_instance_start int mpegts_mux_instance_weight ( mpegts_mux_instance_t *mmi ); int mpegts_mux_set_network_name ( mpegts_mux_t *mm, const char *name ); -int mpegts_mux_set_tsid ( mpegts_mux_t *mm, uint16_t tsid, int force ); -int mpegts_mux_set_onid ( mpegts_mux_t *mm, uint16_t onid ); +int mpegts_mux_set_tsid ( mpegts_mux_t *mm, uint32_t tsid, int force ); +int mpegts_mux_set_onid ( mpegts_mux_t *mm, uint32_t onid ); int mpegts_mux_set_crid_authority ( mpegts_mux_t *mm, const char *defauth ); int mpegts_mux_set_epg_module ( mpegts_mux_t *mm, const char *modid ); diff --git a/src/input/mpegts/mpegts_dvb.h b/src/input/mpegts/mpegts_dvb.h index 87f5faf71..9261a4859 100644 --- a/src/input/mpegts/mpegts_dvb.h +++ b/src/input/mpegts/mpegts_dvb.h @@ -72,7 +72,7 @@ dvb_network_t *dvb_network_create0 ( const char *uuid, const idclass_t *idc, htsmsg_t *conf ); dvb_mux_t *dvb_network_find_mux - ( dvb_network_t *ln, dvb_mux_conf_t *dmc, uint16_t onid, uint16_t tsid, int check, int approx_match ); + ( dvb_network_t *ln, dvb_mux_conf_t *dmc, uint32_t onid, uint32_t tsid, int check, int approx_match ); const idclass_t *dvb_network_mux_class(mpegts_network_t *mn); int dvb_network_get_orbital_pos(mpegts_network_t *mn); @@ -97,7 +97,7 @@ extern const idclass_t dvb_mux_dtmb_class; extern const idclass_t dvb_mux_dab_class; dvb_mux_t *dvb_mux_create0 - (dvb_network_t *ln, uint16_t onid, uint16_t tsid, + (dvb_network_t *ln, uint32_t onid, uint32_t tsid, const dvb_mux_conf_t *dmc, const char *uuid, htsmsg_t *conf); #define dvb_mux_create1(n, u, c)\ diff --git a/src/input/mpegts/mpegts_mux.c b/src/input/mpegts/mpegts_mux.c index 92dfe22fa..b5a313f91 100644 --- a/src/input/mpegts/mpegts_mux.c +++ b/src/input/mpegts/mpegts_mux.c @@ -590,7 +590,7 @@ const idclass_t mpegts_mux_class = .opts = PO_RDONLY | PO_HIDDEN | PO_EXPERT, }, { - .type = PT_U16, + .type = PT_U32, .id = "onid", .name = N_("Original network ID"), .desc = N_("The provider's network ID."), @@ -598,7 +598,7 @@ const idclass_t mpegts_mux_class = .off = offsetof(mpegts_mux_t, mm_onid), }, { - .type = PT_U16, + .type = PT_U32, .id = "tsid", .name = N_("Transport stream ID"), .desc = N_("The transport stream ID of the mux within the " @@ -1208,7 +1208,7 @@ again: mpegts_mux_t * mpegts_mux_create0 ( mpegts_mux_t *mm, const idclass_t *class, const char *uuid, - mpegts_network_t *mn, uint16_t onid, uint16_t tsid, htsmsg_t *conf ) + mpegts_network_t *mn, uint32_t onid, uint32_t tsid, htsmsg_t *conf ) { if (idnode_insert(&mm->mm_id, uuid, class, 0)) { if (uuid) @@ -1326,7 +1326,7 @@ mpegts_mux_set_network_name ( mpegts_mux_t *mm, const char *name ) } int -mpegts_mux_set_onid ( mpegts_mux_t *mm, uint16_t onid ) +mpegts_mux_set_onid ( mpegts_mux_t *mm, uint32_t onid ) { if (onid == mm->mm_onid) return 0; @@ -1337,7 +1337,7 @@ mpegts_mux_set_onid ( mpegts_mux_t *mm, uint16_t onid ) } int -mpegts_mux_set_tsid ( mpegts_mux_t *mm, uint16_t tsid, int force ) +mpegts_mux_set_tsid ( mpegts_mux_t *mm, uint32_t tsid, int force ) { if (tsid == mm->mm_tsid) return 0; diff --git a/src/input/mpegts/mpegts_mux_dvb.c b/src/input/mpegts/mpegts_mux_dvb.c index dfe8eac79..35c70fdf5 100644 --- a/src/input/mpegts/mpegts_mux_dvb.c +++ b/src/input/mpegts/mpegts_mux_dvb.c @@ -1171,7 +1171,7 @@ dvb_mux_delete ( mpegts_mux_t *mm, int delconf ) dvb_mux_t * dvb_mux_create0 ( dvb_network_t *ln, - uint16_t onid, uint16_t tsid, const dvb_mux_conf_t *dmc, + uint32_t onid, uint32_t tsid, const dvb_mux_conf_t *dmc, const char *uuid, htsmsg_t *conf ) { const idclass_t *idc; diff --git a/src/input/mpegts/mpegts_network.c b/src/input/mpegts/mpegts_network.c index 701bad779..0d52bebd7 100644 --- a/src/input/mpegts/mpegts_network.c +++ b/src/input/mpegts/mpegts_network.c @@ -438,7 +438,7 @@ mpegts_network_config_save static mpegts_mux_t * mpegts_network_create_mux - ( mpegts_network_t *mn, void *origin, uint16_t sid, uint16_t tsid, + ( mpegts_network_t *mn, void *origin, uint32_t sid, uint32_t tsid, void *aux, int force ) { return NULL; @@ -762,7 +762,7 @@ mpegts_network_build mpegts_mux_t * mpegts_network_find_mux - ( mpegts_network_t *mn, uint16_t onid, uint16_t tsid, int check ) + ( mpegts_network_t *mn, uint32_t onid, uint32_t tsid, int check ) { mpegts_mux_t *mm; diff --git a/src/input/mpegts/mpegts_network_dvb.c b/src/input/mpegts/mpegts_network_dvb.c index 698ca8aeb..da85abb08 100644 --- a/src/input/mpegts/mpegts_network_dvb.c +++ b/src/input/mpegts/mpegts_network_dvb.c @@ -533,7 +533,7 @@ dvb_network_check_orbital_pos ( int satpos1, int satpos2 ) dvb_mux_t * dvb_network_find_mux - ( dvb_network_t *ln, dvb_mux_conf_t *dmc, uint16_t onid, uint16_t tsid, int check, int approx_match ) + ( dvb_network_t *ln, dvb_mux_conf_t *dmc, uint32_t onid, uint32_t tsid, int check, int approx_match ) { int deltaf, deltar; mpegts_mux_t *mm, *mm_alt = NULL; @@ -676,7 +676,7 @@ dvb_network_mux_class static mpegts_mux_t * dvb_network_create_mux - ( mpegts_network_t *mn, void *origin, uint16_t onid, uint16_t tsid, + ( mpegts_network_t *mn, void *origin, uint32_t onid, uint32_t tsid, void *p, int force ) { int save = 0, satpos;