Ticket #2521: mythtv_fix_bell_eit_enc.patch

File mythtv_fix_bell_eit_enc.patch, 1.6 KB (added by chhamilton@…, 14 years ago)

Patch to correct incorrect EIT character encoding for Bell ExpressVu?

  • libs/libmythtv/eithelper.cpp

    old new  
    268268                    list, DescriptorID::short_event, languagePreferences);
    269269
    270270            unsigned char enc_ch[1] = { 0x05 };
    271             const unsigned char *enc =
    272                 (fix & EITFixUp::kEFixPro7Sat) ? enc_ch : NULL;
     271            unsigned char enc_bev[3] = { 0x10, 0x00, 0x01 };
     272            int enc_len = 0;
     273            const unsigned char *enc = NULL;
     274            if ( fix & EITFixUp::kEFixPro7Sat )
     275            {
     276                enc = enc_ch;
     277                enc_len = sizeof(enc_ch);
     278            }
     279            // Is BellExpressVU?  Use an encoding over-ride of
     280            // ISO 8859-1 (Latin1)
     281            if ( fix & EITFixUp::kFixBell )
     282            {
     283              enc = enc_bev;
     284              enc_len = sizeof(enc_bev);
     285            }
    273286
    274287            if (bestShortEvent)
    275288            {
    276289                ShortEventDescriptor sed(bestShortEvent);
    277290                if (enc)
    278291                {
    279                     title    = sed.EventName(enc, 1);
    280                     subtitle = sed.Text(enc, 1);
     292                    title    = sed.EventName(enc, enc_len);
     293                    subtitle = sed.Text(enc, enc_len);
    281294                }
    282295                else
    283296                {
     
    301314
    302315                ExtendedEventDescriptor eed(bestExtendedEvents[j]);
    303316                if (enc)
    304                     description += eed.Text(enc, 1);
     317                    description += eed.Text(enc, enc_len);
    305318                else
    306319                    description += eed.Text();
    307320            }