Changeset 10791


Ignore:
Timestamp:
10/29/11 02:00:12 (11 years ago)
Author:
nit
Message:

[titan] update epg to got other transponder epg (in the moment only with old channellist (tid only), in 3-4 days i will change it to new channellist (onid + tid)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • titan/titan/epg.h

    r10722 r10791  
    496496        time_t akttime = 1307871000;
    497497        //akttime = 1315614900;
     498        akttime = 1317927300;
    498499#else
    499500        time_t akttime = time(NULL);
     
    10911092        int zlen = 0, ret = 0;
    10921093        time_t epgmaxsec = status.epgdays * 24 * 60 * 60;
     1094        unsigned long transponderid = 0;
    10931095
    10941096        len -= 4; //remove CRC
     
    11051107                if(chnode == status.aktservice->channel && status.aktservice->type != CHANNEL)
    11061108                        return;
    1107 
    1108                 tmpchnode = getchannel(HILO(eit->service_id), chnode->transponderid);
     1109               
     1110                //TODO: change to onid + tid
     1111                transponderid = HILO(eit->transport_stream_id);
     1112                //transponderid = (HILO(eit->original_network_id) << 16) | HILO(eit->transport_stream_id);
     1113                tmpchnode = getchannel(HILO(eit->service_id), transponderid);
    11091114                if(tmpchnode == NULL)
    11101115                {
     
    11171122                if(status.epglistmode == 2 || status.epglistmode == 3)
    11181123                {
    1119                         if(getepgscanlist(HILO(eit->service_id), chnode->transponderid) == NULL)
     1124                        if(getepgscanlist(HILO(eit->service_id), transponderid) == NULL)
    11201125                                return;
    11211126                }
     
    13311336        struct eit* eit = NULL;
    13321337
    1333         buf = malloc(MINMALLOC);
     1338        buf = malloc(MINMALLOC * 4);
    13341339        if(buf == NULL)
    13351340        {
     
    13731378
    13741379                eit = (struct eit*)head;
    1375                 if(eit->table_id < 0x4e || eit->table_id > 0x6f) goto read_more;
    13761380
    13771381                len = 3 + GETEITSECLEN(eit);
    13781382                if (pos < len) goto read_more;
     1383               
     1384                if(eit->table_id < 0x4e || eit->table_id > 0x6f)
     1385                {
     1386                        err("epg table id");
     1387                        pos -= len;
     1388                        head += len;
     1389                        goto read_more;
     1390                }
    13791391
    13801392                if(dvbcrc32((uint8_t *)head, len) == 0)
     
    13961408read_more:
    13971409                //clear buffer
    1398                 if(pos == MINMALLOC)
     1410                if(pos == MINMALLOC * 4)
    13991411                {
    14001412                        pos = 0;
    14011413                        head = buf;
     1414                        dmxstop(dmxnode);
     1415                        dmxstart(dmxnode);
    14021416                }
    14031417
     
    14131427                //fill with fresh data
    14141428#ifdef SIMULATE
    1415                 readlen = TEMP_FAILURE_RETRY(read(fd, buf + pos, MINMALLOC - pos));
     1429                readlen = TEMP_FAILURE_RETRY(read(fd, buf + pos, (MINMALLOC * 4) - pos));
    14161430                usleep(200000);
    14171431#else
    1418                 readlen = dvbread(dmxnode, buf, pos, MINMALLOC - pos, 100000);
     1432                readlen = dvbread(dmxnode, buf, pos, (MINMALLOC * 4) - pos, 100000);
    14191433                usleep(1000);
    14201434#endif
     
    14281442                        while(self->aktion != STOP && self->aktion != PAUSE && status.epgtimer < time(NULL) - 3)
    14291443                        {
    1430                                 if(count > 10 * 60 * 10) break; //10 min
     1444                                if(count > 2 * 60 * 20) break; //20 min
    14311445                                count++;
    1432                                 usleep(100000);
     1446                                usleep(500000);
    14331447                        }
    14341448                        count = 0;
Note: See TracChangeset for help on using the changeset viewer.