[w-scan] 02/08: Imported Upstream version 20130331

Tobias Grimm tiber-guest at moszumanska.debian.org
Mon Oct 27 20:47:59 UTC 2014


This is an automated email from the git hooks/post-receive script.

tiber-guest pushed a commit to branch master
in repository w-scan.

commit 78fbbfa2dcb74da3406efb9d5b38930020db71c1
Author: etobi <git at e-tobi.net>
Date:   Sun May 12 08:45:39 2013 +0200

    Imported Upstream version 20130331
---
 ChangeLog           |   4 ++
 config.h            |   6 +-
 configure           |  20 +++----
 configure.in        |   2 +-
 doc/w_scan.1        |   9 +--
 dump-vdr.c          | 163 ++++++++++------------------------------------------
 extended_frontend.h |   4 ++
 parse-dvbscan.c     |  14 ++++-
 satellites.dat      |   3 +-
 scan.c              |  44 ++++++++------
 version.h           |   2 +-
 11 files changed, 95 insertions(+), 176 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index ef1e2c2..7c64886 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 ChangeLog:
 --------------------
+2013-03-31
+ - adapt to vdr next version number, skipping support for vdr < 1.7.4
+ - fix compiling for newer frontend.h
+ - apply small other patches since 2012-11-11
 2012-11-11
  - apply patch from Michael Stilmant, who discovered two string buffers
    being too small by one byte.
diff --git a/config.h b/config.h
index ff48f51..5007e1f 100644
--- a/config.h
+++ b/config.h
@@ -60,7 +60,7 @@
 #define PACKAGE_NAME "w_scan"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "w_scan 20121111"
+#define PACKAGE_STRING "w_scan 20130331"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "w_scan"
@@ -69,7 +69,7 @@
 #define PACKAGE_URL ""
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "20121111"
+#define PACKAGE_VERSION "20130331"
 
 /* Define to 1 if you have the ANSI C header files. */
 #define STDC_HEADERS 1
@@ -97,7 +97,7 @@
 
 
 /* Version number of package */
-#define VERSION "20121111"
+#define VERSION "20130331"
 
 /* Define to 1 if on MINIX. */
 /* #undef _MINIX */
diff --git a/configure b/configure
index fc6fe37..35498f2 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for w_scan 20121111.
+# Generated by GNU Autoconf 2.68 for w_scan 20130331.
 #
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -557,8 +557,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='w_scan'
 PACKAGE_TARNAME='w_scan'
