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 <[email protected]> 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 _______________________________________________ pkg-vdr-dvb-changes mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-vdr-dvb-changes
