[dvblast-devel] biTStream string decodings vs. ISO6934
Ondřej Caletka
ondrej at caletka.cz
Fri Oct 11 14:22:34 CEST 2013
Bump.
Any explanation on this?
Thanks in advance,
Ondřej Caletka
Dne 30.8.2013 12:27, Ondřej Caletka napsal(a):
> Hi,
>
> I'm just trying to write some piece of code using biTStream and found
> some issues with functions for encoding and deconding DVB text strings.
>
> The ETSI EN 300 468 says: If the first byte of the text field has a
> value in the range "0x20" to "0xFF" then this and all subsequent bytes
> in the text item are coded using the default character coding table
> (table 00 - Latin alphabet) of figure A.1.
>
> And a comment below figure A.1: This table is a superset of ISO/IEC 6937
> with addition of the Euro symbol.
>
> However, when biTStream sees first byte in range 0x20-0xff it qualifies
> the encoding as ISO 8859-1:
>
> file dvb/si/strings.h
> 71 i_first = (*pp_string)[0];
> 72
> 73 if (!i_first) return NULL;
> 74 if (i_first >= 0x20) return "ISO_8859-1";
>
> I know that there are some broadcasters, mostly in the Western Europe,
> transmitting ISO 8859-1 texts without correct prefix 0x10 0x00 0x01 so
> this quirk is necessary in that case. However, there should be a
> possibility to turn that quirk off for countries where ISO 6937 is used.
>
> In reverse, when creating a new DVB string using dvb_string_set, it
> looks like that it is encoding ISO 8859-9, which is output without any
> prefix, instead of ISO 6937:
>
> 105 if (!strcmp(psz_encoding, "ISO_8859-9")) {
> 106 *pi_out_length = i_length;
> 107 return (uint8_t *)strdup((const char *)p_string);
> 108 }
>
> This looks very odd to me. Why ISO 8859-9? I would expect 8859-1, as in
> the decoding function.
>
> Thanks in advance for some explanation.
>
> All the Best,
> Ondřej Caletka
>
More information about the dvblast-devel
mailing list