Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenloses um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereiche, welche für Gäste verwehrt bleiben

dvbapiNET - mdvbapi Nachfolge

t5b6_de

Hacker
Registriert
28. November 2011
Beiträge
362
Reaktionspunkte
219
Punkte
103
Hallo zusammen,

in der letzten Zeit haben sich immer wieder Beiträge gezeigt die aufzeigen, dass mdvbapi wohl noch einige Schwächen und ggf. Bugs hat.
Da auch Schwa sich darauf nicht mehr gemeldet hast und die Entwicklung offiziell eingestellt hat, habe ich selbst begonnen ein Plugin zu entwickeln.

Die Quellcodes sind auf Github zu finden:
Du musst dich Anmelden oder Registrieren um diesen link zusehen!

Ich habe selbst lokal noch ein ausführliches Git-Repository, bei Github lade ich nur unregelmäßig hoch.
Dadurch kann es vorkommen, dass die DLL hier, und Github abweichend voneinander sind.

In diesem ersten Post hänge ich nun immer die aktuelle Version + Changelog an.

in der Locales.zip sind die Sprachdateien enthalten die ich verwende. Es handelt sich hier um Quellcode-Dateien - die werden vom Plugin nicht geladen!
Wenn jemand etwas übersetzen möchte, kann er es gern machen, und die Dateien hier zum drüberlesen im Forum anhängen, wenn das soweit alles OK ist, füge ich die im Projekt für das nächste Release ein.


Du musst dich Anmelden oder Registrieren um diesen Inhalt sichtbar zu machen!

Angehängt am Ende ist immer nur die aktuelle Version.

Du musst dich Anmelden oder Registrieren um diesen Inhalt sichtbar zu machen!


Du musst dich Anmelden oder Registrieren um diesen Inhalt sichtbar zu machen!


Du musst dich Anmelden oder Registrieren um diesen Inhalt sichtbar zu machen!

PS:
Aufgrund der häufigen Nachfragen, bzgl. Spenden:
Auf meiner Website (verlinkt im Profil) befindet sich unten ein Spenden-Button.


Du musst dich Anmelden oder Registrieren um diesen Inhalt sichtbar zu machen!
 

Anhänge

  • locales.zip
    4,9 KB · Aufrufe: 855
  • dvbapinet-Release.zip
    97,8 KB · Aufrufe: 873
Zuletzt bearbeitet:
Nachtrag heute:
CSA implementiert, Sender laufen jetzt.
Nun kommt bugfixing und stabilität erhöhen. das ganze ding ist reines proof of concept.
Wenn oscam wegrauscht rauscht das plugin auch weg.

weitehrin muss ich noch rausfinden, warum oscam die setpid erst nach teilweise 5-6 Sekunden sendet (erst dann bekomme ich bild). das ergibt keinen Sinn. Normalerweise muss das direkt nach parsen des capmt kommen.

bin bei multipacket-decrypting bei etwa 1% CPU-Last auf nem Intel Core i9
CPU läuft locker auf 800Mhz taktet nicht hoch, dürfte aber auch auf langsameren CPUs gehen.
Optimierungen stehen aber wie gesagt noch aus!

Nachtrag:
Komme der Sache näher. Descrambling mit mehreren Sendern parallel läuft stabil. habe nur hd+ zum testen. Wäre schön wenn jemand andere Pakete auf 19.2 zur verüfgung stellen kann.
Weiterhin ist derezeit nur DVBCSA implementiert. AES und DES sind bisher nicht implementiert.

Es hakt derzeit noch bei der Verbindung mit Oscam. Manchmal schmeißt dieser nach einem Reconnect immer malformed packet usw. usf.
Auch setzt das Descrambling nach dem Disconnect nooch nicht automatisch fort, das muss noch implementiert werden.

Ich denke dass ich ggf. diese oder nächste woche eine kleine Test-Release bereitstelle.

Konfiguration und Verwendung ist identisch zum bekanntem mdvbapi plugin.
Von einem User wurde ich zudem angeschrieben eine Umsetzung für Mediaportal zu schreiben. Hier benötige ich ggf. unterstützung.
Implementierung ist geplant. Wenn der Oscam-Teil perfekt läuft, sollte mediaportal nicht weiter problematisch sein.

Achja: der Recording-Service bzw DVBViewer media server scheint den Sender anders zu stoppen. Mit einem anderen Event (id 1001)
Weiß jemand da mehr?
 
Zuletzt bearbeitet:
Alles klar,

