Ticket #5882: vdr_conf.diff

File vdr_conf.diff, 1.6 KB (added by mnix <mythtv-acct@…>, 11 years ago)

Handle VDR format channels.conf produced by scan-s2 (not the best fix, but it works)

  • dtvconfparser.cpp

    old new  
    108108
    109109        str = list[3];
    110110
     111        if ((strtoul(str.toLatin1(),NULL,10)>0) &&
     112            ((str.right(1)=="E") || (str.right(1)=="W"))
     113           )
     114        {
     115            str="S";
     116        }
     117
    111118        if ((str == "T") || (str == "C") || (str == "S"))
    112119        {
    113120            if ((type == OFDM) && (str == "T"))
     
    231238
    232239// BBC ONE:754166:I999B8C34D34M16T2G32Y0:T:27500:600:601, 602:0:0:4168:0:0:0
    233240
    234     PARSE_SKIP(unknown);
     241    PARSE_STR(chan.name);
    235242
    236243    PARSE_UINT_1000(mux.frequency);
    237244
     
    243250    {
    244251        QString ori = params;
    245252        int s = (int) (params.toAscii().constData()[0]);
     253        s=toupper(s);
    246254        params = params.mid(1);
    247255        switch (s)
    248256        {
     
    280288            case 'O':
    281289                mux.rolloff.ParseVDR(params);
    282290                break;
     291            case '0':
     292            case '1':
     293            case '2':
     294            case '3':
     295            case '4':
     296            case '5':
     297            case '6':
     298            case '7':
     299            case '8':
     300            case '9':
     301                break;
    283302            default:
    284                 return false;
     303                VERBOSE(VB_IMPORTANT, "Warning: Unknown parameter in list:"<<(char)s);
     304                //return false;
    285305        }
    286306    }
    287307
    288     for (uint i = 0; i < 6; i++)
     308    PARSE_SKIP(unknown);
     309
     310    PARSE_UINT_1000(mux.symbolrate);
     311
     312    for (uint i = 0; i < 4; i++)
    289313        PARSE_SKIP(unknown);
    290314
    291315    PARSE_UINT(chan.serviceid);