Hochschule für Technik und Architektur Biel Projekt Polyphemus II Dateiname: Revisionsstatus: Autor:.doc Genehmigt Matthias Germann
Änderungskontrolle Version Datum Name Bemerkungen 1 23.04.2002 Matthias Germann Erstellung 2 15.07.2002 Roger Briggen Status auf genehmigt geändert Juli 2002 Seite 2 / 8
Inhaltsverzeichnis 1 ANALYSE POLYPHEMUS I...4 1.1 Sequenzdiagramme... 4 1.1.1 Videoout on... 4 1.1.2 startvideoout... 5 2 NEUINSTALLATION POLYPHEMUS I...6 2.1 Installation... 6 2.2 Probleme... 6 2.2.1 Browser JVM's unterstützen Classfiles von Java 1.4 nicht... 6 2.2.2 Java-Pfad... 6 2.2.3 libvideum.so und lbaudio.so werden nicht gefunden... 7 2.2.4 Hinzufügen der Video- und Audio-Device zum JMF... 7 2.2.5 Keine Audio-Übertragung vom Agent zum Manager... 7 2.2.6 Keine Audio-Übertragung vom Manager zum Agent... 7 2.2.7 Manager-Applet funktioniert nur mit HotJava... 8 2.2.8 Manager funktioniert nicht mit NAT... 8 2.2.9 Anzeige Türe offen/zu stimmt nicht... 8 2.3 Bemerkungen... 8 Juli 2002 Seite 3 / 8
1 Analyse Polyphemus I 1.1 Sequenzdiagramme 1.1.1 Videoout on Das folgende Sequenzdiagramm zeigt den Ablauf auf dem Agent beim Empfang des Kommandos videoout on vom Manager. Juli 2002 Seite 4 / 8
1.1.2 startvideoout Das folgende Sequenzdiagramm zeigt den Ablauf beim Aufruf der Methode startvideoout() der Klasse polyphemus.agent.audiostream. Juli 2002 Seite 5 / 8
2 Neuinstallation Polyphemus I 2.1 Installation Der Agent des Projekts Polyphemus I wurde auf einer neuen Festplatte im bestehenden Gerät vollständig neu installiert. Als Betriebsystem wurde RedHat Linux 7.2 gewählt. Die Installation des Agents erfolgte gemäss der Installationsanleitung aus der Diplomarbeit Polyphemus I. Es wurde versucht, die neusten Versionen der Tools und Treiber einzusetzen, die Polyphemus I benötigt. Programm Version Bemerkungen RedHat Linux 7.2 Kernel 2.4.9-31 Java Development Kit 1.4.0 Sun Java Media Framework 2.1.1 FCS Blackdown, Java 1.2 Vers. Java COMM API 2.0.2 Solaris Version RXTX 1.4-15 Java COMM API Implementation für Linux Video for Linux 2 26.02.2002 Videum Treiber 21.12.2002 Die für die Installation verwendeten Dateien sind auf dem Agent-PC im Verzeichnis /root/download/polyphemus2 gespeichert. 2.2 Probleme 2.2.1 Browser JVM's unterstützen Classfiles von Java 1.4 nicht Die Java-Laufzeitumgebungen der Browser Netscape, Internet Explorer und HotJava unterstützen mit Java 1.4 kompilierte Klassen nicht. Deshalb wurde das Projekt mit Java 1.3 kompiliert. 2.2.2 Java-Pfad Polyphemus I nimmt an, dass das Java Development Kit im Verzeichnis /usr/local/java installiert ist. Die Systemvariable $JAVA_HOME wird nicht überall verwendet. Folgende Dateien sind betroffen: polyd (Daemon zum starten) Makefile im Wurzelverzeichnis der Installation Makefile im Verzeichnis <polyphemus root>/media/protocol/audio Makefile im Verzeichnis <polyphemus root>/media/protocol/video Juli 2002 Seite 6 / 8
2.2.3 libvideum.so und lbaudio.so werden nicht gefunden In der Installationsanleitung ist angegeben, dass die Dateien libvideum.so und libaudio.so ins Verzeichnis /usr/local/lib kopiert werden müssen. Der Java Interpreter findet die Dateien aber nicht in diesem Verzeichnis, da es nicht im Library Path von Java ist. Die beiden Dateien müssen stattdessen ins Verzeichnis <JAVA_HOME>/jre/lib/i386 kopiert werden. 2.2.4 Hinzufügen der Video- und Audio-Device zum JMF Die Datei jmf.propberties von der bestehenden Installation konnte nicht wie im Installationshandbuch angegeben kopiert werden. Das Tool jmfregistry konnte auch nicht verwendet werden, um die Geräte im Java Media Framework zu registrieren. Stattdessen mussten die Geräte mit den Java-Programmen media.protocol.audio.addaudiodevice bzw. media.protocol.video.addvideumdevice zum Java Media Framework hinzugefügt werden. Die Klasse media.protocol.video.addvideumdevice musste noch separat kompiliert werden. 2.2.5 Keine Audio-Übertragung vom Agent zum Manager Der Agent konnte keine Audiodaten zum Manager übertragen, da er keine Audio Capture Device finden konnte. Das Problem lag daran, dass in der Methode initalizeaudio() der Klasse polyphemus.rtp.rtpcaptureprocessor beim Ausführen des Statements "Vector device = cdm.getdevicelist(af);" auf der Zeile 154 eine InvocationTargetException auftrat. Die Exception wird aber bereits im JMF abgefangen und es wird nur ihr Klassenname ausgegeben. Deshalb war es nicht möglich, den Fehler genau zu lokalisieren. Das Problem konnte aber mit einem Hack umgangen werden. Das Statement auf Zeile 154 wurde durch das folgende Statement ersetzt: "Vector device = cdm.getdevicelist(null);." Dies hat zur Folge, dass nun alle Devices zurückgegeben werden (auch die Video Capture Device). Da aber die Audio Capture Device die erste in der Liste ist, funktioniert es. Das Problem konnte nicht grundsätzlich gelöst werden und besteht weiterhin. Da die Fehlersuche sehr schwierig ist, das Problem wahrscheinlich beim JMF liegt und schliesslich ein Hack gefunden wurde, um das Problem zu umgehen, habe ich beschlossen, die Fehlersuche vorerst einzustellen. 2.2.6 Keine Audio-Übertragung vom Manager zum Agent Der Agent konnte die vom Manager gesendeten Audiodaten nicht wiedergeben. Das Problem konnte behoben werden, indem in der Methode initialize( ) der Klasse polyphemus.rtp.rtpaudioplayer dem BufferControl des RTPManagers eine Buffergrösse angegeben wurde. Der Soruce-Code wurde entsprechend geändert und wieder im CVS eingecheckt. Juli 2002 Seite 7 / 8
2.2.7 Manager-Applet funktioniert nur mit HotJava Das Manager-Applet funktioniert, wie im Installationshandbuch beschrieben, nur mit dem HotJava Browser von Sun (mit JMF 2.1.1). Unter Netscape Navigator und Internet Explorer konnte das Applet auch mit der Installation des Java-Plugins von Sun nicht richtig zum laufen gebracht werden. Es war zwar möglich, unter Netscape Navigator und Internet Explorer vom Manager aus Meldungen an den Agent zu senden (z.b. Licht an/aus, Türe auf/zu), aber es ist nach wie vor nicht möglich, Meldungen vom Agent zu empfangen. Das Problem liegt sicherlich zu einem Teil daran, dass unter Netscape Navigator und Internet Explorer der Manager immer die IP-Adresse 127.0.0.0 dem Agent als seine Adresse übermittelt. 2.2.8 Manager funktioniert nicht mit NAT Falls der Manager auf einem PC in einem privaten Netzwerk installiert und über einen Router mit Network Adress Translation mit dem Internet verbunden ist, funktioniert der Verbindungsaufbau für die RTP-Übertragung vom Agent zum Manager nicht. Als IP-Adresse wird die private Adresse des PCs im internen Netzwerk an den Agent übermittelt. Dieser kann dann keine Verbindung zum Manager herstellen. 2.2.9 Anzeige Türe offen/zu stimmt nicht Der Manager zeigt den Status des Türschlosses falsch an. 2.3 Bemerkungen Die Installation verlief grundsätzlich wie im Handbuch beschrieben. Es gab trotzdem einige Probleme, die recht viel Zeit in Anspruch nahmen. Polyphemus I konnte aber schliesslich unter dem neuen Betriebssystem in Betrieb genommen werden. Das Problem beim Suchen der Audio Capture Device auf dem Agent konnte aber nur mit einem Hack umgangen werden. Der eigentliche Fehler wurde noch nicht gefunden. Der Manager sollte eigentlich auf verschiedenen Browsern laufen. Dank der Applet- Technik sollte es möglich sein, den Manager einfach zu installieren. Im Moment ist dies aber nicht der Fall. Das Applet läuft nur auf dem HotJava Browser und die Installation der nötigen Tools und deren Integration in den Browser ist komplizierter als die Installation einer normalen Java Applikation. Juli 2002 Seite 8 / 8