]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
Add support for tuning ATSC adapters
authorAndreas Öman <andreas@lonelycoder.com>
Wed, 26 Aug 2009 20:39:44 +0000 (20:39 +0000)
committerAndreas Öman <andreas@lonelycoder.com>
Wed, 26 Aug 2009 20:39:44 +0000 (20:39 +0000)
debian/changelog
src/dvb/dvb_adapter.c
src/dvb/dvb_multiplex.c
src/dvb/dvb_preconf.c
src/linuxtv_muxes.h

index 351feb9bc2943a4104663cda388f15ce3a9c9322..572cbb208ef93b74663714d7d9204e4536a692b6 100644 (file)
@@ -3,6 +3,8 @@ hts-tvheadend (2.6) hts; urgency=low
   * Tvheadend's DVB service probe will now let the channel join tags based
     on the service type and DVB provider name.
 
+  * Add support for tuning on ATSC adapters
+
 hts-tvheadend (2.5) hts; urgency=low
 
   * If a previosly detected DVB adapter was not present during startup,
index 61aabf74d7ba0347bc8eab8fcb3bf5395afa2454..9e5f005b8bea41892bd8937c1c683cb7b694b410 100644 (file)
@@ -500,12 +500,6 @@ dvb_adapter_input_dvr(void *aux)
   }
 }
 
