Inkompatibilität
by nex on 1/9/05, 5:03 AM in implementierung
So, es sieht immer noch ziemlich düster aus, was den Status betrifft. Das it der Fehlermeldung von gestern hat mich um einen ganzen Tag zurückgeworfen. Habe das jetzt endlich so halbwegs durchschaut.
Der VideoProcessor
kann genau dann den Flow-Graph nicht herstellen, wenn eine Codec-Chain gesetzt ist und der Output JPEG/RTP sein soll und ein Video in einem bestimmten Format als Input anliegt. Quicktime/JPEG funktioniert z.b. alsInput, Quicktime/H263 dagegen nicht.
Ich bräuchte jemanden, der mir da einen Workaround implementiert (ich komme beim besten Willen nicht dazu). Es sollte reichen, die Exception, die unter den oben genannten Umständen auftreten kann, abzufangen und in solchen Fällen einen zweiten VideoProcessor
(oder auch einfach nur Processor) in die Verarbeitungskette zu hängen, der zuerst in ein kompatibles Format transcoded. Am schönsten wäre es natürlich, etwas zustätzlich in die Codec-Chain zu hängen und das Problem so zu lösen.
Das Problem mit der 'Visual Component' besteht allerdings immer noch. Ich habe gerade folgendes versucht:
- in
VideoProcessor
:- die Zeile
trackControl[i].setEnabled(false);
auskommentiert (sollte im Testfall keinen Unterschied machen, da ich ein Video-File mit nur einem einzigen Track verwende) - den Inhalt von
initDataSink
auskommentiert (bewirkt, dassp.getDataOutput()
nicht aufgerufen wird ... alles andere wird im Testfall ohnehin nicht angewendet, dadestination == null
) - den Inhalt der Methode
realise
auskommentiert
- die Zeile
- in
Warden
:- den so präparierten
VideoProcessor
verwendet, indem ich einenRtpEnabledVideoProcessor
instanziert habe mit den Parametern(new MediaLocator("file:test.mov"), null, null, null, null)
- anschließend eine Referenz auf dieses Objekt an
Gui.getVideoPanel(
...)
übergeben
- den so präparierten
Nach diesen Änderungen sollte mit dem in VideoProcessor
verwalteten Processor
exakt das selbe passieren wie mit dem in Main
(wenn man dort keine Codec-Chain setzt), und auch in exakt der selben Reihenfolge. Trotzdem liefert der Processor in Main
auf Anfrage eine 'Visual Component' zurück, in unserem Code aber nicht. (getControlPanelComponent()
funktioniert aber in beiden Fällen!) Es muss also doch irgend einen Unterschied geben. Findet jemand etwas?
Update: Habe mir gerade einen Workaround dafür zusammengehackt, sonst machts ja niemand ...
|