Hi (Mauro), below you will find my recommended patch for the broken VDR format (libdvbv5/dvb-vdr-format.c). There is only one point I have a doubt: I have no ATSC experience (I'am in Europe/germ), so I simply added an "A" at the field "satellite pos.". This is what the w_scan tool does and this tool works fine with the vdr (please correct me if I'am wrong). My test-case was the same as mentioned in the first mail (see below). Which means, I haven't tested with vdr, only with mpv. Is there anyone how can take up this patch? ... may be Mauro, the originator of vdr support? With best regards -- M -- diff --git a/lib/libdvbv5/dvb-vdr-format.c b/lib/libdvbv5/dvb-vdr-format.c index 176a927..5151ebc 100644 --- a/lib/libdvbv5/dvb-vdr-format.c +++ b/lib/libdvbv5/dvb-vdr-format.c @@ -310,13 +310,14 @@ int dvb_write_format_vdr(const char *fname, fprintf(fp, "%s", entry->channel); if (entry->vchannel) fprintf(fp, ",%s", entry->vchannel); + fprintf(fp, ":"); /* * Output frequency: * in kHz for terrestrial/cable * in MHz for satellite */ - fprintf(fp, ":%i:", freq / 1000); + fprintf(fp, "%i:", freq / 1000); /* Output modulation parameters */ fmt = &formats[i]; @@ -350,20 +351,28 @@ int dvb_write_format_vdr(const char *fname, fprintf(fp, "%s", table->table[data]); } - - /* Output format type */ - fprintf(fp, ":%s:", id); + fprintf(fp, ":"); /* - * Output satellite location - * FIXME: probably require some adjustments to match the - * format expected by VDR. + * Output sources configuration for VDR + * + * S (satellite) xy.z (orbital position in degrees) E or W (east or west) + * + * FIXME: in case of ATSC we use "A", this is what w_scan does */ - switch(delsys) { - case SYS_DVBS: - case SYS_DVBS2: - fprintf(fp, "%s:", entry->location); + + if (entry->location) { + switch(delsys) { + case SYS_DVBS: + case SYS_DVBS2: + fprintf(fp, "%s", entry->location); break; + default: + fprintf(fp, "%s", id); break; + } + } else { + fprintf(fp, "%s", id); } + fprintf(fp, ":"); /* Output symbol rate */ srate = 27500000; @@ -408,10 +417,16 @@ int dvb_write_format_vdr(const char *fname, /* Output Service ID */ fprintf(fp, "%d:", entry->service_id); - /* Output SID, NID, TID and RID */ - fprintf(fp, "0:0:0:"); + /* Output Network ID */ + fprintf(fp, "0:"); + + /* Output Transport Stream ID */ + fprintf(fp, "0:"); - fprintf(fp, "\n"); + /* Output Radio ID + this is the last entry, tagged bei a new line (not a colon!) + */ + fprintf(fp, "0\n"); line++; }; fclose (fp); -- M -- -- Mit freundlichem Gruss -- M.Heiser -- --------------------------------------------------------------------- darmarIT // IT solutions & services --------------------------------------------------------------------- Darius Biss & Markus Heiser GbR Wattenscheider Weg 2 28199 Bremen phone : +49 (0) 4792 987 946 9 fax : +49 (0) 421 433 498 7 mobil : +49 (0) 157 316 2222 4 e-mail : markus.heiser@xxxxxxxxxxx web : http://www.darmarIT.de --------------------------------------------------------------------- Am 09.03.2016 um 16:43 schrieb Markus Heiser <markus.heiser@xxxxxxxxxxx>: > Hi, > > I tested DVBv5 tools, creating vdr channel lists. My first attemp > was to convert a dvbv5 channel list: > > <SNIP> ----------------------------- > # file: test_convert_in.conf > # > # converted with: dvb-format-convert -I DVBV5 -O VDR test_convert_in.conf test_convert_out.conf > # > [Das Erste HD] > SERVICE_ID = 10301 > VIDEO_PID = 5101 > AUDIO_PID = 5102 5103 5106 5108 > PID_0b = 5172 2171 > PID_06 = 5105 5104 > PID_05 = 1170 > LNB = UNIVERSAL > FREQUENCY = 11494000 > INVERSION = OFF > SYMBOL_RATE = 22000488 > INNER_FEC = 2/3 > MODULATION = PSK/8 > PILOT = ON > ROLLOFF = 35 > POLARIZATION = HORIZONTAL > STREAM_ID = 0 > DELIVERY_SYSTEM = DVBS2 > <SNAP> ----------------------------- > > > this results in a strange VDR channel (test_convert_out.conf): > > > <SNIP> ----------------------------- > Das Erste HD:11494:S1HC23I0M5N1O35:S:(null):22000:5101:5102,5103,5106,5108:0:0:10301:0:0:0: > <SNAP> ----------------------------- > > > so I created an other (vdr) channel-file (test123.conf) to see how > to fix the problem: > > > <SNIP> ----------------------------- > # file test123.conf > # > # tested with: mpv -v --dvbin-file=test123.conf dvb://"Das Erste HD fixed" > # > Das Erste HD:11494:S1HC23I0M5N1O35:S:(null):22000:5101:5102,5103,5106,5108:0:0:10301:0:0:0: > # > # dropping "(null):" and delete last ":" fixed the problem for mpv > # > Das Erste HD fixed:11494:S1HC23I0M5N1O35:S:22000:5101:5102,5103,5106,5108:0:0:10301:0:0:0 > <SNAP> ----------------------------- > > > refering to the VDR Wikis ... > > * LinuxTV: http://www.linuxtv.org/vdrwiki/index.php/Syntax_of_channels.conf > * german comunity Wiki: http://www.vdr-wiki.de/wiki/index.php/Channels.conf#Parameter_ab_VDR-1.7.4 > > ... there is no field at position [4] / in between "Source" > and "SRate" which might have a value ... I suppose the '(null):' > is the result of pointing to *nothing* ... > > An other mistake is the ending colon (":") at the line. It is not > explicit specified but adding an collon to the end of an channel > entry will prevent players (like mpv or mplayer) from parsing the > line (they will ignore these lines). > > At least: generating a channel list with > > dvbv5-scan --output-format=vdr ... > > will result in the same defective channel entry, containing > "(null):" and the leading collon ":". > > If I can help -- e.g. testing -- please contact me. > > Regards > > --M---- > To unsubscribe from this list: send the line "unsubscribe linux-media" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html