PMT->CAPMT

Passer
Neugieriger
Neugieriger
Beiträge: 3
Registriert: Montag 21. August 2006, 06:12

PMT->CAPMT

Beitrag von Passer »

Hallo,

zuerst einmal hoffe ich, dass ich hier das richtige Forum erwischt habe.

Ich habe ein kleines Problem, ich brauche nämlich einen CAPMT.

Der PMT, den ich mir derzeit vom CAM hole ist es scheinbar nicht ;)

derzeit gucke ich in den TS-Packeten nach dem PMT-Indikator (0x02) und wenn dieser gefunden ist, werden die PAcketdaten als PMT abgespeichert. das hat bislang auch ganz gut funktioniert. Allerdings wird jetzt ein CAPMT gebraucht.

Ich habe mir deswegen mal die Sourcen geholt und bin in der Datei "cahandler.cpp" auf folgende Funktion gestossen:
buildCAPMT(PMT *pmt)

leider verstehe ich diese Funktion offen gesagt nicht ganz.
Zwar scheint es mir, als ob dort genau das geschieht, was ich versuche zu machen, allerdings hört es bei mir bei der Zeile
"capmt[15]=me.getDVBNamespace().get()>>24;"
auf mit dem Verständnis.

Kann mir da vielleicht jemand weiterhelfen, wie man am geschicktesten die reinen PMT-Daten in einen CA-PMT umwandelt?

MfG
Passer
kroki
Einsteiger
Einsteiger
Beiträge: 166
Registriert: Dienstag 22. Juni 2004, 22:12

Beitrag von kroki »

Es gibt nur eine PMT. In diese werden allerdings auch die Informationen für das CA (Conditional Acces) mit übertragen.

Gruß Kroki
Passer
Neugieriger
Neugieriger
Beiträge: 3
Registriert: Montag 21. August 2006, 06:12

Beitrag von Passer »

ohh, das ja blöd...

aber warum gibts dann die Funktion buildCAPMT?
kroki
Einsteiger
Einsteiger
Beiträge: 166
Registriert: Dienstag 22. Juni 2004, 22:12

Beitrag von kroki »

Es wird mit dieser Funktion die CA-Informationen aus der PMT extrhiert und dann der camd2 über die "/tmp/camd.socket" übergeben, damit die Entschlüsselung starten kann.

Kroki
Passer
Neugieriger
Neugieriger
Beiträge: 3
Registriert: Montag 21. August 2006, 06:12

Beitrag von Passer »

Das hiesse dann ja, dass das char-Array namens capmt kein capmt Array ist (wie ich annahm)

Aber scheinbar ist genau dieses Array das, was ich auch brauche.

Gibt es irgendwo ein Tutorial oder HowTo, was in welches Feld des Char array rein muss und was bspw nicht nötig wäre?

Der Quelltext ist zwar sehr gut lesbar, aber an einigen Stellen mir etwas unverständlich:
--
capmt[23]=0x82; // demuxer kram..
capmt[24]=0x02;
--
Ich übernehm ungern Sachen, die ich nicht verstehe ;)

MfG
Passer
mws
Developer
Beiträge: 331
Registriert: Freitag 7. Februar 2003, 22:17

Beitrag von mws »

hi,

wie eine capmt aussehen muss, bekommst du in der en50221 sauber beschrieben.

enigma benutzt ausserdem ein paar private descriptoren. diese sollten dich aber nicht weiter interessieren, denn sie sind private :)

gruss
mws
cu
mws