On 03/04/08 21:26, Ales Jurik wrote:
> On Sunday 02 of March 2008, Klaus Schmidinger wrote:
>> - Rendering the non-breaking space symbol as a blank (thanks to Tobias
>> Grimm). - Changed the default character set for SI data from ISO6937 (as
>> required by the DVB standard ETSI EN 300 468) to ISO-8859-9, in order to
>> work around the stupidity of some providers, who actually use ISO-8859-9,
>> but fail to correctly announce that.
> 
> Hi Klaus,
> 
> this change is preventing to use vdr for all Czech/Slovak satellite providers 
> as they broadcast epg in ISO6937 (ok, UPC at 19.2E with some minor errors). 

This was exactly what I was afraid of - now the broadcasts that actually
do follow the standards are broken.

Please try the attached patch. With this the default is ISO6937 again,
and can be overridden by setting the environment variable VDR_CHARSET_OVERRIDE.

Users in Germany should please test this, too, and do an

export VDR_CHARSET_OVERRIDE=ISO-8859-9

before starting VDR.

Klaus
--- libsi/si.c	2008/03/01 12:02:01	1.24
+++ libsi/si.c	2008/03/05 17:00:55
@@ -14,6 +14,7 @@
 #include <errno.h>
 #include <iconv.h>
 #include <malloc.h>
+#include <stdlib.h> // for broadcaster stupidity workaround
 #include <string.h>
 #include "descriptor.h"
 
@@ -340,9 +341,12 @@
 // and length are adjusted accordingly.
 static const char *getCharacterTable(const unsigned char *&buffer, int &length, bool *isSingleByte = NULL) {
    const char *cs = "ISO6937";
-   cs = "ISO-8859-9"; // Workaround for broadcaster stupidity: according to
+   // Workaround for broadcaster stupidity: according to
    // "ETSI EN 300 468" the default character set is ISO6937. But unfortunately some
    // broadcasters actually use ISO-8859-9, but fail to correctly announce that.
+   static const char *CharsetOverride = getenv("VDR_CHARSET_OVERRIDE");
+   if (CharsetOverride)
+      cs = CharsetOverride;
    if (isSingleByte)
       *isSingleByte = false;
    if (length <= 0)
_______________________________________________
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr

Reply via email to