Registered Member
|
Bonjour, dans certains films au format mkv, il y a des pochettes du DVD qui sont inclus dans le conteneur. Je suis en train de regarder si je peux récupérer ces pochettes et les afficher en icone pour ce film dans Dolphin par exemple. Pour cela, j'ai récupérer le code source de mpllayerthumbs et je tente de le modifier pour ajouter cela. Le principal problème c'est que j'ai uniquement quelques bases en c++ mais absolument aucune en qt, ni en ce qui concerne les bibliothèques KDE. Mais je me suis lancé. Grosso modo, pour le moment j'ai ajouté une méthode GetMkvCover à côté de la méthode GetFrame dans le fichier videopreview.cpp. Voici le code
J'ai également ajouté un peu de chose dans la méthode create à la fin pour prendre en compte cette nouvelle possibilité de récupérer l'image à l'intérieur du mkv. Et puis quelques petites modifications dans l'interface graphique pour rajouter un bouton pour activer ou non cette option. Mon problème, c'est que le code actuel ne fonctionne pas et que je ne sais pas pourquoi. Donc pour commencer je voudrais pouvoir débugguer mon code en vérifiant étape par étape et je fais ça habituellement en mettant des cout un peu partout. Ici, il semble qu'on utilise des kdebug mais je n'ai absolument pas compris comment ça fonctionne. Est ce que vous pourriez m'expliquer tout ceci ? Merci d'avance. |
Registered Member
|
Salut,
Dans VideoPreview::getMkvCover, tu fais un appel à VideoPreview::startAndWaitProcess. Or, dans cette fonction il y a cette ligne :
Je n’ai pas vérifié, mais je supposes que ça appelle mplayer avec les arguments fournis en paramètres. Donc dans ton cas tu appelles mplayer avec les arguments de mkvextract, ce qui doit moyennement plaire à mplayer qui doit renvoyer un code d’erreur. Du coup, VideoPreview::startAndWaitProcess renvoie false et ta fonction VideoPreview::getMkvCover renvoie NULL car tu as cette ligne là :
Last edited by morice.net on Sun Aug 14, 2011 1:34 pm, edited 1 time in total.
|
Registered Member
|
En fait, tout le code relatif à mplayerprocess est présent dans la partie au-dessus. D'après ce que je comprends mplayerprocess est juste un objet QProcess et n'est pas directement lié à mplayer. Il s'appelle ainsi parce que dans le code initial de mplayerthumbs, il est utilisé pour traité mplayer. Mais d'après ce que je comprends c'est un process générique. Je vais peut-être aller demander de l'aide sur la partie anglophone de ce forum.
|
Registered Member
|
Désolé, c'est un anonymous qui a répondu à ma place à cause d'une erreur de ma part. Bref, contrairement à sa réponse, je connais plutot bien les qDebug ou kDebug.
Il te suffit de faire un include de l'un ou l'autre :
Puis tu l'utilises de la manière suivante :
Fais attention aux majuscules, même si elles respectent le format standard, au début on se trompe tout le temps |
Registered Member
|
Ok, mais mon problème c'est que je ne sais pas quoi faire après avec c'est qdebug. Comment est ce qu'on récupère techniquement les messages d'erreur ? Merci d'avance.
|
Registered Member
|
Et bien, tu mets le message que tu veux genre "Message d'erreur" et tu lis dans le terminal ce qu'il écrit. Au moment où le programme execute la ligne du qDebug, ben le message s'affiche... ce ne sont pas simplement des messages d'erreurs d'ailleurs, tu peux mettre ce que tu veux !
|
Registered Member
|
En fait j'ai eu une réponse sur le forum anglophone, j'ai utilisé kdebugdialog pour voir quelques messages en console. Le problème c'est que je ne vois que les messages de mplayerthumbsconfig (quand je coche/décoche une case par exemple) mais absolument pas ceux relatifs à la génération des vignettes des icônes. Est ce que vous avez une idée sur la manière d'y accéder ?
|
Registered users: bancha, Bing [Bot], Evergrowing, Google [Bot], lockheed, mesutakcan