[live] Weiterentwicklung v3.3.x

  • Schau mal in tntconfig.cpp, ab Zeile 199:

    Hmm, da kann/muss man also URLs auf Pfade mappen und gleichzeitig den ContentType festlegen.


    Ein Curl auf eine beispielhafte SVG-Datei sieht bei mir so aus wie unten.

    Die liegt im selben Ordner, nur die Dateiendung ist anders.

    Ich verstehe trotzdem nicht, weshalb Firefox da mit einem Download-Fenster kommt (kein Content-Disposition: attachment).

    Wenn ich mir Seiten mit funktionierender Inline-Darstellung von SVG-Dateien anschaue, dann werden diese als image/svg+xml ausgeliefert:

    Könnte das den Unterschied ausmachen?

    Bin allerdings vollkommen hilflos, wie ich dafür eine spezielle MapUrl-RegEx-Regel erstellen oder die bestehende anpassen könnte.

  • Das hier

    Code: tntconfig.cpp
    //SVG-Fix
            MapUrl(app,
                   "^/themes/([^/]*)/img.*/(.+)\\.svg",
                   "content",
                   GetResourcePath(),
                   "/themes/$1/img/$2.svg",
                   "image/svg+xml");

    führt bei mir immer noch zu image/svg.

    Das Kompilat hat aber auch die gleiche Dateigröße wie vorher. :/


    Edit: Im MapUrl davor evtl. ein Conditional bei image/$3 im Sinne von if ($3 == 'svg') noch '+xml' anconcatenaten?

    Bin leider auch bekennender RegEx-Legastheniker...

  • So, ich hab jetzt den folgenden SVG-Fix an erste Stelle gestellt...

    ...und bekomme jetzt genau eine SVG-Datei (nämlich die search.svg-Lupe) erfolgreich mit image/svg+xml serviert und angezeigt. Rest der SVG-Dateien weiterhin image/svg.

    Vermutlich ein Zusammenhang mit The first rule where a image is found, terminates the search..

    Aber mir erschließt sich das Konzept dahinter immer noch nicht - von den PNG-Dateien wird ja auch mehr als eine angezeigt.


    Kann mich mal jemand retten?

    Hätte nicht gedacht, dass es so schwierig sein kann simple SVG-Dateien korrekt von einem Webserver ausrollen zu lassen.

  • I welchem Verzeichnis sind die svg Dateien?

    In /usr/share/vdr/plugins/live/themes/*/img ?

    Oder in usr/share/vdr/plugins/live/img ?

    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

  • I welchem Verzeichnis sind die svg Dateien?

    In /usr/share/vdr/plugins/live/themes/*/img ?

    Oder in usr/share/vdr/plugins/live/img ?

    /usr/share/vdr/plugins/live/img, da wo auch die PNG-Geschwister liegen.


    Edit: Der Server mappt die img ja aber irgendwie noch in die einzelnen themes-Pfade rein.

    Ich find es halt komplett strange, dass er mir ausgerechnet die search.svg mit image/svg+xml rausjaucht und beim Rest auf image/svg bleibt.

  • Verstehe ich auch nicht.

    > The first rule where a image is found, terminates the search

    Das ist anders gemeint. Wenn eine bestimmte Datei A gesucht wird, wird die erste Regel verwendet, die für diese Datei A passt.


    Wenn danach Datei B gesucht wird, wird wieder die erste Regel verwendet, die für diese Datei B passt.


    So funktionieren diese Regeln: wenn themes/*/img die Datei ist, wird diese genommen.

    Falls nicht, zieht die 2. Regel, und er nimmt die Datei aus img .

    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

  • So funktionieren diese Regeln: wenn themes/*/img die Datei ist, wird diese genommen.

    Falls nicht, zieht die 2. Regel, und er nimmt die Datei aus img .

    D.h. man müsste...

    Code
            MapUrl(app,
                   "^/themes/([^/]*)/img.*/(.+)\\.(.+)",
                   "content",
                   GetResourcePath(),
                   "/themes/$1/img/$2.$3",
                   "image/$3");

    ...jeweils als separaten MapUrl-Call nach PNG, GIF und SVG geregext ausführen?

  • Uff. Wie lange kann man auf dem Schlauch stehen. Habe es hinbekommen.

    Die zwei MapUrl-Calls können vor den bisherigen zusätzlich eingegittet werden, dann wird der spezielle SVG-Contenttype vorher abgefangen:

  • Kleine Preview.

    Ist noch einiges an Detailarbeit nötig, da es leider keine gemeinsame Klasse für die ganzen Icons gibt und man sich über die divs runterhangeln muss.

    Auf den Screenshots sieht man mal 20px statt den 16 wie bisher.

    IMHO sowohl am Desktop als auch mobil ein Usability-Zugewinn.

  • Und wenn du die alten Namen der Images (so wie im Code "hart" definiert) beibehältst, und die neuen Images umbenennst und in ein neues theme packst?

    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

  • > Und wenn du die alten Namen der Images (so wie im Code "hart" definiert) beibehältst, und die neuen Images umbenennst und in ein neues theme packst?


    Weiß nicht, ob sich nicht der ein oder andere Browser verschluckt, wenn bei .png eine SVG-Datei kommt.

    Edit: gerade getestet, Firefox mag das nicht und zeigt den Fehlerplatzhalter an.

    Wäre auch etwas unsauber. Davon ab könnte man die bestehenden Bitmaps auch verlustfrei in SVG einbetten.

    Zudem besteht evtl. noch die Möglichkeit, dass die Originalicons noch als Vektordateien vorliegen (Anfrage läuft).


    Problem ist auch gar nicht mal sehr das Umbennen der Dateiendungen im Quelltext, sonder die fehlenden width und/oder height-Angaben.

    Bei den Bitmaps konnte sich darauf verlassen, dass da immer 16x16px kommen (oder auch nicht, wie bei den letztens eingeführten HD-Icons).

    Bei SVGs müssen aber Angaben zur Skalierung vorliegen, sonst erhält man mitunter bildschirmfüllende Icons.

    Das kann man aber gut über CSS lösen und dann auch später nach persönlichem Gusto dort anpassen.

  • Ist das hier mit data-src statt src eigentlich Absicht?

    Code: pageelems.cpp
    <img data-src="img/transparent.png" height="10px" />

    Firefox mosert da bei mir auch mit Fehler-Platzhalter.

    Ja, das ist Absicht. Die Bilder werden erst geladen, wenn der Rest fertig ist.

    Andererseits: bei den Icons könnte man das natürlich auch anders machen, und die sofort laden.

    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

  • Code
    Nov 25 18:19:38 user.err        VDR-2204        vdr: [9516] live: DH: ------ RecordingsTree::RecordingsTree() --------, required time:   0,06098
    Nov 25 18:19:38 user.err        VDR-2204        vdr: [9516] live: timeMd5Hash num =  2063, time =   0,00227, average 0,000001, max = 0,001706
    Nov 25 18:19:38 user.err        VDR-2204        vdr: [9516] live: timeRecs    num =  2063, time =   0,05886, average 0,000029, max = 0,001799
    Nov 25 18:19:38 user.err        VDR-2204        vdr: [9516] live: Identify    num =  2063, time =   0,00054, average 0,000000, max = 0,000015
    Nov 25 18:19:43 user.err        VDR-2204        vdr: [9516] live: DH: ------ RecordingsTree::RecordingsTree() --------, required time:   0,05831
    Nov 25 18:19:43 user.err        VDR-2204        vdr: [9516] live: timeMd5Hash num =  2062, time =   0,00054, average 0,000000, max = 0,000015
    Nov 25 18:19:43 user.err        VDR-2204        vdr: [9516] live: timeRecs    num =  2062, time =   0,05697, average 0,000028, max = 0,000301
    Nov 25 18:19:43 user.err        VDR-2204        vdr: [9516] live: Identify    num =  2062, time =   0,00055, average 0,000000, max = 0,000015

    MarkusE

    kannst du bitte o.g. Meldungen in einen höheren syslog severity level ändern, das sind ja wohl keine Fehler Meldungen, sondern Debug Meldungen.

  • Ja, das ist Absicht. Die Bilder werden erst geladen, wenn der Rest fertig ist.

    Andererseits: bei den Icons könnte man das natürlich auch anders machen, und die sofort laden.

    Ich hatte SVG-bedingt den img in der div eine Breite zugewiesen:

    Code
    div.epg_content div.epg_tools img {
    width: 20px;
    }

    Dann wird das Teil sichtbar - wenn es nur um den horizontalen 10px-Abstand zum HD-Symbol geht, sollte man bei dem stattdessen ein padding-top reinfrickeln und die transparent.png da komplett rausjäten.

  • transparent.png stammt noch von den Entwicklern, vor meiner Zeit.

    Also, können wir gerne durch padding-top oder ähnliches ersetzen

    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, beim LiveProgramm gibt es den Button "Diesen Kanel im Browser ansehen". Einen äqivalenten Button zur direkt Wiedergabe im Broser gibt es bei den Aufnahmen nicht. Kann man diesen Button bei den Aufnahmen auch einbauen?

    :vdr1 VDR User #626:fans
    VDR II: YeongYang A106, Fusi D1522, Celeron 2GHz, Frontend per DVB-s FF, 2xDVB-c, ATRIC-IR, YaVDR 0.3a
    VDR III HDTV: Inter-Tech 2008V mit iMonLCD, Atric, ASRock Extreme3 770 AM3, AMD Sempron 140 1x 2.70GHz AM3, 1,5TB WD15EADS, 2TB WD20EARS, 2x4GB DDR3-1600, NVidia GT520 passiv, 3x DVB-c, YaVDR 0.5 @ Samsung PS-50B550

  • Hi, beim LiveProgramm gibt es den Button "Diesen Kanel im Browser ansehen". Einen äqivalenten Button zur direkt Wiedergabe im Broser gibt es bei den Aufnahmen nicht. Kann man diesen Button bei den Aufnahmen auch einbauen?

    Wenn ich mich recht entsinne, wird das Streaming von Aufnahmen nicht unterstützt. Wiedergabe im Medienplayer geht aber schon.

    Ich habe beim Streaming aber nichts gemacht.

    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

  • Im git ist jetzt 3.3.2 .

    Änderungen zu 3.3.1:

    - Bug fix bei Aufnahmen ohne tvscraper

    - Performance-Verbesserungen beim Ändern/Löschen von Aufnahmen. Für optimale Performance solltet ihr auch tvscraper auf 1.2.5 updaten

    - Entfernen / Umpriorisierung von Debug Meldungen (Dank an kfb77 für's Melden).


    ~ 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

Jetzt mitmachen!

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