[skinlcarsng] segfault in displaymenu.c (gelöst)

  • Habe mal den fix ins Ausgabeplugin eingecheckt. Bisher läufts, und alles was die Größe 0 hat, wird nicht gezeichnet. Mit den kleinen Abfragen gegen NULL in skinlcarsng sollten siche die Probleme jetzt erledigt haben. Nach meinem Verständnis ist es erlaubt, Rechtecke mit Breite 0 und strings mit Länge 0 zu zeichnen, dann müssen sich halt die OSD Funktionen drum kümmern.


    Andere Frage: Wie offen bist du für pull requests? Ich würde für mich ein paar Sachen im Skin anpassen wollen, z.B.

    - Channelanzeige Mitte unten Ellipsen statt Rechtecke

    - Menu-Ansicht oben um ein kleines Rechteck niedriger

    - Buttons auf lcars-Standardverhältnis/-größe und wo anders hin, damit

    - das das Videofenster oben rechts Platz hat, ohne dass die obere Leiste so hart geteilt wird

    - zusätzliche themes

    - ...

    Für mich mache ich das auf jeden Fall, wenn du Interesse hast, könnte ich dir dann auch Patches schicken...


    Ich orientiere mich daran und habe hier auch schon ein bißchen rumprobiert.


    Gruß

    Andreas


    EDIT: Oh, überschnitten ;)

  • Ich habe gerade mal geschaut, wo es einen leeren Text in cDrawDescription geben kann (ich gehe davon aus, das der segfault dort passiert). Es gibt da eigentlich nur eine Stelle, die anfällig sein könnte.

    Du könntest mal den angehängten Patch testen, der sollte das abfangen.


    Grüße

    kamel5

    Danke. Aber wie oben beschrieben, würde ich dahingehend im Plugin nichts ändern, ausser dass man sich evtl. den Aufrufe von ein paar Funktionen sparen will. Die leeren Texte müssen später abgefangen werden.

  • rell

    Hat den Titel des Themas von „[skinlcarsng] segfault in displaymenu.c“ zu „[skinlcarsng] segfault in displaymenu.c (gelöst)“ geändert.
  • Aber wie oben beschrieben, würde ich dahingehend im Plugin nichts ändern

    OK, der Einheitlichkeit halber würde ich das aber trotzdem machen, da bei den anderen Texten diese Abfrage auch schon vorhanden ist.


    Grüße

    kamel5

    VDR 2.6.6: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 39 Kernel 6.8 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • Danke für die Infos. Habe es nun in meinen Plugins auch nachgezogen :)

    Den entscheidenden Fix in cOglCmdDrawText::Execute(void) brauchst du ja nicht ;) Den Bug hatte ich eingeführt, als ich für DrawText einen Texture-Atlas eingeführt habe, was die Sache bei viel Text ziemlich beschleunigt. Und der war (hoffentlich) letztlich für die segfaults verantwortlich...

    Die anderen ersparen der GPU letztlich nur die Arbeit, die sie eh nicht verrichten muss. Aber gerne, ich habe auch schon viel bei dir und inj abgespickt ;)


    EDIT: In cOglCmdDrawText könntest du der Vollständighalber vorab bei !symbols[0] aussteigen, denn in dem Fall geht er später eh nicht in die for-Schleife und du sparst dir die ganzen Bind()...

  • kamel5 Habe gestern den develop Branch probiert und läuft bisher ohne Probleme. Schöne Sachen sind da dabei, vor allem DrawRaster ist sehr nützlich.


    https://github.com/rellla/vdr-…cf8594f5ef0192391b1b89420 wäre evtl. auch eine kleine Optimierung, die du übernehmen könntest. Da wird ein DrawRectangle ausgelassen, falls es keinen Rand gibt oder beide Farben gleich sind.


    Außerdem ist mir aufgefallen, dass der Text-Hintergrund der Kanalnummer der 2. Timers etwas über den Zwischenraum zeichnet.

  • rell ,

    vor allem DrawRaster ist sehr nützlich.

    Das habe ich von einem Deiner Beiträge abgeschaut. :)


    wäre evtl. auch eine kleine Optimierung

    Das schaue ich mir an.

    Außerdem ist mir aufgefallen, dass der Text-Hintergrund der Kanalnummer der 2. Timers etwas über den Zwischenraum zeichnet.

    Ich dachte eigentlich, das hätte ich gefixt. Ist vielleicht beim rebase verloren gegangen. Ich schaue nochmal.


    Ansonsten will ich vor dem nächsten Release noch einige Dinge im Menü gerade ziehen.

    Wenn Du mir noch mal genau schreibst, was Du hier meinst:

    - Menu-Ansicht oben um ein kleines Rechteck niedriger

    - Buttons auf lcars-Standardverhältnis/-größe und wo anders hin, damit

    - das das Videofenster oben rechts Platz hat, ohne dass die obere Leiste so hart geteilt wird

    könnte ich mir das auch noch ansehen. Vor allem das Erste und Dritte. Wenn man oben ein Rechteck weg lässt, wird ja auch das Videofenster kleiner und das wollte ich eigentlich nicht.


    Und wenn Du noch zusätzliche Themes hast, nehme ich auch gerne mit auf.


    Grüße

    kamel5

    VDR 2.6.6: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 39 Kernel 6.8 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • Zitat

    Das habe ich von einem Deiner Beiträge abgeschaut.

    Das wird erst beim Menü richtig interessant ;)


    Zitat

    - Menu-Ansicht oben um ein kleines Rechteck niedriger

    Ich nutze momentan die Ansicht mit dem gescaletem Video. Ich persönlich finde das Videofenster zu groß, daher hätte ich es gern um ein Rechteck niedriger. Der Platz ist ja da. Dann ist der obere Teil so groß wie in der Full-Screen Ansicht. Aber das ist nur meine persönlicher Geschmack ;)


    Zitat

    - Buttons auf lcars-Standardverhältnis/-größe und wo anders hin, damit

    Siehe hier. Die Stelle würde schon passen, nur das Verhältnis der Ellipse passt nicht zun den Buttons, wie sie der Lcars-Standard definiert.


    Zitat


    - das das Videofenster oben rechts Platz hat, ohne dass die obere Leiste so hart geteilt wird

    Ich fänds cooler, wenn die obere (blaue) horizontale Leiste nicht vor dem Videofenster nach oben geht, sondern gerade durchgeht und das Video einfach oben rechts drin sitzt. Das "Live" würde ich auch direkt ins Videofenster zeichnen. Evtl. könnte man es auch seitlich noch einfassen. Da müsste ich mal schauen, was es da im Original-lcars so gibt.


    Ich habe ein Classic-Theme gemacht, das kann ich mal schicken. Diese Seite finde ich ganz gut. Da kann man von verschiedenen Themes die Farben abgreifen. Generell sollte der Hintergrund bei gescaltem Video im Theme m.E. schwarz sein.


    Ansonsten ist das eine ziemlich individuelle Meinung von mir. Du musst das natürlich nicht alles umsetzten. Ich finde es so schon gut, aber brauche ab und an was zum tüfteln ;) Und was mir fehlt, baue ich mir und kanns gerne zur Verfügung stellen.


    Gruß

    Andreas


    PS: Danke für deine Arbeit!

  • Ich persönlich finde das Videofenster zu groß

    Ich fänds cooler, wenn die obere (blaue) horizontale Leiste nicht vor dem Videofenster nach oben geht, sondern gerade durchgeht und das Video einfach oben rechts drin sitzt. Das "Live" würde ich auch direkt ins Videofenster zeichnen. Evtl. könnte man es auch seitlich noch einfassen. Da müsste ich mal schauen, was es da im Original-lcars so gibt.

    OK, das Videofenster könnte ich in 2 Größen konfigurierbar machen, und bei kleinem Video die Leiste nach rechts durchziehen.

    Siehe hier. Die Stelle würde schon passen, nur das Verhältnis der Ellipse passt nicht zun den Buttons, wie sie der Lcars-Standard definiert.

    Ja, an manchen Stellen bin ich ein wenig vom Standard abgewichen, die Ellipse kann ich aber anpassen.

    Das wird erst beim Menü richtig interessant ;)

    Das habe ich auch schon gedacht, na mal sehen, was da raus kommt.


    Grüße

    kamel5

    VDR 2.6.6: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 39 Kernel 6.8 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • OK,


    ich habe jetzt soweit alles auf einen Stand gebracht, wo ich denke, das das so eine Weile Bestand haben könnte.

    Unter anderem auch ein kleineres Videofenster, kofigurierbar im Setup. Das Raster lässt sich jetzt über Make und eine Setup-Option ein-und ausschalten. Und im Menü habe ich das Raster etwas situationsabhängig gemacht :) , da ist es etwas übersichtlicher.

    Du kannst ja mal schauen, ob es mit dem kleinen Videofenster jetzt soweit OK ist.

    Ich werde auch noch ein paar Tests machen und wenn ich nichts weiter finde, dann in absehbarer Zeit als Release freigeben.


    Grüße

    kamel5

    VDR 2.6.6: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 39 Kernel 6.8 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • Wow, richtig gut jetzt. Danke!

    Ein paar Sachen sind mir noch eingefallen:

    - Im replay fehlt oben ein Balken, wo die Lautstärkeregelung kommt, ist das Absicht?

    - Was auf meiner Liste noch steht, ist, dass ich persönlich gerne die Timer rechts und did EPG Info links hätte. Ich habe mich immer noch nicht dran gewöhnt. Das wäre wahrscheinlich vom Design relativ einfach möglich, aber die Beschreibung der nachfolgenden Sendung hätte links keinen Platz. Wäre mir nicht wichtig, da ich dann eh in tvguide gehe..

    - Wenn einer Timer aufnimmt, zeigt es bei mir

    Rec: #(null) - 19: an. Da ist der Platz dann aus und mit #(null) passt was nicht.

    - Lautstärkeleiste: Ich würde keine Einzelblocks setzen, sondern den Balken ohne Zwischenräume zeichnen


    Wie immer, keine Kritik sondern meine subjektive Meinung ;) Sonst richtig, richtig gut! Besonders, dass das Raster zugeschaltet werden kann macht Spaß beim selber tüfteln!


    Danke,

    Andreas

  • Schön, das es gefällt.

    - Im replay fehlt oben ein Balken, wo die Lautstärkeregelung kommt, ist das Absicht?

    Ja, das war im Moment Absicht, ich wollte so wenig wie möglich von Videofenster verdecken. Ich kann da aber auch einen Balken hin machen, vielleicht ist da auch ein halb hoher Balken (wie in der Kanalansicht) OK?

    - Was auf meiner Liste noch steht, ist, dass ich persönlich gerne die Timer rechts und did EPG Info links hätte. Ich habe mich immer noch nicht dran gewöhnt. Das wäre wahrscheinlich vom Design relativ einfach möglich, aber die Beschreibung der nachfolgenden Sendung hätte links keinen Platz. Wäre mir nicht wichtig, da ich dann eh in tvguide gehe..

    Ja, das wird etwas schwierig, da ist nicht viel Platz. Am Anfang habe ich auch darüber nachgedacht, das dann aber verworfen. Ich würde das erst einmal so lassen...

    - Wenn einer Timer aufnimmt, zeigt es bei mir

    Rec: #(null) - 19: an. Da ist der Platz dann aus und mit #(null) passt was nicht.

    Das muss ich mal beobachten, ob sich da wieder was eingeschlichen hat, denn das ging ja schon mal.

    - Lautstärkeleiste: Ich würde keine Einzelblocks setzen, sondern den Balken ohne Zwischenräume zeichnen

    Das habe ich vom Original-LCARS übernommen, das kann ich aber auch konfigurierbar machen.


    Grüße

    kamel5

    VDR 2.6.6: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 39 Kernel 6.8 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • Schön, das es gefällt.

    Ja, das war im Moment Absicht, ich wollte so wenig wie möglich von Videofenster verdecken. Ich kann da aber auch einen Balken hin machen, vielleicht ist da auch ein halb hoher Balken (wie in der Kanalansicht) OK?

    Gerne


    Ja, das wird etwas schwierig, da ist nicht viel Platz. Am Anfang habe ich auch darüber nachgedacht, das dann aber verworfen. Ich würde das erst einmal so lassen...

    Ich habe angefangen, das etwas umzugestalten. Wäre per Setup konfigurierbar. Ich kann dir den Patch schicken, wenns fertig ist.


    Das habe ich vom Original-LCARS übernommen, das kann ich aber auch konfigurierbar machen.

    Das wäre ein Patch dafür.


    Gruß

    Andreas

  • Ich habe angefangen, das etwas umzugestalten. Wäre per Setup konfigurierbar. Ich kann dir den Patch schicken, wenns fertig ist.

    Das schaue ich mir dann gerne an.

    Das wäre ein Patch dafür.

    Ich hatte da auch schon eine einfache Lösung gefunden und dann gleich noch einen Farbverlauf mit eingebaut :) .

    Ist jetzt im git.


    Grüße

    kamel5

    VDR 2.6.6: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 39 Kernel 6.8 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • - Wenn einer Timer aufnimmt, zeigt es bei mir

    Rec: #(null) - 19: an. Da ist der Platz dann aus und mit #(null) passt was nicht.

    Das habe ich mal eine Weile beobachtet und konnte es bei mir nicht feststellen.

    Im Prinzip kann das aber vorkommen, wenn es keine Devicenummer gibt. Warum es aber kein Device oder keine Devicenummer gibt, ist mir nicht ganz klar, denn ohne Device kann es ja auch keine Aufnahme geben.

    Ich habe das jetzt so umgebaut, das ein "?" ausgegeben wird, wenn es keine Devicenummer gibt.

    git ist aktualisiert.


    Grüße

    kamel5

    VDR 2.6.6: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 39 Kernel 6.8 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • Vielleicht liegts daran, dass die Aufnahmen hier vom Server gemacht werden und nicht die Devices vom Client benutzt werden...

  • Vielleicht liegts daran, dass die Aufnahmen hier vom Server gemacht werden und nicht die Devices vom Client benutzt werden...

    Remotetimer hatte ich bisher noch gar nicht im Fokus, das erklärt es aber. Und dann ist es auch bestimmt besser, die Devicenummer bei Remotetimern ganz weg zu lassen.


    Grüße

    kamel5

    VDR 2.6.6: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 39 Kernel 6.8 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • Ich habe den develop Branch nochmal aktualisiert (doch noch ein paar Bugs gefunden) .

    Die Timeranzeige ist jetzt soweit geändert, das im Falle von Remotetimern bei vorhandenen wareagleicons ein Symbol angezeigt wird.

    Falls sich momentan keine Unstimmigkeiten mehr finden, werde ich gegen Ende der Woche ein neues Release machen. Deine Änderungen an der Kanalanzeige können dann in die nächste develop Version einfließen.


    Grüße

    kamel5

    VDR 2.6.6: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 39 Kernel 6.8 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

Jetzt mitmachen!

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