Logging funktioniert noch nicht ganz richtig, es wird noch nicht alles geschrieben, was geschrieben werden soll.
Bisher nur plain old DVB-CSA; bei Sendern mit anderen Algos wo Oscam ein Set Ca Descr Data sendet usw. kommt es zu abstürzen - das ist bekannt und ich arbeite dran.

Erste Testversion findet ihr im Anhang.

Im Grunde ist alles so wie bei mdvbapi, nur dass es anders heißt und bisher ausschließlich der DVBViewer läuft oder programme die eben die selbe API verwenden und sich identisch verhalten.
Mein Test-Setup war wie folgt:
DVBViewer Pro V6.1.5.2 Bei verwendung einzelner Sender und einer einzelnen Plugin Instanz.
Bei Verwendung mehrfacher Plugins über den DVBViewer Media Server 2.1.5.2 (empfehlung: 1 pro Tuner wenn nur ein Sender pro Tuner entschlüsselt werden soll, habe hier bis zu 8 Sender bereits erfolgreich getestet)

Installiert sein muss das aktuelle .NET Framework 4 sowie für ffdecsa die aktuelle VC Redist 2019 (v142).
Einfach nach Googeln.

Oscam funktioniert ab R11520 (Ab da wird erst der nötige DemuxID Descriptor ausgewertet)
Womit wir bei der Konfiguration wären:
Zwischenzeitlich wurde viel an dem DVBAPI-Protokoll herumgeschraubt.
Daher habe ich eine Option erstellt mit der das alte Protokoll v2 erzwungen werden kann, mehr dazu in den Kommentaren der Konfigrationsdatei.
Damit komme ich zur einrichtung:

die ffdecsa.dll kommt in das DVBViewer-Verzeichnis, in der auch die DVBViewer.exe liegt.
Das Plugin für den DVBViewer kommt in "Plugins\" unterhalb des DVBViewer Verzeichnisses.
Die Plugins für den RecordingService/DVBViewer Media Server kommen in Plugins\PluginsX
Wobeidas X für 1 bis max. 32 steht. begonnen bei Plugins1
Dort nur jeweils einmal die dvbapiNET.dll einkopieren.

Die Konfigurationsdatei kommt in das Programdata-Verzeichnis. Aufrufen lässt es sich im Windows Explorer z.B. durch %programdata%

Dort den Ordner dvbapiNET erstellen und die dvbapiNET.ini reinkopieren.
In der Konfigurationsdatei habe ich ein paar Kommentare eingefügt. Jeder der etwas Ahnung von Oscam und der Einrichtung von mdvbapi hat, wird das verstehen.

wenn alles korrekt gemacht wurde, sollten die Sender hell werden.
Wenn nicht, oder es gibt andere Probleme, wie abstürze etc. bitte folgende Logfiles zusenden, ggf. an Post anhängen oder per PN

Oscam Debug Log mit Debuglevel 128
dvbapiNET logfile, die wird im gleichen Verzeichnis erstellt wie die Konfigurationsdatei.

wenn es bei besitmmten Sendern Probleme gibt dann entsprechend mit dabei schreiben, welcher Sender, was habt ihr gemacht, z.B. sehr schnell zwischen vielen Sendern gewechselt, etc.
So genau wie möglich beschreiben, sonst kann ich keine bugs fixen.

Auch bitte erwähnen welche Versionen von DVBViewer, RecordingService/DMS, Oscam, etc.

ich hoffe ich habe nichts vergessen.

Nachtrag: Ich habe etwas vergessen zu erwähnen: die FFdecsa ist für CPUs mit SSE2 Befehlssatz kompiliert, hat eure CPU das nicht, gibt es kein oder ein fehlerhaftes Bild.
Nachtrag: Ergänzung zu der Konfiguration hinzugefügt.

Nahtrag: 16.11. neue Datei hochgeladen.
Bitte ALLE Versionen die noch in anderen plugin1, plugin2 usw. gespeichert sind löschen, die Verschiedenen Versionen werden sich nicht untereinander verbinden, da die Version einen Hash-Wert enthält der an den Pipe-Namen herangefügt wird.

Nachtrag: 18.11. neue Datei hochgeladen, DVB-Filter angepasst, funktionierte nicht in jedem Fall. Sollte nun auch mit SECA funktionieren.
Nachtrag2 18.11.: neue Datei hochgeladen, Changes: ExtendedCW Api Eingebaut, Plugin verarbeitet nun extCW, allerdings erfolgt noch kein Descrambling.
Algorithmen sind zwar vorbereitet und angelegt, aber noch ohne funktion.
Logging erweitert und etwas umgebaut. läuft nun über alle Plugins parallel. Bisheriges System führte zu deadlocks, da ich das über die Verbindung zwischen den Plugins gemacht habe.
Entsprechend habe ich die dvbapinet.ini um Kommentare ergänzt welches Flag welche Auswirkung hat. Es sind stand jetzt nur ein kleiner Teil eingebracht, eben das was ich bisher benötigte.

