[skindesigner] Aktuelle Version

  • Du meinst sicher im Raster.

    Ja genau, die Darstellung im Raster.

    Danke für den Hinweis, dass eine Anpassung direkt in den XML-Dateien erfolgen muss.

    Werde mal etwas mit den Werten experimentieren.


    Gruß

    Bernhard

    Server: QNAP-NAS (yavdr ansible headless im container), OctopusNet S4
    Client 1: Fujitsu Esprimo E710 (SSD, nvidia Quadro 410, Logitech Harmony One - Profil VDR-1.6-KLS - atric-USB)

    Client 2: Odroid N2+ (VDR*ELEC)

    Client 3: Raspberry Pi Modell 1B (aktuell außer Funktion)


  • Hallo,


    es gibt ein neues Bugfix-Release 1.2.21.


    - [pbiering] Fix off-by-one strcpy buffer overflow

    - Don't show emty actor pictures in detailview


    Grüße

    kamel5

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

    Git-Repo: gitlab.com/kamel5

  • Super!


    Könntest Du noch eine Performance-Optimierung machen? Zur Zeit wird "GetMovie" bei der Navigation zum Detailbild 2 mal aufgerufen. Könntest Du das ändern, so dass "GetMovie" nur noch 1 mal gerufen wird?



    ~Markus

    Client1: ASUS P5QC, Dual Core 3G, Cine S2, Ext. Board von TBE, Xubuntu 20.04, VDR 2.6x

    Client2: RPI3

    Server: RPI4, Sundtek SkyTV Dual 2x

  • Ich kann mir das gerne mal ansehen. Da ich aber erst einmal sehen muss, wie da die Zusammenhänge sind, schaffe ich das jetzt vor meinem Urlaub nicht mehr. Erst danach, ab Oktober, habe ich wieder mehr Zeit.


    Grüße

    kamel5

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

    Git-Repo: gitlab.com/kamel5

  • Könntest Du noch eine Performance-Optimierung machen?

    Ich habe mir das jetzt mal angesehen. Durch den Programmablauf ist es hier nicht möglich, die beiden Aufrufe von "GetMovie" ohne größere Umbauten zusammenzufassen.

    Allerdings ist es so, das der zweite Aufruf nur für die Bilder in der Kopfzeile der Detailansicht benötigt wird. Mit ein wenig Umbau konnte ich das über den Service "GetPosterBannerV2" abbilden, so das dadurch schon deutlich weniger Datenmenge anfallen dürfte.

    Dabei habe ich allerdings festgestellt, das hier die beiden Service "GetSeries" und "GetPosterBannerV2" unterschiedliche Ergebnisse liefern können. Dazu gibt es ein reproduzierbares Beispiel, mehr habe ich bei meinen Tests erst einmal nicht feststellen können, das bedeutet aber nicht, das es sie nicht gibt.


    Beispiel ARD - Brisant:

    - wird als Serie erkannt

    - bei "GetSeries" wird ein Bild als Banner zurückgegeben (fanart_0.jpg)

    - bei "GetPosterBannerV2" wird das gleiche Bild als Poster zurückgegeben (fanart_0.jpg)

    - bei "GetPosterBannerV2" gibt es kein Banner


    Das bedeutet, das sich mit Nutzung von "GetPosterBannerV2" möglicherweise andere Darstellungen ergeben.

    Beim Skin "metrixhd" und auch anderen kann man das feststellen.

    Den Skin "metrixhd" habe ich in einem zweiten commit angepasst. Die anderen betroffenen Skins kann ich leider nicht ändern.


    Schön wäre es natürlich, wenn beide Services gleiche Ergebnisse liefern würden.

    MarkusE, kannst Du Dir das nochmal ansehen.

    Um abwärts kompatibel zu bleiben, müsste "GetPosterBannerV2" in so einem Falle, solche Poster auch als Banner zurückgeben???


    Commits sind im Branch develop.

    Bitte diese Änderung ausführlich testen, Bugs sind nicht ausgeschlossen. :)


    Grüße

    kamel5

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

    Git-Repo: gitlab.com/kamel5

    Edited once, last by kamel5 ().

  • Hi,


    "GetSeries" hat verschiedene Felder für die verschiedenen Bilder.



    "GetPosterBannerV2" versucht immer ein Bild zurückzugeben, notfalls im falschen Format (besser als gar kein Bild):


    "ScraperGetPosterBannerV2.poster":

    Bild im "portrait" Format, falls verfügbar. Falls nicht verfügbar: Bild im "landscape" Format (das ist dann fanart).


    "ScraperGetPosterBannerV2.banner":

    Bild im "banner" Format. Falls das verfügbar ist, wird type = tSeries; zurückgegeben. Falls das nicht verfügbar ist, wird type = tMovie; zurückgegeben.


    Damit habe ich mit den Skins, die ich getestet habe, die besten Ergebnisse erzielt. Ich kann das aber auch ändern.


    ~ Markus

    Client1: ASUS P5QC, Dual Core 3G, Cine S2, Ext. Board von TBE, Xubuntu 20.04, VDR 2.6x

    Client2: RPI3

    Server: RPI4, Sundtek SkyTV Dual 2x

  • OK, irgendwie muss man ja was wählen.


    Die Frage ist halt, ob beide Anfragen zu einer Sendung den gleichen type zurückgeben sollten.

    Bei ARD-Brisant ist es z.B. so, das bei Nutzung vom Service "GetEventType" der type tSeries, und bei Nutzung vom Service"ScraperGetPosterBannerV2" der type tMovie zurückgegen wird.

    Das hat bei der Umstellung zur Verwirrung geführt. :)


    Grüße

    kamel5

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

    Git-Repo: gitlab.com/kamel5

  • Ich weiß, das ist unsauber. Grund für den Rückgabewert ist nOpacity:


    nOpacity zeigt beim Drücken von OK links oben ein Bild.

    Wenn ich type = tSeries zurückgebe, wird "ScraperGetPosterBannerV2.banner" angezeigt. Das muss aber ein Banner sein, sonst sieht es grauselig aus.


    Wenn ich kein Banner habe, aber trotzdem ein Bild anzeigen will, gebe ich type = tMovie zurück, und das Bild in "ScraperGetPosterBannerV2.poster". Führt zu einer vernünftigen Anzeige.


    Du könntest natürlich nOpacity so ändern, dass type ignoriert wird. Wenn in "ScraperGetPosterBannerV2.banner" was drin ist, wird ein Banner angezeigt. Falls nicht, wird "ScraperGetPosterBannerV2.poster" angezeigt.


    Dann könnte ich auch bei "GetPosterBannerV2" type korrekt zurückgeben ...


    ~ Markus

    Client1: ASUS P5QC, Dual Core 3G, Cine S2, Ext. Board von TBE, Xubuntu 20.04, VDR 2.6x

    Client2: RPI3

    Server: RPI4, Sundtek SkyTV Dual 2x

  • Hi,


    Im tvscraper git ist ein Update. Damit gibt "GetPosterBannerV2" nun den korrekten type zurück.


    ~ Markus

    Client1: ASUS P5QC, Dual Core 3G, Cine S2, Ext. Board von TBE, Xubuntu 20.04, VDR 2.6x

    Client2: RPI3

    Server: RPI4, Sundtek SkyTV Dual 2x

  • Damit gibt "GetPosterBannerV2" nun den korrekten type zurück.

    Das funktioniert soweit.


    Allerdings gibt es trotzdem noch Unterschiede:

    Beides mit tvscraper letzter Stand.

    Wenn ich mir mit Branch master Debug-Ausgaben anzeigen lasse, bekomme ich bei ARD Brisant, da gibt es keinen richtigen Banner, trotzdem fanart_0.jpg als Banner zurück. Hier werden SetHeaderScrapInfo() und SetSeries() von GetSeries befüllt.

    Code
    skindesigner: extensions/scrapmanager.c SetHeaderScrapInfo 91 isSerie
    skindesigner: extensions/scrapmanager.c SetHeaderScrapInfo 108 Banner=/etc/vdr/plugins/tvscraper/series/360443/fanart_0.jpg
    skindesigner: extensions/scrapmanager.c SetSeries 325 Banner=/etc/vdr/plugins/tvscraper/series/360443/fanart_0.jpg
    skindesigner: extensions/scrapmanager.c SetSeries 336 Fanart=/etc/vdr/plugins/tvscraper/series/360443/fanart_0.jpg
    skindesigner: extensions/scrapmanager.c SetSeries 336 Fanart=/etc/vdr/plugins/tvscraper/series/360443/fanart_1.jpg

    Wenn ich das mit Branch develop mache, also mit dem geänderten SetHeaderScrapInfo, dann bekomme ich fanart_0.jpg als Poster zurück. Hier wird SetSeries() von GetSeries und SetHeaderScrapInfo() von GetPosterBannerV2 befüllt.

    Code
    skindesigner: extensions/scrapmanager.c SetHeaderScrapInfo 103 isSerie
    skindesigner: extensions/scrapmanager.c SetHeaderScrapInfo 119 Poster=/etc/vdr/plugins/tvscraper/series/360443/fanart_0.jpg
    skindesigner: extensions/scrapmanager.c SetSeries 337 Poster=/etc/vdr/plugins/tvscraper/series/3604skindesigner: extensions/scrapmanager.c SetSeries 348 Fanart=/etc/vdr/plugins/tvscraper/series/360443/fanart_0.jpg
    skindesigner: extensions/scrapmanager.c SetSeries 348 Fanart=/etc/vdr/plugins/tvscraper/series/360443/fanart_1.jpg

    Schon seltsam, da ich an der Funktion SetSeries() nichts geändert habe. Ich hätte jetzt erwartet, das zumindest in SetSeries() beide Male das gleiche Ergebnis erzeugt wird.

    Aus Sicht vom skindesigner wäre es wünschenswert, wenn zumindest im Falle von GetPosterBannerV2 Banner befüllt wird, dann könnte man die skins so lassen, und müsste keine Änderungen machen.


    Vielleicht hasst Du da noch eine Idee.


    PS: Ich habe den Branch develop noch mal upgedatet.


    Grüße

    kamel5

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

    Git-Repo: gitlab.com/kamel5

    Edited 2 times, last by kamel5 ().

  • Hi,


    > Ich hätte jetzt erwartet, das zumindest in SetSeries() beide Male das gleiche Ergebnis erzeugt wird.

    Also, wenn Du 2 mal hintereinander "GetSeries" aufrufst, bekommst Du beide Male das gleiche zurück.

    Quote
    Code
    "GetSeries":
    
    Poster=/etc/vdr/plugins/tvscraper/series/360443/fanart_0.jpg
    Fanart=/etc/vdr/plugins/tvscraper/series/360443/fanart_0.jpg
    Fanart=/etc/vdr/plugins/tvscraper/series/360443/fanart_1.jpg


    Also, die derzeitige Spezifikation von "GetPosterBannerV2":


    Quote

    "ScraperGetPosterBannerV2.poster": Bild im "portrait" Format, falls verfügbar. Falls nicht verfügbar: Bild im "landscape" Format (das ist dann fanart). Falls das auch nicht verfügbar ist: Nichts (Leerstring)

    "ScraperGetPosterBannerV2.banner": Bild im "banner" Format, falls verfügbar. Sonst: Nichts (Leerstring)

    Ich kann das gerne ändern. Welches Verhalten hättest Du denn gerne?

    Quote

    Wie sollte es sein?

    "ScraperGetPosterBannerV2.banner": Bild im "banner" Format, falls verfügbar. Sonst: Bild im "landscape" Format (das ist dann fanart). Falls das auch nicht verfügbar ist: Bild im "portrait" Format. Sonst: nichts (Leerstring)

    Kann ich gerne machen. Die Skins müssten das dann halt "vernünftig" darstellen.

    Oder hast Du einen besseren Vorschlag für das Verhalten?


    ~ Markus

    Client1: ASUS P5QC, Dual Core 3G, Cine S2, Ext. Board von TBE, Xubuntu 20.04, VDR 2.6x

    Client2: RPI3

    Server: RPI4, Sundtek SkyTV Dual 2x

  • Also, wenn Du 2 mal hintereinander "GetSeries" aufrufst, bekommst Du beide Male das gleiche zurück.

    Nein, vielleicht habe ich das wenig deutlich dargestellt.

    Einmal bekomme ich das: mit branch master wird Banner befüllt

    Code
    skindesigner: extensions/scrapmanager.c SetSeries 325 Banner=/etc/vdr/plugins/tvscraper/series/360443/fanart_0.jpg
    skindesigner: extensions/scrapmanager.c SetSeries 336 Fanart=/etc/vdr/plugins/tvscraper/series/360443/fanart_0.jpg
    skindesigner: extensions/scrapmanager.c SetSeries 336 Fanart=/etc/vdr/plugins/tvscraper/series/360443/fanart_1.jpg

    das andere mal bekomme ich das: mit branch develop wird Poster befüllt

    Code
    skindesigner: extensions/scrapmanager.c SetSeries 337 Poster=/etc/vdr/plugins/tvscraper/series/360443/fanart_0.jpg
    skindesigner: extensions/scrapmanager.c SetSeries 348 Fanart=/etc/vdr/plugins/tvscraper/series/360443/fanart_0.jpg
    skindesigner: extensions/scrapmanager.c SetSeries 348 Fanart=/etc/vdr/plugins/tvscraper/series/360443/fanart_1.jpg

    Es hat sich aber an SetSeries() zwischen den beiden Branches nichts geändert und beides wird vom Service "GetSeries" abgeleitet. Und die Frage ist, warum da unterschiedliche Befüllungen entstehen können.


    Grüße

    kamel5

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

    Git-Repo: gitlab.com/kamel5

    Edited once, last by kamel5 ().

  • OK, irgendwie ist der Wurm drin.


    Jetzt ging es auf einmal wieder beim Service "SetSeries", naja.

    Log:

    Code
    Okt 10 18:41:06 vdr[708368]: [708368] skindesigner: extensions/scrapmanager.c SetHeaderScrapInfo 101 0
    Okt 10 18:41:06 vdr[708368]: [708368] skindesigner: extensions/scrapmanager.c SetHeaderScrapInfo 103 isSerie
    Okt 10 18:41:06 vdr[708368]: [708368] skindesigner: extensions/scrapmanager.c SetHeaderScrapInfo 119 Poster=/etc/vdr/plugins/tvscraper/series/360443/fanart_0.jpg
    Okt 10 18:41:06 vdr[708368]: [708368] skindesigner: extensions/scrapmanager.c SetFullScrapInfo 54 isSerie
    Okt 10 18:41:06 vdr[708368]: [708368] skindesigner: extensions/scrapmanager.c SetSeries 337 Banner=/etc/vdr/plugins/tvscraper/series/360443/fanart_0.jpg
    Okt 10 18:41:06 vdr[708368]: [708368] skindesigner: extensions/scrapmanager.c SetSeries 348 Fanart=/etc/vdr/plugins/tvscraper/series/360443/fanart_0.jpg
    Okt 10 18:41:06 vdr[708368]: [708368] skindesigner: extensions/scrapmanager.c SetSeries 348 Fanart=/etc/vdr/plugins/tvscraper/series/360443/fanart_1.jpg

    Kann ich gerne machen. Die Skins müssten das dann halt "vernünftig" darstellen.

    Oder hast Du einen besseren Vorschlag für das Verhalten?

    Was hätte ich gerne?

    Wie man in dem Log sieht, wird "fanart_0.jpg" bei GetSeries als Banner zurückgeliefert, bei ScraperGetPosterBannerV2 aber als Poster.

    Ich habe leider nur das eine Beispiel "Brisant" und weiß auch nicht, ob es noch andere gibt.


    Wünschenswert wäre wahrscheinlich, das, wenn es kein richtiges Banner gibt, dann fanart_0.jpg auch als Banner zurückgegeben wird, so wie es bei GetSeries auch gemacht wird.

    Also, im Endeffekt sollte GetSeries und ScraperGetPosterBannerV2 zum gleichen Ergebnis führen.


    Grüße

    kamel5

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

    Git-Repo: gitlab.com/kamel5

  • tvscraper Verhalten zur Zeit (es gibt nur den master Branch ...):

    Code
    cSeries:
        std::vector<cTvMedia> posters;  -> alle Bilder im "portrait" Format (leer, falls es keine gibt)
        std::vector<cTvMedia> banners;  -> Bild im banner Format. Falls es kein Bild im banner Format gibt: Bild im landscape Format. Falls es das auch nicht gibt: Leer
        std::vector<cTvMedia> fanarts;  -> alle Bilder im "landscape" Format (leer, falls es keine gibt)


    Code
    ScraperGetPosterBannerV2:
        cTvMedia poster  -> Bild im "portrait" Format, falls verfügbar. Falls nicht verfügbar: Bild im "landscape" Format (das ist dann fanart). Falls das auch nicht verfügbar ist: Nichts (Leerstring)
        cTvMedia banner  -> Bild im banner Format. Falls es das nicht gibt: Leer


    Also, 100% identisch kann ich das nicht machen, weil die Datenfelder unterschiedlich sind. Ich kann aber die Rückgabe von

    Code
    cSeries->banners und
    ScraperGetPosterBannerV2->banner

    identisch machen:

    cSeries->banners ist zwar ein vector, es wird aber maximal ein Bild zurückgegeben. Ich habe also ScraperGetPosterBannerV2->banner im git geändert: es wird jetzt ein Bild im "landscape" Format zurückgegeben, falls es kein Banner gibt. Analog zu cSeries.


    ~ Markus

    Client1: ASUS P5QC, Dual Core 3G, Cine S2, Ext. Board von TBE, Xubuntu 20.04, VDR 2.6x

    Client2: RPI3

    Server: RPI4, Sundtek SkyTV Dual 2x

  • ScraperGetPosterBannerV2->banner im git geändert: es wird jetzt ein Bild im "landscape" Format zurückgegeben, falls es kein Banner gibt. Analog zu cSeries.

    Das passt schon mal beim Anzeigen ganz gut. Allerdings wird jetzt fanart_0.jpg als Banner und Poster zürückgegeben:

    Code
    skindesigner: extensions/scrapmanager.c SetHeaderScrapInfo 101 0
    skindesigner: extensions/scrapmanager.c SetHeaderScrapInfo 103 isSerie
    skindesigner: extensions/scrapmanager.c SetHeaderScrapInfo 119 Poster=/etc/vdr/plugins/tvscraper/series/360443/fanart_0.jpg
    skindesigner: extensions/scrapmanager.c SetHeaderScrapInfo 128 Banner=/etc/vdr/plugins/tvscraper/series/360443/fanart_0.jpg
    skindesigner: extensions/scrapmanager.c SetFullScrapInfo 54 isSerie
    skindesigner: extensions/scrapmanager.c SetSeries 337 Banner=/etc/vdr/plugins/tvscraper/series/360443/fanart_0.jpg
    skindesigner: extensions/scrapmanager.c SetSeries 348 Fanart=/etc/vdr/plugins/tvscraper/series/360443/fanart_0.jpg
    skindesigner: extensions/scrapmanager.c SetSeries 348 Fanart=/etc/vdr/plugins/tvscraper/series/360443/fanart_1.jpg

    Um die Kompatibilität zu GetSeries noch weiter zu erhöhen, dürfte ein Bild im Landscapeformat nur als Banner zurückgegeben werden, und nicht als Poster. Also dann so:

    Code
    ScraperGetPosterBannerV2:
        cTvMedia poster  -> Bild im "portrait" Format, falls verfügbar. Falls nicht verfügbar: Nichts (Leerstring)
        cTvMedia banner  -> Bild im banner Format. Falls es das nicht gibt: Bild im "landscape" Format (das ist dann fanart). Falls das auch nicht verfügbar ist: Nichts (Leerstring)

    Ich glaube, das wäre dann momentan auch mein letzter Änderungswunsch.


    Grüße

    kamel5

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

    Git-Repo: gitlab.com/kamel5

  • Hallo,


    es gibt eine neue Version 1.2.22.


    - Performance optimization in the detail view

    - Update skin metrixhd

    - If no true color OSD is availiable the BackupSkin is activated

    - Fix segfault in cViewDetailAdvancedPlugin::SetTokenContainer()


    Grüße

    kamel5

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

    Git-Repo: gitlab.com/kamel5

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!