Mach was du willst Aber die Signalstrength und der BER Wert fehlen halt.
Hm, richtig.
Hatte mich schon gewundert warum "femon" kein STR- / CNR- / BER-/ PER-Werte mehr anzeigt ?
Nur noch Video & Audio
Mach was du willst Aber die Signalstrength und der BER Wert fehlen halt.
Hm, richtig.
Hatte mich schon gewundert warum "femon" kein STR- / CNR- / BER-/ PER-Werte mehr anzeigt ?
Nur noch Video & Audio
Mach was du willst Aber die Signalstrength und der BER Wert fehlen halt.
Ach? Erst eine Falschbehauptung raushauen und dann das Thema von Status auf Signalstrength/BER wechseln? Ok...
Ebenso wie Status werden auch Signalstrength und BER Wert übergeben:
static void set_status(int fd, unsigned char status, unsigned short ss, unsigned int ber)
{
struct vtuner_signal sig;
sig.status = status;
sig.ss = ss*255;
sig.ber = ber*255;
sig.snr = 0;
sig.ucb = 0;
ioctl(fd, VTUNER_SET_SIGNAL, &sig);
}
Da ich keine Ahnung habe wie sich das berechnet mappe ich ss einfach von satip-ss 0-255 auf dvb-ss 0-65025 und bei satip-ber 0-15 auf dvb-ber 0-3825 .. es fehlt also nix, passt eventuell halt nicht.
Über eine passende Umrechnung wäre ich nicht böse
Und bevor SNR und UCB angesprochen werden: Auch die werden übergeben, wie man aber sieht immer mit 0.
Hatte mich schon gewundert warum "femon" kein STR- / CNR- / BER-/ PER-Werte mehr anzeigt ?
Eventuell mag femon es nicht das nur LOCK gesetzt ist? Habe bei mir gerade kein femon laufen...
szap2 z.B.:
./szap-s2 -n 1
reading channels from file '/root/.szap/channels.conf'
zapping to 1 'Das Erste HD;ARD':
delivery DVB-S2, modulation 8PSK
sat 0, frequency 11493 MHz H, symbolrate 22000000, coderate 2/3, rolloff 0.35 stream_id 0
vpid 0x13ed, apid 0x13ee, sid 0x13f0
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
status 00 | signal 0000 | snr 0000 | ber 00000000 | unc 00000000 |
status 00 | signal 0000 | snr 0000 | ber 00000000 | unc 00000000 |
status 1f | signal fe01 | snr 0000 | ber 00000ef1 | unc 00000000 | FE_HAS_LOCK
status 1f | signal fe01 | snr 0000 | ber 00000ef1 | unc 00000000 | FE_HAS_LOCK
status 1f | signal fe01 | snr 0000 | ber 00000ef1 | unc 00000000 | FE_HAS_LOCK
Alles anzeigen
Wie schon gesagt, keine Ahnung wie signal und ber korrekt berechnet werden....
Alles anzeigenEbenso wie Status werden auch Signalstrength und BER Wert übergeben:
Da ich keine Ahnung habe wie sich das berechnet mappe ich ss einfach von satip-ss 0-255 auf dvb-ss 0-65025 und bei satip-ber 0-15 auf dvb-ber 0-3825 .. es fehlt also nix, passt eventuell halt nicht.
Über eine passende Umrechnung wäre ich nicht böse
Und bevor SNR und UCB angesprochen werden: Auch die werden übergeben, wie man aber sieht immer mit 0.
Also benötigen wir für vtuner_ng auch ein femon_ng für das OSD?
Also benötigen wir für vtuner_ng auch ein femon_ng für das OSD?
Nö glaube ich nicht. Ich denke femon geht halt von richtigen Tunern aus und gibt manche Werte eben erst dann aus wenn alle Bits gesetzt sind.
Ich habe das mal abgeändert und gepushed. Jetzt sieht das so aus:
[vtunerc driver, version 2.0]
vtunerc0 used by : 1
adapter0 in use : yes
status : SIGNAL CARRIER VITERBI SYNC LOCK
last change : 12
system : DVB-S2
modulation : PSK 8
frequency : 11493
symbolrate : 22000
fec : 2/3
rolloff : 0.35
pilot : auto
pid tab : 5101* 5102* 5103* 5107* 5106* 5105* EIT* TDT* PAT* SDT* NIT* 5100s* (len=12)
ts data : 8027600
internal filler : 14100
external filler : 3948
Alles anzeigen
Signal, Carrier, Viterbi und Sync werden aber immer zusammen mit Lock gesetzt weil bei Sat>IP gibt es ja eigenlich nur Lock=0/1
Ein Patch für Signalstärke UND -qualität ist hier [Patch] Signalstärke/-quality für vtuner/satip. Der muss natürlich für das neue vtuner-ng angepasst werden.
Weiterhin wurde in diesem Patch von recv auf recvfrom gewechselt.
Nö glaube ich nicht. Ich denke femon geht halt von richtigen Tunern aus und gibt manche Werte eben erst dann aus wenn alle Bits gesetzt sind.
Ich habe das mal abgeändert und gepushed. Jetzt sieht das so aus:
CodeAlles anzeigen[vtunerc driver, version 2.0] vtunerc0 used by : 1 adapter0 in use : yes status : SIGNAL CARRIER VITERBI SYNC LOCK last change : 12 system : DVB-S2 modulation : PSK 8 frequency : 11493 symbolrate : 22000 fec : 2/3 rolloff : 0.35 pilot : auto pid tab : 5101* 5102* 5103* 5107* 5106* 5105* EIT* TDT* PAT* SDT* NIT* 5100s* (len=12) ts data : 8027600 internal filler : 14100 external filler : 3948
Signal, Carrier, Viterbi und Sync werden aber immer zusammen mit Lock gesetzt weil bei Sat>IP gibt es ja eigenlich nur Lock=0/1
Danke, hat leider nichts geändert im Femon-Plugin
Danke, hat leider nichts geändert im Femon-Plugin
Ja, ich hab das jetzt auch mal bei mir laufen.
Beim Status wird mal alles angezeigt:
./svdrpsend plug femon STAT
220 server SVDRP VideoDiskRecorder 2.6.4; Fri Dec 29 13:39:19 2023; UTF-8
900 Status LOCKED:SIGNAL:CARRIER:VITERBI:SYNC on deviceP #0
221 server closing connection
Im VDR Sourcecode ist Strength nur valide wenn es in DECIBEL daherkommt:
Danke vorab an Joe_D !
Ich habe nochmal alles neu kompiliert und mit -T getestet:
Um Problemen beim Empfang der Daten nachgehen zu können kann das satip-Programm nun mit -T (testmode) aufgerufen werden. Dabei wird nur eine Verbindung zum Satip-Server gemacht, ohne vtuner. Die empfangenen TS-Daten werden an stdout herausgeschrieben:
...
Mein Ergebnis:
linux2:~ # /usr/sbin/modprobe vtunerc devices=1
linux2:~ # dmesg
[ 264.511293] mc: Linux media interface: v0.10
[ 264.522509] virtual DVB adapter driver, version 2.0, (c) 2021 Honza Petrous, SmartImp.cz
[ 264.525162] dvbdev: DVB: registering new adapter (vTuner proxy)
[ 264.525364] (NULL device *): DVB: registering adapter 0 frontend 0 (vTuner proxyFE DVB-Multi)...
[ 264.525542] vtunerc: registered /dev/vtunerc0
linux2:~ # satip -s 192.168.178.190 -T -l 4 -m 2 1> /tmp/stream.ts 2> /tmp/satip.log
linux2:~ # dvbsnoop -s ts -if /tmp/stream.ts | grep "^PID:" | sort -u
PID: 0 (0x0000) [= ISO 13818-1 Program Association Table (PAT)]
PID: 1 (0x0001) [= ISO 13818-1 Conditional Access Table (CAT)]
PID: 16 (0x0010) [= DVB Network Information Table (NIT), Stuffing Table (ST)]
PID: 17 (0x0011) [= DVB Service Description Table (SDT), Bouquet Association Table (BAT)]
PID: 18 (0x0012) [= DVB Event Information Table (EIT)]
PID: 20 (0x0014) [= DVB Time and Date Table (TDT), Time Offset Table (TOT)]
PID: 5101 (0x13ed) [= ]
PID: 5102 (0x13ee) [= ]
PID: 5103 (0x13ef) [= ]
PID: 5105 (0x13f1) [= ]
PID: 5106 (0x13f2) [= ]
PID: 5107 (0x13f3) [= ]
PID: 8191 (0x1fff) [= Null Packet]
Alles anzeigen
Das hier habe ich zusätzlich:
/tmp/satip.log (satip.log.txt) sieht etwas anders aus.
Dann habe ich alles mit dem VDR getestet:
linux2:~ # /usr/local/bin/satip -s 192.168.178.190 -d /dev/vtunerc0 -m 2 -l 4 2> /tmp/satip0.log &
[1] 16907
linux2:~ # cat /proc/vtunerc0
[vtunerc driver, version 2.0]
vtunerc0 used by : 1
adapter0 in use : no
status : FE_NONE
ts data : 0
internal filler : 0
external filler : 0
linux2:~ # vdr &
linux2:~ # cat /proc/vtunerc0
[vtunerc driver, version 2.0]
vtunerc0 used by : 1
adapter0 in use : yes
status : FE_HAS_LOCK
last change : 8
system : DVB-S2
modulation : PSK 8
frequency : 11493
symbolrate : 22000
fec : 2/3
rolloff : 0.35
pilot : auto
pid tab : 5101 5102 5103 5107 5106 5105 EIT* TDT* PAT* SDT* NIT* 5100s (len=12)
ts data : 12904884
internal filler : 12163412
external filler : 0
Alles anzeigen
Bei pid tab habe ich keine * und somit? kein Bild.
Anbei von dieser Aktion ein log (satip0.log.txt)
Gruß Uwe
Ein Patch für Signalstärke UND -qualität ist hier [Patch] Signalstärke/-quality für vtuner/satip. Der muss natürlich für das neue vtuner-ng angepasst werden.
Super!
So wie ich das sehe sind das folgende Codezeilen:
cfg->signal_strength = (value >= 0) ? (value * 100 / 255) : -1;
cfg->signal_quality = (hasLock && (value >= 0)) ? (value * 100 / 15) : 0;
Übergabe erfolgt dann so:
msg.body.ss = vt->satip_cfg->signal_strength*0xffff/100;
msg.body.snr = vt->satip_cfg->signal_quality*0xffff/100;
Bisher habe ich immer ber verwendet anstatt snr, ich Dussel
stream.ts
Kannst Du diese Datei irgendwo hochladen?
Kannst Du diese Datei irgendwo hochladen?
Ja hier. Ist eine mehrteilige 7zip Datei (wegen 2MByte Größenbeschränkung), vor entzippen ".txt" wegnehmen.
Wenn es nicht geht dann muss ich mir was anderes überlegen.
Ja hier.
Konnte die Datei verwenden. Ist aber trotzdem komisch.
Habe den vdr ohne satip Programm und vtuner mit debug=1 laufen lassen und auf "Das Erste HD" gestellt und dann mittels
die Daten reingedrückt. Bei mir
Dec 29 14:24:03 server kernel: [16439.820888] vtunerc0: found pusi for pid 18 (cc=7)
Dec 29 14:24:03 server kernel: [16439.820907] dvb_demux: dvb_dmx_swfilter_section_new: section ts padding loss: 1094/1094
Dec 29 14:24:03 server kernel: [16439.820911] dvb_demux: dvb_dmx_swfilter_section_new: pad data: 52 f5 f4 28 40 ed a8 f8 03 fb 00 01 a8 56 ad 7b eb 9d 15 00 00 00 04 00 00 c5 4d 21 64 65 75 1c 05 53 57 52 20 41 6b 74 75 65 6c 6c 20 52 68 65 69 6e 6c 61 6e 64 2d 50 66 61 6c 7a 00 54 02 20
Dec 29 14:24:03 server kernel: [16439.821053] vtunerc0: found pusi for pid 5101 (cc=4)
Dec 29 14:24:03 server kernel: [16439.821595] vtunerc0: found pusi for pid 0 (cc=9)
Dec 29 14:24:03 server kernel: [16439.822678] dvb_demux: dvb_dmx_swfilter_section_packet: discontinuity: 9 instead of 3. 188 bytes lost
Dec 29 14:24:03 server kernel: [16439.822684] dvb_demux: dvb_dmx_swfilter_section_new: section ts padding loss: 209/209
Dec 29 14:24:03 server kernel: [16439.822687] dvb_demux: dvb_dmx_swfilter_section_new: pad data: 51 f5 4a 28 40 eb 10 f8 03 fb 00 01 10 56 ac b9 eb 97 07 00 00 00 50 00 02 9c 4d 3d 64 65 75 2e 05 49 6e 20 61 6c 6c 65 72 20 46 72 65 75 6e 64 73 63 68 61 66 74 20 2d 20 44 69 65 20 6a 75 6e
Dec 29 14:24:03 server kernel: [16439.822863] vtunerc0: found pusi for pid 18 (cc=12)
Dec 29 14:24:03 server kernel: [16439.822867] dvb_demux: dvb_dmx_swfilter_section_new: section ts padding loss: 237/237
Dec 29 14:24:03 server kernel: [16439.822871] dvb_demux: dvb_dmx_swfilter_section_new: pad data: 54 65 6e 64 65 72 62 6f 6f 74 2d 54 72 61 69 6e 69 6e 67 2c 20 77 e4 68 72 65 6e 64 20 48 6f 74 65 6c 6d 61 6e 61 67 65 72 20 41 6e 64 72 65 61 73 20 56 65 73 70 65 72 6d 61 6e 6e 20 69 6e 20
Dec 29 14:24:03 server kernel: [16439.825882] vtunerc0: found pusi for pid 5107 (cc=5)
Dec 29 14:24:03 server kernel: [16439.826490] vtunerc0: found pusi for pid 5102 (cc=9)
Dec 29 14:24:03 server kernel: [16439.826530] vtunerc0: found pusi for pid 5103 (cc=9)
Dec 29 14:24:03 server kernel: [16439.827614] vtunerc0: found pusi for pid 5106 (cc=0)
Dec 29 14:24:03 server kernel: [16439.829213] vtunerc0: found pusi for pid 20 (cc=15)
Dec 29 14:24:03 server kernel: [16439.833655] vtunerc0: found pusi for pid 17 (cc=0)
Dec 29 14:24:03 server kernel: [16439.845809] vtunerc0: found pusi for pid 16 (cc=8)
Dec 29 14:24:03 server kernel: [16439.890574] vtunerc0: found pusi for pid 5105 (cc=3)
Dec 29 14:24:03 server kernel: [16439.911206] vtunerc0: closing (fd_opened=1)
Dec 29 14:24:03 server kernel: [16439.911223] vtunerc0: faked response
Alles anzeigen
findet er für alle Streams ein PUSI...
Ja, ich hab das jetzt auch mal bei mir laufen.
Beim Status wird mal alles angezeigt:
Code./svdrpsend plug femon STAT 220 server SVDRP VideoDiskRecorder 2.6.4; Fri Dec 29 13:39:19 2023; UTF-8 900 Status LOCKED:SIGNAL:CARRIER:VITERBI:SYNC on deviceP #0 221 server closing connection
Im VDR Sourcecode ist Strength nur valide wenn es in DECIBEL daherkommt:
Hm, sieht hier an der DD-Net auch so aus
So, jetzt habe ich wieder den halben Tag für die dämliche Quality- und Signalstrength-Anzeige verschwendet...
Bei SatIP hat die ja IMHO nicht so 'ne dolle Aussagekraft... Bei mir bekomme ich da immer 255 für SignalStrength und 15 für die Quality.
Hier die Ausgabe bei szap2 mit DVBAPI3:
zapping to 1 'Das Erste HD;ARD':
delivery DVB-S2, modulation 8PSK
sat 0, frequency 11493 MHz H, symbolrate 22000000, coderate 2/3, rolloff 0.35 stream_id 0
vpid 0x13ed, apid 0x13ee, sid 0x13f0
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
status 00 | signal 0% | snr 0% | ber 0 | unc 0 |
status 00 | signal 0% | snr 0% | ber 0 | unc 0 |
status 1f | signal 100% | snr 100% | ber 0 | unc 0 | FE_HAS_LOCK
status 1f | signal 100% | snr 100% | ber 0 | unc 0 | FE_HAS_LOCK
Ebenso jetzt bei Femon mit DVBAPI5:
./svdrpsend plug femon info
220 server SVDRP VideoDiskRecorder 2.6.4; Fri Dec 29 19:39:47 2023; UTF-8
900-CARD:0
900-STRG:100
900-QUAL:100
900-TYPE:DVB-S
900-NAME:vTuner proxyFE DVB-Multi
900-STAT:001F
900-SGNL:-0.02
900 CHAN:SAT.1;ProSiebenSat.1:12545:HC56M2S0:S19.2E:22000:255=2:256=deu@3;259=deu@106:32:0:17500:1:1107:0
Ist im dvbcore ziemlich dämlich gemacht.. diese absolute Trennung von API3-Calls für BER/SNR/UCB und API5-Calls für "Stats". Im vtuner-ng habe ich jetzt nur noch ein API5 ioctl VTUNER_SET_SIGNAL das eine API5-Stat-Struktur entgegennimmt. Für die API3-Calls wird dann intern in der API5-Stat-Struktur nach den Werten gesucht. Das hätten die Jungs und Mädels ja gleich so im dvbcore machen können
Nein Nein
die dämliche Quality- und Signalstrength-Anzeige verschwendet...
Nein, Nein,
du machst das schon richtig.
Ich habe hier zum Beispiel mit vdr satip-plugin verschiedene Werte. Scheint eine Implementierungssache auf SATIP-Server Seite zu sein:
linux2:/usr/local/src/vdrdesktop/source/vdr # ./svdrpsend plug femon info
220 linux2 SVDRP VideoDiskRecorder 2.6.4; Fri Dec 29 19:59:20 2023; UTF-8
900-CARD:2
900-STRG:87
900-QUAL:86
900-TYPE:SAT>IP
900-NAME:SAT>IP 0 192.168.178.190|DVBS2-1|satpi
900-STAT:001F
900-SGNL:-25.21
900 CHAN:ProSieben HD;ProSiebenSat.1:11464:HC23M5O35P0S1:S19.2E:22000:511=27:0;515=deu@106:33:1830,1843,9C4,98C,1860,186A,98D,186D,1842,4B64,4AF4:61301:1:1017:0
221 linux2 closing connection
linux2:/usr/local/src/vdrdesktop/source/vdr # ./svdrpsend plug femon info
220 linux2 SVDRP VideoDiskRecorder 2.6.4; Fri Dec 29 20:03:45 2023; UTF-8
900-CARD:2
900-STRG:86
900-QUAL:86
900-TYPE:SAT>IP
900-NAME:SAT>IP 0 192.168.178.190|DVBS2-1|satpi
900-STAT:001F
900-SGNL:-25.83
900 CHAN:Das Erste HD;ARD:11493:HC23M5O35P0S1:S19.2E:22000:5101=27:5102=deu@3,5103=mis@3,5107=qks@3;5106=deu@106:5104;5105=deu:0:10301:1:1019:0
221 linux2 closing connection
Alles anzeigen
So, jetzt habe ich wieder den halben Tag für die dämliche Quality- und Signalstrength-Anzeige verschwendet...
Danke - super, jetzt sieht man auch mal was bei "STR" beim femon Plugin
Joe_D wenn du jetzt noch die Werte vertauschst dann stimmt auch deine Anzeige mit der von satip plugin überein:
diff --git a/satip/satip_rtp.c b/satip/satip_rtp.c
index 02cdbf3..6ced107 100644
--- a/satip/satip_rtp.c
+++ b/satip/satip_rtp.c
@@ -61,11 +61,11 @@ static void set_status(int fd, unsigned char status, int signallevel, int qualit
memset(&sig,0,sizeof(struct vtuner_signal));
sig.status = status;
sig.strength.len = 2;
- sig.strength.stat[0].scale = VT_SCALE_DECIBEL;
- sig.strength.stat[0].u.svalue = (signallevel >= 0) ? 40.0 * (signallevel - 32)/ 192 - 65 : 0;
- sig.strength.stat[1].scale = VT_SCALE_RELATIVE;
+ sig.strength.stat[1].scale = VT_SCALE_DECIBEL;
+ sig.strength.stat[1].u.svalue = (signallevel >= 0) ? 40.0 * (signallevel - 32)/ 192 - 65 : 0;
+ sig.strength.stat[0].scale = VT_SCALE_RELATIVE;
// signallevel 0-255, range 0-65535
- sig.strength.stat[1].u.uvalue = signallevel * 257;
+ sig.strength.stat[0].u.uvalue = signallevel * 257;
sig.cnr.len = 1;
sig.cnr.stat[0].scale = VT_SCALE_RELATIVE;
Alles anzeigen
Joe_D wenn du jetzt noch die Werte vertauschst dann stimmt auch deine Anzeige mit der von satip plugin überein:
DiffAlles anzeigendiff --git a/satip/satip_rtp.c b/satip/satip_rtp.c index 02cdbf3..6ced107 100644 --- a/satip/satip_rtp.c +++ b/satip/satip_rtp.c @@ -61,11 +61,11 @@ static void set_status(int fd, unsigned char status, int signallevel, int qualit memset(&sig,0,sizeof(struct vtuner_signal)); sig.status = status; sig.strength.len = 2; - sig.strength.stat[0].scale = VT_SCALE_DECIBEL; - sig.strength.stat[0].u.svalue = (signallevel >= 0) ? 40.0 * (signallevel - 32)/ 192 - 65 : 0; - sig.strength.stat[1].scale = VT_SCALE_RELATIVE; + sig.strength.stat[1].scale = VT_SCALE_DECIBEL; + sig.strength.stat[1].u.svalue = (signallevel >= 0) ? 40.0 * (signallevel - 32)/ 192 - 65 : 0; + sig.strength.stat[0].scale = VT_SCALE_RELATIVE; // signallevel 0-255, range 0-65535 - sig.strength.stat[1].u.uvalue = signallevel * 257; + sig.strength.stat[0].u.uvalue = signallevel * 257; sig.cnr.len = 1; sig.cnr.stat[0].scale = VT_SCALE_RELATIVE;
Hm, mit diesen Änderungen sieht man KEINEN Wert z.B. bei "STR" beim femon Plugin?
Fehlt da noch ein Änderungen?
- sig.strength.stat[0].u.svalue = (signallevel >= 0) ? 40.0 * (signallevel - 32)/ 192 - 65 : 0;
+ sig.strength.stat[1].u.svalue = (signallevel >= 0) ? 40.0 * (signallevel - 32)/ 192 - 65 : 0;
// signallevel 0-255, range 0-65535
- sig.strength.stat[1].u.uvalue = signallevel * 257;
+ sig.strength.stat[0].u.uvalue = signallevel * 257;
so nur mit diesen Änderungen sieht es hier jetzt im femon-Plugin richtig aus (STR - dBm)
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!