{"id":37,"date":"2008-12-12T15:36:54","date_gmt":"2008-12-12T15:36:54","guid":{"rendered":"http:\/\/blog.benny-baumann.de\/?p=37"},"modified":"2008-12-13T21:04:17","modified_gmt":"2008-12-13T21:04:17","slug":"verzweifeln-mit-vlc","status":"publish","type":"post","link":"https:\/\/blog.benny-baumann.de\/?p=37","title":{"rendered":"Verzweifeln mit VLC"},"content":{"rendered":"<p>Manchmal ist Film gucken einfach nur sch\u00f6n. 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?<!--more--><\/p>\n<p>Da ich nicht die neuste Version installiert hatte, hab ich also ein Update von 0.9.4 auf 0.9.6 ausgef\u00fchrt und gleich auch die Konfiguration zur\u00fcckgesetzt &#8211; sicher ist sicher. doch auch hier tat sich nichts. Also beschloss ich, mich einmal im Playback des VLC mit einem Debugger einzuklinken. Gesagt getan &#8211; und ich stellte fest, ich h\u00e4tte es lassen sollen. Ich fand zwar ziemlich schnell die Stelle im Speicher, die hin zu diesem Fehler f\u00fchrte, doch mehr auch nicht, da keine Debug-Informationen f\u00fcr die Release-Versionen verf\u00fcgbar waren.<\/p>\n<p>Daraufhin bin ich losgezogen und hab einmal versucht, f\u00fcr 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.<\/p>\n<p>Schauen wir uns also beide Alternativen einmal an:<\/p>\n<p>Da w\u00e4re ersteinmal das Nightly Build. Dieses ist automatisch generiert und enth\u00e4lt Debug-Informationen. Diese k\u00f6nnen aber nicht von OllyDbg oder anderen g\u00e4ngigen Debuggern unter Windows gelesen werden. Alleinig die MinGW-Tools k\u00f6nnen ansatzweise Aufschluss \u00fcber die Aussage dieser knapp 20 MB Zusatzlast geben. W\u00e4re ja nicht so schlimm, wenn es denn wenigstens Debug-Informationen f\u00fcr 0.9.x-Releases g\u00e4be; aber diesen Luxus hat man nur mit 1.0.x-Releases, die bei mir nicht starten wollten.<\/p>\n<p>Bleibt also die M\u00f6glichkeit &#8222;selber bauen&#8220;, die ich jedem Masochisten nur w\u00e4rmstens ans Herz legen kann. Unter Windows ein Windows-Build zu erzeugen wird in der Wiki zwar erw\u00e4hnt, dass dies nativ mit MinGW irgendwie funktioniert, aber eine n\u00e4here Beschreibung bleibt einem die Wiki schuldig. Cygwin wird zwar alternativ erw\u00e4hnt und besitzt sogar eine eigene Informationsseite, da man aber mit CygWin ein halbes Linux installiert, kann man auch gleich auf Linux wechseln und f\u00fcr Windows cross-compilieren.<\/p>\n<p>Gesagt, getan! Von einem der Entwickler des VLC erhielt ich dabei sogar in Form eines kleinen VirtualBox-Images, in dem jegliche ben\u00f6tigten Dinge vorkonfiguriert waren, einige Unterst\u00fctzung. Das Image an sich fuhr sauber hoch und die Arbeit konnte losgehen.<\/p>\n<p>Nach dem Konfigurieren mit <\/p>\n<pre lang=\"bash\">.\/configure<\/pre>\n<p> lief soweit alles durch und auch das Bauen mit <\/p>\n<pre lang=\"bash\">.\/compile<\/pre>\n<p> funktionierte augenscheinlich fehlerfrei. Da das .\/configure jedoch f\u00fcr Linux war, brachte mir das erstmal recht wenig. Also gesucht, wie das mit Cross-Compiling zu konfigurieren geht und die ben\u00f6tigte Option &#8211;host=i586-windows gefunden. Neu ge-configure-d und ge-make-d, schien zwar durchzulaufen, aber richtig, sah&#8217;s Ergebnis nicht aus.<\/p>\n<p>Also auf, zum n\u00e4chsten Versuch: Was sagt ein etwas neueres Build direkt aus dem HEAD? Also ein kurzes<\/p>\n<pre lang=\"bash\">git stash\r\ngit pull --rebase\r\ngit stash apply<\/pre>\n<p>ausgef\u00fchrt, 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<\/p>\n<pre lang=\"bash\">.\/bootstrap<\/pre>\n<p>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 \u00fcber eine fehlende Makefile, daf\u00fcr meckerte jetzt aber ld \u00fcber einen ganzen Haufen von undefinierten Einsprungpunkten. Gut, dies lag sicherlich am statischen Anbinden der Teilbibliotheken &#8211; also diesmal alles shared gelinkt und siehe da: Er meckert wo anders!<\/p>\n<p>Die einzig brauchbare Option f\u00fcr VLC ist folgende Makefile &#8211; vielleicht nehmen die Entwickler diese ja in neue Releases noch auf:<\/p>\n<pre lang=\"make\">diskclean:\r\n    rm -fr .<\/pre>\n<p>Diese Option sollte eine ganze Reihe der Probleme beim Compilieren des VLC beheben &#8230;<\/p>\n<p>Zumindest f\u00fcr heute geb ich erstmal meinen Versuch, den VLC anst\u00e4ndig zu debuggen auf. Vielleicht ein anderes Mal noch mal einen Versuch. F\u00fcr jetzt reicht es mir erstmal! Und da wollte ich doch nur gem\u00fctlich Film gucken &#8230;<\/p>\n<p class=\"wp-flattr-button\"><a href=\"https:\/\/blog.benny-baumann.de\/?flattrss_redirect&amp;id=37&amp;md5=ea750695ca62379504845e344bf62607\" title=\"Flattr\" target=\"_blank\"><img src=\"http:\/\/blog.benny-baumann.de\/wp-content\/plugins\/flattr\/img\/flattr-badge-large.png\" srcset=\"http:\/\/blog.benny-baumann.de\/wp-content\/plugins\/flattr\/img\/flattr-badge-large.png\" alt=\"Flattr this!\"\/><\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Manchmal ist Film gucken einfach nur sch\u00f6n. 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?<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[29],"tags":[14,32,31,30],"class_list":["post-37","post","type-post","status-publish","format-standard","hentry","category-software","tag-bugs","tag-crash","tag-debug","tag-vlc"],"_links":{"self":[{"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=\/wp\/v2\/posts\/37","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=37"}],"version-history":[{"count":4,"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=\/wp\/v2\/posts\/37\/revisions"}],"predecessor-version":[{"id":44,"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=\/wp\/v2\/posts\/37\/revisions\/44"}],"wp:attachment":[{"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=37"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=37"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.benny-baumann.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=37"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}