Sidan 2 av 2 FörstaFörsta 12
Resultat 11 till 13 av 13

Ämne: Ubuntu 10.04 open-sasc-ng och newcamd

  1. #11

    PATCH för dvbloopback/plugin_getsid.c för terrestial delivery

    Här är en patch för VDR/sasc-ng så att get_sid inte snubblar på "terrestial" carriers, dvs boxer.

    Det löser inga krypteringsfel såklart, men snabbar upp synkandet. Jag upplever att kanalbyte går bättre i alla fall.

    Tala gärna om hur det går, så kan jag göra en ansats att få upp koden i repositoryt.

    Kod:
    diff -r 1cc3497be31c contrib/sasc-ng/dvbloopback/src/plugin_getsid.c
    --- a/contrib/sasc-ng/dvbloopback/src/plugin_getsid.c   Tue Apr 13 09:55:20 2010 +0800
    +++ b/contrib/sasc-ng/dvbloopback/src/plugin_getsid.c   Tue Sep 21 15:44:45 2010 +0200
    @@ -189,7 +189,9 @@
                  last_sec, MAX_PAT_SECTIONS);
         return 1;
       }
    +  dprintf0("read_pat: end = %0x, sec = %d, last_sec = %d\n", end, sec, last_sec);
       if (pat->version != version || last_sec != pat->last_section) {
    +    dprintf0("read_pat: pat->version: %d, version: %d, last_sec: %d, pat->last_section\n", pat->version, version, last_sec, pat->last_section);
         pat->version = version;
         pat->last_section = last_sec;
         while(! list_empty(&pat->dmx_filter_ll)) {
    @@ -232,6 +234,8 @@
           dprintf2("found NIT at PID: %d", pid);
         }
       }
    +  dprintf0("read_pat: ŕeturn 0;");
    +
       return 0;
     }
     /*
    @@ -270,14 +274,22 @@
     static int read_nit(unsigned char *buf, struct nit_data *nit, unsigned int size) {
       int len, tsl_len, td_len, tag_len, network_desc_len;
       int network_id, pos, tag;
    +
    +  if( size < 10 ) {
    +    dprintf0(
    +             "read_nit: to short buffer read (%d) < 10 bytes for header.\n",size);
    +    return -1;
    +  }
       if (buf[0] != 0x40 && buf[0] != 0x41 && buf[0] != 0x72) {
         dprintf0(
    -             "read_nit expected table 0x40  or 0x41 but got 0x%02x\n", buf[0]);
    +             "read_nit: aborting! Expected table 0x40,0x41 or 0x72 but got 0x%02x\n", buf[0]);
         return -1;
       }
       if (buf[0] != 0x40) {
    +    dprintf0("read_nit: ignoring table 0x%02x. (not NIT)\n", buf[0]);
         return 0;
       }
    +
       len = ((buf[1] & 0x07) << 8) | buf[2];
       network_id = (buf[3]<<8) | buf[4];
       network_desc_len = ((buf[8] & 0x0f) << 8) | buf[9];
    @@ -289,6 +301,7 @@
           tag = buf[pos+6];
           tag_len = buf[pos+7];
           if(tag == 0x43 && tag_len >= 11) { //satellite descriptor
    +       dprintf0("read_nit: satellite delivery");
             nit->type = tag;
             nit->frequency = (buf[pos+8] << 24) | (buf[pos+9]<<16) | (buf[pos+10]<<8) | buf[pos+11];
             nit->orbit = (buf[pos+12] << 8) | buf[pos+13];
    @@ -300,6 +313,7 @@
             printf("Orbit: %08x%c\n", nit->orbit, nit->is_east ? 'E' : 'W');
             return 1;
           } else if(tag == 0x44 && tag_len >= 11) { //cable descriptor
    +       dprintf0("read_nit: cable delivery");
             nit->type = tag;
             nit->frequency = (buf[pos+8] << 24) | (buf[pos+9]<<16) | (buf[pos+10]<<8) | buf[pos+11];
             nit->modulation = buf[pos+14];
    @@ -307,7 +321,13 @@
             nit->fec = buf[pos+18];
             printf("Cable: %08x\n", nit->frequency);
             return 1;
    +      } else if(tag == 0x5A && tag_len >= 11) { //terrestial_delivery
    +       dprintf0("read_nit: terrestial delivery");
    +        nit->type = tag;
    +       nit->frequency = (buf[pos+8] << 24) | (buf[pos+9]<<16) | (buf[pos+10]<<8) | buf[pos+11];
    +       return 1;
           }
    +
           pos += tag_len+2;
           td_len -= tag_len+2;
         }

  2. #12
    Citat Ursprungligen postat av rolrn Visa inlägg
    Angående "viaccess 4", kolla på OSCam som server. Klienten har inte med detta att göra.

    Oscam stödjer detta, men kräven en aes-nyckel för att avkoda dataströmen innan "vanlig" avkodning.
    Tack för tipset om OSCam. Det verkar funka bättre än newcs, och är dessutom öppen källkod.

    Nu återstår det där med en nyckel... Finns det någon listigare strategi än att köra sin surt slantade CAM modul genom ett elektronmikroskop?

    Är nyckeln unik för CAM:en eller används samma i en hel serie? En hel serie antar jag eftersom jag inte registrerat kortet nånstans, eller?

  3. #13
    Citat Ursprungligen postat av blippo Visa inlägg
    Här är en patch för VDR/sasc-ng så att get_sid inte snubblar på "terrestial" carriers, dvs boxer.

    Det löser inga krypteringsfel såklart, men snabbar upp synkandet. Jag upplever att kanalbyte går bättre i alla fall.

    Tala gärna om hur det går, så kan jag göra en ansats att få upp koden i repositoryt.

    Kod:
    diff -r 1cc3497be31c contrib/sasc-ng/dvbloopback/src/plugin_getsid.c
    --- a/contrib/sasc-ng/dvbloopback/src/plugin_getsid.c   Tue Apr 13 09:55:20 2010 +0800
    +++ b/contrib/sasc-ng/dvbloopback/src/plugin_getsid.c   Tue Sep 21 15:44:45 2010 +0200
    @@ -189,7 +189,9 @@
                  last_sec, MAX_PAT_SECTIONS);
         return 1;
       }
    +  dprintf0("read_pat: end = %0x, sec = %d, last_sec = %d\n", end, sec, last_sec);
       if (pat->version != version || last_sec != pat->last_section) {
    +    dprintf0("read_pat: pat->version: %d, version: %d, last_sec: %d, pat->last_section\n", pat->version, version, last_sec, pat->last_section);
         pat->version = version;
         pat->last_section = last_sec;
         while(! list_empty(&pat->dmx_filter_ll)) {
    @@ -232,6 +234,8 @@
           dprintf2("found NIT at PID: %d", pid);
         }
       }
    +  dprintf0("read_pat: ŕeturn 0;");
    +
       return 0;
     }
     /*
    @@ -270,14 +274,22 @@
     static int read_nit(unsigned char *buf, struct nit_data *nit, unsigned int size) {
       int len, tsl_len, td_len, tag_len, network_desc_len;
       int network_id, pos, tag;
    +
    +  if( size < 10 ) {
    +    dprintf0(
    +             "read_nit: to short buffer read (%d) < 10 bytes for header.\n",size);
    +    return -1;
    +  }
       if (buf[0] != 0x40 && buf[0] != 0x41 && buf[0] != 0x72) {
         dprintf0(
    -             "read_nit expected table 0x40  or 0x41 but got 0x%02x\n", buf[0]);
    +             "read_nit: aborting! Expected table 0x40,0x41 or 0x72 but got 0x%02x\n", buf[0]);
         return -1;
       }
       if (buf[0] != 0x40) {
    +    dprintf0("read_nit: ignoring table 0x%02x. (not NIT)\n", buf[0]);
         return 0;
       }
    +
       len = ((buf[1] & 0x07) << 8) | buf[2];
       network_id = (buf[3]<<8) | buf[4];
       network_desc_len = ((buf[8] & 0x0f) << 8) | buf[9];
    @@ -289,6 +301,7 @@
           tag = buf[pos+6];
           tag_len = buf[pos+7];
           if(tag == 0x43 && tag_len >= 11) { //satellite descriptor
    +       dprintf0("read_nit: satellite delivery");
             nit->type = tag;
             nit->frequency = (buf[pos+8] << 24) | (buf[pos+9]<<16) | (buf[pos+10]<<8) | buf[pos+11];
             nit->orbit = (buf[pos+12] << 8) | buf[pos+13];
    @@ -300,6 +313,7 @@
             printf("Orbit: %08x%c\n", nit->orbit, nit->is_east ? 'E' : 'W');
             return 1;
           } else if(tag == 0x44 && tag_len >= 11) { //cable descriptor
    +       dprintf0("read_nit: cable delivery");
             nit->type = tag;
             nit->frequency = (buf[pos+8] << 24) | (buf[pos+9]<<16) | (buf[pos+10]<<8) | buf[pos+11];
             nit->modulation = buf[pos+14];
    @@ -307,7 +321,13 @@
             nit->fec = buf[pos+18];
             printf("Cable: %08x\n", nit->frequency);
             return 1;
    +      } else if(tag == 0x5A && tag_len >= 11) { //terrestial_delivery
    +       dprintf0("read_nit: terrestial delivery");
    +        nit->type = tag;
    +       nit->frequency = (buf[pos+8] << 24) | (buf[pos+9]<<16) | (buf[pos+10]<<8) | buf[pos+11];
    +       return 1;
           }
    +
           pos += tag_len+2;
           td_len -= tag_len+2;
         }

    Jag upplever också att denna patch snabbar på kanalbyten betydligt. Bara försöka trycka in i repositoryt.
    Bra jobbat.

Liknande ämnen

  1. open-sasc-ng ersättare?
    Av cry_wolf i forum Linux
    Svar: 5
    Senaste inlägg: 2009-12-14, 17:56

Taggar för det här ämnet

Behörigheter för att posta

  • Du får inte posta nya ämnen
  • Du får inte posta svar
  • Du får inte posta bifogade filer
  • Du får inte redigera dina inlägg
  •  
stöd oss
ComHit.net är en ideell sidan som drivs helt utan reklamintäkter, detta för att du som användare ska slippa all störande reklam och diskutera de saker du är intresserad av.
Skulle man däremot känna att man vill donera en slant för att hjälpa ComHit.net att bli bättre är ni välkomna att donera via länken nedan.

https://www.paypal.me/comhit/
Följ oss