Re: [PATCH] libdvbv5: T2 delivery descriptor: fix wrong size of bandwidth field
On Thu, May 04, 2017 at 09:11:47AM -0300, Mauro Carvalho Chehab wrote: > Em Thu, 4 May 2017 09:55:04 +0200 > Gregor Jasnyescreveu: > > > Hello Mauro, > > > > On 04.05.17 00:33, Mauro Carvalho Chehab wrote: > > > Em Wed, 3 May 2017 09:53:03 -0300 > > > Mauro Carvalho Chehab escreveu: > > >> Em Tue, 2 May 2017 22:30:29 +0200 > > >> Gregor Jasny escreveu: > > >>> I just used your patch and another to hopefully fix > > >>> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=859008 > > >>> > > >>> But I'm a little bit hesitant to merge it to v4l-utils git without > > >>> Mauros acknowledgement. > > > > >> Patches look correct, but the T2 parser has a more serious issue that > > >> will require breaking ABI/API compatibility. > > > > > I'll cherry-pick the corresponding patches to the stable branch. > > > > Reinhard, could you please test the latest patches on > > https://git.linuxtv.org/v4l-utils.git/log/?h=stable-1.12 > > > > If they work for you, I'd release a new stable version and upload it to > > Debian Sid afterwards. > > I found one additional bug there, at the code that handles subcells. > > Fix applied. Reinhard/Clemens, if you find some channel that use > subcells on this descriptor and/or tfs_flag == 1, it would be really cool > if you could store ~60 seconds of the transponder and send it to me, as it > would allow me to have a testing stream. With that, I can input the stream > on my RF generator and test if this is parsed well with libdvbv5, > dvbv5-tools and Kaffeine. Hi Gregor and Mauro, the created dvb_channel.conf files look good to me with both stable-1.12 and master. Thanks! I noticed that the dvb_channel.conf created by dvbv5-scan from the master branch already contains VIDE0_PID = ... while the one created by the stable-1.12 version still contains PID_24 = ... . Perhaps it might make sense to cherry-pick this for stable-1.12 if the changes are small. For some reason several/most(?) programs from freenet.TV (connect) which are distributed via the Internet instead of DVB-T2 have duplicate entries. None of the channels available to me uses subcells or tfs_flag == 1. Regards, Reinhard [ProSieben HD] SERVICE_ID = 16929 AUDIO_PID = 866 870 871 PID_24 = 865 PID_0b = 872 FREQUENCY = 49800 MODULATION = QAM/AUTO BANDWIDTH_HZ = 800 INVERSION = AUTO CODE_RATE_HP = AUTO CODE_RATE_LP = AUTO GUARD_INTERVAL = AUTO TRANSMISSION_MODE = AUTO HIERARCHY = AUTO STREAM_ID = 0 DELIVERY_SYSTEM = DVBT2 [kabel eins HD] SERVICE_ID = 16930 AUDIO_PID = 882 886 887 PID_24 = 881 PID_0b = 888 FREQUENCY = 49800 MODULATION = QAM/AUTO BANDWIDTH_HZ = 800 INVERSION = AUTO CODE_RATE_HP = AUTO CODE_RATE_LP = AUTO GUARD_INTERVAL = AUTO TRANSMISSION_MODE = AUTO HIERARCHY = AUTO STREAM_ID = 0 DELIVERY_SYSTEM = DVBT2 [SIXX HD] SERVICE_ID = 16931 AUDIO_PID = 898 902 903 PID_24 = 897 PID_0b = 904 FREQUENCY = 49800 MODULATION = QAM/AUTO BANDWIDTH_HZ = 800 INVERSION = AUTO CODE_RATE_HP = AUTO CODE_RATE_LP = AUTO GUARD_INTERVAL = AUTO TRANSMISSION_MODE = AUTO HIERARCHY = AUTO STREAM_ID = 0 DELIVERY_SYSTEM = DVBT2 [Pro7 MAXX HD] SERVICE_ID = 16932 AUDIO_PID = 914 918 919 PID_24 = 913 FREQUENCY = 49800 MODULATION = QAM/AUTO BANDWIDTH_HZ = 800 INVERSION = AUTO CODE_RATE_HP = AUTO CODE_RATE_LP = AUTO GUARD_INTERVAL = AUTO TRANSMISSION_MODE = AUTO HIERARCHY = AUTO STREAM_ID = 0 DELIVERY_SYSTEM = DVBT2 [SAT.1 Gold HD] SERVICE_ID = 16933 AUDIO_PID = 930 934 935 PID_24 = 929 FREQUENCY = 49800 MODULATION = QAM/AUTO BANDWIDTH_HZ = 800 INVERSION = AUTO CODE_RATE_HP = AUTO CODE_RATE_LP = AUTO GUARD_INTERVAL = AUTO TRANSMISSION_MODE = AUTO HIERARCHY = AUTO STREAM_ID = 0 DELIVERY_SYSTEM = DVBT2 [Sport1 HD] SERVICE_ID = 16934 AUDIO_PID = 946 950 951 PID_24 = 945 FREQUENCY = 49800 MODULATION = QAM/AUTO BANDWIDTH_HZ = 800 INVERSION = AUTO CODE_RATE_HP = AUTO CODE_RATE_LP = AUTO GUARD_INTERVAL = AUTO TRANSMISSION_MODE = AUTO HIERARCHY = AUTO STREAM_ID = 0 DELIVERY_SYSTEM = DVBT2 [SAT.1 HD Bayern] SERVICE_ID = 16939 AUDIO_PID = 1026 1030 1033 PID_24 = 1025 PID_0b = 1032 FREQUENCY = 49800 MODULATION = QAM/AUTO BANDWIDTH_HZ = 800 INVERSION = AUTO
Re: dvb-tools: dvbv5-scan segfaults with DVB-T2 HD service that just started in Germany
On Tue, Apr 18, 2017 at 12:54:52PM +0200, Tino Mettler wrote: > On Thu, Mar 30, 2017 at 17:13:34 -0300, Mauro Carvalho Chehab wrote: > > Hi Gregor, > > > > Em Wed, 29 Mar 2017 20:45:06 +0200 > > Gregor Jasny <gja...@googlemail.com> escreveu: > > > > > Hello Mauro & list, > > > > > > could you please have a look at the dvbv5-scan crash report below? > > > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=859008 > > > > > > Is there anything else you need to debug this? > > > > I'm able to reproduce it on a Debian machine here too, but so far, > > I was unable to discover what's causing it. I'll try to find some time > > to take a better look on it. > > Hi, > > can I help in some way to find the cause of crash? > > Regards, > Tino > Hi Mauro and Tino, with the patch below in addition to commit b514d615166bdc0901a4c71261b87db31e89f464 ("libdvbv5: T2 delivery descriptor: fix wrong size of bandwidth field") applied to v4l-utils 1.12.3 sources dvbv5-scan no longer segfaults for me. Manually replacing PID_24 with VIDEO_PID in the created dvb_channel.conf as described in a german DVB-T2 forum is required to make dvbv5-zap also record the video. Regards, Reinhard Subject: [PATCH] libdvbv5: fix T2 delivery descriptor parsing in dvb_desc_t2_delivery_init() Fix T2 delivery descriptor parsing by proper use of memcpy()/bswap16() on struct dvb_desc_t2_delivery *d, only skipping the cell_id instead of the remaining descriptor and using the correct d->tfs_flag check to avoid dvbv5-scan segfaults observed with the DVB-T2 HD service that was started in Germany. Signed-off-by: Reinhard Speyerer <rs...@arcor.de> --- lib/libdvbv5/descriptors/desc_t2_delivery.c | 20 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/lib/libdvbv5/descriptors/desc_t2_delivery.c b/lib/libdvbv5/descriptors/desc_t2_delivery.c index 56e8d43..3831ac1 100644 --- a/lib/libdvbv5/descriptors/desc_t2_delivery.c +++ b/lib/libdvbv5/descriptors/desc_t2_delivery.c @@ -40,7 +40,7 @@ int dvb_desc_t2_delivery_init(struct dvb_v5_fe_parms *parms, return -1; } if (desc_len < len2) { - memcpy(p, buf, len); + memcpy(d, buf, len); bswap16(d->system_id); if (desc_len != len) @@ -48,19 +48,23 @@ int dvb_desc_t2_delivery_init(struct dvb_v5_fe_parms *parms, return -2; } - memcpy(p, buf, len2); + memcpy(d, buf, len2); + bswap16(d->system_id); + bswap16(d->bitfield); p += len2; - len = desc_len - (p - buf); - memcpy(>centre_frequency, p, len); - p += len; + if (desc_len - (p - buf) < sizeof(uint16_t)) { + dvb_logwarn("T2 delivery descriptor is truncated"); + return -2; + } + p += sizeof(uint16_t); - if (d->tfs_flag) - d->frequency_loop_length = 1; - else { + if (d->tfs_flag) { d->frequency_loop_length = *p; p++; } + else + d->frequency_loop_length = 1; d->centre_frequency = calloc(d->frequency_loop_length, sizeof(*d->centre_frequency));
[PATCH] dtv-scan-tables: add new channels to dvb-t/de-Bayern
Several channels used at Bamberg and Hesselberg have been changed at the start of 2017 to avoid potential interference with the new DVB-T2 service started at the end of March. EinsPlus has been replaced with One in October 2016. Full details are available (in german) at http://dvb-t-bayern.de/ . Signed-off-by: Reinhard Speyerer <rs...@arcor.de> --- diff --git a/dvb-t/de-Bayern b/dvb-t/de-Bayern index 0d4182f..a71cbca 100644 --- a/dvb-t/de-Bayern +++ b/dvb-t/de-Bayern @@ -50,7 +50,7 @@ INVERSION = AUTO # CH28: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo -[CH29: Das Erste, arte, Phoenix, EinsPlus] +[CH29: Das Erste, arte, Phoenix, One] DELIVERY_SYSTEM = DVBT FREQUENCY = 53800 BANDWIDTH_HZ = 800 @@ -62,7 +62,7 @@ HIERARCHY = NONE INVERSION = AUTO -[CH30: Das Erste, arte, Phoenix, EinsPlus] +[CH30: Das Erste, arte, Phoenix, One] DELIVERY_SYSTEM = DVBT FREQUENCY = 54600 BANDWIDTH_HZ = 800 @@ -74,6 +74,18 @@ HIERARCHY = NONE INVERSION = AUTO +[CH31: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo] + DELIVERY_SYSTEM = DVBT + FREQUENCY = 55400 + BANDWIDTH_HZ = 800 + CODE_RATE_HP = 2/3 + CODE_RATE_LP = NONE + MODULATION = QAM/16 + TRANSMISSION_MODE = 8K + GUARD_INTERVAL = 1/4 + HIERARCHY = NONE + INVERSION = AUTO + [CH33: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo] DELIVERY_SYSTEM = DVBT FREQUENCY = 57000 @@ -98,7 +110,7 @@ HIERARCHY = NONE INVERSION = AUTO -[CH36: Das Erste, arte, Phoenix, EinsPlus] +[CH36: Das Erste, arte, Phoenix, One] DELIVERY_SYSTEM = DVBT FREQUENCY = 59400 BANDWIDTH_HZ = 800 @@ -135,7 +147,19 @@ INVERSION = AUTO # CH40: Das Erste, arte, Phoenix, EinsPlus -[CH42: Das Erste, arte, Phoenix, EinsPlus] +[CH41: Das Erste, arte, Phoenix, One] + DELIVERY_SYSTEM = DVBT + FREQUENCY = 63400 + BANDWIDTH_HZ = 800 + CODE_RATE_HP = 2/3 + CODE_RATE_LP = NONE + MODULATION = QAM/16 + TRANSMISSION_MODE = 8K + GUARD_INTERVAL = 1/4 + HIERARCHY = NONE + INVERSION = AUTO + +[CH42: Das Erste, arte, Phoenix, One] DELIVERY_SYSTEM = DVBT FREQUENCY = 64200 BANDWIDTH_HZ = 800 @@ -160,7 +184,7 @@ HIERARCHY = NONE INVERSION = AUTO -[CH45: Das Erste, arte, Phoenix, EinsPlus] +[CH45: Das Erste, arte, Phoenix, One] DELIVERY_SYSTEM = DVBT FREQUENCY = 66600 BANDWIDTH_HZ = 800 @@ -198,7 +222,7 @@ INVERSION = AUTO # CH47: Das Erste, arte, Phoenix, EinsPlus -[CH49: Das Erste, arte, Phoenix, EinsPlus] +[CH49: Das Erste, arte, Phoenix, One] DELIVERY_SYSTEM = DVBT FREQUENCY = 69800 BANDWIDTH_HZ = 800 @@ -223,7 +247,7 @@ INVERSION = AUTO # CH53: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo -[CH55: Das Erste, arte, Phoenix, EinsPlus] +[CH55: Das Erste, arte, Phoenix, One] DELIVERY_SYSTEM = DVBT FREQUENCY = 74600 BANDWIDTH_HZ = 800 @@ -235,3 +259,15 @@ HIERARCHY = NONE INVERSION = AUTO +[CH58: Bayerisches Fernsehen, BR-alpha, MDR, hr] + DELIVERY_SYSTEM = DVBT + FREQUENCY = 77000 + BANDWIDTH_HZ = 800 + CODE_RATE_HP = 2/3 + CODE_RATE_LP = NONE + MODULATION = QAM/16 + TRANSMISSION_MODE = 8K + GUARD_INTERVAL = 1/4 + HIERARCHY = NONE + INVERSION = AUTO +