[PreAnnouce] Patch: Streamdev enable LinkChannels for Director Plugin

  • Hallo Leute,
    es ist fast geschafft - mein erster Patch für den VDR und die Community ist fast fertig :applaus



    Mich hat es immer gestört, dass das Director Plugin nicht auf dem Streamdev-Client funktioniert und nun hat es mich endlich gepackt und ich hab den Patch soweit fast fertig - wenn da nicht ein kleiner Schönheitsfehler wäre, der Director wirft einen Segmentation Fault:motz3


    So - und da ich mit gdb nicht so gut umgehen kann wie sonst viele hier bitte ich euch doch auf die Fehlersuche zu gehen.


    Ich bin mit dem Patch soweit, dass der Server die nötigen Channel Links ausliest und dem Client füttert. Nun bin ich mir jedoch nicht so sicher ob ich auch alles richtig gemacht hab, wäre also toll wenn jemand den Code unter die Lupe nehmen könnte.
    Director crasht entweder hiermit:

    Code
    Program received signal SIGSEGV, Segmentation fault.
    [Switching to Thread -1211418432 (LWP 24680)]cDirectorOsd::getNumLinks (this=0xa1d2700) at ../../../include/vdr/tools.h:310
    310 int Count(void) const { return count; }
    Current language: auto; currently c++


    oder mit dieser Meldung:

    Code
    Program received signal SIGSEGV, Segmentation fault.
    [Switching to Thread -1211803456 (LWP 17724)],
    0xb7cc2c2b in strlen () from /lib/tls/i686/cmov/libc.so.6


    Bin ja mal auf eure Antworten gespannt...


    Ach ja, vielleicht gibts ja noch ne bessere Lösung für
    cChannel *ChannelFromString_notconst() :arme


    Gruß,
    Julian

    Dateien

    ##Hardware: 1800Athlon, 512MB RAM, TT1.6, KNC1 Budget, 160GB auf Asus A7V333 in einem Scenic600-Mod mit 320x240GLCD##
    ##Software: Kernel 2.6.10: Gentoo mit VDR-1.3.14, SoftAC3, NVRAM-Wakeup WakeOn-Lirc##
    ##Plugins: Burn, DVD, MP3, MPlayer, PiP, Teletext, Pilot, SleepTimer, TvOnsreen, Image, Timeline,TVTV, VCD, VDRCD##
    ##ToDo: LowNoise-Mod##

  • Zitat

    Ach ja, vielleicht gibts ja noch ne bessere Lösung für
    cChannel *ChannelFromString_notconst()


    Du kannst die "normale" ChannelFromString() verwenden, wenn Du einfach den channel in cConnectionVTP::CmdLC() als const deklarierst:

    Code
    const cChannel *channel = NULL;


    Ohne Deinen Beitrag schmälern zu wollen: Die mächtigere Lösung wäre wohl Section Streaming zu implementieren. Leider hat sich dem bislang noch niemand angenommen. Damit sollen auf dem Client nicht nur die Linkchannels funktionieren, der Client würde z.B. auch direkt mit EPG versorgt.

  • Zitat

    Original von schmirl


    Du kannst die "normale" ChannelFromString() verwenden, wenn Du einfach den channel in cConnectionVTP::CmdLC() als const deklarierst:

    Code
    const cChannel *channel = NULL;


    Danke für deine Antwort. Das ist jedoch nicht die Lösung!
    Denn dann kann ich ja nicht die LinkChannels mit SetLinkChannels() setzen da der cChannel const ist.



    Zitat


    Ohne Deinen Beitrag schmälern zu wollen: Die mächtigere Lösung wäre wohl Section Streaming zu implementieren. Leider hat sich dem bislang noch niemand angenommen. Damit sollen auf dem Client nicht nur die Linkchannels funktionieren, der Client würde z.B. auch direkt mit EPG versorgt.


    Ja Sowas dacht ich mir schon, nur dafür kann ich micht gut genug mit dem ganzen VDR aus, aber wenn mich dabei jemand unterstützt würd ich es schonmal versuchen.



    Julian

    ##Hardware: 1800Athlon, 512MB RAM, TT1.6, KNC1 Budget, 160GB auf Asus A7V333 in einem Scenic600-Mod mit 320x240GLCD##
    ##Software: Kernel 2.6.10: Gentoo mit VDR-1.3.14, SoftAC3, NVRAM-Wakeup WakeOn-Lirc##
    ##Plugins: Burn, DVD, MP3, MPlayer, PiP, Teletext, Pilot, SleepTimer, TvOnsreen, Image, Timeline,TVTV, VCD, VDRCD##
    ##ToDo: LowNoise-Mod##

  • Zitat

    Denn dann kann ich ja nicht die LinkChannels mit SetLinkChannels() setzen da der cChannel const ist.


    Ähm - Dein const-Problem ist in cConnectionVTP::CmdLC() auf dem Server. SetLinkChannels() rufst Du in cClientSocket::LoadLC() auf - auf dem Client. Hat miteinander überhaupt nix zu tun. Das const in cConnectionVTP::CmdLC() geht schon in Ordnung.

  • Zitat

    Original von schmirl


    Ähm - Dein const-Problem ist in cConnectionVTP::CmdLC() auf dem Server. SetLinkChannels() rufst Du in cClientSocket::LoadLC() auf - auf dem Client. Hat miteinander überhaupt nix zu tun. Das const in cConnectionVTP::CmdLC() geht schon in Ordnung.


    Sorry - Du hast natürlich recht. Das const Problem hatte ich befor ich den current Channel noch nicht mit Channels.GetByChannelID holte.


    Julian

    ##Hardware: 1800Athlon, 512MB RAM, TT1.6, KNC1 Budget, 160GB auf Asus A7V333 in einem Scenic600-Mod mit 320x240GLCD##
    ##Software: Kernel 2.6.10: Gentoo mit VDR-1.3.14, SoftAC3, NVRAM-Wakeup WakeOn-Lirc##
    ##Plugins: Burn, DVD, MP3, MPlayer, PiP, Teletext, Pilot, SleepTimer, TvOnsreen, Image, Timeline,TVTV, VCD, VDRCD##
    ##ToDo: LowNoise-Mod##

Jetzt mitmachen!

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