[mythtv] EIT multi-byte encoding

JP Moitinho de Almeida moitinho at civil.ist.utl.pt
Wed Mar 16 23:00:21 UTC 2011


Hello

This week the EIT data that I receive on the Portuguese DVB-T network "TDT 
Continente" became empty. The slots are properly defined, but the descriptions 
are empty. 

This network had a special clause on eithelper.cpp (the last one on the list) 
for ISO8859_15, but when I checked the output of dvbsnoop (at the  end) it was 
clear that now it is the "UTF-8 encoding of ISO/IEC 10646" (code 0x15).

That impression is confirmed by 
"2011-03-16 22:00:10.196 dvb_decode_text: Multi-byte coded text is not yet 
supported." 
in the output of "mythbackend -v siparser,eit"

Furthermore kaffeine, used to provide a program guide with wrong encoding is 
now giving a perfect text. It just uses (if I understand the code correctly)

case Utf_8: codec = QTextCodec::codecForName("UTF-8"); break;

How tricky would it be to include the corresponding code in dvbdescriptors.cpp 
for the case (src[0] == 0x15)? 

It seems that Qt has all the necessary stuff and I am prepared to test 
patches. Unfortunately my cpp/qt knowledge is not appropriate to start  
without some guidance.

Or is it more effective to open a ticket?

Thanks, regards

ZP

-------------------------
Some info

- Running mythbackend version: fixes/0.24 [v0.24-211-g785ea1b] 

- output of dvbsnoop -n 1 0x12

dvbsnoop V1.4.50 -- http://dvbsnoop.sourceforge.net/ 

------------------------------------------------------------
SECT-Packet: 00000001   PID: 18 (0x0012), Length: 543 (0x021f)
Time received: Wed 2011-03-16  22:45:48.749
------------------------------------------------------------
  0000:  4e f2 1c 04 50 f3 01 01  04 4d 22 c8 01 4e 39 60   N...P....M"..N9`
  0010:  d9 54 23 55 00 01 05 00  02 01 4d db 70 6f 72 14   .T#U......M.por.
  0020:  15 53 65 64 75 c3 a7 c3  a3 6f 20 2d 20 45 70 2e   .Sedu....o - Ep.
  0030:  20 31 30 32 c2 15 53 61  6d 75 65 6c 20 65 20 46    102..Samuel e F
  0040:  6c 6f 72 20 70 72 65 70  61 72 61 6d 2d 73 65 20   lor preparam-se 
  0050:  70 61 72 61 20 62 65 62  65 72 20 75 6d 20 63 6f   para beber um co
  0060:  70 6f 20 64 65 20 76 69  6e 68 6f 20 65 20 72 65   po de vinho e re
  0070:  6c 61 78 61 72 20 71 75  61 6e 64 6f 20 73 c3 a3   laxar quando s..
  0080:  6f 20 69 6e 74 65 72 72  6f 6d 70 69 64 6f 73 20   o interrompidos 
  0090:  70 6f 72 20 75 6d 20 74  65 6c 65 66 6f 6e 65 6d   por um telefonem
  00a0:  61 2e 20 41 20 61 64 76  6f 67 61 64 61 20 61 63   a. A advogada ac
  00b0:  61 62 61 20 70 6f 72 20  74 65 72 20 64 65 20 73   aba por ter de s
  00c0:  61 69 72 20 65 20 70 6f  75 63 6f 73 20 6d 69 6e   air e poucos min
  00d0:  75 74 6f 73 20 64 65 70  6f 69 73 20 53 6f 66 69   utos depois Sofi
  00e0:  61 20 61 70 61 72 65 63  65 2c 20 65 6e 74 72 61   a aparece, entra
  00f0:  6e 64 6f 20 2e 2e 2e 4e  fe 01 70 6f 72 00 f8 15   ndo ...N..por...
  0100:  53 61 6d 75 65 6c 20 65  20 46 6c 6f 72 20 70 72   Samuel e Flor pr
  0110:  65 70 61 72 61 6d 2d 73  65 20 70 61 72 61 20 62   eparam-se para b
  0120:  65 62 65 72 20 75 6d 20  63 6f 70 6f 20 64 65 20   eber um copo de 
  0130:  76 69 6e 68 6f 20 65 20  72 65 6c 61 78 61 72 20   vinho e relaxar 
  0140:  71 75 61 6e 64 6f 20 73  c3 a3 6f 20 69 6e 74 65   quando s..o inte
  0150:  72 72 6f 6d 70 69 64 6f  73 20 70 6f 72 20 75 6d   rrompidos por um
  0160:  20 74 65 6c 65 66 6f 6e  65 6d 61 2e 20 41 20 61    telefonema. A a
  0170:  64 76 6f 67 61 64 61 20  61 63 61 62 61 20 70 6f   dvogada acaba po
  0180:  72 20 74 65 72 20 64 65  20 73 61 69 72 20 65 20   r ter de sair e 
  0190:  70 6f 75 63 6f 73 20 6d  69 6e 75 74 6f 73 20 64   poucos minutos d
  01a0:  65 70 6f 69 73 20 53 6f  66 69 61 20 61 70 61 72   epois Sofia apar
  01b0:  65 63 65 2c 20 65 6e 74  72 61 6e 64 6f 20 64 65   ece, entrando de
  01c0:  20 72 6f 6d 70 61 6e 74  65 20 6e 61 20 63 61 73    rompante na cas
  01d0:  61 20 64 6f 20 72 65 61  6c 69 7a 61 64 6f 72 20   a do realizador 
  01e0:  65 20 66 61 7a 65 6e 64  6f 2d 73 65 20 64 65 20   e fazendo-se de 
  01f0:  63 6f 6e 76 69 64 61 4e  22 11 70 6f 72 00 1c 64   convidaN".por..d
  0200:  61 20 70 61 72 61 20 62  65 62 65 72 20 76 69 6e   a para beber vin
  0210:  68 6f 20 63 6f 6d 20 65  6c 65 2e 0c b5 e6 56      ho com ele....V

