Danke, damit klappt es wieder.
Posts by MartinKG
-
-
-
Hab's bei mir unter Fedora 37 auch mal probiert, fkt. exzellent, bin begeistert.
-
Vielen Dank für die neue Version.
Ich bekomme damit eine Compiler warning:
Code
Display MoreCC remux.o In file included from i18n.h:14, from config.h:19, from channels.h:13, from remux.h:13, from remux.c:10: remux.c: In member function 'virtual int cMpeg2Parser::Parse(const uchar*, int, int)': tools.h:37:64: warning: format not a string literal and no format arguments [-Wformat-security] 37 | #define dsyslog(a...) void( (SysLogLevel > 2) ? syslog_with_tid(LOG_DEBUG, a) : void() ) | ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~ remux.c:1336:16: note: in expansion of macro 'dsyslog' 1336 | dsyslog(s); | ^~~~~~~ remux.c: In member function 'void cH264Parser::ParseSequenceParameterSet()': tools.h:37:64: warning: format not a string literal and no format arguments [-Wformat-security] 37 | #define dsyslog(a...) void( (SysLogLevel > 2) ? syslog_with_tid(LOG_DEBUG, a) : void() ) | ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~ remux.c:1610:9: note: in expansion of macro 'dsyslog' 1610 | dsyslog(s); | ^~~~~~~ remux.c: In member function 'void cH265Parser::ParseSequenceParameterSet()': tools.h:37:64: warning: format not a string literal and no format arguments [-Wformat-security] 37 | #define dsyslog(a...) void( (SysLogLevel > 2) ? syslog_with_tid(LOG_DEBUG, a) : void() ) | ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~ remux.c:1911:6: note: in expansion of macro 'dsyslog' 1911 | dsyslog(s); | ^~~~~~~ CC ringbuffer.o
gcc --version
gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Sieht so aus, als ob mein Compiler auf den Format String besteht.Dies beseitigt die Warning:
Diff
Display Morediff --git a/remux.c b/remux.c index 391fd6ff..54fc50fd 100644 --- a/remux.c +++ b/remux.c @@ -1333,7 +1333,7 @@ int cMpeg2Parser::Parse(const uchar *Data, int Length, int Pid) seenScanType = true; if (debug) { cString s = cString::sprintf("MPEG2: %d x %d%c %.2f fps", frameWidth, frameHeight, progressive ? 'p' : 'i', framesPerSecond); - dsyslog(s); + dsyslog("%s",*s); dbgframes("\n%s", *s); } } @@ -1607,7 +1607,7 @@ void cH264Parser::ParseSequenceParameterSet(void) } if (debug) { cString s = cString::sprintf("H.264: %d x %d%c %.2f fps %d Bit", frameWidth, frameHeight, progressive ? 'p':'i', framesPerSecond, bitDepth); - dsyslog(s); + dsyslog("%s", *s); dbgframes("\n%s", *s); } } @@ -1908,7 +1908,7 @@ void cH265Parser::ParseSequenceParameterSet(void) } if (debug) { cString s = cString::sprintf("H.265: %d x %d%c %.2f fps %d Bit", frameWidth, frameHeight, progressive ? 'p':'i', framesPerSecond, bitDepth); - dsyslog(s); + dsyslog("%s", *s); dbgframes("\n%s", *s); } }
Bekomme die gleichen Meldungen unter Fedora 37 mit gcc (GCC) 12.2.1 20221121 (Red Hat 12.2.1-4)
-
Hallo Markus,
ich versuche gerade die 1.1.6 auf Fedora 35 zu kompilieren, da scheitere ich mit der folgenden Fehlermeldung:
Codeetup.h: In member function 'void langOsd::addLanguage(int)': setup.h:23:101: error: call of overloaded 'max(int&, int)' is ambiguous 23 | void addLanguage(int lang) { m_osdTexts[m_numLang] = getLangText(lang); m_maxOsdTextLength = max(m_maxOsdTextLength, (int)strlen(m_osdTexts[m_numLang])); m_osdMap.insert(m_numLang++, lang); } | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/vdr/i18n.h:14, from /usr/include/vdr/plugin.h:13, from tvscraper.c:19: /usr/include/vdr/tools.h:59:28: note: candidate: 'T max(T, T) [with T = int]' 59 | template<class T> inline T max(T a, T b) { return a >= b ? a : b; } | ^~~ In file included from /usr/include/c++/11/bits/specfun.h:45, from /usr/include/c++/11/cmath:1935, from /usr/include/c++/11/math.h:36, from /usr/include/vdr/tools.h:18, from /usr/include/vdr/i18n.h:14, from /usr/include/vdr/plugin.h:13, from tvscraper.c:19: /usr/include/c++/11/bits/stl_algobase.h:254:5: note: candidate: 'constexpr const _Tp& std::max(const _Tp&, const _Tp&) [with _Tp = int]' 254 | max(const _Tp& __a, const _Tp& __b) | ^~~
Wie kann ich das lösen ?
Habe es jetzt mal mit diesem Patch beheben können.
Diff
Display More--- vdr-plugin-tvscraper-1.1.6/setup.h.orig 2022-09-24 16:49:18.346911892 +0200 +++ vdr-plugin-tvscraper-1.1.6/setup.h 2022-09-24 16:51:19.172530694 +0200 @@ -20,7 +20,7 @@ m_lang_text(lang_text) { m_osdTexts = new const char*[lang_text->size()];} ~langOsd() { delete [] m_osdTexts; } void clear() { m_numLang = 0; m_osdMap.clear(); m_selectedLanguage.clear(); } - void addLanguage(int lang) { m_osdTexts[m_numLang] = getLangText(lang); m_maxOsdTextLength = max(m_maxOsdTextLength, (int)strlen(m_osdTexts[m_numLang])); m_osdMap.insert(m_numLang++, lang); } + void addLanguage(int lang) { m_osdTexts[m_numLang] = getLangText(lang); m_maxOsdTextLength = std::max(m_maxOsdTextLength, (int)strlen(m_osdTexts[m_numLang])); m_osdMap.insert(m_numLang++, lang); } void addLine(int currentLanguage) { m_selectedLanguage.push_back(m_osdMap.getFirst(currentLanguage)); } int getLanguage(int line) const { return m_osdMap.getSecond(m_selectedLanguage[line]); } int m_numLang = 0; --- vdr-plugin-tvscraper-1.1.6/setup.c.orig 2022-09-24 17:05:37.130314074 +0200 +++ vdr-plugin-tvscraper-1.1.6/setup.c 2022-09-24 17:08:36.659560910 +0200 @@ -148,8 +148,8 @@ cTVScraperSetup::~cTVScraperSetup() { } void cTVScraperSetup::Setup(void) { - m_NumberOfAdditionalLanguages = max(m_NumberOfAdditionalLanguages, 0); - m_NumberOfAdditionalLanguages = min(m_NumberOfAdditionalLanguages, (int)langAdditional.m_selectedLanguage.size()); + m_NumberOfAdditionalLanguages = std::max(m_NumberOfAdditionalLanguages, 0); + m_NumberOfAdditionalLanguages = std::min(m_NumberOfAdditionalLanguages, (int)langAdditional.m_selectedLanguage.size()); int currentItem = Current(); Clear(); Add(new cOsdItem(tr("Configure channels to be scraped")));
Danke
Martin
-
Wow, damit klappt es, ich bin begeistert, vielen Dank.
Martin
könntest du bitte einen neuen Release Tag 1.1.3 veröffentlichen, dann wäre ich wunschlos glücklich.
Danke
Martin
-
Hi,
Ich denke, ich habe doch noch eine Lösung gefunden.
Teste mal das aktuelle git.
~ Markus
Wow, damit klappt es, ich bin begeistert, vielen Dank.
Martin
-
Hallo Markus,
danke für deine Mühe, so wie es aussieht muss ich doch auf eine neuere vdr-Version updaten.
Nochmals vielen Dank.
-
Hallo Martin,
Teste bitte mal den neuesten git.
~Markus
leider haut es noch nicht ganz hin:
hier mal das logfile
-
Hallo,
gibt es denn einen Patch, dass tvscraper 1.1.1 und 1.1.2 auch mit vdr-2.4.7 kompilieren ?
-
Damit das auch außerhalb der PM sichtbar ist, hier noch mal:
....Und eine Systemd-Unit, die es mit Login startet:
Code: /etc/systemd/system/headless-session@.service
Display More[Unit] Description=headless login for user %i After=systemd-user-sessions.service Before=vdr.service [Service] User=%i WorkingDirectory=~ TTYPath=/dev/tty7 PAMName=login ExecStart=/bin/bash -l .config/headless-session [Install] WantedBy=graphical.target
Damit das beim Start geladen wird, muss man die Unit noch aktivieren: sudo systemctl enable headless-session@vdr.service
....Danke für die ausführlich Anleitung, TOP. Werde ich am Wochenende mal testen.
Das Systemd Skript heißt dann sicherlich korrekt headless-session@vdr.service
und nicht headless-session@.service ?
Das @-Symbol steht für spezielle Dienste, Sockets und andere Einheiten,´
in denen mehrere Instanzen ausgeführt werden können.
-
Ach so, dann hast du das Problem generell, wenn der VDR nicht im Kontext deiner Session läuft - da gibt es (wie bei Pulseaudio auch) einige Möglichkeiten - z.B. kann man Clients über TCP dran hängen: https://wiki.archlinux.org/tit…_computers_on_the_network - d.h. der VDR braucht eine eigene Pipewire-Instanz, die sich an die des Desktop-Users hängt.
Alternativ sollte es auch gehen, wenn der VDR unter dem selben Nutzer wie dein Desktop-User läuft und du ihm die Umgebungsvariablen der Session gibst.
Entschuldige wenn ich frage:
1. Wie richte ich eine eigene Pipewire-Instanz für den VDR-Benutzer ein ? Sollte doch mit den Einstellungen, die ich bereits unter /home/martin/.config/pipewire/pipewire-pulse.conf vorgenommen habe erledigt sein, oder ?
2. wenn ich den VDR mit dem Benutzer -u martin laufen lasse, wo gebe ich dann die Umgebungsvariablen der Session mit ?
Ich habe mal im Homeverzeichnis des VDR-Benutzers eine .bash_profile angelegt, mich ausgeloggt und wieder eingeloggt, fkt. aber nicht.
[root@fc36 ~]# cat -v /var/lib/vdr/data/.bash_profile
Codeexport XDG_MENU_PREFIX=gnome- export XDG_SESSION_DESKTOP=gnome export XDG_SESSION_TYPE=x11 export XDG_CURRENT_DESKTOP=GNOME export XDG_SESSION_CLASS=user export XDG_RUNTIME_DIR=/run/user/1000 export XAUTHORITY=/run/user/1000/gdm/Xauthority
wenn ich dann die gesetzen Umgebungsvariablen für den Benutzer vdr abfrage erhalte ich die folgende Meldung:
irgendwie bekomme ich das nicht hin
-
Den Pipewire-Pulseserver habe ich bereits eingerichtet, dazu habe ich für den Desktop Benutzer martin unter Gnome folgende Einstellungen vorgenommen:
Ich beschreibe hier einfach mal, welche Einstellungen ich vorgenommen habe, vielleicht hilft es jemand anders mal.
Einstellung in der Datei /home/martin/.config/pipewire/pipewire-pulse.conf
Code
Display More... pulse.properties = { # the addresses this server listens on server.address = [ "unix:native" "tcp:4713" # IPv4 and IPv6 on all addresses ] vm.overrides = { pulse.min.quantum = 1024/48000 # 22ms } } ...
Setzen der Berechtigungen
Umgebungsvariable PULSE_SERVER in /home/martin/.bashrc eintragen
Aktivieren der PULSE_SERVER Umgebungsvariable in der Sitzung
Prüfen ob der Pulseaudio Server läuft
Code
Display More[martin@fc36 ~]$ pactl info Server-Zeichenkette: tcp:127.0.0.1:4713 Bibliotheks-Protokollversion: 35 Server-Protokollversion: 35 ist lokal: nein Client-Index: 215 Tile-Größe: 65472 Name des Benutzers: martin Rechnername: fc36 Name des Servers: PulseAudio (on PipeWire 0.3.54) Version des Servers: 15.0.0 Standard-Abtastwert-Angabe: float32le 2ch 48000Hz Standard-Kanal-Zuordnung: front-left,front-right Standard-Ziel: alsa_output.pci-0000_00_1b.0.analog-stereo Standard-Quelle: alsa_input.pci-0000_00_1b.0.analog-stereo
Lauscht Pipewire-pulse auf den Port 4713
Code[martin@fc36 ~]$ netstat -tulpen |grep 4713 tcp 0 0 0.0.0.0:4713 0.0.0.0:* LISTEN 1000 38547 3582/pipewire-pulse tcp6 0 0 :::4713
Aktive und notwendige pipewire-Dienste:
Code[martin@fc36 ~]$ systemctl --user list-unit-files|grep wire pipewire-pulse.service enabled disabled pipewire-session-manager.service alias - pipewire.service disabled disabled wireplumber.service enabled enabled wireplumber@.service disabled disabled pipewire-pulse.socket enabled enabled pipewire.socket
Einstellungen für den VDR-Benutzer im Homeverzeichnis
-
die Kommunikation mit pipewire klappt nicht, nur wenn ich manuell im Terminal starte.
Meldungen in der journal-log beim Start aus dem Terminal, dann ist alles ok.
journalctl -u vdr.service
Code
Display MoreJul 10 10:46:43 fc36 vdr[15088]: [15112] SVDRP fc36 < 127.0.0.1:53874 client connection accepted Jul 10 10:46:43 fc36 vdr[15088]: [15112] SVDRP fc36 > 127.0.0.1:53874 server created Jul 10 10:46:43 fc36 vdr[15088]: audio: 'alsa' output module used Jul 10 10:46:43 fc36 vdr[15088]: audio/alsa: playback open 'pipewire' error: Der Rechner ist nicht aktiv Jul 10 10:46:43 fc36 vdr[15088]: audio/alsa: can't open mixer 'default' Jul 10 10:46:43 fc36 vdr[15088]: audio: 44100Hz supports 0 0 0 0 0 0 0 0 channels Jul 10 10:46:43 fc36 vdr[15088]: audio: 48000Hz supports 0 0 0 0 0 0 0 0 channels Jul 10 10:46:43 fc36 vdr[15088]: audio: 192000Hz supports 0 0 0 0 0 0 0 0 channels Jul 10 10:46:43 fc36 vdr[15088]: video/vdpau: VDPAU API version: 1 Jul 10 10:46:43 fc36 vdr[15088]: video/vdpau: VDPAU information: NVIDIA VDPAU Driver Shared Library 515.57 Wed Jun 22 22:28:16 UTC 2022 Jul 10 10:46:43 fc36 vdr[15088]: video/vdpau: highest supported high quality scaling 1 Jul 10 10:46:43 fc36 vdr[15088]: video/vdpau: feature deinterlace temporal supported Jul 10 10:46:43 fc36 vdr[15088]: video/vdpau: feature deinterlace temporal spatial supported Jul 10 10:46:43 fc36 vdr[15088]: video/vdpau: attribute skip chroma deinterlace supported Jul 10 10:46:43 fc36 vdr[15088]: video/vdpau: 4:2:0 chroma format with 8192x8192 supported Jul 10 10:46:43 fc36 vdr[15088]: video/vdpau: 4:2:2 chroma format with 8192x8192 supported Jul 10 10:46:43 fc36 vdr[15088]: video/vdpau: 4:4:4 chroma format with 8192x8192 supported Jul 10 10:46:43 fc36 vdr[15088]: video/vdpau: 8bit BGRA format with 32768x32768 supported Jul 10 10:46:43 fc36 vdr[15088]: video/vdpau: 10bit RGBA format with 32768x32768 supported Jul 10 10:46:43 fc36 vdr[15088]: video/vdpau: created osd output surface 1680x1050 with id 0x0000000c Jul 10 10:46:43 fc36 vdr[15088]: [15112] SVDRP fc36 < 127.0.0.1:53874 connection closed Jul 10 10:46:43 fc36 vdr[15088]: [15112] SVDRP fc36 < 127.0.0.1:53874 server destroyed Jul 10 10:46:44 fc36 vdr[15088]: [15088] switching to channel 18 S19.2E-1-1101-28106 (Das Erste) Jul 10 10:46:44 fc36 vdr[15088]: [15824] device 1 receiver thread started (pid=15088, tid=15824, prio=high) Jul 10 10:46:44 fc36 vdr[15088]: [15825] device 1 TS buffer thread started (pid=15088, tid=15825, prio=high) Jul 10 10:46:45 fc36 vdr[15088]: video/vdpau: can't render mixer: An invalid handle value was provided. Jul 10 10:46:45 fc36 vdr[15088]: audio: 2 channels unsupported Jul 10 10:46:45 fc36 vdr[15088]: video: get hwaccel context, not supported Jul 10 10:46:45 fc36 vdr[15088]: video/vdpau: can't render mixer: An invalid handle value was provided.
-
Hallo,
ich habe auf meinem Desktop-Rechner vdr-2.6.1 mit vdr-softhddevice-1.4.0 installiert. Beim Neustart des Rechners wird der VDR über die Dienste mit dem Parameter -s im Suspend-Modus mit gestartet.
/etc/sysconfig/vdr-plugins.d/softhddevice.conf
Zum Aufwecken des VDR habe ich mir Skripte auf den Desktop gelegt, die folgendes machen:
dann geht das vdr-softhddevice Fenster auf dem Gnome Desktop auf, ich habe dann aber keinen Ton
Starte ich hingegen den vdr über ein Terminal-Fenster (ohne -s Parameter ), dann habe ich sauber einen Ton
Code/usr/sbin/vdr -v /video -D1 -u vdr --vfat --userdump -s vdr-shutdown.sh --plugin='dvbhddevice' --plugin='softhddevice -g 1680x1050+100+100 -a pipewire -d :1 -v vdpau' --plugin='live --ip=127.0.0.1' --plugin='skinnopacity --iconpath=/usr/share/vdr/plugins/skinnopacity/icons/ --logopath=/usr/share/vdr/plugins/skinnopacity/logos/ --epgimages=/var/cache/vdr/plugins/skinnopacity/epgimages/' --plugin='tvguide --logopath=/usr/share/vdr/plugins/tvguide/channellogos/ --epgimages=/usr/share/vdr/plugins/tvguide/epgimages/ --iconpath=/usr/share/vdr/plugins/tvguide/epgimages/' --plugin='epgsearch -l /var/log/vdr/epgsearch.log' --plugin=streamdev-server --plugin=streamdev-client --plugin='markad --logocachedir=/var/lib/vdr/data/markad/logos --autologo=2' --plugin='burn -d /data/tmp --tempdir=/data/tmp --iso=/data/film --dvd=/dev/sr1'
Alsa leitet dann den Ton sauber auf den Pipewire-Pulseaudio Server weiter.
[Blocked Image: https://ibb.co/kmfgKPp]Was muss ich tun, damit ich einen Ton bekomme, wenn der VDR aus dem Suspend-Modus aufgeweckt wird ?
-
Hallo,
ich habe hier das Plugin softhddevice in der Version 1.0.14 im Einsatz.
Gestern ist mir beim Schneiden und Spulen einer Aufnahme das Ganze hängen geblieben und hat einen Coredump erzeugt.
Ich hänge mal den backtrace davon an, vielleicht kann man darin erkennen, wo das Problem liegt.
-
OK, ich habe gemerged, ist jetzt im master
Ein neuer release tag wäre nicht schlecht, wenn möglich, bitte ....
-
Hallo,
kann bitte noch jemand testen, ob der Branch tntnet30 auch mit tntnet 2.2 funktioniert?
Dann würde ich das übernehmen.
~ Markus
Hallo,
ich konnte bisher keine Probleme feststellen, eine Freigabe wäre meinerseits möglich.
-
Ja, damit ist es mir auch nicht gelungen. Aber mein Verdacht war richtig, du kannst den Crash "mit Gewalt" erzeugen, indem du einen Timer aus der Programmübersicht erstellst und vor dem Speichern im Browser die letzte Stelle der URL löscht um eine ungültige Event ID zu erzeugen. Beim Speichern kommt dann genau dein Crash. Man sollte besser Pointer auf NULL überprüfen bevor man sie verwendet ...
Fix ist im Branch Tntnet30, Branch crash ist gelöscht.
Vielen Dank für deine Mühe, wann werden deine Änderungen übernommen ?
-
Ich habe den crash branch installiert, kann den Crash aber nicht mehr nachvollziehen, egal wie viele Aktionen ich vorher gewählt habe, und
dann wieder auf Zurückblättern gehe.