On 07.10.2012 20:59, Mariusz Bialonczyk wrote:
I've been using vdr for very long time (since 1.2.1 afair), but the
polish epg problem is unfortunately still here in recent versions.
I made a deep analysis of the problem and here are the details.
Polish broadcasters are ignorants regarding dvb standards!
It's very sad but it's true :(
Of course e-mails to them about it doesn't give an any effect...
There are two kind of problems with polish providers on HotBird 13E:
First problem is that similar to one handled by CharsetOverride:
Part of the channels are encoded in ISO-8859-2 while not announce that,
this can be handled with VDR_CHARSET_OVERRIDE correctly.
The other part cannot be currently handled correctly in vdr without patching:
Some channels are using ISO6937 while announcing ISO-8859-5! (sic!)

There are also providers which are respecting standards,
but the above bad cases are for two main polish digital platforms,
so it would be great if vdr finally would handle it correctly.

I have two propositions to solve the problem:
1. check if VDR_CHARSET_OVERRIDE is set to ISO-8859-2 and based on
this information, force apply following change:
diff --git a/libsi/si.c b/libsi/si.c
index 80d34d1..bc34bd7 100644
--- a/libsi/si.c
+++ b/libsi/si.c
@@ -373,6 +373,8 @@ const char *getCharacterTable(const unsigned char *&buffer, int 
&length, bool *i
        length -= 1;
        if (isSingleByte)
           *isSingleByte = tag <= SingleByteLimit;
+      if (tag == 0x01 /* ISO8859-5 */)
+         return cs6937;
        return CharacterTables1[tag];
     return cs;
2. add additional VDR_CHARSET_OVERRIDE option, eg:
this could also return cs6937 when ISO8859-5 is defined (like above).

Please tell me what you think about it.

Well, it's one thing to assume a certain character set if the broadcaster
omits the tag byte. But it's a whole different story to ignore a tag byte
that is actually present.

I suggest you use the EPGFixer-plugin as suggested by Matti Lehtimäki in
his reply to your post.


vdr mailing list

Reply via email to