changelog 20.11.:
Log-Spam etwas reduziert, nur noch eine seite der Intercom-Verbindung wird geloggt.
Weiter Log-Spam und CPU-Last reduziert: PMT wurde generell bei jedem vollständigem empfang an die hauptinstanz übermittelt, das ist nur notwendig, wenn sich etwas ändert.
Hier wird nun Version-Feld in der Section verglichen.
Aufräumen beim beenden weiter vervollständigt, durchaus möglich, dass noch etwas fehlt. Generell sollte der .NET Garbage Collector aber alles aufräumen - ist so aber sauberer.
Standardmäßig ist nun das Logging deaktiviert, sont entstehen bei einem Fernsehabend leider schon etliche MB an Logdatei.
Bei Fehler bitte Debug auf 65535 stellen.
 
Zuletzt bearbeitet:
Danke funktioniert,habe aber erst mal nur mit DVBViewer only und HD01 getestet.
Werde es demnächst auf dem HTPC mit DMS und 4 Sattunern testen.
Viel kann ich halt noch nicht sagen aber es entschlüsselt :smiley: mit alten und auch neuem Protokoll mit entsprechender Oscam.
Toll wie man das so schnell auf die Beine stellen kann gerade im Hinblick da mdvbapi scheinbar nicht mehr mit updates versorgt wird.
Bild in Bild funktioniert auch.
 
Zuletzt bearbeitet:
Nunja, ich habe etliches an Zeit da investiert. Perfekt ist es noch nicht, aber es funktioniert erstmal. theoretisch dürfte auch sky laufen aber die karten sind jetzt ja komplett dicht.
 
Hallo,

Erstmal vielen Dank für die Arbeit! Wirklich stark auf so einer kurzen Zeit ein funktionierendes Plugin zu erstellen...

Habe heute getestet (mit TV Vlaanderen Seca3 Karte) lüppt, leider aber erst nach ein weilchen (aber soweit ich verstehe ist das bei dir genau so)...im Anhang findest du die logs, wenn debug wert bei Oscam erhöht werden soll bitte Fragen...

Habe geloggt bis Bild da ist...


Du musst dich Anmelden oder Registrieren um diesen Inhalt sichtbar zu machen!


Du musst dich Anmelden oder Registrieren um diesen Inhalt sichtbar zu machen!

Viel Spaß beim debuggen/optimalisieren!
 
@clemenss
kenne mich mit den Karten nicht aus scheint aber nur bei 0100:00006c decodiert zu werden das eventuell in der dvbapi priorisieren
 
Also funzt ja mit mdvbapi ohne prios...Die Karte soll auch nur 0100:00006c dekodieren...funzt ja auch nur eben dauerts nach jedem Umschalten ein weilchen vor es hell wird...Aber das wird schon noch werden :)
 
@clemenss

die Ursache dass es so lange daueret liegt hier nicht am plugin, du siehst in der Oscam-Log dass dort viele timeouts drin sind. Außerdem hätte mir die Log nicht viel genützt, da kein DEBUG=128.
Das was du meinst und was ich auch Anfangs beschrieben habe, ist was anders und sollte behoben sein, ggf. kann ich da aber noch optimieren.
Die Ursache war, dass Oscam die PMT nochmals angefordert hatte, da ich die nicht gecached hatte musste ich wieder warten bis die durchkam, das dauert teilweise je nach Sender mehrere Sekunden.
Dann kam die bei oscam erst an und der setzte dann entsprechend die Descramble-Filter.
 
Also diese timeouts habe ich nur mit deinem Plugin...und nicht mit mdvbapi...
Ist auch einfach lokale Karte im raspi...

Meinst debug = 128 bei Oscam? Kann ich mal machen wenn du möchtest...

Ich schicke dich per PN ein Link zum Video wo es demonstriert wird (erst mit mdvbapi danach mit dein Plugin)...Ist ja auch nicht schlimm ich möchte ja nur helfen :smile: Lass dich ruhig Zeit mit dem ganzen ;)
Oscam Log werde ich auch per PN schicken (128)
 
