Ergebnis 1 bis 15 von 549

Thema: monitor 1.9.0 - aber richtig :)

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Registriert seit
    11.12.2001
    Beiträge
    1.008
    Hat jemand mehr als eine Soundkarte ? Insbesonder unter Windows würde es mich interessieren , ob das in der Auswertung fehlerfrei läuft. Die SocketThreads kriegen davon noch nicht so viel mit, der Client dementsprechend auch noch nicht.

    Windows interpretiert die Device Defintion von Linux in der monitord.xml nun als Gerätenummer. Also

    /dev/dsp0 = Erste Soundkarte
    /dev/dsp1 = Zweite Soundkarte
    /dev/dsp2 = Dritte Soundkarte
    /dev/dsp3 = Vierte Soundkarte

    Ich habe ausserdem noch einen Support für lame implementiert. Damit kann man direkt in mp3 aufzeichnen. Das geht zwar, ist aber etwas kniffelig zu installieren. Das muss ich mal in einer ruhigen Minuten dokumentieren, bzw. mal als Beispiel darstellen.

    Zumindest die configure Option gibt es schon. Muss mich aber mal mit autoconf befassen, wie nun automatisch den Pfad zu den DLLs, bzw. .so's finde (oder deren Existenz abklären kann).

    [Edit]
    Nachtrag: rev. 233 im SVN ist gemeint.

  2. #2
    Registriert seit
    21.08.2005
    Beiträge
    251
    Zitat Zitat von Buebchen Beitrag anzeigen
    Nachtrag: rev. 233 im SVN ist gemeint.
    Upgedated; make clean; chmod +x config*; ./configure --enable-plugins; make

    passiert folgendes:

    Code:
    ...
    monitord/plugins/libmplugin_audiorecorder.cpp: In member function 'virtual void MonitorAudioPlugInRecorder::ProcessAudio(float*, int)':
    monitord/plugins/libmplugin_audiorecorder.cpp:211: warning: comparison between signed and unsigned integer expressions
    monitord/plugins/libmplugin_audiorecorder.cpp: In member function 'void MonitorAudioPlugInRecorder::StartRecording(int, std::string, int)':
    monitord/plugins/libmplugin_audiorecorder.cpp:275: error: cast from 'MonitorAudioPlugInRecorder*' to 'int' loses precision
    monitord/plugins/libmplugin_audiorecorder.cpp:293: warning: converting to non-pointer type 'long int' from NULL
    monitord/plugins/libmplugin_audiorecorder.cpp: In member function 'virtual std::string MonitorAudioPlugInRecorder::DoCommand(std::string, SocketThread*)':
    monitord/plugins/libmplugin_audiorecorder.cpp:354: warning: comparison between signed and unsigned integer expressions
    monitord/plugins/libmplugin_audiorecorder.cpp:359: warning: converting to non-pointer type 'long int' from NULL
    make[1]: *** [monitord/plugins/monitord_plugins_libmplugin_audiorecorder_la-libmplugin_audiorecorder.lo] Fehler 1
    make[1]: Verlasse Verzeichnis '/home/ast/monitorsvn/monitor/trunk'
    make: *** [all] Fehler 2
    2. Versuch ohne Plugins:
    make clean; ./configure; make

    Code:
    make  all-am
    make[1]: Betrete Verzeichnis '/home/ast/monitorsvn/monitor/trunk'
    g++ -DHAVE_CONFIG_H -I.  -Ijthread-1.2.1/src -D_DEBUG -Wall -pedantic        -g -O2 -MT monitord/monitord_monitord-Monitor.o -MD -MP -MF monitord/.deps/monitord_monitord-Monitor.Tpo -c -o monitord/monitord_monitord-Monitor.o `test -f 'monitord/Monitor.cpp' || echo './'`monitord/Monitor.cpp
    monitord/Monitor.cpp: In member function »void Monitor::InitSndCard()«:
    monitord/Monitor.cpp:203: Fehler: »class CSndPipe« hat kein Element namens »loadPlugins«
    make[1]: *** [monitord/monitord_monitord-Monitor.o] Fehler 1
    make[1]: Verlasse Verzeichnis '/home/ast/monitorsvn/monitor/trunk'
    make: *** [all] Fehler 2
    Plattform: Athlon X2 mit Ubuntu 7.10 64-Bit.

    any Ideas ?

    Andreas

  3. #3
    Registriert seit
    11.12.2001
    Beiträge
    1.008
    Hmm. Im oberen build sehe ich nur warnings. Die sind soweit auch ok.

    Den Fehler im untern Build habe ich vermutlich schon behoben. Fehlte ein #define.
    -> Rev.234 (#define in Monitor.cpp)
    -> Rev.235 (#define in CSndPipe.cpp)

    Den oberen Teil schau ich mir noch mal an.

    [Edit]
    Ah. War Blind. Habe den error jetzt gesehen. Schau mich mir an.
    [Edit2]
    Fehler im ersten Build liegt vermutlich am 64Bit System. Die Zeile kann ich aber bedenkenlos streichen, da sie nur für die ersten Debug Aufnahmen wichtig war.

    -> Rev. 236 (pointer cast nach int geht unter 64Bit nicht)
    Geändert von Buebchen (19.12.2007 um 23:26 Uhr)

  4. #4
    Registriert seit
    21.08.2005
    Beiträge
    251
    Zitat Zitat von Buebchen Beitrag anzeigen
    Rev. 236
    Läuft mit Plugin.
    Anmerkung:
    Code:
    104:0:1:rec/20071220001130_0_0.raw
    Soll 104 den Dateinamen mit oder ohne Pfad zurückliefern?
    Eigentlich ist der Dateiname ein Textfeld und somit in HEX zu codieren.

    Edit!
    Noch ein großes Problem:
    Wenn ich über den Client (telnet localhost 9333) ein paar verschachtelte 204 absetze, bleibt der Client hängen. Die Debug-Anzeige des monitord zeigt an, dass der weiter auswertet, aber beim Client kommt nichts mehr an. Der monitord nimmt auch über die Client-Sitzung keine Kommandos mehr an.
    Den 104 übermittelt er aber und dann kann es sein, dass alles wieder geht, oder das nichts geht oder dass Kommandos wie 299 angemommen werden aber die Alarmierungen nicht durchkommen.

    viele Grüße,
    Andreas
    Geändert von nepomuck (20.12.2007 um 00:23 Uhr)

  5. #5
    Registriert seit
    11.12.2001
    Beiträge
    1.008
    Hex kommt. Die Verschachtelung wird tatsächlich noch nicht laufen. Da ist das alte Konzept noch nicht umgestellt (Alle Clients machen nur eine Aufnahme).

  6. #6
    Registriert seit
    11.12.2001
    Beiträge
    1.008
    Die verschachtelten Kommandos gehen nun. Tatsächlich stürzte nichts ab. Er wartete aber bis die erste Aufnahme zu Ende war, um die nächste dann zu starten :-)

    Die Pfadangabe wird nun in Hexadezimaler Schreibweise ausgegeben. Ich würde sagen, daß wir den Pfad mit angeben. Man den Pfad pro Kanal einstellen (monitord.xml).

    Im neuen SVN rev.237

    Damit der mp3 Support auch schon mal vorsichtig gestestet werden kann habe lame-3.97 dem Repository hinzugefügt. Bleibt am Ende nur noch folgendes zu tun:

    lame erstellen (configure im lame-3.97 Ordner)

    monitor: configure --enable-plugins --enable-lame

    Windows:
    Die libmp3lame-0.dll in den monitord Ordner kopieren

    Linux:
    den LD_LIBRARY_PATH so anpassen, daß die libmp3lame.so gefunden und geladen werden kann.

    Zusätzlich noch den Pfad zum plugin (libmplugin_audiorecorder-0.dll, bzw. libmplugin_audiorecorder.so.0.0.0 )in der monitord.xml prüfen.

    Danach sollte er beim Start des monitord die Version der LAME Library ausgeben. In dem Fall dann 3.97:

    Code:
    Start Karte 0
    DFromSoundIn ist: 4354368
    Links
    ---------
    Plugin-File:0=plugins/.libs/libmplugin_audiorecorder-0.dll
    Plugin# 0: lade dll (Audio) aus Datei: plugins/.libs/libmplugin_audiorecorder-0.dll
    done
    PlugIn Audiorecorder created
    enabling lame mp3 support
    LAME Library imported
    Using LAME Version: 3.97
    
    Rechts
    ---------
    Geraetenummer: 0
    Geändert von Buebchen (20.12.2007 um 23:30 Uhr)

  7. #7
    Registriert seit
    21.08.2005
    Beiträge
    251
    Zitat Zitat von Buebchen Beitrag anzeigen
    den LD_LIBRARY_PATH so anpassen, daß die libmp3lame.so gefunden und geladen werden kann.
    Ich habe auf meinem Testsystem bereits lame installiert. Ich habe in /usr/lib eine libmp3lame.so.0.0.0 und einen symbolischen Link darauf namens libmp3lame.so.0.

    Eigentlich sollte ich die nutzen können, oder? Ich habe einen link angelegt:

    Code:
    ln -s /usr/lib/libmp3lame.so.0.0.0 /home/ast/monitorsvn/trunk/monitord/libmp3lame.so
    Aber das funzt nicht.

    Irgendwelche Vorschläge?

    weihnachtliche Grüße vom frischen Papa.
    Andreas

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •