Beiträge von michaelv

    Original von sparkie
    sorry, noch ein Bug. Uebrigens, dass hier nicht der falsche Eindruck entsteht: das 'xineliboutput' ist eine echte Bereicherung des VDR. Vielen Dank von hier an den Author, meine finnisch Kenntnisse sind leider eher etwas duerftig :]




    patch für grab segfault:


    --- vdr-plugin-xineliboutput-0.99rc4+cvs20060821/device.c 2006-08-21 19:16:37.000000000 +0200
    +++ vdr-plugin-xineliboutput-0.99rc4+cvs20060821+grab/device.c 2006-08-23 13:02:39.000000000 +0200
    @@ -1185,7 +1185,7 @@
    if(m_local)451 Grab image failed
    return m_local->GrabImage(Size, Jpeg, Quality, SizeX, SizeY);
    if(m_server)
    - return m_local->GrabImage(Size, Jpeg, Quality, SizeX, SizeY);
    + return m_server->GrabImage(Size, Jpeg, Quality, SizeX, SizeY);


    return NULL;
    }



    Damit bekomme ich zwar immer "451 Grab image failed"
    aber wenigstens keinen segfault mehr ;)

    Hi,


    ich glaube du hast das gleiche Problem wie ich.
    Es gibt Twinhan DVB-S 1020a Karten die sich in einigen (allen?) Mainboards mit falscher Subsystem Id am PCI Bus identifizieren. Dadurch schlägt die automatische Erkennug fehl.



    bttv0: subsystem: 0000:0001 (UNKNOWN)
    Das müsste eigentlich 1822:0001 sein.




    Bis Kernel 2.6.15 kann man den richtigen Kartentyp mit dem Parameter card=0x71 für das bttv Modul erzwingen.
    Ab Kernel 2.6.16 funktioniert das nicht mehr, da das zusätzlich benötigte dvb_bt8xx Modul die Subsystem Id nochmal prüft und sich dann nicht laden lässt.


    Abhilfe:
    1.) Kernel <= 2.6.15 benutzen
    oder
    2.) Kernel patchen und selber compilieren


    Dazu folgenden Abschnitt aus bt878.c rauslöschen:


    ---------------------------
    for (i = 0, dvb_cards = card_list; i < ARRAY_SIZE(card_list); i++, dvb_cards++) {
    if (cardid == dvb_cards->pci_id) {
    printk("%s: card id=[0x%x],[ %s ] has DVB functions.\n",
    __func__, cardid, dvb_cards->name);
    has_dvb = 1;
    }
    }


    if (!has_dvb) {
    printk("%s: card id=[0x%x], Unknown card.\nExiting..\n", __func__, cardid);
    result = -EINVAL;


    goto fail0;
    }
    ---------------------------