VDR-1.3.22 + DXR3 + Streamdev: Segfault beim Umschalten

  • Hallo an alle,


    nagel neue Debian/Sarge nfsroot minimal Installation.
    VDR ist vanilla 1.3.22
    DXR3 aus dem CVS von heute

    Code
    cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/dxr3plugin login
    cvs -z9 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/dxr3plugin co -r vdr-dxr3-0-2 dxr3


    streamdev ebenfalls CVS von heute

    Code
    cvs -d:pserver:anoncvs@vdr-developer.org:/var/cvsroot login
    cvs -d:pserver:anoncvs@vdr-developer.org:/var/cvsroot co streamdev


    gdb --args vdr -c/usr/etc/vdr -Pstreamdev-client -Pdxr3
    bringt dann nach ein paar mal Channel zappen (svdrpsend.pl) folgenden Fehler



    ohne gdb sieht das dann so aus

    Code
    # ./vdr -c/usr/etc/vdr -Pstreamdev-client -Pdxr3
    Speicherzugriffsfehler


    syslog meint nur "kernel: em8300_video.o: Video sync interrupted"



    kann mir geholfen helfen?

    Server: Debian/lenny (vserver), vdr 1.6 (3 x Budget DVB-S), streamdev, epgseaach, noad, vdradmin, mysql, Bootserver
    Client 1: Ubuntu/lucid (diskless), XBMC-pvr, Asus AT3IONT (VDPAU)
    Client 2: Debian/squeeze (diskless), XBMC-pvr, Asus AT3IONT (VDPAU)
    Client 3: Debian/etch (diskelss), vdr 1.6, FF-DVB nur Ausgabe, VIA V8000
    Client 4: Debian/etch (diskless), vdr 1-6, DXR3, P1 200 Mhz

    Einmal editiert, zuletzt von devnix ()

  • Hallo,


    grad im IRC mit devnix besprochen und ausgetestet. Bis ich weiss wie die Passage endgültig aussehen wird, verhilft der folgende Schritt vorerst wieder zu Stabilität:


    In client/device.c, Methode OpenDvr() muss folgende Passage umgeschrieben werden:

    Code
    if (ClientSocket.CreateDataConnection(siLive)) {
        m_Assembler = new cStreamdevAssembler(ClientSocket.DataSocket(siLive));
        m_TSBuffer = new cTSBuffer(m_Assembler->ReadPipe(), MEGABYTE(2), CardIndex() + 1);
        Dprintf("waiting\n");
        m_Assembler->WaitForFill();
        Dprintf("resuming\n");
        return true;
      }


    wie folgt umstellen (Zeilen 2,3 und 5):


    Code
    if (ClientSocket.CreateDataConnection(siLive)) {
        m_TSBuffer = new cTSBuffer(*ClientSocket.DataSocket(siLive), MEGABYTE(2), CardIndex() + 1);
        Dprintf("waiting\n");
        usleep(100000);
        Dprintf("resuming\n");
        return true;
      }

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!