]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
Freesat_huffman: Suppress characters < 0x20 except \n.
authordave-p <gh@pickles.me.uk>
Fri, 15 Mar 2019 09:33:19 +0000 (09:33 +0000)
committerJaroslav Kysela <perex@perex.cz>
Fri, 15 Mar 2019 12:23:49 +0000 (13:23 +0100)
Bug #5366 reported control codes appearing in EPG data on UK Freeview; this was fixed in commit 3ae6d947a4d074b3498e59f82d5a860273b0ae7f. However the same issue affects DVB-T2 channels where the EPG is Huffman coded.
freesat_huffman.c already has code to suppress these control codes, however the decoding is stopped when one is encountered and so the text is truncated. This patch drops the control codes but continues to decode the remaining text.

src/epggrab/support/freesat_huffman.c

index 07c2d007f3fa92846bafb021713a81175c5a7f2e..827a366025cf21aaed1672809c22b670e00982a8 100644 (file)
@@ -5800,9 +5800,9 @@ size_t freesat_huffman_decode
                                nextCh = (value >> 24) & 0xff;
                                bitShift = 8;
                                if ((nextCh & 0x80) == 0) {
-                                       if (nextCh < ' ')
-                                               nextCh = STOP;
                                        lastch = nextCh;
+                                       if ((nextCh < 0x20) && (nextCh != '\n'))
+                                               nextCh = ESCAPE;
                                }
                        } else {
                                indx = (unsigned int) lastch;