Ich hab jetzt auch mal versucht das Ding zu übersetzen... No Chance, ohne viel zu viel Aufwand!
*) Welche MediaInfo-Version verwendest du? Bei mir existiert der Header nicht, das "DLL" musste ich beim Include löschen. Der namespace "MediaInfoDLL" heißt bei mir "MediaInfoLib".
*) Ein statischer Pfad zu einer Lib unter "LIBS" kommt immer gut. Schön dass das bei mir nicht stimmt.
muss reichen.
*) Du nimmst keine Rücksicht darauf, ob MediaInfo mit oder ohne UNICODE übersetzt wurde. Bei dir scheinbar ohne, bei mir mit -> char vs wchar_t.
Die statischen Strings (MediaInfo::Option) bitte UNBEDINGT mit dem Macro __T() erzeugen (kommt aus MediaInfo_Const.h). Für die Integration mit QString darfst DU dir was einfallen lassen - hier bin ich erstmal ausgestiegen. Bastel dir ein template, mit entsprechenden Spezialisierungen, o.Ä.
Wg. Datenbank: Schau mal in Richtung amarok. Wenn der Button zum Auswählen in der Toolbar steht, ist das quasi ein Feature, ständig das Dir wechseln zu können. Da wäre für mich eine DB ein NoGo - DB ist kein temporärer Cache. Wenn du ne DB nimmst, dann verlager das Dir einstellen in einen Config-Dialog. Am besten lass den User mehrere Verzeichnisse hinzufügen, denn dann lohnt sich ne DB wirklich.
Ohne DB geht es aber trotzdem: Ein Verzeichnis ".thumbs" in die indizierten (Sub)Dirs und eine Datei .vipla.info. In der Datei steht dann einfach kommasepariert alles drinnen, was du mit MediaInfo so intensiv ausgelesen hast. Dadurch kannst du deine Video-DB-app in einen einfachen Vide-DateiBrowser verwandeln.
Wg. Suchen: Das geht auch wunderbar nur mit den Model/View-Klassen, da geht sogar RegExp

- also auch kein Kriterium für DB.
Zu guter Letzt: Hast du denn schonmal gemessen, wie lange so ein Start ohne DB wirklich dauert? denn die 3 Minuten kommen mir spanisch vor. Mein Dolphin braucht zum ThumbNailern absolut nicht lange! Kann es sein dass du einfach (total suboptimal) 700 einzelne INSERTS in die DB jagst? Das ist ein ABSOLUTER Performancekiller, und wird die Ladezeit vervielfachen.
Ich will jetzt nicht sagen, dass DB schlecht ist und du drauf verzichten sollst. Du solltest halt einfach dein Programm und die Nutzerinteraktion einer DB anpassen - und das beißt sich mit dauernden "DROP TABLE" wenn der User was anderes sehen will...
Und wenn schon DB dann bitte gleich richtig mit QSqlDatabaseModel - deine DB nehmen um ein StdItemModel zu füllen degradiert die DB wieder zum reinen (langsamen) Cache.
Wg. Deisgner + Phonon: Entweder Widget für phonon-Controls als Platzhalter einsetzen (kommt doof, da man dann phonon-Header angeben muss, die sich von System zu System natürlich unterscheiden) oder dann die Controls via Layout einbinden. Aber die Phonon-Sachen sind doch eh das wenigste, ich meinte eher die ganzen Actions + Labels, die gehen nämlich sehr gut mit Designer!