Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/virtual/benny-baumann.de/blog/htdocs/wp-includes/post-template.php on line 310

Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/virtual/benny-baumann.de/blog/htdocs/wp-includes/post-template.php on line 310

BenBE's humble thoughts Thoughts the world doesn't need yet …

12.12.2008

Verzweifeln mit VLC

Filed under: Software — Schlagwörter: , , , — BenBE @ 15:36:54

Manchmal ist Film gucken einfach nur schön. Aber wenn einem der Player bereits im Vorspann mit einer Fehlermeldung wegschmiert, ist das einfach nur nervig. So letztens mit dem VLC geschehen.Doch woher kam das Problem?

Da ich nicht die neuste Version installiert hatte, hab ich also ein Update von 0.9.4 auf 0.9.6 ausgeführt und gleich auch die Konfiguration zurückgesetzt – sicher ist sicher. doch auch hier tat sich nichts. Also beschloss ich, mich einmal im Playback des VLC mit einem Debugger einzuklinken. Gesagt getan – und ich stellte fest, ich hätte es lassen sollen. Ich fand zwar ziemlich schnell die Stelle im Speicher, die hin zu diesem Fehler führte, doch mehr auch nicht, da keine Debug-Informationen für die Release-Versionen verfügbar waren.

Daraufhin bin ich losgezogen und hab einmal versucht, für ein gegebenes Release Debug-Informationen aufzutreiben. Auf der Website gab es diese jedenfalls nicht und auch das Wiki der VideoLAN-Leute offenbarte nur eins: Wer Debug-Informationen brauch, muss n Nightly Build nehmen oder selber bauen.

Schauen wir uns also beide Alternativen einmal an:

Da wäre ersteinmal das Nightly Build. Dieses ist automatisch generiert und enthält Debug-Informationen. Diese können aber nicht von OllyDbg oder anderen gängigen Debuggern unter Windows gelesen werden. Alleinig die MinGW-Tools können ansatzweise Aufschluss über die Aussage dieser knapp 20 MB Zusatzlast geben. Wäre ja nicht so schlimm, wenn es denn wenigstens Debug-Informationen für 0.9.x-Releases gäbe; aber diesen Luxus hat man nur mit 1.0.x-Releases, die bei mir nicht starten wollten.

Bleibt also die Möglichkeit „selber bauen“, die ich jedem Masochisten nur wärmstens ans Herz legen kann. Unter Windows ein Windows-Build zu erzeugen wird in der Wiki zwar erwähnt, dass dies nativ mit MinGW irgendwie funktioniert, aber eine nähere Beschreibung bleibt einem die Wiki schuldig. Cygwin wird zwar alternativ erwähnt und besitzt sogar eine eigene Informationsseite, da man aber mit CygWin ein halbes Linux installiert, kann man auch gleich auf Linux wechseln und für Windows cross-compilieren.

Gesagt, getan! Von einem der Entwickler des VLC erhielt ich dabei sogar in Form eines kleinen VirtualBox-Images, in dem jegliche benötigten Dinge vorkonfiguriert waren, einige Unterstützung. Das Image an sich fuhr sauber hoch und die Arbeit konnte losgehen.

Nach dem Konfigurieren mit

./configure

lief soweit alles durch und auch das Bauen mit

./compile

funktionierte augenscheinlich fehlerfrei. Da das ./configure jedoch für Linux war, brachte mir das erstmal recht wenig. Also gesucht, wie das mit Cross-Compiling zu konfigurieren geht und die benötigte Option –host=i586-windows gefunden. Neu ge-configure-d und ge-make-d, schien zwar durchzulaufen, aber richtig, sah’s Ergebnis nicht aus.

Also auf, zum nächsten Versuch: Was sagt ein etwas neueres Build direkt aus dem HEAD? Also ein kurzes

git stash
git pull --rebase
git stash apply

ausgeführt, um mir eben diesen Code aus der Versionsverwaltung zu holen. Wieder einmal ge-configure-d und versucht zu make-n, meckerte make herum, dass es einige Dateien nicht finden kann. Fehlte noch das

./bootstrap

um Automake zu sagen, dass es mal bitte seine ganzen Makefiles neu erstellen soll. Mit diesem Schritt kam ich schon mal einen Schritt weiter: Make meckerte jetzt nicht mehr über eine fehlende Makefile, dafür meckerte jetzt aber ld über einen ganzen Haufen von undefinierten Einsprungpunkten. Gut, dies lag sicherlich am statischen Anbinden der Teilbibliotheken – also diesmal alles shared gelinkt und siehe da: Er meckert wo anders!

Die einzig brauchbare Option für VLC ist folgende Makefile – vielleicht nehmen die Entwickler diese ja in neue Releases noch auf:

diskclean:
    rm -fr .

Diese Option sollte eine ganze Reihe der Probleme beim Compilieren des VLC beheben …

Zumindest für heute geb ich erstmal meinen Versuch, den VLC anständig zu debuggen auf. Vielleicht ein anderes Mal noch mal einen Versuch. Für jetzt reicht es mir erstmal! Und da wollte ich doch nur gemütlich Film gucken …

Flattr this!

Keine Kommentare »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress