noEPG: Aufhebung 999-Zeichen-limit

  • Hallo allerseits,


    ich habe den noEPG-Patch einmal überarbeitet.
    Ein grosses Problem des Patches war, dass er fix auf 999 Zeichen eingeschränkt war. Es werden beim Patch die KanalIDs gespeichert, also ca. 25 Zeichen pro Kanal damit also (999/25) ca. 40 Kanäle maximum.
    Wenn man nun das EPG für mehr Kanäle ausschalten möchte, dann musste man den Patch ändern. Da ich die Informationen automatisch per script aus den tvmovie2vdr-Dateien übernehme bin ich schon oft darauf reingefallen.


    Lokal habe ich es daher schon auf 9999 stehen gehabt (also 400 Kanäle). Aber irgendwie war mir das immer zu unsauber.
    Die neue Version arbeitet dynamisch, die festlegung auf 999 Zeichen ist damit entfallen.


    Für das Plugin gibt es auch einen Patch der dieses Verhalten auch dort einbaut.


    Ich hoffe ich habe keine allzugrossen Speicherlecks drin :/ , bitte meldet euch wenn es Probleme gibt!


    Viel Spass


    Torsten

  • COOL, leider fehlen mir die Skills um das selbst einzubauen. Wäre es auch möglich (optional/einstellbar), die Sache umzukehren? Will sagen, Sernder-EPG wird generell für alle Sender deaktiviert und nur die Sender, die ich explizit über noepgmenu zulasse, erhalten ihre EPG-Daten vom Sender.


    Bei zwei Satelliten und einer Unmenge an ausländischen und teils verschlüsselten Programmen, die ich sowieso niemals ansehe, bläht sich das EPG-File nur unnötig auf. Es würde vermutlich auch die epgsearch-autotimer-Suchläufe beschleunigen, wenn deutlich weniger überflüssige EPG-Daten zu durchsuchen wären.

    Debian Squeeze mit vdr 1.7.18 e-tobi/multipatch, Kernel 2.6.32-5-amd64, AMD Phenom-CPU, 4 GB RAM, Technotrend S2-6400, Digital Devices Cine S2 V6, 2 TByte HDD für Videodaten.

  • Wäre möglich ja, ich baue da die Tage mal was zusammen was schöner ist, aber als Schnellösung müsstest du eigentlich nur die Auswertung umdrehen.
    Ändere mal in der channels.c den Code der keinEPGScan-Funktion in das hier:

    Code
    1. bool cChannels::keinEPGScan(tChannelID kanalID)
    2. {
    3. bool rc=true;
    4. if (strstr(::Setup.noEPG,kanalID.ToString())!=NULL){
    5. rc=false;
    6. }
    7. return rc;
    8. }


    ist nur true und false vertauscht. Müsste klappen, ist aber unschön und nicht getestet, halt ein Schnellschuss :)

  • Prima, das stand schon lange auf meiner TODO-Liste (naja, eher auf der Wunschliste). Mal sehen, ob man es auch auf vdr 1.4.7 zum Laufen bringt.


    <edit>
    Der Patch passt mit offsets und fuzz auch auf 1.4.7.
    Es funktioniert alles soweit, aber da in meiner channels.conf merh Müllsender als brauchbare sind, bevorzuge ich auch die "invertierte" Variante
    </edit>


    Danke,


    Wolfgang

    VDR 1: (in Rente) EPIA ME6000, Nexus-S 2.1, Skystar2 2.6d, VDR-1.4.7 auf SuSE 9.3 (Kernel 2.6.21.7)
    VDR 2: (work in progress) MSI C847MS-E33, Cine S2 6.0, Zotac GT630 (GK208), yaVDR 0.6

    The post was edited 1 time, last by wofritz ().

  • Hi,


    ich habe den neuen Patch für 1.4.7 eingespielt und auch noepgmenu 0.0.5. Aber ich habe im EPG-Menu keinen neuen Menüpunkt. Dort sollte er doch auftauchen, oder?


    (Ich kann den anderen Thread nicht wiederfinden, seltsam)


    Wolfgang

    VDR 1: (in Rente) EPIA ME6000, Nexus-S 2.1, Skystar2 2.6d, VDR-1.4.7 auf SuSE 9.3 (Kernel 2.6.21.7)
    VDR 2: (work in progress) MSI C847MS-E33, Cine S2 6.0, Zotac GT630 (GK208), yaVDR 0.6

    The post was edited 1 time, last by wofritz ().

  • Ja du hast vollkommen recht, da stimmt was im diff nicht. Mein Fehler, ist gestern irgendwas durcheinander geraten.
    Ich lade gleich neue hoch, sorry.


    So hat ein wenig gedauert sorry für den Fehler, irgendwie ist mir beim letzten Transfer ein teil des Patches verloren gegangen, müsste aber nun alles wieder drin sein.

  • Funktioniert jetzt mit VDR-1.4.7!


    Wolfgang

    VDR 1: (in Rente) EPIA ME6000, Nexus-S 2.1, Skystar2 2.6d, VDR-1.4.7 auf SuSE 9.3 (Kernel 2.6.21.7)
    VDR 2: (work in progress) MSI C847MS-E33, Cine S2 6.0, Zotac GT630 (GK208), yaVDR 0.6

    The post was edited 1 time, last by wofritz ().

  • Dank HolgerAusB hier nun der Patch für noepgmenu-0.0.4.


    Der Patch für das Plugin hat einen Fehler, der neue wird bald hier stehen, wer ihn vor dem 17.10.2007 heruntergeladen hat, bitte den neuen einspielen.
    Es ist nur der Pluginpatch betroffen, nicht der noEPG-Patch.


    Erklärung:
    Das Problem war, dass er teilweise die KanalID-Einträge "verstümmelt" hat, sie waren dann zwar ungültig, jedoch haben sie die Liste vollgemüllt. Insgesamt arbeitet der Patch auch scheinbar problemlos, nur mit dem korrigierten ist das Problem vom Tisch :)


    Wenns mit dem auch Probleme geben sollte, bitte melden :)
    Achso die noEPGList-Einträge haben sich im Format geändert, die Angaben müssen neu gemacht werden.

  • Danke dafür, funktioniert prima unter c't-vdr 1.5.10 (devel)

    Debian Squeeze mit vdr 1.7.18 e-tobi/multipatch, Kernel 2.6.32-5-amd64, AMD Phenom-CPU, 4 GB RAM, Technotrend S2-6400, Digital Devices Cine S2 V6, 2 TByte HDD für Videodaten.

  • Hi Torsten!


    Irgendwie scheint der vdr-Patch noch Probleme zu machen.
    der cSetup Desktruktor crashed wohl ab und zu.


    Siehe hier: [ANNOUNCE] VDR Extensions Patch v.39


    EDIT: Beim editieren von Setup-Einstellungen wird wohl eine Kopie des cSetup objekts angelegt (mit operator=). Und die wird dann wieder entsorgt (inklusive Destruktor-Aufruf).


    D.h. dynamische Zeiger dürfen nicht zwischen __BeginData__ und __EndData__ liegen. Sondern außerhalb und müssen extra in operator= behandelt werden.


    Zzam

  • Hi,


    hier mal meine Lösung zu dem beschriebenen Problem (vdr 1.5.12)


    Grüße
    horchi

    Files

  • Quote

    Original von horchi
    hier mal meine Lösung zu dem beschriebenen Problem (vdr 1.5.12)


    Hi!


    Und hier meine Lösung aufbauend auf der von Horchi!
    Diesmal mit normaler Nutzung von operator= :)


    Zzam

  • Hi Zzam,


    oh man, war ich blind, der operator war eh schon überladen nur die eine Zeile hat gefehlt.


    Wenn ich nun nix übersehe ist dir aber ein kleiner Fehler unterlaufen ;)
    Wenn du vor dem strdup() noch free() aufrufst wird wieder das Objekt der zu kopierenden Klasse freigegeben. Ohne das free() sollte es so gehen.


    Das kopiert es incl. dem Pointer:

    Code
    1. memcpy(&__BeginData__, &s.__BeginData__, (char *)&s.__EndData__ - (char *)&s.__BeginData__);


    Daher gibt das free() den Speicher der zu kopierenden Klasse frei, damit sind wir wieder beim Crash gelandet ;)



    /Edit
    Sorry ich nehme alles zurück :versteck noEPGList steht ja hinter __EndData__


    Grüße
    horchi

    The post was edited 3 times, last by horchi ().

  • Jetzt die Frage für noob's wie mich:
    Was müste da jetzt wo geändert werden ( bezug nehmend auf ein system mit Ext-Patch 40 ? )

    VDR1.7.12 + ExtPatch on openSuSE 11.1 2.6.27.45-0.1-default (x86_64) gcc 4.3.2 r141291
    1xNexus (fw:f12623) ** 3xTeVii S650 ** Alphacrypt/SKY ** DVB-Treiber 7.6.09cvs ** 7" GraphTFT ** VOMP on MediaMVP ** zendeb 0.4.0.b1 on S100 ** 4ch Atmolight
    Xine-lib-1.2 20100412(vdpau) +DFextPatch ** XINE-UI ** Nvidia GT240 (260.19.36) ** Samsung LE46C650 ** istreamdev-git_20110216 to IPhone

  • Quote

    Original von DrBoon
    Jetzt die Frage für noob's wie mich:
    Was müste da jetzt wo geändert werden ( bezug nehmend auf ein system mit Ext-Patch 40 ? )


    Die Lösung in Ext-Patch 40 läuft. Die von Zzam ist vom coding her eleganter gelöst, sollte m.E. im nächsten Ext-Patch berücksichtigt werden.


    horchi

  • Quote

    Die Lösung in Ext-Patch 40 läuft. Die von Zzam ist vom coding her eleganter gelöst, sollte m.E. im nächsten Ext-Patch berücksichtigt werden.


    Ok, das wäre dann ein diff gegen das diff vom diff gegen das diff im diff :lovevdr


    Gruß
    Marc

  • ^^ na CD einlegen kann ja jeder ;)

    VDR1.7.12 + ExtPatch on openSuSE 11.1 2.6.27.45-0.1-default (x86_64) gcc 4.3.2 r141291
    1xNexus (fw:f12623) ** 3xTeVii S650 ** Alphacrypt/SKY ** DVB-Treiber 7.6.09cvs ** 7" GraphTFT ** VOMP on MediaMVP ** zendeb 0.4.0.b1 on S100 ** 4ch Atmolight
    Xine-lib-1.2 20100412(vdpau) +DFextPatch ** XINE-UI ** Nvidia GT240 (260.19.36) ** Samsung LE46C650 ** istreamdev-git_20110216 to IPhone

    The post was edited 1 time, last by DrBoon ().

  • Mahlzeit,


    ich habs folgendermaßen gemacht .


    NoEpgMenu 0.0.4 mit noepgmenu-0.0.4-wareagle2.diff patchen
    VDR 1.5.12 mit Extension Patch 40 .. entsprechend Make.config anpassen , kompilieren .


    VDR starten .. fertig .




    I30R6










    VDR











    Hardware : GA-EP35-DS3L, C2Q Q6700 , 3GB DDR2 , Palit GT240, 250GB System & 500GB Video,
    Mystique-CaBix C2,TT Budget C-1501,Airstar 2, Fernbedienung X10
    Software : gen2vdr, Kernel 3.8.10, vdr 2.0.1
    PlugIns : audiorecorder,femon,admin,yacoto..
    Ausgabe: softhddevice