Re: [PATCH] libdvbv5: T2 delivery descriptor: fix wrong size of bandwidth field

2017-05-04 Thread Reinhard Speyerer
On Thu, May 04, 2017 at 09:11:47AM -0300, Mauro Carvalho Chehab wrote:
> Em Thu, 4 May 2017 09:55:04 +0200
> Gregor Jasny  escreveu:
> 
> > 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

2017-04-30 Thread Reinhard Speyerer
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

2017-04-15 Thread Reinhard Speyerer
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
+