Package: alevt
Version: 1:1.6.2-5.1
Tags: patch

When alevt is used to display Teletext of a DVB service, only services
of type "digital television service" are detected. HEVC services can be
signalled as such services - or instead explicitely as "HEVC digital
television service" (see Annex I of ETSI EN 300 468).

In Germany the (HEVC) DVB-T2 services use the latter signalling and
therefore the related Teletext services are currently not detected.

The attached patch fixes this by considering further meaningful service
types during parsing the PMT.
diff --git a/vbi.c b/vbi.c
index 0a030df..9fb9834 100644
--- a/vbi.c
+++ b/vbi.c
@@ -1002,8 +1002,19 @@ static int vbi_dvb_open(struct vbi *vbi, const char *vbi_name, const char *progn
 	/* parse PMT's to find Teletext Services */
 	for (l = 0; l < progcnt; l++) {
 		progtbl[l].txtpid = 0x1fff;
-		if (progtbl[l].service_type != 0x01 || /* service is not digital TV */
-		    progtbl[l].pmtpid < 0x15 ||        /* PMT PID sanity check */
+		switch (progtbl[l].service_type) {
+		case 0x01:	// digital television service
+		case 0x03:	// Teletext service
+		case 0x11:	// MPEG-2 HD digital television service
+		case 0x16:	// H.264/AVC SD digital television service
+		case 0x19:	// H.264/AVC HD digital television service
+		case 0x1c:	// H.264/AVC frame compatible plano-stereoscopic HD digital television service
+		case 0x1f:	// HEVC digital television service
+			break;
+		default:
+			continue;	/* service is not digital TV */
+		}
+		if (progtbl[l].pmtpid < 0x15 ||        /* PMT PID sanity check */
 		    progtbl[l].pmtpid >= 0x1fff)
 			continue;
 		r = dvb_get_table(vbi->fd, progtbl[l].pmtpid, 0x02, tbl, sizeof(tbl));

Reply via email to