-PACKAGE_VERSION='20121111'
-PACKAGE_STRING='w_scan 20121111'
+PACKAGE_VERSION='20130331'
+PACKAGE_STRING='w_scan 20130331'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1240,7 +1240,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures w_scan 20121111 to adapt to many kinds of systems.
+\`configure' configures w_scan 20130331 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1306,7 +1306,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of w_scan 20121111:";;
+     short | recursive ) echo "Configuration of w_scan 20130331:";;
    esac
   cat <<\_ACEOF
 
@@ -1393,7 +1393,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-w_scan configure 20121111
+w_scan configure 20130331
 generated by GNU Autoconf 2.68
 
 Copyright (C) 2010 Free Software Foundation, Inc.
@@ -1811,7 +1811,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by w_scan $as_me 20121111, which was
+It was created by w_scan $as_me 20130331, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   $ $0 $@
@@ -2629,7 +2629,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='w_scan'
- VERSION='20121111'
+ VERSION='20130331'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -5029,7 +5029,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by w_scan $as_me 20121111, which was
+This file was extended by w_scan $as_me 20130331, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -5095,7 +5095,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-w_scan config.status 20121111
+w_scan config.status 20130331
 configured by $0, generated by GNU Autoconf 2.68,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.in b/configure.in
index c298da8..3c3d114 100644
--- a/configure.in
+++ b/configure.in
@@ -2,7 +2,7 @@
 # Process this file with autoconf to produce a configure script.
 
 AC_PREREQ([2.63])
-AC_INIT([w_scan], [20121111])
+AC_INIT([w_scan], [20130331])
 AC_CONFIG_SRCDIR([scan.c])
 AC_CONFIG_HEADERS([config.h])
 AM_INIT_AUTOMAKE
diff --git a/doc/w_scan.1 b/doc/w_scan.1
index 8d39998..2544a04 100644
--- a/doc/w_scan.1
+++ b/doc/w_scan.1
@@ -1,4 +1,4 @@
-.TH "w_scan" "28" "March , 2011" "" ""
+.TH "w_scan" 1 "28 March 2011" "" ""
 .SH "NAME"
 w_scan \- a universal ATSC and DVB blind scanner
 .SH "SYNOPSIS"
@@ -80,9 +80,9 @@ specify ATSC scan type
 .B \-o N
 VDR channels.conf format
 .br
-6 = VDR\-1.2 .. VDR\-1.6 [default],
+2 = VDR\-2.0 [default],
 .br
-7 = VDR\-1.7 (for DVB-S2 support)
+21 = VDR\-2.1
 .TP 
 .B \-X
 generate zap/czap/xine output instead of VDR channels.conf.
@@ -298,9 +298,6 @@ scan cable (ATSC), United States:
 scan aerial (ATSC), United States:
 .B w_scan -fa -A1 -c US
 .TP
-use output format VDR-1.7:
-.B w_scan [ OTHER OPTIONS ] -o 7
-.TP
 use output format kaffeine:
 .B w_scan [ OTHER OPTIONS ] -k
 .TP
diff --git a/dump-vdr.c b/dump-vdr.c
index 406116e..9fcb6fa 100644
--- a/dump-vdr.c
+++ b/dump-vdr.c
@@ -171,7 +171,7 @@ const char * vdr_fec_name(int fec) {
  *
  *****************************************************************************/
 
-const char * vdr17_modulation_name(int modulation) {
+const char * vdr_modulation_name(int modulation) {
         switch(modulation) {        
                 case QAM_16     : return "16";
                 case QAM_32     : return "32";
@@ -193,23 +193,6 @@ const char * vdr17_modulation_name(int modulation) {
                 }
 }
 
-/******************************************************************************
- * translate linuxtv modulation types to VDR < 1.7.0 identifiers. 
- *
- *****************************************************************************/
-
-const char * vdr_modulation_name(int modulation) {
-        switch(modulation) {        
-                case QPSK     : return "0";
-                case QAM_16   : return "16";
-                case QAM_32   : return "32";
-                case QAM_64   : return "64";
-                case QAM_128  : return "128";
-                case QAM_256  : return "256";        
-                case QAM_AUTO : return "999";
-                default       : return "999";
-                }
-}
 
 /******************************************************************************
  * translate linuxtv bandwidth values to VDR identifiers. 
@@ -308,80 +291,23 @@ const char * vdr_delsys_name(int delsys) {
 
 
 /******************************************************************************
- * print "frequency:<params>:symbolrate:" to 'f' in vdr < 1.7.0 format 
- *
- *****************************************************************************/
-
-void dump_param_vdr_1_2(FILE * f, struct tuning_parameters * p, struct w_scan_flags * flags) {
-switch (flags->scantype) {
-        case SCAN_TERRCABLE_ATSC:
-                fatal("VDR 1.2 .. 1.6 doesn't support ATSC.\n"
-                        "hint: did you miss '-o 7' ?");
-
-        case SCAN_CABLE:
-                fprintf (f, ":%i:",   p->frequency / 1000);
-                fprintf (f, "M%s:C:", vdr_modulation_name(p->u.cable.modulation));
-                fprintf (f, "%i:",    p->u.cable.symbol_rate / 1000);
-                break;
-
-        case SCAN_TERRESTRIAL:
-                fprintf (f, ":%i:", p->frequency / 1000);
-                fprintf (f, "I%s", vdr_inversion_name(p->inversion));
-                fprintf (f, "B%s", vdr_bandwidth_name(p->u.terr.bandwidth));
-                fprintf (f, "C%s", vdr_fec_name(p->u.terr.code_rate_HP));
-                fprintf (f, "D%s", vdr_fec_name(p->u.terr.code_rate_LP));
-                fprintf (f, "M%s", vdr_modulation_name(p->u.terr.constellation));
-                fprintf (f, "T%s", vdr_transmission_mode_name(p->u.terr.transmission_mode));
-                fprintf (f, "G%s", vdr_guard_name(p->u.terr.guard_interval));
-                fprintf (f, "Y%s", vdr_hierarchy_name(p->u.terr.hierarchy_information));
-                fprintf (f, ":T:27500:");
-                break;
-
-        case SCAN_SATELLITE:
-                fprintf (f, ":%i:",   p->frequency / 1000);
-                switch (p->u.sat.polarization) {
-                        case POLARIZATION_HORIZONTAL:
-                                fprintf (f, "h");
-                                break;                        
-                        case POLARIZATION_VERTICAL:
-                                fprintf (f, "v");
-                                break;
-                        case POLARIZATION_CIRCULAR_LEFT:
-                                fprintf (f, "l");
-                                break;
-                        case POLARIZATION_CIRCULAR_RIGHT:
-                                fprintf (f, "r");
-                                break;
-                        default:
-                                fatal("Unknown Polarization %d\n", p->u.sat.polarization);
-                        }
-                fprintf (f, "C%s:", vdr_fec_name(p->u.sat.fec_inner));
-                fprintf(f, "%s:",
-                        short_name_to_vdr_name(satellite_to_short_name(flags->list_id)));
-                fprintf (f, "%i:",    p->u.sat.symbol_rate / 1000);                
-                break;
-        default:;
-        };
-}
-
-/******************************************************************************
  * print "frequency:<params>:symbolrate:" to 'f' in vdr >= 1.7.4 format 
  * NOTE: 1.7.0 .. 1.7.3 not supported here.
  *****************************************************************************/
 #define vdrprint(fd, Param, Default, ID, Value) if (Param != Default) fprintf(fd,"%s%s", ID, Value)
 
-void dump_param_vdr_1_7(FILE * f, struct transponder * t, struct w_scan_flags * flags) {
+void dump_param_vdr(FILE * f, struct transponder * t, struct w_scan_flags * flags) {
 struct tuning_parameters * p = &t->param;
 switch (flags->scantype) {
         case SCAN_TERRCABLE_ATSC:
                 fprintf (f, ":%i:",   p->frequency / 1000);                
-                fprintf (f, "M%s:A:", vdr17_modulation_name(p->u.atsc.modulation));
+                fprintf (f, "M%s:A:", vdr_modulation_name(p->u.atsc.modulation));
                 fprintf (f, "%i:",    p->u.cable.symbol_rate / 1000);
                 break;
 
         case SCAN_CABLE:
                 fprintf (f, ":%i:",   p->frequency / 1000);
-                fprintf (f, "M%s:C:", vdr17_modulation_name(p->u.cable.modulation));
+                fprintf (f, "M%s:C:", vdr_modulation_name(p->u.cable.modulation));
                 fprintf (f, "%i:",    p->u.cable.symbol_rate / 1000);
                 break;
 
@@ -392,7 +318,7 @@ switch (flags->scantype) {
                 vdrprint(f, p->u.terr.code_rate_LP         , FEC_AUTO               , "D", vdr_fec_name(p->u.terr.code_rate_LP));
                 vdrprint(f, p->u.terr.guard_interval       , GUARD_INTERVAL_AUTO    , "G", vdr_guard_name(p->u.terr.guard_interval));
                 vdrprint(f, p->inversion                   , INVERSION_AUTO         , "I", vdr_inversion_name(p->inversion));
-                vdrprint(f, p->u.terr.constellation        , QAM_AUTO               , "M", vdr17_modulation_name(p->u.terr.constellation));
+                vdrprint(f, p->u.terr.constellation        , QAM_AUTO               , "M", vdr_modulation_name(p->u.terr.constellation));
                 vdrprint(f, p->u.terr.delivery_system      , SYS_DVBT               , "S", vdr_delsys_name(p->u.terr.delivery_system));
                 vdrprint(f, p->u.terr.transmission_mode    , TRANSMISSION_MODE_AUTO , "T", vdr_transmission_mode_name(p->u.terr.transmission_mode));
                 vdrprint(f, p->u.terr.hierarchy_information, HIERARCHY_AUTO         , "Y", vdr_hierarchy_name(p->u.terr.hierarchy_information));
@@ -423,7 +349,7 @@ switch (flags->scantype) {
                 switch (p->u.sat.modulation_system) {
                         case SYS_DVBS2:
                                 fprintf (f, "M%sO%sS1:",
-                                        vdr17_modulation_name(p->u.sat.modulation_type),
+                                        vdr_modulation_name(p->u.sat.modulation_type),
                                         vdr_rolloff_name(p->u.sat.rolloff));
                                 break;
                         default:
@@ -456,26 +382,13 @@ void vdr_dump_service_parameter_set (FILE * f,
 
         if (! flags->ca_select && s->scrambled)
                 return;
-        if ((flags->vdr_version < 7) && (
-            ((flags->scantype == SCAN_SATELLITE)   && (t->param.u.sat.modulation_system == SYS_DVBS2)) ||
-            ((flags->scantype == SCAN_TERRESTRIAL) && (t->param.u.terr.delivery_system  == SYS_DVBT2)) ||
-            ((flags->scantype == SCAN_CABLE)       && (t->param.u.cable.delivery_system == SYS_DVBC2))
-            ))  /* delivery system not supported by vdr version */
-                return;
 
         fprintf (f, "%s", s->service_name);
 
         if (flags->dump_provider)
                 fprintf (f, ";%s", s->provider_name);
         
-        switch(flags->vdr_version) { // freq:<params>:source:sr:
-                case 2 ... 6:
-                        dump_param_vdr_1_2(f, &t->param, flags);
-                        break;
-                case 7:
-                default:
-                        dump_param_vdr_1_7(f, t, flags);
-                }
+        dump_param_vdr(f, t, flags);
                 
         fprintf (f, "%i", s->video_pid);
 
@@ -486,29 +399,18 @@ void vdr_dump_service_parameter_set (FILE * f,
 
         fprintf (f, ":");
 
-        switch(flags->vdr_version) {
-                case 2:
-                        fprintf (f, "%i", s->audio_pid[0]);
-                        for (i = 1; i < s->audio_num; i++) {
-                                if (i) fprintf (f, ",");                                        
-                                fprintf (f, ",%i", s->audio_pid[i]);
-                                }
-                        break;
-                default:
-                        fprintf (f, "%i", s->audio_pid[0]);
-                        if (s->audio_lang && s->audio_lang[0][0])
-                                fprintf (f, "=%.4s", s->audio_lang[0]);
-                        if (flags->vdr_version > 7)
-                                if (s->audio_stream_type[0])
-                                        fprintf (f, "@%u", s->audio_stream_type[0]);
-                        for (i = 1; i < s->audio_num; i++) {                        
-                                fprintf (f, ",%i", s->audio_pid[i]);
-                                if (s->audio_lang && s->audio_lang[i][0])
-                                        fprintf (f, "=%.4s", s->audio_lang[i]);
-                                if (flags->vdr_version > 7)
-                                        if (s->audio_stream_type[i])
-                                               fprintf (f, "@%u", s->audio_stream_type[i]);
-                                }
+        fprintf (f, "%i", s->audio_pid[0]);
+        if (s->audio_lang && s->audio_lang[0][0])
+                fprintf (f, "=%.4s", s->audio_lang[0]);
+        if (s->audio_stream_type[0])
+                fprintf (f, "@%u", s->audio_stream_type[0]);
+        for (i = 1; i < s->audio_num; i++) {                        
+                fprintf (f, ",%i", s->audio_pid[i]);
+                if (s->audio_lang && s->audio_lang[i][0])
+                        fprintf (f, "=%.4s", s->audio_lang[i]);
+                if (flags->vdr_version > 7)
+                        if (s->audio_stream_type[i])
+                               fprintf (f, "@%u", s->audio_stream_type[i]);
                 }
 
         if (s->ac3_num) {
@@ -526,19 +428,17 @@ void vdr_dump_service_parameter_set (FILE * f,
 
         fprintf (f, ":%d", s->teletext_pid);
 
-        if (flags->vdr_version > 7) {
-                // add subtitling here, vdr >= 1.7.21
-                if (s->subtitling_num) {
-                   fprintf (f, "%s", ";");
-                   for (i = 0; i < s->subtitling_num; i++) {
-                        if (i > 0)
-                                fprintf (f, "%s", ",");
-                        fprintf (f, "%i", s->subtitling_pid[i]);
-                        if (s->subtitling_lang && s->subtitling_lang[i][0])
-                                        fprintf (f, "=%.4s", s->subtitling_lang[i]);
-                        }
-                   }                   
+        // add subtitling here
+        if (s->subtitling_num) {
+           fprintf (f, "%s", ";");
+           for (i = 0; i < s->subtitling_num; i++) {
+                if (i > 0)
+                        fprintf (f, "%s", ",");
+                fprintf (f, "%i", s->subtitling_pid[i]);
+                if (s->subtitling_lang && s->subtitling_lang[i][0])
+                                fprintf (f, "=%.4s", s->subtitling_lang[i]);
                 }
+           }                   
 
         fprintf (f, ":%X", s->ca_id[0]);
         for (i = 1; i < s->ca_num; i++) {
@@ -546,11 +446,6 @@ void vdr_dump_service_parameter_set (FILE * f,
                 fprintf (f, ",%X", s->ca_id[i]);
                 }
 
-        if (flags->vdr_version < 3) {
-                t->pids.original_network_id = 0;
-                t->pids.transport_stream_id = 0;
-                }
-
         fprintf (f, ":%d:%d:%d:0",
                 s->service_id,
                 (t->pids.transport_stream_id > 0)?t->pids.original_network_id:0,
diff --git a/extended_frontend.h b/extended_frontend.h
index 2f0a91b..108710f 100644
--- a/extended_frontend.h
+++ b/extended_frontend.h
@@ -131,6 +131,10 @@ typedef enum fe_siso_miso {
 #define DTV_ENUM_DELSYS 44
 #endif
 
+#if !defined DTV_STREAM_ID && defined DTV_DVBT2_PLP_ID
+#define DTV_STREAM_ID DTV_DVBT2_PLP_ID
+#endif
+
 typedef enum {
         DATA_SLICE_TUNING_FREQUENCY,
         C2_SYSTEM_CENTER_FREQUENCY,
diff --git a/parse-dvbscan.c b/parse-dvbscan.c
index a420d26..633a385 100644
--- a/parse-dvbscan.c
+++ b/parse-dvbscan.c
@@ -60,7 +60,9 @@ enum __dvbscan_args {
         cable_symbol_rate,
         cable_fec_inner,
         cable_modulation,
-        cable_END_READING,        
+        cable_END_READING,
+        terr_plp_id,
+        terr_system_id,        
         terr_frequency,
         terr_bandwidth,
         terr_fec_high_priority,
@@ -228,11 +230,13 @@ int dvbscan_parse_tuningdata(const char * tuningdata, struct w_scan_flags * flag
                                 break;
                         case SCAN_TERRESTRIAL:
                                 tn->param.u.terr.delivery_system = SYS_DVBT;
+                                arg = terr_frequency;
                                 if (strlen(token) >= 2)
                                         if (token[1] == '2') {
                                                 flags->need_2g_fe = 1;
+                                                tn->param.u.terr.delivery_system = SYS_DVBT2;
+                                                arg = terr_plp_id;
                                                 }
-                                arg = terr_frequency;
                                 tn->param.inversion = INVERSION_AUTO;
                                 tn->param.u.terr.bandwidth = 8000000;
                                 tn->param.u.terr.code_rate_HP = FEC_AUTO;
@@ -292,6 +296,12 @@ int dvbscan_parse_tuningdata(const char * tuningdata, struct w_scan_flags * flag
                                         tn->param.u.cable.modulation = txt_to_cable_mod(token);
                                         count++;
                                         break;
+                                case terr_plp_id:
+                                        tn->pids.plp_id = strtoul(token, NULL, 10);
+                                        break;
+                                case terr_system_id:
+                                        tn->pids.system_id = strtoul(token, NULL, 10);
+                                        break;
                                 case terr_bandwidth:
                                         tn->param.u.terr.bandwidth = txt_to_terr_bw(token);
                                         break;
diff --git a/satellites.dat b/satellites.dat
index 5923215..de84134 100644
--- a/satellites.dat
+++ b/satellites.dat
@@ -1900,6 +1900,7 @@ B(__S28E2)
 {5, 10921, 0, 22000, 5 , 0, 0 },              // ASTRA 1N                  55 ;  33.8Mbps; NID=2    ; TID=2055 ; 
 {5, 10936, 1, 22000, 5 , 0, 0 },              // ASTRA 1N                  56 ;  33.8Mbps; NID=2    ; TID=2056 ; 
 {5, 10964, 0, 22000, 5 , 0, 0 },              // ASTRA 1N                  59 ;  33.8Mbps; NID=2    ; TID=2057 ; 
+{6, 11023, 0, 23000, 2 , 9, 3 },              //
 {5, 11053, 0, 22000, 5 , 0, 0 },              // ASTRA 1N                  39 ;  33.8Mbps; NID=2    ; TID=2063 ; 
 {5, 11127, 1, 22000, 5 , 0, 0 },              // ASTRA 1N                  44 ;  33.8Mbps; NID=2    ; TID=2068 ;
 {5, 11222, 0, 27500, 2 , 0, 0 },              // EUTELSAT 28A              0  ;  33.8Mbps; NID=2    ; TID=2311 ; 
@@ -2335,7 +2336,7 @@ B(__S13E0)
 {5, 10873, 1, 27500, 3 , 0, 0 },              // HOT BIRD 13A              118;  38.0Mbps; NID=176  ; TID=11800; 
 {5, 10892, 0, 27500, 3 , 0, 0 },              // HOT BIRD 13A              119;  38.0Mbps; NID=318  ; TID=11900; 
 {6, 10911, 1, 27500, 3 , 3, 9 },              // HOT BIRD 13C              120;  59.9Mbps; NID=318  ; TID=12000; 
-{5, 10930, 0, 27500, 3 , 0, 0 },              // HOT BIRD 13C              121;  38.0Mbps; NID=318  ; TID=12100; 
+{5, 10930, 0, 29900, 3 , 0, 0 },              // HOT BIRD 13C              121;  38.0Mbps; NID=318  ; TID=12100; 
 {5, 10949, 1, 27500, 3 , 0, 0 },              // HOT BIRD 13B              122;  38.0Mbps; NID=318  ; TID=12200; 
 {6, 10971, 0, 29700, 2 , 3, 9 },              // HOT BIRD 13B              123;  57.5Mbps; NID=318  ; TID=12300; 
 {5, 10992, 1, 27500, 2 , 0, 0 },              // HOT BIRD 13A              124;  33.8Mbps; NID=318  ; TID=12400; 
diff --git a/scan.c b/scan.c
index c24e256..41a5d27 100644
--- a/scan.c
+++ b/scan.c
@@ -91,7 +91,7 @@ struct w_scan_flags flags = {
         1,                // get_other_nits, atm always
         1,                // add_frequencies, atm always
         1,                // dump_provider, dump also provider name
-        6,                // VDR version number, VDR-1.6.x
+        2,                // VDR version number, VDR-2.0.0
         0,                // 0 = qam auto, 1 = search qams
         1,                // scan encrypted channels = yes
         -1,               // rotor position, unused
@@ -641,6 +641,7 @@ static void parse_descriptors(enum table_id t, const unsigned char *buf,
                                               (fe_info.caps & FE_CAN_2G_MODULATION)) {
                                              parse_C2_delivery_system_descriptor (buf, data, caps_inversion);
                                              }
+                                          break;
                                      case T2_delivery_system_descriptor:
                                           if ((scantype == SCAN_TERRESTRIAL) && ((t == TABLE_NIT_ACT) || (t == TABLE_NIT_OTH)) &&
                                               (fe_info.caps & FE_CAN_2G_MODULATION)) {
@@ -910,7 +911,7 @@ static void parse_pmt (const unsigned char *buf, int section_length, int service
                         break;
                 case iso_iec_13818_7_audio_w_ADTS_transp:
                         moreverbose("  ADTS Audio Stream (usually AAC) : PID %d (stream type 0x%X)\n", elementary_pid, buf[0]);
-                        if ((output_format == OUTPUT_VDR) && (flags.vdr_version < 7))
+                        if ((output_format == OUTPUT_VDR) && (flags.vdr_version != 2)) // CHECK!
                            break; /* not supported by VDR-1.2..1.7.?? */
                         if (s->audio_num < AUDIO_CHAN_MAX) {
                                 s->audio_pid[s->audio_num] = elementary_pid;
@@ -926,7 +927,7 @@ static void parse_pmt (const unsigned char *buf, int section_length, int service
                         break;
                 case iso_iec_14496_3_audio_w_LATM_transp:
                         moreverbose("  ISO/IEC 14496-3 Audio with LATM transport syntax as def. in ISO/IEC 14496-3/AMD1 : PID %d (stream type 0x%X)\n", elementary_pid, buf[0]);
-                        if ((output_format == OUTPUT_VDR) && (flags.vdr_version < 7))
+                        if ((output_format == OUTPUT_VDR) && (flags.vdr_version != 2)) // CHECK!
                            break; /* not supported by VDR-1.2..1.7.?? */
                         if (s->audio_num < AUDIO_CHAN_MAX) {
                                 s->audio_pid[s->audio_num] = elementary_pid;
@@ -973,8 +974,6 @@ static void parse_pmt (const unsigned char *buf, int section_length, int service
                         break;
                 case atsc_a_52b_ac3:
                         moreverbose("  AC-3 Audio per ATSC A/52B : PID %d (stream type 0x%X)\n", elementary_pid, buf[0]);
-                        if ((output_format == OUTPUT_VDR) && (flags.vdr_version < 7))
-                           break; /* not supported by VDR-1.2..1.7.13 */
                         if (s->ac3_num < AC3_CHAN_MAX) {
                                 s->ac3_pid[s->ac3_num] = elementary_pid;
                                 s->ac3_stream_type[s->ac3_num] = buf[0];
@@ -1769,6 +1768,13 @@ static int set_frontend(int frontend_fd, struct transponder * t) {
                                 return -2;
                                 }                        
                 case SCAN_TERRESTRIAL:
+                        if (t->param.u.terr.delivery_system == SYS_DVBT2) {
+                           if (!(fe_info.caps & FE_CAN_2G_MODULATION)) {
+                              info("\t%d: skipped (no driver support of DVBT2)\n", t->param.frequency/*/1000*/);
+                              return -2;
+                              }
+                           }
+                        // no break needed here.
                 case SCAN_TERRCABLE_ATSC:
                         if ((t->param.frequency < fe_info.frequency_min) || (t->param.frequency > fe_info.frequency_max)) {
                                 info ("\tskipped: (freq %u unsupported by driver)\n", t->param.frequency);
@@ -1816,7 +1822,7 @@ static int set_frontend(int frontend_fd, struct transponder * t) {
                                 case SCAN_TERRESTRIAL:
                                         set_cmd_sequence(DTV_DELIVERY_SYSTEM,   t->param.u.terr.delivery_system);
                                         if (t->param.u.terr.delivery_system == SYS_DVBT2) {
-                                           set_cmd_sequence(DTV_DVBT2_PLP_ID, t->pids.plp_id);
+                                           set_cmd_sequence(DTV_STREAM_ID, t->pids.plp_id);
                                            }
                                         set_cmd_sequence(DTV_FREQUENCY,         t->param.frequency);
                                         set_cmd_sequence(DTV_INVERSION,         t->param.inversion);
@@ -2674,9 +2680,8 @@ static const char *ext_opts = "%s expert help\n"
         "               N=0 gets only Free TV channels\n"
         "               N=1 search also encrypted channels [default]\n"
         "       -o N    VDR version / channels.conf format\n"
-        "               4 = VDR-1.4.x (depreciated)\n"
-        "               6 = VDR-1.6.x (default)\n"
-        "               7 = VDR-1.7.x\n"
+        "               2  = VDR-2.0.x (default)\n"
+        "               21 = VDR-2.1.x\n"
         ".................Device..................\n"
         "       -a N    use device /dev/dvb/adapterN/ [default: auto detect]\n"
         "               (also allowed: -a /dev/dvb/adapterN/frontendM)\n"
@@ -2866,7 +2871,6 @@ int main (int argc, char **argv)
                         break;
                 case 'o': //vdr Version
                         flags.vdr_version = strtoul(optarg, NULL, 0);
-                        if (flags.vdr_version > 2) flags.dump_provider = 1;
                         break;
                 case 'p': //satellite *p*osition file
                         positionfile=strdup(optarg);
@@ -3002,11 +3006,6 @@ int main (int argc, char **argv)
                 return 0;
                 }
         info("w_scan version %d (compiled for DVB API %d.%d)\n", version, DVB_API_VERSION, DVB_API_VERSION_MINOR);
-        if ((scantype == SCAN_TERRCABLE_ATSC) && (output_format == OUTPUT_VDR) && (flags.vdr_version < 7)) {
-                warning("VDR up to version 1.7.13 doesn't support ATSC.\n"
-                     "\tChanging output format to 'vdr-1.7.x'\n");
-                flags.vdr_version = 7;
-                }
         if (NULL == initdata) {
                 if ((NULL == country) && (scantype != SCAN_SATELLITE)) {
                         country = strdup(country_to_short_name(get_user_country()));
@@ -3097,12 +3096,21 @@ int main (int argc, char **argv)
         info("scan type %s, channellist %d\n", scantype_to_text(scantype), this_channellist);
         switch (output_format) {
                 case OUTPUT_VDR:
-                        info("output format vdr-1.%d\n", flags.vdr_version);
+                        switch (flags.vdr_version) {
+                                case 2:
+                                        info("output format vdr-2.0\n");
+                                        break;
+                                case 21:
+                                        info("output format vdr-2.1\n");
+                                        break;
+                                default:
+                                        fatal("UNKNOWN VDR VERSION.");
+                                }
                         break;
                 case OUTPUT_GSTREAMER:
-                        // Gstreamer output: As vdr-1.7, but pmt_pid added at end of line.
+                        // Gstreamer output: As vdr-1.7+, but pmt_pid added at end of line.
                         flags.print_pmt = 1;
-                        flags.vdr_version = 7;
+                        flags.vdr_version = 2;
                         output_format = OUTPUT_VDR;
                         info("output format gstreamer\n");
                         break;
diff --git a/version.h b/version.h
index 6fdca1b..b9501f0 100644
--- a/version.h
+++ b/version.h
@@ -1,6 +1,6 @@
 /* AUTOMATICALLY GENERATED - DO NOT EDIT MANUALLY */
 #ifndef W_SCAN_VERSION_H
 #define W_SCAN_VERSION_H
-uint version=20121111;
+uint version=20130331;
 #endif
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-vdr-dvb/w-scan.git



More information about the pkg-vdr-dvb-changes mailing list