Ich habe gerade angefangen mal mit der API aus dem SDK 1.7 (Delphi) rumzuspielen und einfache Sachen wie z.B. Umschalten bekomme ich noch hin.
Nun habe ich mal die Frage, ob es noch mehr Doku zur API gibt, als das, was man da in der SDK findet? Ich würde gerne mal ein paar Infos aus dem Stream herauslesen, aber dafür reichen mir die Beispiele nicht aus.
Wenn jemand noch Infos oder Beispiele hätte, wäre das super! Vielleicht kann man ja den Developer-Bereich hier im Forum mal wiederbeleben. ;-)
Da wirst du nichts weiter finden !
Ich musst da DoItYourself machen, bzw. Learning by doing.
Was hast du denn so im speziellen vor ?
Vielleicht kann ich dir mit dem einen oder anderen Delphi-Schnipsel helfen.
Ich verstehe das nicht: Die ganze Welt benutzt ProgDVB, welches ständig abstürzt und hier bei DD is nix los. Dabei finde ich DD sehr geil und stabil. Leider funktioniert das Greenbutton Plugin nicht richtig und daher wollte ich mich mal selbst daran wagen.
Das ist mir gestern auch zum erstem mal gelungen: Ich konnte die Infos über die P. Direkt Kanäle auslesen, anzeigen und dahin umschalten. Insofern habe ich durchaus durch doing gelearnt.
Vielleicht kannst du mir noch sagen, ob in den Channelinfos der Channelliste auch die Channel-Pid enthalten ist. Wenn ja, dann heißt der Wert jedenfalls nicht so.
Auf jeden Fall freue ich mich über meinen ersten Kontakt hier!
Tja mit ProgDVB ist das so eine Sache... Ich wollte da anfangs auch richtig tätig werden, weil mir so inige Sachen darin nicht gefallen / fehlen. Aber der prog ist da doch sehr mundfaul und nicht sonderlich kommunikativ.
Da ist das bei DD schon einen dicken Zacken besser, obgleich es nicht unbedingt den Anschein hat.
Was dich im Moment interessiert, steht alles im record 'TChlChannel'.
wNID: WORD; -> Network-ID
wTID: WORD; -> Table-ID
wSID: WORD; -> Service-ID
wVideo: WORD; -> die Video-PID des Programms
wPMT: WORD; -> Program-Map-Table-ID
wPCR: WORD; -> Program-Clock-Reference-ID
wTTX: WORD; -> Teletext-ID
wChNo: WORD; -> die interne Kanalnummer von DD zum Umschalten
wChFav: WORD; -> die Favoriten ID
Audio: TChlAudioInfo; Array of Record für Audio-Daten
Darin für jede 'TonSpur':
wPID: packed array[0..MAX_AUDIO_PIDS - 1] of WORD; {Audio pids}
dwFlags: packed array[0..MAX_AUDIO_PIDS - 1] of DWORD; {Audio type}
Man muss da schon auch ein wenig in die Materie 'Aufbau von DVB-Daten' tauchen, sonst bleibt vieles im verborgenen und / oder man bekommt irgendwie keinen Reim auf den Zusammenhang der Daten.
Ich habe mich da mal etwas intensiver mit auseinandergesetzt und u.a. auch so etwas wie ein Daten-Pareser/Scanner für DVB gemacht, mit dem man mal untersuchen kann, warum es in DD (und auch ProgDVB) immer diese nervigen 'NameLess' gibt - gerade auch bei Brummiere und anderen.
Das liegt m.E. nach daran, dass manche Programme ztw. nicht senden (ist in der PMT dann markiert) und auch eine andere PMT-ID haben, die in der PAT nicht gelistet sind. Das könnte man abfangen und solche Programme z.B. 'auf Halde' legen.
Dazu könnte man dann noch aus der EIT (Enhanced Information Table) des jeweilgen Transponders die entsprechenden Information (wird ja auch für EPG genutzt) lesen und schauen ob und wann diese PIDs aktuell sind.
usw etc. pp. Jede Menge Arbeit, aber ich fummle gerade an einem kleinen Proggi, was so was machen kann/soll. Vielleicht lässt sich das ja bei Zeiten in DD intergrieren.
Was hast du denn da so speziell im Auge ? Was macht GB eigentlich genau - kenne ich zu meiner Schande ehrlich gesagt schon, aber noch nie in den Fingern gehabt...
'Brumiere' ( ) hat sowohl im Direkt Portal als auch im Sport Portal dynamische Sender. Das sind diese nameless Kanäle. Ich habe momentan 14 in meiner Liste. Wenn man Premiere auf der DBox schaut, dann geht man auf eines der Portale und kann denn den grünen Knopf drücken, um sich die optionalen Kanäle anzeigen zu lassen und dann dorthin zu schalten. Wenn Bundesliga ist, dann findet man im Sport Portal halt die laufenden Begegnungen.
Die Infos dazu (Name und PID) findet man im Strom der Portal Kanäle. Die PID ist das, was du oben als Service ID beschrieben hast.
Ich habe jetzt eine erste Version fertig, die gut funktioniert. Aber jetzt wo ich 'fertig' bin, werde ich das Tool bestimmt noch ein wenig erweitern.
Vielleicht kann ich noch EPG Infos ausgeben oder eine Aufnahme-Unterstützung für die Direkt Kanäle? Mal schauen! Wenn du mir da helfen kannst, um so besser.
Sehr interessant ! Spart dann dieses ewige gezappe 'was ist wo'.
Das bei Prem. ne ganze Reihe Sender 'tot' liegen - d.h. als Running-Status ein NO haben ist mir beim Scannen der TPs auch schon aufgefallen (s.o.).
Es gibt anscheinend auch noch einige mehr, welche z.B. bei LyngSat gar nicht gelistet sind ! Inoffizielle ?
Mich würde mal interessieren, wie du da die Informationen über die aktuellen Belegungen liest. Wo steckt denn da die Info im TS ?
Aber noch eine kleine Sache, die wohl nicht passt:
Klicke ich im oberen Fenster mal die angezeigte Sender durch, schaltet mir dein Tool auch ein paar Sender auf 13.0° rein ?! Wie kommt dieses ?
In Sachen EPG / EIT lesen bin ich gerade am Ball und versuche mir die Daten zusammenzufummeln. Da hab ich noch nicht ganz den Überblick...
Die Infos findet man in den Paketen mit PID 18, also den Paketen, die mit (HEX in Delphi) $47 $00 $12 beginnen. Dort stehen dann EPG-Daten, Werbung und eben auch die Portal-Infos drin. Momentan schraibe ich mir 500 Pakete in einen Buffer (den man dann mit Save Buffer speichern kann) und suche dann nach der Startsequenz (hier in ASCII):
°Direkt Portal
für Direkt und
°Portal
für das Sport Portal. Es gibt auch noch Angaben für den Erotik Bereich, aber da sich da die Sender nicht ändern, lasse ich die weg. Das ° Zeichen ist $B0. Die beiden Bytes vor dem $B0 geben die SID an. 7 Bytes vor dem $B0 steht, wie lang der Eintrag ist. Folgt auf den Eintrag ein J, dann folgt auch ein weitere Eintrag.
Vergleiche einfach mal die Ausgabe von LargoSwitch mit dem gespeicherten Buffer im Hex-Editor, dann wirst du das nachvollziehen können.
Meine einzige Information war, daß die Infos in den Paketen mit PID 18 zu finden seien. Den Rest habe ich durch Anstarren und Ausprobieren herausgefunden.
Dein 13.0° Problem ist ein Bug. Ich habe nur einen Satelliten und daher scanne ich die Kanalliste nur nach dem ersten TV-Eintrag mit dieser SID. Ich werde dann mal den Sat-Filter hinzufügen. Wie bekomme ich denn am einfachsten heraus, welcher Sat ASTRA 19,2° ist? Muss ich wohl mal wieder ausprobieren...
So, ich habe probiert und gefunden:
Ich filtere jetzt nach Sendern mit wSatPos = 192.
Probier mal aus ob es jetzt geht.
Und an alle anderen, die den LargoSwitch ausprobieren: Bitte schreibt hier, ob euch das Tool gefällt oder was euch stört. Für Anregungen bin ich auch zu haben.
Funktioniert jetzt mit dem SAT-Filter für die PID. Feine Sache !!
Das was du da liest ist, bzw sind Daten aus der EIT - Enhanced Information Table, welche ihre Daten hinter der PID $12 oder für C'ler 0x12 hält.
Da schraube ich wie gesagt auch dran herum, um einen 'besseren' EPG zu basteln.
Alles jedoch sehr komplex...
Es gibt das die Ober-Typen EIT-present/following mit den Table-IDs $4E / $4F und eine EIT-schedule mit TIDs $50-$5F und $60-$6F
Das ganze dann noch mal unterteilt in 'actual' (TP) und 'others' (TP-übergreifend.
Jede Einzel-Tabelle steht in einem Zusammenhang mit anderen Tabelle der gleichen TID und die wiederum scheinen verteilt auf verschiedene TID oder so ...
Komme ich bei Zeiten auch noch hinter.
Möchtest du da auch mal reinriechen ? Könnte dir ne lange Latte Info zukommen lassen. Dann hast du die nächsten Tage was zu lesen...
ScanMan
PS: Betreff meiner Mail von heute Mittag - der GB liest zwar alles brav, schaltet aber das Programm nicht um... Also doch nix mit Funktion.
hoppe_hb
Anregung
24.10.2007 - 10:44
Mitglied seit -
Account gelöscht
Posts:
-
Hi,
nur kurz (bin gerade in eile). Später gerne mehr.
Kurze Hardwareübersicht:
ASUS bord nForce4 sli (zickig, aber der unterste PCI Slot geht)
AMD x2 3800+ (reicht für DVBDream und *****)
TechnoTrend C-1500 (DVB-C) (die BDA Treiber sind irgendwie anstrengend)
also insgesamt nicht so die mischung.
Da ich bei ProgDVB und vielen anderen Programmen, die ganzen Kanäle mit QAM 256 nicht empfangen konnte, bin ich bei DreamDVB (mit BDA_ALL treibern) gelandet. gefällt sehr gut, funktioniert auch (bis auf Kabel Deutschland, ruckelt fürchterlich, aber das gehört hier nicht her).
Das mit den Premiere Direkt Kanälen nervt natürlich. GreenButton funktioniert nicht.
Habe lange alternativen gesucht, einfach selber programmieren ist mir ehrlich gesagt nicht in den Sinn gekommen. Außerdem würde die Zeit fehlen.
Naja, hab LargoSwitch 0.3 mal probiert.
Sieht erstmal gut aus, funktioniert natürlich (kein Sat) nicht.
Das Problem bei DVB-C ist der umstand, dass man seine Kanallisten quasi als Transponder definiert. Deshalb gibt es hier kein verlässliches Suchkriterium. Wahrscheinlich können sich sogar die Frequenzen auf denen eingespeist wird von Kabelanbieter zu Kabelanbieter unterscheiden.
Um erstmal Rückmeldung zu geben.
Aufs Direkt Portal geschaltet, New Scan gedrückt.
unter Direkt Portal findet sich folgendes:
------------------------------------------
D 1 - 08:30
D 2 - 09:00
D 4 - 08:15
D 5 - 08:15
D 5 - 09:00
D 9 - 08_15
------------------------------------------
unter Sport Portal ebenso
------------------------------------------
Golf
Champ. League
2. Liga
------------------------------------------
Für D 1 und DP Channel Info gedrückt bekommt man folgendes:
------------------------------------------
wSatPos: 5000 (Dateiname der Frequenzliste ... nicht hilfreich)
dwFreq: 378000 (kann nach Anbietern variieren, keine Ahnung)
dwSr: 6900000 (ebenso)
Pol: 86
Length: 32
ChName: Premiere Direkt 1+ (der Name den ich in der Kanalliste unter Kanaleigenschaften eingetragen hatte, eine Zuordnung findet also anscheinend bereits statt)
Provider:
ActualChName: Nameless 378_228 (kann man hiermit vielleicht was anfangen)
ChType: 1
Scrambled: 0
wNID: 0
wTID: 0
wSID: 228 (oder hiermit)
wVideo 2303
wPMT: 104
wPCR: 2303
wTTX: 0
wChNo: 65535
wChFav: 2
------------------------------------------
so ich muss los. Meld mich später. Gruß und Tolle Arbeit!
Grundsätzlich ist es eigetnlich völlig egal, ob DVB-S, - oder -T.
Man stelle sich vor, man kauft Lebensmittel im Einkaufszentrum, Supermarkt oder Tante-Emma-Laden. Man bekommt sie zu unterschiedlichen Preisen und in unterschiedlicher Verpackung. Zu Hause hat man ausgepackt immer das gleiche auf dem Tisch.
Soll heißen: Das was im eigentlichen DVB-Datenstrom drin ist, macht keine Unterscheidung, wo es herkommt.
Grundsätzlich wird das in DD auch so gehandled. Hier sind halt eben nur Angaben der Frequenzliste und Frequenz selbst ein wenig anders.
Sofern ein Kabelnetzbetreiber die Daten vom Himmel mehr oder weniger 1 : 1 von DVB-s auf DVB-C transmoduliert, ändert sich nicht mal was an den PID's. Bei größeren Netzbetreibern wie KDG u.a. werden dagegen jedoch einige Daten verändert eingetastet.
Largo analysiert nun den bereits ggf. geänderten Datenstrom, ermittelt die Einträge und sucht dann in DD's bereits gescannten Daten via SID. Ob org. oder geändert spielt keine Geige...
Er wird auch bei DD etwas gefunden haben müssen, denn sonst würden im Info-Fenster keine Daten stehen - die hat er nämlich von DD und nicht aus dem Datenstrom.
Warum nun das Umschalten dahin nicht klappt ? Er hat ja den 'DD-Datensatz' zu dem angewählten Programm...
Dass das Umschalten dahin dann bei DVB-C nun ausgerechnet nicht klappt, ist IMHO sicher nur ein kleiner BUG - kein grundsätzliches Prob.
Bin mir sicher, er bekommt das 'zeitnah' hin.
Das Problem besteht darin, daß ich für ScanMan den wSatPos=192 Filter eingebaut habe. Somit funktioniert LS_03 nur mit Astra. Die Info-Suche hat diesen Filter nicht und findet daher den Kanal.
Nur wie löse ich das Dilemma?
- Ich könnte mir die wSatPos des Senders merken, auf dem ich den Scan durchführe und diese dann für den Filter nutzen.
- Ich könnte nach dem Namen suchen: nameless_...
Hast du noch eine Idee, ScanMan?
Largo
hoppe_hb
24.10.2007 - 12:20
Mitglied seit -
Account gelöscht
Posts:
-
so, wieder da (wieder nur kurz, das gerenne is nicht so der hit).
Ersteinmal: ob zeitnah oder nicht soll / muss mir quasi egal sein, immerhin wird hier niemand für seine Arbeit bezahlt.
Das LargoSwitch bei Kabel nicht funktioniert habe ich vor allem auf den Umstand bezogen, dass laut des Postes weiter unten nach wSatPos gefiltert wird, und eben diese (bei DVB-C) durch die Transponders .ini vom Nutzer frei zugeordnet wird.
Das DVB mehr oder weniger für S- , C- , T- und wahrscheinlich sogar -H die gleiche Suppe ist, ist klar.
Viel mehr ging es mir ursprünglich darum, aufzuzeigen, dass man (ich hoffe es zumindest) ein Filterkriterium finden kann und sollte, welches sozusagen "datenstromübergreifend" egal ob S- oder C- valide ergebnisse bringt.
Grundsätzlich scheint LargoSwitch ja auch jetzt schon (gut) mit DVB-C zu funktionieren.
Wenn Ihr weitere Daten (nen Dump vom Largo Buffer oder was auch immer) braucht, sagt bescheid, wenn ich sonst wie helfen kann, natürlich auch.
Ansonsten werde ich mich weiterhin aufs Testen und "klug*******en" beschränken.
Es ist / sind gerade 1 registrierte(r) Benutzer und 45 Gäste online. Neuester Benutzer: hugomontenegro
Mit 580 Besuchern waren am 06.01.2010 - 18:31 die meisten Besucher gleichzeitig online.
Registrierte Benutzer online: milan88AdministratorModeratorMemberUser