Zuletzt bearbeitet:
Nachtrag:
Fehler für Seca (und andere) behoben dass der Sender nicht oder spät descrambled wurde, falscher Datentyp bei schreiben der Länge für CApmt-Daten. int32, statt int16 verwendet.
Neue Datei im Post zu finden:

Noch ein Hinweis;
es gibt mit Version3 manchmal den Log-Eintrag "Malformed Packet received (no start)"
Das ist darin begründet, das oscam manchmal das Disconnect vom plugin nicht mitbekommt, warum auch immer.
Wenn das nervt und zu oft passiert, dann oldproto=1 setzen in der Config-Datei.
 
Version von heute ist hochgeladen.
Rückmeldungen sind gern gewünscht.
Ich weise noch mal darauf hin, wenn es fehler gibt:
  • Oscam-Debug-Log Mit Loglevel = 128 Vollständig, vom Start des Servers bis Beenden.
  • dvbapiNET Logfile Vollständig vom Start bis ende.
  • Sender welchen ihr probiert habt, Sat-Position, Frequenz wäre auch von Vorteil.
    Idealerweise Transponderdump von dem Sender über mind 45 Sekunden.
 
Neue Version auf HTPC installiert funktioniert bis jetzt tadellos mit HD+(1830) Sky(09c4,098c) ORF(0d95) und SRF(0500).
Problemlos 4 Sender gleichzeitig entschlüsselt(4 Tuner von Digital Devices mit DVBV und DMS, OS Win7 32bit).
EMM kommen auf lokalen Karten auch an.

auch mal mit 10 Aufnahmen getestet


Du musst dich Anmelden oder Registrieren um diesen Inhalt sichtbar zu machen!
 
Zuletzt bearbeitet:
Siehe Bild, mit 12 Plugins geht auch das, mehr kann ich mangels Satleitungen hier nicht testen


Du musst dich Anmelden oder Registrieren um diesen Inhalt sichtbar zu machen!

Nachtrag 19.11.
Die AES / Cissa Implementierung macht mir leider zu schaffen.
Entweder sind meine Dokumentationen die ich hier habe unvollständig oder fehlerhaft/veraltet.
Grundsätzlich bekomme ich teilweise fehlerfreie pakete raus, zmd. erlaubt mir mein Tool das ergebnis fehlerfrei zu parsen.
Es wird aber wohl noch etwas dauern bis das funktioniert.

Nachtrag: 20.11.
siehe oben, neue Datei angefügt. Überlege gerade kleines webinterface zwecks einfacherem Debugging einzubauen - ist aber glaube ich etwas overkill.
DVBCissa habe ich erstmal auf Eis gelegt. Es wird eine Logwarnung ausgegeben falls Sender entschlüsselt werden sollen, AES oder DES verwenden.

Nachtrag 22.11.
Hatte eine kleine Eingebung beim DVB AES128, hier hatte ich tatsächlich einen kleinen Denkfehler.
Descrambling mit AES128 CBC funktioniert nun auf TS-Level soweit, dürfte aber eher inperformant sein, da ich die Packets hin und zurückkopieren muss.
Native-Methoden dürften effizienter sein.
Für PES Level Scrambling weiß ich noch nicht wie das genau realisiert wird, da fehlen mir auch die Beispiele. wäre schön wenn mir da jemand weiterhelfen könnte.
Allerdings sollte das im normalen TV nicht vorkommen, da es nicht für "Consumer Electronic applications" vorgesehen ist.

Mediaportal wäre nun das nächste Projekt, da muss ich mich aber erstmal einlesen. Puh.

Nachtrag 27.11.
Mediaportal ist ein Ding der Unmöglichkeit. Erstmal auf Eis gelegt, da ich das nicht testen kann.
Außerdem habe ich nach einiger Recherche aufgegeben Infos zu finden, wie ich den Stream manipulieren kann, was beim descrambling ja nun mal erforderlich ist.
Satip RTSP bleibt mir da als einzige Möglichkeit den Empfang hinzubekommen.
Habe verschiedene Media-Player getestet, überall funktionieren die RTSP-Links, in Mediaportal passiert hingegen nur eins: "No Signal" bei der IPTV einrichtung.
Verschiedenste Variationen durchprobiert, MP1 als auch MP2. Nach 6! Stunden habe ich dann aufgegeben.

Ich werde nun alle weiteren Edits und Releases im 1. Post anhängen.
Falls ein Mod dies liest: Bitte gern den 1. Post des Threads auf jeder Seite oben anpinnen, sollte das ding hier über die Zeit länger werden, ist man stets sauber informiert. Danke.
 
Zuletzt bearbeitet:
Zurück
Oben