-static struct strtab deliverysystemtab[] = {
-  {"DVB-S", FE_QPSK},
-  {"DVB-T", FE_OFDM},
-  {"DVB-C", FE_QAM},
-};
-  
 
 /**
  *
@@ -548,7 +542,7 @@ dvb_adapter_build_msg(th_dvb_adapter_t *tda)
   htsmsg_add_str(m, "devicename", tda->tda_fe_info->name);
 
   htsmsg_add_str(m, "deliverySystem", 
-                val2str(tda->tda_type, deliverysystemtab) ?: "");
+                dvb_adaptertype_to_str(tda->tda_type) ?: "");
 
   htsmsg_add_u32(m, "satConf", tda->tda_sat);
 
index 509351d2f8981c9eb956973382acdc6008d713b4..48b318c9ef8085a4e6f6aca0b22e27f1fc43cbb1 100644 (file)
@@ -391,6 +391,10 @@ dvb_mux_save(th_dvb_mux_instance_t *tdmi)
     break;
 
   case FE_ATSC:
+    htsmsg_add_u32(m, "symbol_rate", f->u.qam.symbol_rate);
+
+    htsmsg_add_str(m, "constellation", 
+           val2str(f->u.vsb.modulation, qamtab));
     break;
   }
 
@@ -494,6 +498,15 @@ tdmi_create_by_msg(th_dvb_adapter_t *tda, htsmsg_t *m, const char *identifier)
     break;
 
   case FE_ATSC:
+    htsmsg_get_u32(m, "symbol_rate", &f.u.qam.symbol_rate);
+    if(f.u.qam.symbol_rate == 0)
+      return "Invalid symbol rate";
+
+    s = htsmsg_get_str(m, "constellation");
+    if(s == NULL || (r = str2val(s, qamtab)) < 0)
+      return "Invalid VSB constellation";
+    f.u.vsb.modulation = r;
+
     break;
   }
 
@@ -645,6 +658,10 @@ dvb_mux_modulation(char *buf, size_t size, th_dvb_mux_instance_t *tdmi)
            val2str(f->u.qam.modulation, qamtab),
            f->u.qpsk.symbol_rate / 1000);
    break;
+   
+  case FE_ATSC:
+    snprintf(buf, size, "%s", val2str(f->u.vsb.modulation, qamtab));
+    break;
   default:
     snprintf(buf, size, "Unknown");
     break;
@@ -782,6 +799,16 @@ dvb_mux_add_by_params(th_dvb_adapter_t *tda,
     f.u.qpsk.symbol_rate = symrate;
     f.u.qpsk.fec_inner   = fec;
     break;
+
+  case FE_ATSC:
+    f.frequency = freq;
+
+    if(!val2str(constellation, qamtab))
+      return "Invalid VSB constellation";
+
+    f.u.vsb.modulation = constellation;
+    break;
+
   }
 
   if(satconf != NULL) {
index 787225e376952afcb2fe19ad89ba07f52597380f..8c4352858c0cfa1726f3aeed1edfffb4f12631d5 100644 (file)
@@ -90,6 +90,10 @@ dvb_mux_preconf_add(th_dvb_adapter_t *tda, const struct mux *m, int num,
       f.u.qam.modulation  = m->constellation;
       f.u.qam.fec_inner   = m->fec;
       break;
+
+    case FE_ATSC:
+      f.u.vsb.modulation  = m->constellation;
+      break;
     }
       
     dvb_mux_create(tda, &f, polarisation, sc, 0xffff, NULL, source, 1, NULL);
@@ -125,6 +129,10 @@ dvb_mux_preconf_add_network(th_dvb_adapter_t *tda, const char *id,
     r = regions_DVBT;
     nr = sizeof(regions_DVBT) / sizeof(regions_DVBT[0]);
     break;
+  case FE_ATSC:
+    r = regions_ATSC;
+    nr = sizeof(regions_ATSC) / sizeof(regions_ATSC[0]);
+    break;
   default:
     return -1;
   }
@@ -167,6 +175,10 @@ dvb_mux_preconf_get_node(int fetype, const char *node)
     r = regions_DVBT;
     nr = sizeof(regions_DVBT) / sizeof(regions_DVBT[0]);
     break;
+  case FE_ATSC:
+    r = regions_ATSC;
+    nr = sizeof(regions_ATSC) / sizeof(regions_ATSC[0]);
+    break;
   default:
     return NULL;
   }
index a45626a7cb14afd9a73960bd4f27832ec15a10dd..e4a6c3f5a4945e9a6719fb9bfd6ecdce7294ba5b 100644 (file)
@@ -281,7 +281,7 @@ static const struct mux muxes_DVBS_AsiaSat2_C_100_5E[] = {
        {.freq = 3790000, .symrate = 2444000, .fec = 3, .polarisation = 'V'},
        {.freq = 3794000, .symrate = 4640000, .fec = 3, .polarisation = 'H'},
        {.freq = 3820000, .symrate = 27500000, .fec = 3, .polarisation = 'V'},
-       {.freq = 3840000, .symrate = 0, .fec = 3, .polarisation = '3'},
+       {.freq = 3840000, .symrate = 30000000, .fec = 3, .polarisation = 'H'},
        {.freq = 3880000, .symrate = 27500000, .fec = 3, .polarisation = 'H'},
        {.freq = 3960000, .symrate = 27500000, .fec = 3, .polarisation = 'H'},
        {.freq = 3980000, .symrate = 28100000, .fec = 3, .polarisation = 'V'},
@@ -2971,6 +2971,15 @@ static const struct mux muxes_DVBT_au_GoldCoast[] = {
        {.freq = 725500000, .bw = 1, .constellation = 3, .fechp = 3, .feclp = 0, .tmode = 1, .guard = 1, .hierarchy = 0},
  };
 
+static const struct mux muxes_DVBT_au_Hervey_Bay_Ghost_Hill[] = {
+       {.freq = 725500000, .bw = 1, .constellation = 3, .fechp = 3, .feclp = 0, .tmode = 1, .guard = 1, .hierarchy = 0},
+       {.freq = 746500000, .bw = 1, .constellation = 3, .fechp = 3, .feclp = 0, .tmode = 1, .guard = 1, .hierarchy = 0},
+       {.freq = 767625000, .bw = 1, .constellation = 3, .fechp = 3, .feclp = 0, .tmode = 1, .guard = 1, .hierarchy = 0},
+       {.freq = 809500000, .bw = 1, .constellation = 3, .fechp = 3, .feclp = 0, .tmode = 1, .guard = 1, .hierarchy = 0},
+       {.freq = 529500000, .bw = 1, .constellation = 3, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 2, .hierarchy = 0},
+       {.freq = 704500000, .bw = 1, .constellation = 3, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 2, .hierarchy = 0},
+ };
+
 static const struct mux muxes_DVBT_au_Hobart[] = {
        {.freq = 191500000, .bw = 1, .constellation = 3, .fechp = 3, .feclp = 0, .tmode = 1, .guard = 1, .hierarchy = 0},
        {.freq = 205500000, .bw = 1, .constellation = 3, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 2, .hierarchy = 0},
@@ -3054,6 +3063,13 @@ static const struct mux muxes_DVBT_au_SunshineCoast[] = {
        {.freq = 809500000, .bw = 1, .constellation = 3, .fechp = 3, .feclp = 0, .tmode = 1, .guard = 1, .hierarchy = 0},
  };
 
+static const struct mux muxes_DVBT_au_Sutherland[] = {
+       {.freq = 177500000, .bw = 1, .constellation = 3, .fechp = 3, .feclp = 0, .tmode = 1, .guard = 1, .hierarchy = 0},
+       {.freq = 219500000, .bw = 1, .constellation = 3, .fechp = 3, .feclp = 0, .tmode = 1, .guard = 1, .hierarchy = 0},
+       {.freq = 226500000, .bw = 1, .constellation = 3, .fechp = 3, .feclp = 0, .tmode = 1, .guard = 1, .hierarchy = 0},
+       {.freq = 571500000, .bw = 1, .constellation = 3, .fechp = 3, .feclp = 0, .tmode = 1, .guard = 1, .hierarchy = 0},
+ };
+
 static const struct mux muxes_DVBT_au_Sydney_Kings_Cross[] = {
        {.freq = 543500000, .bw = 1, .constellation = 3, .fechp = 3, .feclp = 0, .tmode = 1, .guard = 1, .hierarchy = 0},
        {.freq = 669500000, .bw = 1, .constellation = 3, .fechp = 3, .feclp = 0, .tmode = 1, .guard = 1, .hierarchy = 0},
@@ -3230,10 +3246,10 @@ static const struct mux muxes_DVBT_cz_Praha[] = {
  };
 
 static const struct mux muxes_DVBT_de_Baden_Wuerttemberg[] = {
-       {.freq = 482000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
+       {.freq = 474000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
+       {.freq = 482000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
        {.freq = 490000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
        {.freq = 514000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
-       {.freq = 522000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
        {.freq = 570000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
        {.freq = 618000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
        {.freq = 626000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
@@ -3242,14 +3258,13 @@ static const struct mux muxes_DVBT_de_Baden_Wuerttemberg[] = {
        {.freq = 698000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
        {.freq = 706000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
        {.freq = 722000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
-       {.freq = 730000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
        {.freq = 738000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
+       {.freq = 778000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
        {.freq = 786000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
  };
 
 static const struct mux muxes_DVBT_de_Bayern[] = {
-       {.freq = 184500000, .bw = 1, .constellation = 1, .fechp = 3, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
-       {.freq = 191500000, .bw = 1, .constellation = 1, .fechp = 3, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
+       {.freq = 191500000, .bw = 1, .constellation = 1, .fechp = 3, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
        {.freq = 212500000, .bw = 1, .constellation = 1, .fechp = 3, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
        {.freq = 490000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
        {.freq = 506000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
@@ -3261,6 +3276,7 @@ static const struct mux muxes_DVBT_de_Bayern[] = {
        {.freq = 578000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
        {.freq = 586000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
        {.freq = 594000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
+       {.freq = 618000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
        {.freq = 626000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
        {.freq = 642000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
        {.freq = 658000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
@@ -3268,6 +3284,7 @@ static const struct mux muxes_DVBT_de_Bayern[] = {
        {.freq = 674000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
        {.freq = 682000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
        {.freq = 690000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
+       {.freq = 698000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
        {.freq = 722000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
        {.freq = 730000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
        {.freq = 738000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
@@ -3307,18 +3324,12 @@ static const struct mux muxes_DVBT_de_Bremen[] = {
 
 static const struct mux muxes_DVBT_de_Hamburg[] = {
        {.freq = 490000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
-       {.freq = 490000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 2, .hierarchy = 0},
        {.freq = 530000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
        {.freq = 546000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
-       {.freq = 546000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 2, .hierarchy = 0},
        {.freq = 570000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
-       {.freq = 570000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 2, .hierarchy = 0},
        {.freq = 626000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
-       {.freq = 626000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 2, .hierarchy = 0},
        {.freq = 674000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
-       {.freq = 674000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 2, .hierarchy = 0},
        {.freq = 738000000, .bw = 0, .constellation = 3, .fechp = 1, .feclp = 0, .tmode = 1, .guard = 2, .hierarchy = 0},
-       {.freq = 738000000, .bw = 0, .constellation = 1, .fechp = 3, .feclp = 0, .tmode = 1, .guard = 2, .hierarchy = 0},
  };
 
 static const struct mux muxes_DVBT_de_Hessen[] = {
@@ -3349,7 +3360,7 @@ static const struct mux muxes_DVBT_de_Mecklenburg_Vorpommern[] = {
        {.freq = 626000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
        {.freq = 674000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
        {.freq = 714000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
-       {.freq = 738000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
+       {.freq = 730000000, .bw = 0, .constellation = 1, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
  };
 
 static const struct mux muxes_DVBT_de_Niedersachsen[] = {
@@ -3544,6 +3555,15 @@ static const struct mux muxes_DVBT_es_Asturias[] = {
        {.freq = 858000000, .bw = 0, .constellation = 3, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
  };
 
+static const struct mux muxes_DVBT_es_BaixoMinho[] = {
+       {.freq = 834000000, .bw = 0, .constellation = 3, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
+       {.freq = 842000000, .bw = 0, .constellation = 3, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
+       {.freq = 850000000, .bw = 0, .constellation = 3, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
+       {.freq = 858000000, .bw = 0, .constellation = 3, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
+       {.freq = 770000000, .bw = 0, .constellation = 3, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
+       {.freq = 810000000, .bw = 0, .constellation = 3, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
+ };
+
 static const struct mux muxes_DVBT_es_Bilbao[] = {
        {.freq = 842000000, .bw = 0, .constellation = 3, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
        {.freq = 858000000, .bw = 0, .constellation = 3, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
@@ -3724,6 +3744,15 @@ static const struct mux muxes_DVBT_es_Vilamarxant[] = {
        {.freq = 602000000, .bw = 0, .constellation = 3, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
  };
 
+static const struct mux muxes_DVBT_es_Vitoria_Gasteiz[] = {
+       {.freq = 770000000, .bw = 0, .constellation = 3, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
+       {.freq = 810000000, .bw = 0, .constellation = 3, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
+       {.freq = 834000000, .bw = 0, .constellation = 3, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
+       {.freq = 842000000, .bw = 0, .constellation = 3, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
+       {.freq = 850000000, .bw = 0, .constellation = 3, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
+       {.freq = 858000000, .bw = 0, .constellation = 3, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
+ };
+
 static const struct mux muxes_DVBT_es_Zaragoza[] = {
        {.freq = 794000000, .bw = 0, .constellation = 3, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
        {.freq = 834000000, .bw = 0, .constellation = 3, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 3, .hierarchy = 0},
@@ -5544,6 +5573,13 @@ static const struct mux muxes_DVBT_fr_Roanne[] = {
        {.freq = 522000000, .bw = 0, .constellation = 3, .fechp = 9, .feclp = 0, .tmode = 1, .guard = 4, .hierarchy = 0},
  };
 
+static const struct mux muxes_DVBT_fr_Rochefort_sur_mer[] = {
+       {.freq = 498166000, .bw = 0, .constellation = 3, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 0, .hierarchy = 0},
+       {.freq = 738166000, .bw = 0, .constellation = 3, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 0, .hierarchy = 0},
+       {.freq = 602166000, .bw = 0, .constellation = 3, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 0, .hierarchy = 0},
+       {.freq = 778167000, .bw = 0, .constellation = 3, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 0, .hierarchy = 0},
+ };
+
 static const struct mux muxes_DVBT_fr_Rouen[] = {
        {.freq = 538000000, .bw = 0, .constellation = 3, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 0, .hierarchy = 0},
        {.freq = 474000000, .bw = 0, .constellation = 3, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 0, .hierarchy = 0},
@@ -5719,6 +5755,21 @@ static const struct mux muxes_DVBT_hr_Zagreb[] = {
        {.freq = 522000000, .bw = 0, .constellation = 6, .fechp = 3, .feclp = 0, .tmode = 1, .guard = 0, .hierarchy = 0},
  };
 
+static const struct mux muxes_DVBT_hu_Budapest[] = {
+       {.freq = 746000000, .bw = 0, .constellation = 3, .fechp = 3, .feclp = 0, .tmode = 1, .guard = 2, .hierarchy = 0},
+       {.freq = 802000000, .bw = 0, .constellation = 3, .fechp = 3, .feclp = 0, .tmode = 1, .guard = 2, .hierarchy = 0},
+ };
+
+static const struct mux muxes_DVBT_hu_Kabhegy[] = {
+       {.freq = 794000000, .bw = 0, .constellation = 3, .fechp = 3, .feclp = 0, .tmode = 1, .guard = 2, .hierarchy = 0},
+       {.freq = 818000000, .bw = 0, .constellation = 3, .fechp = 3, .feclp = 0, .tmode = 1, .guard = 2, .hierarchy = 0},
+ };
+
+static const struct mux muxes_DVBT_hu_Szentes[] = {
+       {.freq = 786000000, .bw = 0, .constellation = 3, .fechp = 3, .feclp = 0, .tmode = 1, .guard = 2, .hierarchy = 0},
+       {.freq = 826000000, .bw = 0, .constellation = 3, .fechp = 3, .feclp = 0, .tmode = 1, .guard = 2, .hierarchy = 0},
+ };
+
 static const struct mux muxes_DVBT_is_Reykjavik[] = {
        {.freq = 682000000, .bw = 0, .constellation = 3, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 0, .hierarchy = 0},
        {.freq = 690000000, .bw = 0, .constellation = 3, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 0, .hierarchy = 0},
@@ -6850,6 +6901,7 @@ static const struct mux muxes_DVBT_se_Ornskoldsvik_As[] = {
        {.freq = 474000000, .bw = 0, .constellation = 3, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 2, .hierarchy = 0},
        {.freq = 578000000, .bw = 0, .constellation = 3, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 2, .hierarchy = 0},
        {.freq = 506000000, .bw = 0, .constellation = 3, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 2, .hierarchy = 0},
+       {.freq = 642000000, .bw = 0, .constellation = 3, .fechp = 2, .feclp = 0, .tmode = 1, .guard = 2, .hierarchy = 0},
  };
 
 static const struct mux muxes_DVBT_se_Oskarshamn[] = {
@@ -8064,6 +8116,11 @@ static const struct mux muxes_DVBT_vn_Hanoi[] = {
        {.freq = 578000000, .bw = 0, .constellation = 3, .fechp = 3, .feclp = 0, .tmode = 0, .guard = 0, .hierarchy = 0},
  };
 
+static const struct mux muxes_DVBT_vn_Thaibinh[] = {
+       {.freq = 626000000, .bw = 0, .constellation = 3, .fechp = 3, .feclp = 0, .tmode = 0, .guard = 0, .hierarchy = 0},
+       {.freq = 634000000, .bw = 0, .constellation = 3, .fechp = 3, .feclp = 0, .tmode = 0, .guard = 0, .hierarchy = 0},
+ };
+
 static const struct network networks_DVBT_ad[] = {
        {
                .name = "Andorra",
@@ -8118,6 +8175,11 @@ static const struct network networks_DVBT_au[] = {
                .muxes = muxes_DVBT_au_GoldCoast,
                .nmuxes = sizeof(muxes_DVBT_au_GoldCoast) / sizeof(struct mux),
        },
+       {
+               .name = "Hervey Bay-Ghost Hill",
+               .muxes = muxes_DVBT_au_Hervey_Bay_Ghost_Hill,
+               .nmuxes = sizeof(muxes_DVBT_au_Hervey_Bay_Ghost_Hill) / sizeof(struct mux),
+       },
        {
                .name = "Hobart",
                .muxes = muxes_DVBT_au_Hobart,
@@ -8168,6 +8230,11 @@ static const struct network networks_DVBT_au[] = {
                .muxes = muxes_DVBT_au_SunshineCoast,
                .nmuxes = sizeof(muxes_DVBT_au_SunshineCoast) / sizeof(struct mux),
        },
+       {
+               .name = "Sutherland",
+               .muxes = muxes_DVBT_au_Sutherland,
+               .nmuxes = sizeof(muxes_DVBT_au_Sutherland) / sizeof(struct mux),
+       },
        {
                .name = "Sydney Kings Cross",
                .muxes = muxes_DVBT_au_Sydney_Kings_Cross,
@@ -9699,6 +9766,11 @@ static const struct network networks_DVBT_fr[] = {
                .muxes = muxes_DVBT_fr_Roanne,
                .nmuxes = sizeof(muxes_DVBT_fr_Roanne) / sizeof(struct mux),
        },
+       {
+               .name = "Rochefort-sur-mer",
+               .muxes = muxes_DVBT_fr_Rochefort_sur_mer,
+               .nmuxes = sizeof(muxes_DVBT_fr_Rochefort_sur_mer) / sizeof(struct mux),
+       },
        {
                .name = "Rouen",
                .muxes = muxes_DVBT_fr_Rouen,
@@ -9895,6 +9967,24 @@ static const struct network networks_DVBT_hk[] = {
        },
 };
 
+static const struct network networks_DVBT_hu[] = {
+       {
+               .name = "Budapest",
+               .muxes = muxes_DVBT_hu_Budapest,
+               .nmuxes = sizeof(muxes_DVBT_hu_Budapest) / sizeof(struct mux),
+       },
+       {
+               .name = "Kabhegy",
+               .muxes = muxes_DVBT_hu_Kabhegy,
+               .nmuxes = sizeof(muxes_DVBT_hu_Kabhegy) / sizeof(struct mux),
+       },
+       {
+               .name = "Szentes",
+               .muxes = muxes_DVBT_hu_Szentes,
+               .nmuxes = sizeof(muxes_DVBT_hu_Szentes) / sizeof(struct mux),
+       },
+};
+
 static const struct network networks_DVBT_is[] = {
        {
                .name = "Reykjavik",
@@ -10133,6 +10223,11 @@ static const struct network networks_DVBT_es[] = {
                .muxes = muxes_DVBT_es_Asturias,
                .nmuxes = sizeof(muxes_DVBT_es_Asturias) / sizeof(struct mux),
        },
+       {
+               .name = "BaixoMinho",
+               .muxes = muxes_DVBT_es_BaixoMinho,
+               .nmuxes = sizeof(muxes_DVBT_es_BaixoMinho) / sizeof(struct mux),
+       },
        {
                .name = "Bilbao",
                .muxes = muxes_DVBT_es_Bilbao,
@@ -10228,6 +10323,11 @@ static const struct network networks_DVBT_es[] = {
                .muxes = muxes_DVBT_es_Vilamarxant,
                .nmuxes = sizeof(muxes_DVBT_es_Vilamarxant) / sizeof(struct mux),
        },
+       {
+               .name = "Vitoria-Gasteiz",
+               .muxes = muxes_DVBT_es_Vitoria_Gasteiz,
+               .nmuxes = sizeof(muxes_DVBT_es_Vitoria_Gasteiz) / sizeof(struct mux),
+       },
        {
                .name = "Zaragoza",
                .muxes = muxes_DVBT_es_Zaragoza,
@@ -11778,6 +11878,11 @@ static const struct network networks_DVBT_vn[] = {
                .muxes = muxes_DVBT_vn_Hanoi,
                .nmuxes = sizeof(muxes_DVBT_vn_Hanoi) / sizeof(struct mux),
        },
+       {
+               .name = "Thaibinh",
+               .muxes = muxes_DVBT_vn_Thaibinh,
+               .nmuxes = sizeof(muxes_DVBT_vn_Thaibinh) / sizeof(struct mux),
+       },
 };
 
 static const struct region regions_DVBT[] = {
@@ -11841,6 +11946,11 @@ static const struct region regions_DVBT[] = {
                .networks = networks_DVBT_hk,
                .nnetworks = sizeof(networks_DVBT_hk) / sizeof(struct network),
        },
+       {
+               .name = "Hungary",
+               .networks = networks_DVBT_hu,
+               .nnetworks = sizeof(networks_DVBT_hu) / sizeof(struct network),
+       },
        {
                .name = "Iceland",
                .networks = networks_DVBT_is,
@@ -12805,3 +12915,913 @@ static const struct region regions_DVBC[] = {
        },
 };
 
+static const struct mux muxes_ATSC_us_ATSC_center_frequencies_8VSB[] = {
+       { .freq = 57028615, .constellation = 7},
+       { .freq = 63028615, .constellation = 7},
+       { .freq = 69028615, .constellation = 7},
+       { .freq = 79028615, .constellation = 7},
+       { .freq = 85028615, .constellation = 7},
+       { .freq = 177028615, .constellation = 7},
+       { .freq = 183028615, .constellation = 7},
+       { .freq = 189028615, .constellation = 7},
+       { .freq = 195028615, .constellation = 7},
+       { .freq = 201028615, .constellation = 7},
+       { .freq = 207028615, .constellation = 7},
+       { .freq = 213028615, .constellation = 7},
+       { .freq = 473028615, .constellation = 7},
+       { .freq = 479028615, .constellation = 7},
+       { .freq = 485028615, .constellation = 7},
+       { .freq = 491028615, .constellation = 7},
+       { .freq = 497028615, .constellation = 7},
+       { .freq = 503028615, .constellation = 7},
+       { .freq = 509028615, .constellation = 7},
+       { .freq = 515028615, .constellation = 7},
+       { .freq = 521028615, .constellation = 7},
+       { .freq = 527028615, .constellation = 7},
+       { .freq = 533028615, .constellation = 7},
+       { .freq = 539028615, .constellation = 7},
+       { .freq = 545028615, .constellation = 7},
+       { .freq = 551028615, .constellation = 7},
+       { .freq = 557028615, .constellation = 7},
+       { .freq = 563028615, .constellation = 7},
+       { .freq = 569028615, .constellation = 7},
+       { .freq = 575028615, .constellation = 7},
+       { .freq = 581028615, .constellation = 7},
+       { .freq = 587028615, .constellation = 7},
+       { .freq = 593028615, .constellation = 7},
+       { .freq = 599028615, .constellation = 7},
+       { .freq = 605028615, .constellation = 7},
+       { .freq = 611028615, .constellation = 7},
+       { .freq = 617028615, .constellation = 7},
+       { .freq = 623028615, .constellation = 7},
+       { .freq = 629028615, .constellation = 7},
+       { .freq = 635028615, .constellation = 7},
+       { .freq = 641028615, .constellation = 7},
+       { .freq = 647028615, .constellation = 7},
+       { .freq = 653028615, .constellation = 7},
+       { .freq = 659028615, .constellation = 7},
+       { .freq = 665028615, .constellation = 7},
+       { .freq = 671028615, .constellation = 7},
+       { .freq = 677028615, .constellation = 7},
+       { .freq = 683028615, .constellation = 7},
+       { .freq = 689028615, .constellation = 7},
+       { .freq = 695028615, .constellation = 7},
+       { .freq = 701028615, .constellation = 7},
+       { .freq = 707028615, .constellation = 7},
+       { .freq = 713028615, .constellation = 7},
+       { .freq = 719028615, .constellation = 7},
+       { .freq = 725028615, .constellation = 7},
+       { .freq = 731028615, .constellation = 7},
+       { .freq = 737028615, .constellation = 7},
+       { .freq = 743028615, .constellation = 7},
+       { .freq = 749028615, .constellation = 7},
+       { .freq = 755028615, .constellation = 7},
+       { .freq = 761028615, .constellation = 7},
+       { .freq = 767028615, .constellation = 7},
+       { .freq = 773028615, .constellation = 7},
+       { .freq = 779028615, .constellation = 7},
+       { .freq = 785028615, .constellation = 7},
+       { .freq = 791028615, .constellation = 7},
+       { .freq = 797028615, .constellation = 7},
+       { .freq = 803028615, .constellation = 7},
+};
+
+static const struct mux muxes_ATSC_us_Cable_EIA_542_HRC_center_frequencies_QAM256[] = {
+       { .freq = 73753600, .constellation = 5},
+       { .freq = 55752700, .constellation = 5},
+       { .freq = 61753000, .constellation = 5},
+       { .freq = 67753300, .constellation = 5},
+       { .freq = 77753900, .constellation = 5},
+       { .freq = 83754200, .constellation = 5},
+       { .freq = 175758700, .constellation = 5},
+       { .freq = 181759000, .constellation = 5},
+       { .freq = 187759300, .constellation = 5},
+       { .freq = 193759600, .constellation = 5},
+       { .freq = 199759900, .constellation = 5},
+       { .freq = 205760200, .constellation = 5},
+       { .freq = 211760500, .constellation = 5},
+       { .freq = 121756000, .constellation = 5},
+       { .freq = 127756300, .constellation = 5},
+       { .freq = 133756600, .constellation = 5},
+       { .freq = 139756900, .constellation = 5},
+       { .freq = 145757200, .constellation = 5},
+       { .freq = 151757500, .constellation = 5},
+       { .freq = 157757800, .constellation = 5},
+       { .freq = 163758100, .constellation = 5},
+       { .freq = 169758400, .constellation = 5},
+       { .freq = 217760800, .constellation = 5},
+       { .freq = 223761100, .constellation = 5},
+       { .freq = 229761400, .constellation = 5},
+       { .freq = 235761700, .constellation = 5},
+       { .freq = 241762000, .constellation = 5},
+       { .freq = 247762300, .constellation = 5},
+       { .freq = 253762600, .constellation = 5},
+       { .freq = 259762900, .constellation = 5},
+       { .freq = 265763200, .constellation = 5},
+       { .freq = 271763500, .constellation = 5},
+       { .freq = 277763800, .constellation = 5},
+       { .freq = 283764100, .constellation = 5},
+       { .freq = 289764400, .constellation = 5},
+       { .freq = 295764700, .constellation = 5},
+       { .freq = 301765000, .constellation = 5},
+       { .freq = 307765300, .constellation = 5},
+       { .freq = 313765600, .constellation = 5},
+       { .freq = 319765900, .constellation = 5},
+       { .freq = 325766200, .constellation = 5},
+       { .freq = 331766500, .constellation = 5},
+       { .freq = 337766800, .constellation = 5},
+       { .freq = 343767100, .constellation = 5},
+       { .freq = 349767400, .constellation = 5},
+       { .freq = 355767700, .constellation = 5},
+       { .freq = 361768000, .constellation = 5},
+       { .freq = 367768300, .constellation = 5},
+       { .freq = 373768600, .constellation = 5},
+       { .freq = 379768900, .constellation = 5},
+       { .freq = 385769200, .constellation = 5},
+       { .freq = 391769500, .constellation = 5},
+       { .freq = 397769800, .constellation = 5},
+       { .freq = 403770100, .constellation = 5},
+       { .freq = 409770400, .constellation = 5},
+       { .freq = 415770700, .constellation = 5},
+       { .freq = 421771000, .constellation = 5},
+       { .freq = 427771300, .constellation = 5},
+       { .freq = 433771600, .constellation = 5},
+       { .freq = 439771900, .constellation = 5},
+       { .freq = 445772200, .constellation = 5},
+       { .freq = 451772500, .constellation = 5},
+       { .freq = 457772800, .constellation = 5},
+       { .freq = 463773100, .constellation = 5},
+       { .freq = 469773400, .constellation = 5},
+       { .freq = 475773700, .constellation = 5},
+       { .freq = 481774000, .constellation = 5},
+       { .freq = 487774300, .constellation = 5},
+       { .freq = 493774600, .constellation = 5},
+       { .freq = 499774900, .constellation = 5},
+       { .freq = 505775200, .constellation = 5},
+       { .freq = 511775500, .constellation = 5},
+       { .freq = 517775800, .constellation = 5},
+       { .freq = 523776100, .constellation = 5},
+       { .freq = 529776400, .constellation = 5},
+       { .freq = 535776700, .constellation = 5},
+       { .freq = 541777000, .constellation = 5},
+       { .freq = 547777300, .constellation = 5},
+       { .freq = 553777600, .constellation = 5},
+       { .freq = 559777900, .constellation = 5},
+       { .freq = 565778200, .constellation = 5},
+       { .freq = 571778500, .constellation = 5},
+       { .freq = 577778800, .constellation = 5},
+       { .freq = 583779100, .constellation = 5},
+       { .freq = 589779400, .constellation = 5},
+       { .freq = 595779700, .constellation = 5},
+       { .freq = 601780000, .constellation = 5},
+       { .freq = 607780300, .constellation = 5},
+       { .freq = 613780600, .constellation = 5},
+       { .freq = 619780900, .constellation = 5},
+       { .freq = 625781200, .constellation = 5},
+       { .freq = 631781500, .constellation = 5},
+       { .freq = 637781800, .constellation = 5},
+       { .freq = 643782100, .constellation = 5},
+       { .freq = 91754500, .constellation = 5},
+       { .freq = 97754800, .constellation = 5},
+       { .freq = 103755100, .constellation = 5},
+       { .freq = 109775000, .constellation = 5},
+       { .freq = 115775000, .constellation = 5},
+       { .freq = 649782400, .constellation = 5},
+       { .freq = 655782700, .constellation = 5},
+       { .freq = 661783000, .constellation = 5},
+       { .freq = 667783300, .constellation = 5},
+       { .freq = 673783600, .constellation = 5},
+       { .freq = 679783900, .constellation = 5},
+       { .freq = 685784200, .constellation = 5},
+       { .freq = 691784500, .constellation = 5},
+       { .freq = 697784800, .constellation = 5},
+       { .freq = 703785100, .constellation = 5},
+       { .freq = 709785400, .constellation = 5},
+       { .freq = 715785700, .constellation = 5},
+       { .freq = 721786000, .constellation = 5},
+       { .freq = 727786300, .constellation = 5},
+       { .freq = 733786600, .constellation = 5},
+       { .freq = 739786900, .constellation = 5},
+       { .freq = 745787200, .constellation = 5},
+       { .freq = 751787500, .constellation = 5},
+       { .freq = 757787800, .constellation = 5},
+       { .freq = 763788100, .constellation = 5},
+       { .freq = 769788400, .constellation = 5},
+       { .freq = 775788700, .constellation = 5},
+       { .freq = 781789000, .constellation = 5},
+       { .freq = 787789300, .constellation = 5},
+       { .freq = 793789600, .constellation = 5},
+       { .freq = 799789900, .constellation = 5},
+};
+
+static const struct mux muxes_ATSC_us_Cable_EIA_542_IRC_center_frequencies_QAM256[] = {
+       { .freq = 75012500, .constellation = 5},
+       { .freq = 57025000, .constellation = 5},
+       { .freq = 63012500, .constellation = 5},
+       { .freq = 69012500, .constellation = 5},
+       { .freq = 79012500, .constellation = 5},
+       { .freq = 85012500, .constellation = 5},
+       { .freq = 177012500, .constellation = 5},
+       { .freq = 183012500, .constellation = 5},
+       { .freq = 189012500, .constellation = 5},
+       { .freq = 195012500, .constellation = 5},
+       { .freq = 201012500, .constellation = 5},
+       { .freq = 207012500, .constellation = 5},
+       { .freq = 213012500, .constellation = 5},
+       { .freq = 123012500, .constellation = 5},
+       { .freq = 129012500, .constellation = 5},
+       { .freq = 135012500, .constellation = 5},
+       { .freq = 141012500, .constellation = 5},
+       { .freq = 147012500, .constellation = 5},
+       { .freq = 153012500, .constellation = 5},
+       { .freq = 159012500, .constellation = 5},
+       { .freq = 165012500, .constellation = 5},
+       { .freq = 171012500, .constellation = 5},
+       { .freq = 219012500, .constellation = 5},
+       { .freq = 225012500, .constellation = 5},
+       { .freq = 231012500, .constellation = 5},
+       { .freq = 237012500, .constellation = 5},
+       { .freq = 243012500, .constellation = 5},
+       { .freq = 249012500, .constellation = 5},
+       { .freq = 255012500, .constellation = 5},
+       { .freq = 261012500, .constellation = 5},
+       { .freq = 267012500, .constellation = 5},
+       { .freq = 273012500, .constellation = 5},
+       { .freq = 279012500, .constellation = 5},
+       { .freq = 285012500, .constellation = 5},
+       { .freq = 291012500, .constellation = 5},
+       { .freq = 297012500, .constellation = 5},
+       { .freq = 303012500, .constellation = 5},
+       { .freq = 309012500, .constellation = 5},
+       { .freq = 315012500, .constellation = 5},
+       { .freq = 321012500, .constellation = 5},
+       { .freq = 327012500, .constellation = 5},
+       { .freq = 333025000, .constellation = 5},
+       { .freq = 339012500, .constellation = 5},
+       { .freq = 345012500, .constellation = 5},
+       { .freq = 351012500, .constellation = 5},
+       { .freq = 357012500, .constellation = 5},
+       { .freq = 363012500, .constellation = 5},
+       { .freq = 369012500, .constellation = 5},
+       { .freq = 375012500, .constellation = 5},
+       { .freq = 381012500, .constellation = 5},
+       { .freq = 387012500, .constellation = 5},
+       { .freq = 393012500, .constellation = 5},
+       { .freq = 399012500, .constellation = 5},
+       { .freq = 405012500, .constellation = 5},
+       { .freq = 411012500, .constellation = 5},
+       { .freq = 417012500, .constellation = 5},
+       { .freq = 423012500, .constellation = 5},
+       { .freq = 429012500, .constellation = 5},
+       { .freq = 435012500, .constellation = 5},
+       { .freq = 441012500, .constellation = 5},
+       { .freq = 447012500, .constellation = 5},
+       { .freq = 453012500, .constellation = 5},
+       { .freq = 459012500, .constellation = 5},
+       { .freq = 465012500, .constellation = 5},
+       { .freq = 471012500, .constellation = 5},
+       { .freq = 477012500, .constellation = 5},
+       { .freq = 483012500, .constellation = 5},
+       { .freq = 489012500, .constellation = 5},
+       { .freq = 495012500, .constellation = 5},
+       { .freq = 501012500, .constellation = 5},
+       { .freq = 507012500, .constellation = 5},
+       { .freq = 513012500, .constellation = 5},
+       { .freq = 519012500, .constellation = 5},
+       { .freq = 525012500, .constellation = 5},
+       { .freq = 531012500, .constellation = 5},
+       { .freq = 537012500, .constellation = 5},
+       { .freq = 543012500, .constellation = 5},
+       { .freq = 549012500, .constellation = 5},
+       { .freq = 555012500, .constellation = 5},
+       { .freq = 561012500, .constellation = 5},
+       { .freq = 567012500, .constellation = 5},
+       { .freq = 573012500, .constellation = 5},
+       { .freq = 579012500, .constellation = 5},
+       { .freq = 585012500, .constellation = 5},
+       { .freq = 591012500, .constellation = 5},
+       { .freq = 597012500, .constellation = 5},
+       { .freq = 603012500, .constellation = 5},
+       { .freq = 609012500, .constellation = 5},
+       { .freq = 615012500, .constellation = 5},
+       { .freq = 621012500, .constellation = 5},
+       { .freq = 627012500, .constellation = 5},
+       { .freq = 633012500, .constellation = 5},
+       { .freq = 639012500, .constellation = 5},
+       { .freq = 645012500, .constellation = 5},
+       { .freq = 93012500, .constellation = 5},
+       { .freq = 99012500, .constellation = 5},
+       { .freq = 105012500, .constellation = 5},
+       { .freq = 111012500, .constellation = 5},
+       { .freq = 117012500, .constellation = 5},
+       { .freq = 651012500, .constellation = 5},
+       { .freq = 657012500, .constellation = 5},
+       { .freq = 663012500, .constellation = 5},
+       { .freq = 669012500, .constellation = 5},
+       { .freq = 675012500, .constellation = 5},
+       { .freq = 681012500, .constellation = 5},
+       { .freq = 687012500, .constellation = 5},
+       { .freq = 693012500, .constellation = 5},
+       { .freq = 699012500, .constellation = 5},
+       { .freq = 705012500, .constellation = 5},
+       { .freq = 711012500, .constellation = 5},
+       { .freq = 717012500, .constellation = 5},
+       { .freq = 723012500, .constellation = 5},
+       { .freq = 729012500, .constellation = 5},
+       { .freq = 735012500, .constellation = 5},
+       { .freq = 741012500, .constellation = 5},
+       { .freq = 747012500, .constellation = 5},
+       { .freq = 753012500, .constellation = 5},
+       { .freq = 759012500, .constellation = 5},
+       { .freq = 765012500, .constellation = 5},
+       { .freq = 771012500, .constellation = 5},
+       { .freq = 777012500, .constellation = 5},
+       { .freq = 783012500, .constellation = 5},
+       { .freq = 789012500, .constellation = 5},
+       { .freq = 795012500, .constellation = 5},
+       { .freq = 801012500, .constellation = 5},
+};
+
+static const struct mux muxes_ATSC_us_Cable_HRC_center_frequencies_QAM256[] = {
+       { .freq = 73753600, .constellation = 5},
+       { .freq = 55752700, .constellation = 5},
+       { .freq = 61753000, .constellation = 5},
+       { .freq = 67753300, .constellation = 5},
+       { .freq = 77753900, .constellation = 5},
+       { .freq = 83754200, .constellation = 5},
+       { .freq = 175758700, .constellation = 5},
+       { .freq = 181759000, .constellation = 5},
+       { .freq = 187759300, .constellation = 5},
+       { .freq = 193759600, .constellation = 5},
+       { .freq = 199759900, .constellation = 5},
+       { .freq = 205760200, .constellation = 5},
+       { .freq = 211760500, .constellation = 5},
+       { .freq = 121756000, .constellation = 5},
+       { .freq = 127756300, .constellation = 5},
+       { .freq = 133756600, .constellation = 5},
+       { .freq = 139756900, .constellation = 5},
+       { .freq = 145757200, .constellation = 5},
+       { .freq = 151757500, .constellation = 5},
+       { .freq = 157757800, .constellation = 5},
+       { .freq = 163758100, .constellation = 5},
+       { .freq = 169758400, .constellation = 5},
+       { .freq = 217760800, .constellation = 5},
+       { .freq = 223761100, .constellation = 5},
+       { .freq = 229761400, .constellation = 5},
+       { .freq = 235761700, .constellation = 5},
+       { .freq = 241762000, .constellation = 5},
+       { .freq = 247762300, .constellation = 5},
+       { .freq = 253762600, .constellation = 5},
+       { .freq = 259762900, .constellation = 5},
+       { .freq = 265763200, .constellation = 5},
+       { .freq = 271763500, .constellation = 5},
+       { .freq = 277763800, .constellation = 5},
+       { .freq = 283764100, .constellation = 5},
+       { .freq = 289764400, .constellation = 5},
+       { .freq = 295764700, .constellation = 5},
+       { .freq = 301765000, .constellation = 5},
+       { .freq = 307765300, .constellation = 5},
+       { .freq = 313765600, .constellation = 5},
+       { .freq = 319765900, .constellation = 5},
+       { .freq = 325766200, .constellation = 5},
+       { .freq = 331766500, .constellation = 5},
+       { .freq = 337766800, .constellation = 5},
+       { .freq = 343767100, .constellation = 5},
+       { .freq = 349767400, .constellation = 5},
+       { .freq = 355767700, .constellation = 5},
+       { .freq = 361768000, .constellation = 5},
+       { .freq = 367768300, .constellation = 5},
+       { .freq = 373768600, .constellation = 5},
+       { .freq = 379768900, .constellation = 5},
+       { .freq = 385769200, .constellation = 5},
+       { .freq = 391769500, .constellation = 5},
+       { .freq = 397769800, .constellation = 5},
+       { .freq = 403770100, .constellation = 5},
+       { .freq = 409770400, .constellation = 5},
+       { .freq = 415770700, .constellation = 5},
+       { .freq = 421771000, .constellation = 5},
+       { .freq = 427771300, .constellation = 5},
+       { .freq = 433771600, .constellation = 5},
+       { .freq = 439771900, .constellation = 5},
+       { .freq = 445772200, .constellation = 5},
+       { .freq = 451772500, .constellation = 5},
+       { .freq = 457772800, .constellation = 5},
+       { .freq = 463773100, .constellation = 5},
+       { .freq = 469773400, .constellation = 5},
+       { .freq = 475773700, .constellation = 5},
+       { .freq = 481774000, .constellation = 5},
+       { .freq = 487774300, .constellation = 5},
+       { .freq = 493774600, .constellation = 5},
+       { .freq = 499774900, .constellation = 5},
+       { .freq = 505775200, .constellation = 5},
+       { .freq = 511775500, .constellation = 5},
+       { .freq = 517775800, .constellation = 5},
+       { .freq = 523776100, .constellation = 5},
+       { .freq = 529776400, .constellation = 5},
+       { .freq = 535776700, .constellation = 5},
+       { .freq = 541777000, .constellation = 5},
+       { .freq = 547777300, .constellation = 5},
+       { .freq = 553777600, .constellation = 5},
+       { .freq = 559777900, .constellation = 5},
+       { .freq = 565778200, .constellation = 5},
+       { .freq = 571778500, .constellation = 5},
+       { .freq = 577778800, .constellation = 5},
+       { .freq = 583779100, .constellation = 5},
+       { .freq = 589779400, .constellation = 5},
+       { .freq = 595779700, .constellation = 5},
+       { .freq = 601780000, .constellation = 5},
+       { .freq = 607780300, .constellation = 5},
+       { .freq = 613780600, .constellation = 5},
+       { .freq = 619780900, .constellation = 5},
+       { .freq = 625781200, .constellation = 5},
+       { .freq = 631781500, .constellation = 5},
+       { .freq = 637781800, .constellation = 5},
+       { .freq = 643782100, .constellation = 5},
+       { .freq = 91754500, .constellation = 5},
+       { .freq = 97754800, .constellation = 5},
+       { .freq = 103755100, .constellation = 5},
+       { .freq = 109755400, .constellation = 5},
+       { .freq = 115755700, .constellation = 5},
+       { .freq = 649782400, .constellation = 5},
+       { .freq = 655782700, .constellation = 5},
+       { .freq = 661783000, .constellation = 5},
+       { .freq = 667783300, .constellation = 5},
+       { .freq = 673783600, .constellation = 5},
+       { .freq = 679783900, .constellation = 5},
+       { .freq = 685784200, .constellation = 5},
+       { .freq = 691784500, .constellation = 5},
+       { .freq = 697784800, .constellation = 5},
+       { .freq = 703785100, .constellation = 5},
+       { .freq = 709785400, .constellation = 5},
+       { .freq = 715785700, .constellation = 5},
+       { .freq = 721786000, .constellation = 5},
+       { .freq = 727786300, .constellation = 5},
+       { .freq = 733786600, .constellation = 5},
+       { .freq = 739786900, .constellation = 5},
+       { .freq = 745787200, .constellation = 5},
+       { .freq = 751787500, .constellation = 5},
+       { .freq = 757787800, .constellation = 5},
+       { .freq = 763788100, .constellation = 5},
+       { .freq = 769788400, .constellation = 5},
+       { .freq = 775788700, .constellation = 5},
+       { .freq = 781789000, .constellation = 5},
+       { .freq = 787789300, .constellation = 5},
+       { .freq = 793789600, .constellation = 5},
+       { .freq = 799789900, .constellation = 5},
+};
+
+static const struct mux muxes_ATSC_us_Cable_IRC_center_frequencies_QAM256[] = {
+       { .freq = 75000000, .constellation = 5},
+       { .freq = 57000000, .constellation = 5},
+       { .freq = 63000000, .constellation = 5},
+       { .freq = 69000000, .constellation = 5},
+       { .freq = 79000000, .constellation = 5},
+       { .freq = 85000000, .constellation = 5},
+       { .freq = 177000000, .constellation = 5},
+       { .freq = 183000000, .constellation = 5},
+       { .freq = 189000000, .constellation = 5},
+       { .freq = 195000000, .constellation = 5},
+       { .freq = 201000000, .constellation = 5},
+       { .freq = 207000000, .constellation = 5},
+       { .freq = 213000000, .constellation = 5},
+       { .freq = 123000000, .constellation = 5},
+       { .freq = 129000000, .constellation = 5},
+       { .freq = 135000000, .constellation = 5},
+       { .freq = 141000000, .constellation = 5},
+       { .freq = 147000000, .constellation = 5},
+       { .freq = 153000000, .constellation = 5},
+       { .freq = 159000000, .constellation = 5},
+       { .freq = 165000000, .constellation = 5},
+       { .freq = 171000000, .constellation = 5},
+       { .freq = 219000000, .constellation = 5},
+       { .freq = 225000000, .constellation = 5},
+       { .freq = 231000000, .constellation = 5},
+       { .freq = 237000000, .constellation = 5},
+       { .freq = 243000000, .constellation = 5},
+       { .freq = 249000000, .constellation = 5},
+       { .freq = 255000000, .constellation = 5},
+       { .freq = 261000000, .constellation = 5},
+       { .freq = 267000000, .constellation = 5},
+       { .freq = 273000000, .constellation = 5},
+       { .freq = 279000000, .constellation = 5},
+       { .freq = 285000000, .constellation = 5},
+       { .freq = 291000000, .constellation = 5},
+       { .freq = 297000000, .constellation = 5},
+       { .freq = 303000000, .constellation = 5},
+       { .freq = 309000000, .constellation = 5},
+       { .freq = 315000000, .constellation = 5},
+       { .freq = 321000000, .constellation = 5},
+       { .freq = 327000000, .constellation = 5},
+       { .freq = 333000000, .constellation = 5},
+       { .freq = 339000000, .constellation = 5},
+       { .freq = 345000000, .constellation = 5},
+       { .freq = 351000000, .constellation = 5},
+       { .freq = 357000000, .constellation = 5},
+       { .freq = 363000000, .constellation = 5},
+       { .freq = 369000000, .constellation = 5},
+       { .freq = 375000000, .constellation = 5},
+       { .freq = 381000000, .constellation = 5},
+       { .freq = 387000000, .constellation = 5},
+       { .freq = 393000000, .constellation = 5},
+       { .freq = 399000000, .constellation = 5},
+       { .freq = 405000000, .constellation = 5},
+       { .freq = 411000000, .constellation = 5},
+       { .freq = 417000000, .constellation = 5},
+       { .freq = 423000000, .constellation = 5},
+       { .freq = 429000000, .constellation = 5},
+       { .freq = 435000000, .constellation = 5},
+       { .freq = 441000000, .constellation = 5},
+       { .freq = 447000000, .constellation = 5},
+       { .freq = 453000000, .constellation = 5},
+       { .freq = 459000000, .constellation = 5},
+       { .freq = 465000000, .constellation = 5},
+       { .freq = 471000000, .constellation = 5},
+       { .freq = 477000000, .constellation = 5},
+       { .freq = 483000000, .constellation = 5},
+       { .freq = 489000000, .constellation = 5},
+       { .freq = 495000000, .constellation = 5},
+       { .freq = 501000000, .constellation = 5},
+       { .freq = 507000000, .constellation = 5},
+       { .freq = 513000000, .constellation = 5},
+       { .freq = 519000000, .constellation = 5},
+       { .freq = 525000000, .constellation = 5},
+       { .freq = 531000000, .constellation = 5},
+       { .freq = 537000000, .constellation = 5},
+       { .freq = 543000000, .constellation = 5},
+       { .freq = 549000000, .constellation = 5},
+       { .freq = 555000000, .constellation = 5},
+       { .freq = 561000000, .constellation = 5},
+       { .freq = 567000000, .constellation = 5},
+       { .freq = 573000000, .constellation = 5},
+       { .freq = 579000000, .constellation = 5},
+       { .freq = 585000000, .constellation = 5},
+       { .freq = 591000000, .constellation = 5},
+       { .freq = 597000000, .constellation = 5},
+       { .freq = 603000000, .constellation = 5},
+       { .freq = 609000000, .constellation = 5},
+       { .freq = 615000000, .constellation = 5},
+       { .freq = 621000000, .constellation = 5},
+       { .freq = 627000000, .constellation = 5},
+       { .freq = 633000000, .constellation = 5},
+       { .freq = 639000000, .constellation = 5},
+       { .freq = 645000000, .constellation = 5},
+       { .freq = 93000000, .constellation = 5},
+       { .freq = 99000000, .constellation = 5},
+       { .freq = 105000000, .constellation = 5},
+       { .freq = 111000000, .constellation = 5},
+       { .freq = 117000000, .constellation = 5},
+       { .freq = 651000000, .constellation = 5},
+       { .freq = 657000000, .constellation = 5},
+       { .freq = 663000000, .constellation = 5},
+       { .freq = 669000000, .constellation = 5},
+       { .freq = 675000000, .constellation = 5},
+       { .freq = 681000000, .constellation = 5},
+       { .freq = 687000000, .constellation = 5},
+       { .freq = 693000000, .constellation = 5},
+       { .freq = 699000000, .constellation = 5},
+       { .freq = 705000000, .constellation = 5},
+       { .freq = 711000000, .constellation = 5},
+       { .freq = 717000000, .constellation = 5},
+       { .freq = 723000000, .constellation = 5},
+       { .freq = 729000000, .constellation = 5},
+       { .freq = 735000000, .constellation = 5},
+       { .freq = 741000000, .constellation = 5},
+       { .freq = 747000000, .constellation = 5},
+       { .freq = 753000000, .constellation = 5},
+       { .freq = 759000000, .constellation = 5},
+       { .freq = 765000000, .constellation = 5},
+       { .freq = 771000000, .constellation = 5},
+       { .freq = 777000000, .constellation = 5},
+       { .freq = 783000000, .constellation = 5},
+       { .freq = 789000000, .constellation = 5},
+       { .freq = 795000000, .constellation = 5},
+       { .freq = 801000000, .constellation = 5},
+};
+
+static const struct mux muxes_ATSC_us_Cable_Standard_center_frequencies_QAM256[] = {
+       { .freq = 57000000, .constellation = 5},
+       { .freq = 63000000, .constellation = 5},
+       { .freq = 69000000, .constellation = 5},
+       { .freq = 79000000, .constellation = 5},
+       { .freq = 85000000, .constellation = 5},
+       { .freq = 177000000, .constellation = 5},
+       { .freq = 183000000, .constellation = 5},
+       { .freq = 189000000, .constellation = 5},
+       { .freq = 195000000, .constellation = 5},
+       { .freq = 201000000, .constellation = 5},
+       { .freq = 207000000, .constellation = 5},
+       { .freq = 213000000, .constellation = 5},
+       { .freq = 123012500, .constellation = 5},
+       { .freq = 129012500, .constellation = 5},
+       { .freq = 135012500, .constellation = 5},
+       { .freq = 141000000, .constellation = 5},
+       { .freq = 147000000, .constellation = 5},
+       { .freq = 153000000, .constellation = 5},
+       { .freq = 159000000, .constellation = 5},
+       { .freq = 165000000, .constellation = 5},
+       { .freq = 171000000, .constellation = 5},
+       { .freq = 219000000, .constellation = 5},
+       { .freq = 225000000, .constellation = 5},
+       { .freq = 231012500, .constellation = 5},
+       { .freq = 237012500, .constellation = 5},
+       { .freq = 243012500, .constellation = 5},
+       { .freq = 249012500, .constellation = 5},
+       { .freq = 255012500, .constellation = 5},
+       { .freq = 261012500, .constellation = 5},
+       { .freq = 267012500, .constellation = 5},
+       { .freq = 273012500, .constellation = 5},
+       { .freq = 279012500, .constellation = 5},
+       { .freq = 285012500, .constellation = 5},
+       { .freq = 291012500, .constellation = 5},
+       { .freq = 297012500, .constellation = 5},
+       { .freq = 303012500, .constellation = 5},
+       { .freq = 309012500, .constellation = 5},
+       { .freq = 315012500, .constellation = 5},
+       { .freq = 321012500, .constellation = 5},
+       { .freq = 327012500, .constellation = 5},
+       { .freq = 333025000, .constellation = 5},
+       { .freq = 339012500, .constellation = 5},
+       { .freq = 345012500, .constellation = 5},
+       { .freq = 351012500, .constellation = 5},
+       { .freq = 357012500, .constellation = 5},
+       { .freq = 363012500, .constellation = 5},
+       { .freq = 369012500, .constellation = 5},
+       { .freq = 375012500, .constellation = 5},
+       { .freq = 381012500, .constellation = 5},
+       { .freq = 387012500, .constellation = 5},
+       { .freq = 393012500, .constellation = 5},
+       { .freq = 399012500, .constellation = 5},
+       { .freq = 405000000, .constellation = 5},
+       { .freq = 411000000, .constellation = 5},
+       { .freq = 417000000, .constellation = 5},
+       { .freq = 423000000, .constellation = 5},
+       { .freq = 429000000, .constellation = 5},
+       { .freq = 435000000, .constellation = 5},
+       { .freq = 441000000, .constellation = 5},
+       { .freq = 447000000, .constellation = 5},
+       { .freq = 453000000, .constellation = 5},
+       { .freq = 459000000, .constellation = 5},
+       { .freq = 465000000, .constellation = 5},
+       { .freq = 471000000, .constellation = 5},
+       { .freq = 477000000, .constellation = 5},
+       { .freq = 483000000, .constellation = 5},
+       { .freq = 489000000, .constellation = 5},
+       { .freq = 495000000, .constellation = 5},
+       { .freq = 501000000, .constellation = 5},
+       { .freq = 507000000, .constellation = 5},
+       { .freq = 513000000, .constellation = 5},
+       { .freq = 519000000, .constellation = 5},
+       { .freq = 525000000, .constellation = 5},
+       { .freq = 531000000, .constellation = 5},
+       { .freq = 537000000, .constellation = 5},
+       { .freq = 543000000, .constellation = 5},
+       { .freq = 549000000, .constellation = 5},
+       { .freq = 555000000, .constellation = 5},
+       { .freq = 561000000, .constellation = 5},
+       { .freq = 567000000, .constellation = 5},
+       { .freq = 573000000, .constellation = 5},
+       { .freq = 579000000, .constellation = 5},
+       { .freq = 585000000, .constellation = 5},
+       { .freq = 591000000, .constellation = 5},
+       { .freq = 597000000, .constellation = 5},
+       { .freq = 603000000, .constellation = 5},
+       { .freq = 609000000, .constellation = 5},
+       { .freq = 615000000, .constellation = 5},
+       { .freq = 621000000, .constellation = 5},
+       { .freq = 627000000, .constellation = 5},
+       { .freq = 633000000, .constellation = 5},
+       { .freq = 639000000, .constellation = 5},
+       { .freq = 645000000, .constellation = 5},
+       { .freq = 93000000, .constellation = 5},
+       { .freq = 99000000, .constellation = 5},
+       { .freq = 105000000, .constellation = 5},
+       { .freq = 111025000, .constellation = 5},
+       { .freq = 117025000, .constellation = 5},
+       { .freq = 651000000, .constellation = 5},
+       { .freq = 657000000, .constellation = 5},
+       { .freq = 663000000, .constellation = 5},
+       { .freq = 669000000, .constellation = 5},
+       { .freq = 675000000, .constellation = 5},
+       { .freq = 681000000, .constellation = 5},
+       { .freq = 687000000, .constellation = 5},
+       { .freq = 693000000, .constellation = 5},
+       { .freq = 699000000, .constellation = 5},
+       { .freq = 705000000, .constellation = 5},
+       { .freq = 711000000, .constellation = 5},
+       { .freq = 717000000, .constellation = 5},
+       { .freq = 723000000, .constellation = 5},
+       { .freq = 729000000, .constellation = 5},
+       { .freq = 735000000, .constellation = 5},
+       { .freq = 741000000, .constellation = 5},
+       { .freq = 747000000, .constellation = 5},
+       { .freq = 753000000, .constellation = 5},
+       { .freq = 759000000, .constellation = 5},
+       { .freq = 765000000, .constellation = 5},
+       { .freq = 771000000, .constellation = 5},
+       { .freq = 777000000, .constellation = 5},
+       { .freq = 783000000, .constellation = 5},
+       { .freq = 789000000, .constellation = 5},
+       { .freq = 795000000, .constellation = 5},
+       { .freq = 801000000, .constellation = 5},
+};
+
+static const struct mux muxes_ATSC_us_CA_SF_Bay_Area[] = {
+       { .freq = 503000000, .constellation = 7},
+       { .freq = 551000000, .constellation = 7},
+       { .freq = 563000000, .constellation = 7},
+       { .freq = 593000000, .constellation = 7},
+       { .freq = 623000000, .constellation = 7},
+       { .freq = 635000000, .constellation = 7},
+       { .freq = 647000000, .constellation = 7},
+       { .freq = 659000000, .constellation = 7},
+       { .freq = 683000000, .constellation = 7},
+       { .freq = 689000000, .constellation = 7},
+       { .freq = 701000000, .constellation = 7},
+       { .freq = 725000000, .constellation = 7},
+       { .freq = 731000000, .constellation = 7},
+};
+
+static const struct mux muxes_ATSC_us_ID_Boise[] = {
+       { .freq = 195000000, .constellation = 7},
+       { .freq = 213000000, .constellation = 7},
+       { .freq = 515000000, .constellation = 7},
+       { .freq = 533000000, .constellation = 7},
+       { .freq = 545000000, .constellation = 7},
+       { .freq = 557000000, .constellation = 7},
+};
+
+static const struct mux muxes_ATSC_us_MA_Boston[] = {
+       { .freq = 503000000, .constellation = 7},
+       { .freq = 509000000, .constellation = 7},
+       { .freq = 527000000, .constellation = 7},
+       { .freq = 563000000, .constellation = 7},
+       { .freq = 569000000, .constellation = 7},
+       { .freq = 575000000, .constellation = 7},
+       { .freq = 581000000, .constellation = 7},
+       { .freq = 623000000, .constellation = 7},
+       { .freq = 635000000, .constellation = 7},
+       { .freq = 641000000, .constellation = 7},
+       { .freq = 647000000, .constellation = 7},
+};
+
+static const struct mux muxes_ATSC_us_MI_Lansing[] = {
+       { .freq = 617000000, .constellation = 7},
+       { .freq = 695000000, .constellation = 7},
+       { .freq = 719000000, .constellation = 7},
+       { .freq = 731000000, .constellation = 7},
+       { .freq = 743000000, .constellation = 7},
+};
+
+static const struct mux muxes_ATSC_us_NTSC_center_frequencies_8VSB[] = {
+       { .freq = 57000000, .constellation = 7},
+       { .freq = 63000000, .constellation = 7},
+       { .freq = 69000000, .constellation = 7},
+       { .freq = 79000000, .constellation = 7},
+       { .freq = 85000000, .constellation = 7},
+       { .freq = 177000000, .constellation = 7},
+       { .freq = 183000000, .constellation = 7},
+       { .freq = 189000000, .constellation = 7},
+       { .freq = 195000000, .constellation = 7},
+       { .freq = 201000000, .constellation = 7},
+       { .freq = 207000000, .constellation = 7},
+       { .freq = 213000000, .constellation = 7},
+       { .freq = 473000000, .constellation = 7},
+       { .freq = 479000000, .constellation = 7},
+       { .freq = 485000000, .constellation = 7},
+       { .freq = 491000000, .constellation = 7},
+       { .freq = 497000000, .constellation = 7},
+       { .freq = 503000000, .constellation = 7},
+       { .freq = 509000000, .constellation = 7},
+       { .freq = 515000000, .constellation = 7},
+       { .freq = 521000000, .constellation = 7},
+       { .freq = 527000000, .constellation = 7},
+       { .freq = 533000000, .constellation = 7},
+       { .freq = 539000000, .constellation = 7},
+       { .freq = 545000000, .constellation = 7},
+       { .freq = 551000000, .constellation = 7},
+       { .freq = 557000000, .constellation = 7},
+       { .freq = 563000000, .constellation = 7},
+       { .freq = 569000000, .constellation = 7},
+       { .freq = 575000000, .constellation = 7},
+       { .freq = 581000000, .constellation = 7},
+       { .freq = 587000000, .constellation = 7},
+       { .freq = 593000000, .constellation = 7},
+       { .freq = 599000000, .constellation = 7},
+       { .freq = 605000000, .constellation = 7},
+       { .freq = 611000000, .constellation = 7},
+       { .freq = 617000000, .constellation = 7},
+       { .freq = 623000000, .constellation = 7},
+       { .freq = 629000000, .constellation = 7},
+       { .freq = 635000000, .constellation = 7},
+       { .freq = 641000000, .constellation = 7},
+       { .freq = 647000000, .constellation = 7},
+       { .freq = 653000000, .constellation = 7},
+       { .freq = 659000000, .constellation = 7},
+       { .freq = 665000000, .constellation = 7},
+       { .freq = 671000000, .constellation = 7},
+       { .freq = 677000000, .constellation = 7},
+       { .freq = 683000000, .constellation = 7},
+       { .freq = 689000000, .constellation = 7},
+       { .freq = 695000000, .constellation = 7},
+       { .freq = 701000000, .constellation = 7},
+       { .freq = 707000000, .constellation = 7},
+       { .freq = 713000000, .constellation = 7},
+       { .freq = 719000000, .constellation = 7},
+       { .freq = 725000000, .constellation = 7},
+       { .freq = 731000000, .constellation = 7},
+       { .freq = 737000000, .constellation = 7},
+       { .freq = 743000000, .constellation = 7},
+       { .freq = 749000000, .constellation = 7},
+       { .freq = 755000000, .constellation = 7},
+       { .freq = 761000000, .constellation = 7},
+       { .freq = 767000000, .constellation = 7},
+       { .freq = 773000000, .constellation = 7},
+       { .freq = 779000000, .constellation = 7},
+       { .freq = 785000000, .constellation = 7},
+       { .freq = 791000000, .constellation = 7},
+       { .freq = 797000000, .constellation = 7},
+       { .freq = 803000000, .constellation = 7},
+};
+
+static const struct mux muxes_ATSC_us_PA_Philadelphia[] = {
+       { .freq = 575000000, .constellation = 7},
+       { .freq = 581000000, .constellation = 7},
+       { .freq = 593000000, .constellation = 7},
+       { .freq = 647000000, .constellation = 7},
+       { .freq = 713000000, .constellation = 7},
+       { .freq = 773000000, .constellation = 7},
+       { .freq = 785000000, .constellation = 7},
+       { .freq = 791000000, .constellation = 7},
+};
+
+static const struct network networks_ATSC_us[] = {
+       {
+               .name = "ATSC-center-frequencies-8VSB",
+               .muxes = muxes_ATSC_us_ATSC_center_frequencies_8VSB,
+               .nmuxes = sizeof(muxes_ATSC_us_ATSC_center_frequencies_8VSB) / sizeof(struct mux),
+       },
+       {
+               .name = "CA-SF-Bay-Area",
+               .muxes = muxes_ATSC_us_CA_SF_Bay_Area,
+               .nmuxes = sizeof(muxes_ATSC_us_CA_SF_Bay_Area) / sizeof(struct mux),
+       },
+       {
+               .name = "Cable-EIA-542-HRC-center-frequencies-QAM256",
+               .muxes = muxes_ATSC_us_Cable_EIA_542_HRC_center_frequencies_QAM256,
+               .nmuxes = sizeof(muxes_ATSC_us_Cable_EIA_542_HRC_center_frequencies_QAM256) / sizeof(struct mux),
+       },
+       {
+               .name = "Cable-EIA-542-IRC-center frequencies-QAM256",
+               .muxes = muxes_ATSC_us_Cable_EIA_542_IRC_center_frequencies_QAM256,
+               .nmuxes = sizeof(muxes_ATSC_us_Cable_EIA_542_IRC_center_frequencies_QAM256) / sizeof(struct mux),
+       },
+       {
+               .name = "Cable-HRC-center-frequencies-QAM256",
+               .muxes = muxes_ATSC_us_Cable_HRC_center_frequencies_QAM256,
+               .nmuxes = sizeof(muxes_ATSC_us_Cable_HRC_center_frequencies_QAM256) / sizeof(struct mux),
+       },
+       {
+               .name = "Cable-IRC-center-frequencies-QAM256",
+               .muxes = muxes_ATSC_us_Cable_IRC_center_frequencies_QAM256,
+               .nmuxes = sizeof(muxes_ATSC_us_Cable_IRC_center_frequencies_QAM256) / sizeof(struct mux),
+       },
+       {
+               .name = "Cable-Standard-center-frequencies-QAM256",
+               .muxes = muxes_ATSC_us_Cable_Standard_center_frequencies_QAM256,
+               .nmuxes = sizeof(muxes_ATSC_us_Cable_Standard_center_frequencies_QAM256) / sizeof(struct mux),
+       },
+       {
+               .name = "ID-Boise",
+               .muxes = muxes_ATSC_us_ID_Boise,
+               .nmuxes = sizeof(muxes_ATSC_us_ID_Boise) / sizeof(struct mux),
+       },
+       {
+               .name = "MA-Boston",
+               .muxes = muxes_ATSC_us_MA_Boston,
+               .nmuxes = sizeof(muxes_ATSC_us_MA_Boston) / sizeof(struct mux),
+       },
+       {
+               .name = "MI-Lansing",
+               .muxes = muxes_ATSC_us_MI_Lansing,
+               .nmuxes = sizeof(muxes_ATSC_us_MI_Lansing) / sizeof(struct mux),
+       },
+       {
+               .name = "NTSC-center-frequencies-8VSB",
+               .muxes = muxes_ATSC_us_NTSC_center_frequencies_8VSB,
+               .nmuxes = sizeof(muxes_ATSC_us_NTSC_center_frequencies_8VSB) / sizeof(struct mux),
+       },
+       {
+               .name = "PA-Philadelphia",
+               .muxes = muxes_ATSC_us_PA_Philadelphia,
+               .nmuxes = sizeof(muxes_ATSC_us_PA_Philadelphia) / sizeof(struct mux),
+       },
+};
+
+static const struct region regions_ATSC[] = {
+       {
+               .name = "United States",
+               .networks = networks_ATSC_us,
+               .nnetworks = sizeof(networks_ATSC_us) / sizeof(struct network),
+       },
+};
+