From: Jaroslav Kysela Date: Sat, 28 Nov 2015 21:14:20 +0000 (+0100) Subject: mpegts mux: add original provider network name, fixes #3311 X-Git-Tag: v4.2.1~1450 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b1d974ed60c9d64a0ddc9270778a7c7776942c52;p=thirdparty%2Ftvheadend.git mpegts mux: add original provider network name, fixes #3311 --- diff --git a/src/input/mpegts.h b/src/input/mpegts.h index 46a252fc5..b854c3253 100644 --- a/src/input/mpegts.h +++ b/src/input/mpegts.h @@ -405,7 +405,8 @@ struct mpegts_mux */ LIST_ENTRY(mpegts_mux) mm_network_link; - mpegts_network_t *mm_network; + mpegts_network_t *mm_network; + char *mm_provider_network_name; uint16_t mm_onid; uint16_t mm_tsid; @@ -863,6 +864,7 @@ 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_crid_authority ( mpegts_mux_t *mm, const char *defauth ); diff --git a/src/input/mpegts/dvb_psi.c b/src/input/mpegts/dvb_psi.c index 21c4183e9..537c2257d 100644 --- a/src/input/mpegts/dvb_psi.c +++ b/src/input/mpegts/dvb_psi.c @@ -1394,6 +1394,8 @@ dvb_nit_callback save |= mpegts_network_set_network_name(mn, name); if (save) mn->mn_config_save(mn); + if (mpegts_mux_set_network_name(mm, name)) + mm->mm_config_save(mm); } /* Transport length */ diff --git a/src/input/mpegts/mpegts_mux.c b/src/input/mpegts/mpegts_mux.c index efe717e15..e47a35a1b 100644 --- a/src/input/mpegts/mpegts_mux.c +++ b/src/input/mpegts/mpegts_mux.c @@ -529,6 +529,13 @@ const idclass_t mpegts_mux_class = .opts = PO_RDONLY | PO_NOSAVE, .get = mpegts_mux_class_get_name, }, + { + .type = PT_STR, + .id = "pnetwork_name", + .name = N_("Provider network name"), + .off = offsetof(mpegts_mux_t, mm_provider_network_name), + .opts = PO_RDONLY | PO_HIDDEN, + }, { .type = PT_U16, .id = "onid", @@ -1138,6 +1145,16 @@ mpegts_mux_save ( mpegts_mux_t *mm, htsmsg_t *c ) idnode_save(&mm->mm_id, c); } +int +mpegts_mux_set_network_name ( mpegts_mux_t *mm, const char *name ) +{ + if (strcmp(mm->mm_provider_network_name ?: "", name ?: "")) { + tvh_str_update(&mm->mm_provider_network_name, name ?: ""); + return 1; + } + return 0; +} + int mpegts_mux_set_onid ( mpegts_mux_t *mm, uint16_t onid ) {