summaryrefslogtreecommitdiffstats
path: root/isdb-t/br-mg-Uberlandia
diff options
context:
space:
mode:
authorJonathan McCrohan <jmccrohan@gmail.com>2014-10-15 00:54:11 +0100
committerJonathan McCrohan <jmccrohan@gmail.com>2014-10-15 00:54:11 +0100
commit6a4826f9d965ba04738085602e80a867c78c81f1 (patch)
treebb1db1628dd2d2b68a813fa13288ae4797b6fd92 /isdb-t/br-mg-Uberlandia
parent869756da0627b14a6954f96aa5009d57a5e682c7 (diff)
downloaddtv-scan-tables-upstream/0+git20141009.d26b627.tar.gz
Imported Upstream version 0+git20141009.d26b627upstream/0+git20141009.d26b627
Diffstat (limited to 'isdb-t/br-mg-Uberlandia')
-rw-r--r--isdb-t/br-mg-Uberlandia177
1 files changed, 177 insertions, 0 deletions
diff --git a/isdb-t/br-mg-Uberlandia b/isdb-t/br-mg-Uberlandia
new file mode 100644
index 0000000..ef180db
--- /dev/null
+++ b/isdb-t/br-mg-Uberlandia
@@ -0,0 +1,177 @@
+# Channel table for Uberlândia - MG - Brazil
+# Source: http://portalbsd.com.br/novo/terrestres_channels.php?channels=30
+
+# Physical channel 17
+[Band Triângulo]
+ DELIVERY_SYSTEM = ISDBT
+ BANDWIDTH_HZ = 6000000
+ FREQUENCY = 491142857
+ INVERSION = AUTO
+ GUARD_INTERVAL = AUTO
+ TRANSMISSION_MODE = AUTO
+ INVERSION = AUTO
+ GUARD_INTERVAL = AUTO
+ TRANSMISSION_MODE = AUTO
+ ISDBT_LAYER_ENABLED = 7
+ ISDBT_SOUND_BROADCASTING = 0
+ ISDBT_SB_SUBCHANNEL_ID = 0
+ ISDBT_SB_SEGMENT_IDX = 0
+ ISDBT_SB_SEGMENT_COUNT = 0
+ ISDBT_LAYERA_FEC = AUTO
+ ISDBT_LAYERA_MODULATION = QAM/AUTO
+ ISDBT_LAYERA_SEGMENT_COUNT = 0
+ ISDBT_LAYERA_TIME_INTERLEAVING = 0
+ ISDBT_LAYERB_FEC = AUTO
+ ISDBT_LAYERB_MODULATION = QAM/AUTO
+ ISDBT_LAYERB_SEGMENT_COUNT = 0
+ ISDBT_LAYERB_TIME_INTERLEAVING = 0
+ ISDBT_LAYERC_FEC = AUTO
+ ISDBT_LAYERC_MODULATION = QAM/AUTO
+ ISDBT_LAYERC_SEGMENT_COUNT = 0
+ ISDBT_LAYERC_TIME_INTERLEAVING = 0
+
+# Physical channel 23
+[Rede Vida]
+ DELIVERY_SYSTEM = ISDBT
+ BANDWIDTH_HZ = 6000000
+ FREQUENCY = 527142857
+ INVERSION = AUTO
+ GUARD_INTERVAL = AUTO
+ TRANSMISSION_MODE = AUTO
+ INVERSION = AUTO
+ GUARD_INTERVAL = AUTO
+ TRANSMISSION_MODE = AUTO
+ ISDBT_LAYER_ENABLED = 7
+ ISDBT_SOUND_BROADCASTING = 0
+ ISDBT_SB_SUBCHANNEL_ID = 0
+ ISDBT_SB_SEGMENT_IDX = 0
+ ISDBT_SB_SEGMENT_COUNT = 0
+ ISDBT_LAYERA_FEC = AUTO
+ ISDBT_LAYERA_MODULATION = QAM/AUTO
+ ISDBT_LAYERA_SEGMENT_COUNT = 0
+ ISDBT_LAYERA_TIME_INTERLEAVING = 0
+ ISDBT_LAYERB_FEC = AUTO
+ ISDBT_LAYERB_MODULATION = QAM/AUTO
+ ISDBT_LAYERB_SEGMENT_COUNT = 0
+ ISDBT_LAYERB_TIME_INTERLEAVING = 0
+ ISDBT_LAYERC_FEC = AUTO
+ ISDBT_LAYERC_MODULATION = QAM/AUTO
+ ISDBT_LAYERC_SEGMENT_COUNT = 0
+ ISDBT_LAYERC_TIME_INTERLEAVING = 0
+
+# Physical channel 28
+[TV Paranaíba]
+ DELIVERY_SYSTEM = ISDBT
+ BANDWIDTH_HZ = 6000000
+ FREQUENCY = 557142857
+ INVERSION = AUTO
+ GUARD_INTERVAL = AUTO
+ TRANSMISSION_MODE = AUTO
+ INVERSION = AUTO
+ GUARD_INTERVAL = AUTO
+ TRANSMISSION_MODE = AUTO
+ ISDBT_LAYER_ENABLED = 7
+ ISDBT_SOUND_BROADCASTING = 0
+ ISDBT_SB_SUBCHANNEL_ID = 0
+ ISDBT_SB_SEGMENT_IDX = 0
+ ISDBT_SB_SEGMENT_COUNT = 0
+ ISDBT_LAYERA_FEC = AUTO
+ ISDBT_LAYERA_MODULATION = QAM/AUTO
+ ISDBT_LAYERA_SEGMENT_COUNT = 0
+ ISDBT_LAYERA_TIME_INTERLEAVING = 0
+ ISDBT_LAYERB_FEC = AUTO
+ ISDBT_LAYERB_MODULATION = QAM/AUTO
+ ISDBT_LAYERB_SEGMENT_COUNT = 0
+ ISDBT_LAYERB_TIME_INTERLEAVING = 0
+ ISDBT_LAYERC_FEC = AUTO
+ ISDBT_LAYERC_MODULATION = QAM/AUTO
+ ISDBT_LAYERC_SEGMENT_COUNT = 0
+ ISDBT_LAYERC_TIME_INTERLEAVING = 0
+
+# Physical channel 30
+[TV Integração]
+ DELIVERY_SYSTEM = ISDBT
+ BANDWIDTH_HZ = 6000000
+ FREQUENCY = 569142857
+ INVERSION = AUTO
+ GUARD_INTERVAL = AUTO
+ TRANSMISSION_MODE = AUTO
+ INVERSION = AUTO
+ GUARD_INTERVAL = AUTO
+ TRANSMISSION_MODE = AUTO
+ ISDBT_LAYER_ENABLED = 7
+ ISDBT_SOUND_BROADCASTING = 0
+ ISDBT_SB_SUBCHANNEL_ID = 0
+ ISDBT_SB_SEGMENT_IDX = 0
+ ISDBT_SB_SEGMENT_COUNT = 0
+ ISDBT_LAYERA_FEC = AUTO
+ ISDBT_LAYERA_MODULATION = QAM/AUTO
+ ISDBT_LAYERA_SEGMENT_COUNT = 0
+ ISDBT_LAYERA_TIME_INTERLEAVING = 0
+ ISDBT_LAYERB_FEC = AUTO
+ ISDBT_LAYERB_MODULATION = QAM/AUTO
+ ISDBT_LAYERB_SEGMENT_COUNT = 0
+ ISDBT_LAYERB_TIME_INTERLEAVING = 0
+ ISDBT_LAYERC_FEC = AUTO
+ ISDBT_LAYERC_MODULATION = QAM/AUTO
+ ISDBT_LAYERC_SEGMENT_COUNT = 0
+ ISDBT_LAYERC_TIME_INTERLEAVING = 0
+
+# Physical channel 45
+[TV Câmara, TV Assembleia MG, TV Câmara Municipal]
+ DELIVERY_SYSTEM = ISDBT
+ BANDWIDTH_HZ = 6000000
+ FREQUENCY = 659142857
+ INVERSION = AUTO
+ GUARD_INTERVAL = AUTO
+ TRANSMISSION_MODE = AUTO
+ INVERSION = AUTO
+ GUARD_INTERVAL = AUTO
+ TRANSMISSION_MODE = AUTO
+ ISDBT_LAYER_ENABLED = 7
+ ISDBT_SOUND_BROADCASTING = 0
+ ISDBT_SB_SUBCHANNEL_ID = 0
+ ISDBT_SB_SEGMENT_IDX = 0
+ ISDBT_SB_SEGMENT_COUNT = 0
+ ISDBT_LAYERA_FEC = AUTO
+ ISDBT_LAYERA_MODULATION = QAM/AUTO
+ ISDBT_LAYERA_SEGMENT_COUNT = 0
+ ISDBT_LAYERA_TIME_INTERLEAVING = 0
+ ISDBT_LAYERB_FEC = AUTO
+ ISDBT_LAYERB_MODULATION = QAM/AUTO
+ ISDBT_LAYERB_SEGMENT_COUNT = 0
+ ISDBT_LAYERB_TIME_INTERLEAVING = 0
+ ISDBT_LAYERC_FEC = AUTO
+ ISDBT_LAYERC_MODULATION = QAM/AUTO
+ ISDBT_LAYERC_SEGMENT_COUNT = 0
+ ISDBT_LAYERC_TIME_INTERLEAVING = 0
+
+# Physical channel 52
+[RIT]
+ DELIVERY_SYSTEM = ISDBT
+ BANDWIDTH_HZ = 6000000
+ FREQUENCY = 701142857
+ INVERSION = AUTO
+ GUARD_INTERVAL = AUTO
+ TRANSMISSION_MODE = AUTO
+ INVERSION = AUTO
+ GUARD_INTERVAL = AUTO
+ TRANSMISSION_MODE = AUTO
+ ISDBT_LAYER_ENABLED = 7
+ ISDBT_SOUND_BROADCASTING = 0
+ ISDBT_SB_SUBCHANNEL_ID = 0
+ ISDBT_SB_SEGMENT_IDX = 0
+ ISDBT_SB_SEGMENT_COUNT = 0
+ ISDBT_LAYERA_FEC = AUTO
+ ISDBT_LAYERA_MODULATION = QAM/AUTO
+ ISDBT_LAYERA_SEGMENT_COUNT = 0
+ ISDBT_LAYERA_TIME_INTERLEAVING = 0
+ ISDBT_LAYERB_FEC = AUTO
+ ISDBT_LAYERB_MODULATION = QAM/AUTO
+ ISDBT_LAYERB_SEGMENT_COUNT = 0
+ ISDBT_LAYERB_TIME_INTERLEAVING = 0
+ ISDBT_LAYERC_FEC = AUTO
+ ISDBT_LAYERC_MODULATION = QAM/AUTO
+ ISDBT_LAYERC_SEGMENT_COUNT = 0
+ ISDBT_LAYERC_TIME_INTERLEAVING = 0
+
n> <string.h> #include <math.h> #include <sys/time.h> #include "cfg.h" #include "filter.h" extern int tick; #define SLOTS 64 #define SECONDS(x) (x.tv_sec+x.tv_usec/1000000.0) typedef struct { char *name; int slots; struct timeval *time; double *value; } FILTER; double smooth(char *name, int period, double value) { static FILTER *Filter=NULL; static int nFilter=0; struct timeval now; double t, v; int i, j; gettimeofday (&now, NULL); for (i=0; i<nFilter; i++) { if (strcmp(name, Filter[i].name)==0) break; } if (i==nFilter) { int slots=(period+tick-1)/tick; if (slots<2) slots=2; else if (slots>SLOTS) slots=SLOTS; nFilter++; Filter=realloc(Filter, nFilter*sizeof(FILTER)); Filter[i].name=strdup(name); Filter[i].slots=slots; Filter[i].time=malloc(slots*sizeof(Filter[i].time[0])); Filter[i].value=malloc(slots*sizeof(Filter[i].value[0])); for (j=0; j<slots; j++) { Filter[i].time[j]=now; Filter[i].value[j]=value; } } for (j=Filter[i].slots-1; j>0; j--) { Filter[i].time[j]=Filter[i].time[j-1]; Filter[i].value[j]=Filter[i].value[j-1]; } Filter[i].time[0]=now; Filter[i].value[0]=value; t = SECONDS(Filter[i].time[0]) - SECONDS(Filter[i].time[Filter[i].slots-1]); v = Filter[i].value[0]-Filter[i].value[Filter[i].slots-1]; if (t==0.0 || v<0.0) return 0; else return v/t; } double damp(char *name, double value) { static int tau=-1; static FILTER *Filter=NULL; static int nFilter=0; struct timeval now; double max; int i, j; if (tau==-1) tau=atoi(cfg_get("tau")?:"500"); if (tau==0.0) return value; gettimeofday (&now, NULL); for (i=0; i<nFilter; i++) { if (strcmp(name, Filter[i].name)==0) break; } if (i==nFilter) { int slots=log(100)*tau/tick; if (slots<1) slots=1; else if (slots>SLOTS) slots=SLOTS; nFilter++; Filter=realloc(Filter, nFilter*sizeof(FILTER)); Filter[i].name=strdup(name); Filter[i].slots=slots; Filter[i].time=malloc(slots*sizeof(Filter[i].time)); Filter[i].value=malloc(slots*sizeof(Filter[i].value)); for (j=0; j<slots; j++) { Filter[i].time[j]=now; Filter[i].value[j]=0; } } max=value; for (j=Filter[i].slots-1; j>0; j--) { double t = SECONDS(Filter[i].time[j]) - SECONDS(Filter[i].time[j-1]); Filter[i].time[j]=Filter[i].time[j-1]; Filter[i].value[j]=Filter[i].value[j-1]*exp(-t/tau); if (Filter[i].value[j]>max) max=Filter[i].value[j]; } Filter[i].time[0]=now; Filter[i].value[0]=value; return max; }