PID:  18 (0x0012)  [= assigned for: DVB Event Information Table (EIT)]

Guess table from table id...
EIT-decoding....
Table_ID: 78 (0x4e)  [= Event Information Table (EIT) - actual transport 
stream, present/following]
section_syntax_indicator: 1 (0x01)
reserved_1: 1 (0x01)
reserved_2: 3 (0x03)
Section_length: 540 (0x021c)
Service_ID: 1104 (0x0450)  [=  --> refers to PMT program_number]
reserved_3: 3 (0x03)
Version_number: 25 (0x19)
current_next_indicator: 1 (0x01)  [= valid now]
Section_number: 1 (0x01)
Last_Section_number: 1 (0x01)
Transport_stream_ID: 1101 (0x044d)
Original_network_ID: 8904 (0x22c8)  [= >>ERROR: not (yet) defined... 
Report!<<]
Segment_last_Section_number: 1 (0x01)
Last_table_id: 78 (0x4e)  [= Event Information Table (EIT) - actual transport 
stream, present/following]

    Event_ID: 14688 (0x3960)
    Start_time: 0xd954235500 [= 2011-03-16 23:55:00 (UTC)]
    Duration: 0x0010500 [=  01:05:00 (UTC)]
    Running_status: 0 (0x00)  [= undefined]
    Free_CA_mode: 0 (0x00)  [= unscrambled]
    Descriptors_loop_length: 513 (0x201)

            DVB-DescriptorTag: 77 (0x4d)  [= short_event_descriptor]
            descriptor_length: 219 (0xdb)
              ISO639_2_language_code:  por
            event_name_length: 20 (0x14)
            event_name: "Sedução - Ep. 102"  -- Charset: reserved
            text_length: 194 (0xc2)
            text_char: "Samuel e Flor preparam-se para beber um copo de vinho 
e relaxar quando são interrompidos por um telefonema. A advogada acaba por ter 
de sair e poucos minutos depois Sofia aparece, entrando ..."  -- Charset: 
reserved

            DVB-DescriptorTag: 78 (0x4e)  [= extended_event_descriptor]
            descriptor_length: 254 (0xfe)
            descriptor_number: 0 (0x00)
            last_descriptor_number: 1 (0x01)
            ISO639_2_language_code:  por
            length_of_items: 0 (0x00)

            text_length: 248 (0xf8)
            text: "Samuel e Flor preparam-se para beber um copo de vinho e 
relaxar quando são interrompidos por um telefonema. A advogada acaba por ter 
de sair e poucos minutos depois Sofia aparece, entrando de rompante na casa do 
realizador e fazendo-se de convida"  -- Charset: reserved

            DVB-DescriptorTag: 78 (0x4e)  [= extended_event_descriptor]
            descriptor_length: 34 (0x22)
            descriptor_number: 1 (0x01)
            last_descriptor_number: 1 (0x01)
            ISO639_2_language_code:  por
            length_of_items: 0 (0x00)

            text_length: 28 (0x1c)
            text: "da para beber vinho com ele."  -- Charset: Latin alphabet

CRC: 213247574 (0x0cb5e656)
==========================================================


More information about the mythtv-dev mailing list