<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://doc.qtfr.org/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>Documentation Qtfr - MPlayer</title>
  <link>http://doc.qtfr.org/</link>
  <description>La documentation francophone sur Qt</description>
  <language>fr</language>
  <pubDate>Thu, 03 Sep 2009 16:42:30 +0200</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Un conteneur pour MPlayer (utilisation de QProcess)</title>
    <link>http://doc.qtfr.org/post/2007/03/21/Un-conteneur-pour-MPlayer-utilisation-de-QProcess</link>
    <guid isPermaLink="false">urn:md5:afa61892107e63fea382cac105f90974</guid>
    <pubDate>Mon, 02 Apr 2007 09:01:00 +0200</pubDate>
    <dc:creator>IrmatDen</dc:creator>
        <category>Tutoriels</category>
        <category>class_QProcess</category><category>class_QWidget</category><category>intégration</category><category>MPlayer</category><category>version_PyQt4</category><category>version_Qt3</category><category>version_Qt4</category>    
    <description>&lt;ul&gt;
&lt;li&gt;Comment visualiser une vidéo dans Qt&amp;nbsp;?&lt;/li&gt;
&lt;li&gt;Comment intégrer MPlayer et Qt&amp;nbsp;?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Qt, dans son souci de framework généraliste, n'implémente pas toujours tout ce dont on peut avoir besoin, surtout lorsque cela n'est pas d'usage courant. Les vidéos font partie de ce qui n'était pas couvert par Qt (maintenant supporté depuis la 4.4 par le biais de Phonon). Cependant, un grand nombre de librairies et autres backends existent.
Nous allons voir comment utiliser l'un d'entre eux: &lt;a href=&quot;http://www.mplayerhq.hu/design7/news.html&quot;&gt;MPlayer&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Version concernée&lt;/strong&gt;&amp;nbsp;: Toutes versions (exemple fait avec C++/Qt4 et une version pyQt disponible)&lt;br /&gt;
&lt;strong&gt;Auteur&lt;/strong&gt;&amp;nbsp;: Denys Bulant (&lt;a href=&quot;http://qtfr.org/forum/profile.php?id=291&quot;&gt;IrmatDen&lt;/a&gt;), &lt;a href=&quot;http://forum.qtfr.org/profile.php?id=2344&quot;&gt;alteo_gange&lt;/a&gt; et &lt;a href=&quot;http://forum.qtfr.org/profile.php?id=4253&quot;&gt;egaudrain&lt;/a&gt; pour les versions pyQt&lt;br /&gt;
&lt;strong&gt;Résumé&lt;/strong&gt;&amp;nbsp;: utiliser MPlayer conjointement à Qt pour afficher une vidéo&lt;br /&gt;
&lt;strong&gt;Fil de discussion&lt;/strong&gt;&amp;nbsp;: &lt;a href=&quot;http://forum.qtfr.org/viewtopic.php?pid=14373&quot;&gt;Forum&lt;/a&gt;&lt;/p&gt;    &lt;h3&gt;Généralité sur MPlayer en tant que backend...&lt;/h3&gt;

&lt;p&gt;La particularité de MPlayer est de ne pas s'intégrer par le biais d'une api, mais par un process externe. Les applications désirant l'utiliser en tant que tel, doivent communiquer avec lui par le biais de son flux d'entrée. Les flux de sorties (standard/erreur) peuvent bien sûr être analysés pour récupérer diverses infos sur la vidéo ainsi que les réponses à des requêtes pouvant être formulées par votre application.&lt;/p&gt;


&lt;p&gt;Voici ce dont vous aurez besoin&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.mplayerhq.hu/design7/dload.html&quot;&gt;MPlayer&lt;/a&gt; installé, et fonctionnel,&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.mplayerhq.hu/DOCS/man/en/mplayer.1.html&quot;&gt;La page des options de MPlayer&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;Et &lt;a href=&quot;http://www.mplayerhq.hu/DOCS/tech/slave.txt&quot;&gt;la liste des options en slave mode&lt;/a&gt; pour mplayer (c'est toutes les manip qui vous sont permises, donc considérez ce fichier comme votre référence ;)).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pour utiliser MPlayer comme backend, il y a 2 arguments à lui passer &lt;strong&gt;impérativement&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;l'id du widget à utiliser pour le rendu par le biais de &quot;-wid&quot;&lt;/li&gt;
&lt;li&gt;&quot;-slave&quot; qui permet de le mettre en mode esclave, d'où le nom  ;-)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Exemple de code lançant MPlayer comme backend:&lt;/p&gt;
&lt;pre class=&quot;cpp&quot;&gt;QStringList args;
&lt;span style=&quot;color: #ff0000;&quot;&gt;// On demande à utiliser mplayer comme backend&lt;/span&gt;
args &amp;lt;&amp;lt; &lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;-slave&amp;quot;&lt;/span&gt;;
&lt;span style=&quot;color: #339900;&quot;&gt;#ifdef Q_WS_WIN&lt;/span&gt;
&lt;span style=&quot;color: #ff0000;&quot;&gt;// reinterpret_cast&amp;lt;unsigned int&amp;gt; obligatoire, HWND ne se laissant pas convertir gentiment ;)&lt;/span&gt;
args &amp;lt;&amp;lt; &lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;-wid&amp;quot;&lt;/span&gt; &amp;lt;&amp;lt; QString::&lt;span style=&quot;color: #00eeff;&quot;&gt;number&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;reinterpret_cast&amp;lt;unsigned int&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;renderTarget-&amp;gt;winId&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #339900;&quot;&gt;#else&lt;/span&gt;
&lt;span style=&quot;color: #ff0000;&quot;&gt;// Sur linux, pas de manip pour Wid :)&lt;/span&gt;
args &amp;lt;&amp;lt; &lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;-wid&amp;quot;&lt;/span&gt; &amp;lt;&amp;lt; QString::&lt;span style=&quot;color: #00eeff;&quot;&gt;number&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;renderTarget-&amp;gt;winId&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #339900;&quot;&gt;#endif&lt;/span&gt;&lt;/pre&gt;


&lt;p&gt;A savoir aussi que sur Windows, je n'ai trouvé que directx comme driver de sortie :/ Cela ne concerne pas les autres OS; lors de mon test sur Linux, je n'ai eu aucun driver à spécifier et cela marche nickel.&lt;/p&gt;


&lt;p&gt;Et apparemment les seuls drivers compatibles pour un embarquement de MPlayer sous Linux sont xv, x11 et gl. Et sous Linux, il faut faire attention à avoir un widget de taille raisonnable pour contenir la vidéo. En effet, contrairement à Windows, un resize à la volée n'est pas possible :/&lt;/p&gt;


&lt;p&gt;Ensuite, le mode esclave permet donc de commander MPlayer pour:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;obtenir des infos (ex: get_video_resolution/get_time_length/...)&lt;/li&gt;
&lt;li&gt;lui donner un ordre (ex: play/pause/quit/...)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tout ce qui lui est transmis, doit être terminé par un retour chariot. Si vous demandiez une information, elle sera renvoyée sur la sortie standard, avec un début de ligne propre à chaque commande (ex: get_video_resolution renverra &lt;code&gt;ANS_VIDEO_RESOLUTION='resX x resY'&lt;/code&gt;)&lt;/p&gt;


&lt;h3&gt;Exemple complet&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;http://doc.qtfr.org/public/2006/previewqtmplayerui.png&quot; alt=&quot;Illustration MPlayer/Qt&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Voici un programme proposant les fonctionnalités suivantes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;lecture d'une vidéo&lt;/li&gt;
&lt;li&gt;arrêt&lt;/li&gt;
&lt;li&gt;avancer/reculer en déplaçant le slider&lt;/li&gt;
&lt;li&gt;affiche le log de toutes ce qui sort sur les flux stdout et stderr de mplayer&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Vous le trouverez en annexe de ce tuto&amp;nbsp;; seuls les points essentiels sont repris ici par souci de clarté.
Pour vos tests, &lt;strong&gt;pensez à changer&lt;/strong&gt; les valeurs de &lt;code&gt;mPlayerPath&lt;/code&gt; et &lt;code&gt;movieFile&lt;/code&gt;, en haut du fichier.&lt;/p&gt;


&lt;p&gt;Ce n'est pas un frontend complet, mais cela vous permettra de voir fonctionner Qt 4 avec MPlayer en utilisant &lt;code&gt;QProcess&lt;/code&gt;  :)&lt;/p&gt;


&lt;p&gt;Comme dit dans l'introduction, une version pyQt a été réalisée par &lt;a href=&quot;http://forum.qtfr.org/profile.php?id=2344&quot;&gt;alteo_gange&lt;/a&gt;. Elle est disponible sur le &lt;a href=&quot;http://forum.qtfr.org/viewtopic.php?pid=31501#p31501&quot;&gt;forum&lt;/a&gt;. A noter qu'une version multi-plateforme a été postée par &lt;a href=&quot;http://forum.qtfr.org/profile.php?id=4253&quot;&gt;egaudrain&lt;/a&gt;; le code est dispo à ce &lt;a href=&quot;http://forum.qtfr.org/viewtopic.php?pid=37823#p37823&quot;&gt;post&lt;/a&gt;.&lt;/p&gt;
&lt;pre class=&quot;cpp&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;class&lt;/span&gt; PlayerWidget: &lt;span style=&quot;color: #0000ff;&quot;&gt;public&lt;/span&gt; QWidget
&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
    Q_OBJECT
&amp;nbsp;
&lt;span style=&quot;color: #0000ff;&quot;&gt;public&lt;/span&gt;:
    PlayerWidget&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QWidget *parent =&lt;span style=&quot;color: #0000dd;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
        :QWidget&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;parent&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, isPlaying&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;...&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
        renderTarget = &lt;span style=&quot;color: #0000dd;&quot;&gt;new&lt;/span&gt; QWidget;
        renderTarget-&amp;gt;setSizePolicy&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QSizePolicy&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QSizePolicy::&lt;span style=&quot;color: #00eeff;&quot;&gt;Fixed&lt;/span&gt;, QSizePolicy::&lt;span style=&quot;color: #00eeff;&quot;&gt;Fixed&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
        renderTarget-&amp;gt;setAttribute&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;Qt::&lt;span style=&quot;color: #00eeff;&quot;&gt;WA_PaintOnScreen&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
        renderTarget-&amp;gt;setMinimumSize&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;320&lt;/span&gt;, &lt;span style=&quot;color: #0000dd;&quot;&gt;240&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;...&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        mplayerProcess = &lt;span style=&quot;color: #0000dd;&quot;&gt;new&lt;/span&gt; QProcess&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;...&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
        connect&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;mplayerProcess, &lt;span style=&quot;color: #0000ff;&quot;&gt;SIGNAL&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;readyReadStandardOutput&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;,
            &lt;span style=&quot;color: #0000dd;&quot;&gt;this&lt;/span&gt;, SLOT&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;catchOutput&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
        connect&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;mplayerProcess, &lt;span style=&quot;color: #0000ff;&quot;&gt;SIGNAL&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;finished&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;int&lt;/span&gt;, QProcess::&lt;span style=&quot;color: #00eeff;&quot;&gt;ExitStatus&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;,
            &lt;span style=&quot;color: #0000dd;&quot;&gt;this&lt;/span&gt;, SLOT&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;mplayerEnded&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;int&lt;/span&gt;, QProcess::&lt;span style=&quot;color: #00eeff;&quot;&gt;ExitStatus&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;...&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #0000ff;&quot;&gt;protected&lt;/span&gt;:
    &lt;span style=&quot;color: #0000ff;&quot;&gt;virtual&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;void&lt;/span&gt; closeEvent&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QCloseEvent *e&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;...&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0000ff;&quot;&gt;private&lt;/span&gt;:
    &lt;span style=&quot;color: #0000ff;&quot;&gt;bool&lt;/span&gt; startMPlayer&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;...&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
        QStringList args;
        &lt;span style=&quot;color: #ff0000;&quot;&gt;// On demande à utiliser mplayer comme backend&lt;/span&gt;
        args &amp;lt;&amp;lt; &lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;-slave&amp;quot;&lt;/span&gt;;
        &lt;span style=&quot;color: #ff0000;&quot;&gt;// Et on veut ne pas avoir trop de chose à parser  :) &lt;/span&gt;
        args &amp;lt;&amp;lt; &lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;-quiet&amp;quot;&lt;/span&gt;;
&amp;nbsp;
&lt;span style=&quot;color: #339900;&quot;&gt;#ifdef Q_WS_WIN&lt;/span&gt;
        &lt;span style=&quot;color: #ff0000;&quot;&gt;// reinterpret_cast&amp;lt;qlonglong&amp;gt; obligatoire, winId() ne se laissant pas convertir gentiment ;)&lt;/span&gt;
        args &amp;lt;&amp;lt; &lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;-wid&amp;quot;&lt;/span&gt; &amp;lt;&amp;lt; QString::&lt;span style=&quot;color: #00eeff;&quot;&gt;number&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;reinterpret_cast&amp;lt;qlonglong&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;renderTarget-&amp;gt;winId&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
        args &amp;lt;&amp;lt; &lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;-vo&amp;quot;&lt;/span&gt; &amp;lt;&amp;lt; &lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;directx:noaccel&amp;quot;&lt;/span&gt;;
&lt;span style=&quot;color: #339900;&quot;&gt;#else&lt;/span&gt;
        &lt;span style=&quot;color: #ff0000;&quot;&gt;// Sur linux, aucun driver n'a été nécessaire et pas de manip pour Wid :)&lt;/span&gt;
        args &amp;lt;&amp;lt; &lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;-wid&amp;quot;&lt;/span&gt; &amp;lt;&amp;lt; QString::&lt;span style=&quot;color: #00eeff;&quot;&gt;number&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;renderTarget-&amp;gt;winId&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
        log-&amp;gt;append&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;Video output driver may not be necessary for your platform. &lt;span style=&quot;color: #666666; font-weight: bold;&quot;&gt;\&lt;/span&gt;
                    Check: http://www.mplayerhq.hu/DOCS/man/en/mplayer.1.html &lt;span style=&quot;color: #666666; font-weight: bold;&quot;&gt;\&lt;/span&gt;
                    at the VIDEO OUTPUT DRIVERS section.&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #339900;&quot;&gt;#endif&lt;/span&gt;
&amp;nbsp;
        args &amp;lt;&amp;lt; movieFile;
        qDebug&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;args.&lt;span style=&quot;color: #00eeff;&quot;&gt;join&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #00eeff;&quot;&gt;toUtf8&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
        &lt;span style=&quot;color: #ff0000;&quot;&gt;// On parse la stdout et stderr au même endroit, donc on demande à &amp;quot;fusionnner&amp;quot; les 2 flux&lt;/span&gt;
        mplayerProcess-&amp;gt;setProcessChannelMode&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QProcess::&lt;span style=&quot;color: #00eeff;&quot;&gt;MergedChannels&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
        mplayerProcess-&amp;gt;start&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;mplayerPath, args&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;!mplayerProcess-&amp;gt;waitForStarted&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;3000&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
            qDebug&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;allez, cherche le bug :o&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
            &lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;false&lt;/span&gt;;
        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
        &lt;span style=&quot;color: #ff0000;&quot;&gt;// On récupère les infos de base&lt;/span&gt;
        mplayerProcess-&amp;gt;write&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;get_video_resolution&lt;span style=&quot;color: #666666; font-weight: bold;&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
        mplayerProcess-&amp;gt;write&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;get_time_length&lt;span style=&quot;color: #666666; font-weight: bold;&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;...&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0000ff;&quot;&gt;bool&lt;/span&gt; stopMPlayer&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;...&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
        mplayerProcess-&amp;gt;write&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;quit&lt;span style=&quot;color: #666666; font-weight: bold;&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;!mplayerProcess-&amp;gt;waitForFinished&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;3000&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
            qDebug&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;ZOMG, ça plante :(&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
            &lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;false&lt;/span&gt;;
        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
        &lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;true&lt;/span&gt;;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #0000ff;&quot;&gt;private&lt;/span&gt; slots:
    &lt;span style=&quot;color: #0000ff;&quot;&gt;void&lt;/span&gt; catchOutput&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #0000ff;&quot;&gt;while&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;mplayerProcess-&amp;gt;canReadLine&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
            QByteArray buffer&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;mplayerProcess-&amp;gt;readLine&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
            log-&amp;gt;append&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QString&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;buffer&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
            &lt;span style=&quot;color: #ff0000;&quot;&gt;// On vérifie si on a eu des réponses&lt;/span&gt;
            &lt;span style=&quot;color: #ff0000;&quot;&gt;// réponse à get_video_resolution : ANS_VIDEO_RESOLUTION='176 x 144'&lt;/span&gt;
            &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;startsWith&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;ANS_VIDEO_RESOLUTION&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
                buffer.&lt;span style=&quot;color: #0000dd;&quot;&gt;remove&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color: #0000dd;&quot;&gt;21&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;'&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #666666; font-weight: bold;&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #666666; font-weight: bold;&quot;&gt;\r&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                &lt;span style=&quot;color: #0000ff;&quot;&gt;int&lt;/span&gt; sepIndex = buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;indexOf&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;'x'&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                &lt;span style=&quot;color: #0000ff;&quot;&gt;int&lt;/span&gt; resX = buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;left&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;sepIndex&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #00eeff;&quot;&gt;toInt&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                &lt;span style=&quot;color: #0000ff;&quot;&gt;int&lt;/span&gt; resY = buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;mid&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;sepIndex&lt;span style=&quot;color: #0000dd;&quot;&gt;+1&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #00eeff;&quot;&gt;toInt&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                renderTarget-&amp;gt;setMinimumSize&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;resX, resY&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
            &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span style=&quot;color: #ff0000;&quot;&gt;// réponse à get_time_length : ANS_LENGTH=45.28&lt;/span&gt;
            &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;startsWith&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;ANS_LENGTH&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
                buffer.&lt;span style=&quot;color: #0000dd;&quot;&gt;remove&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color: #0000dd;&quot;&gt;11&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;'&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #666666; font-weight: bold;&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #666666; font-weight: bold;&quot;&gt;\r&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                &lt;span style=&quot;color: #0000ff;&quot;&gt;float&lt;/span&gt; maxTime = buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;toFloat&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                timeLine-&amp;gt;setMaximum&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;static_cast&amp;lt;int&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;maxTime&lt;span style=&quot;color: #0000dd;&quot;&gt;+1&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
            &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span style=&quot;color: #ff0000;&quot;&gt;// réponse à get_time_pos : ANS_TIME_POSITION=2.4&lt;/span&gt;
            &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;startsWith&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;ANS_TIME_POSITION&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
                buffer.&lt;span style=&quot;color: #0000dd;&quot;&gt;remove&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color: #0000dd;&quot;&gt;18&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;'&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #666666; font-weight: bold;&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #666666; font-weight: bold;&quot;&gt;\r&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;, QByteArray&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                &lt;span style=&quot;color: #0000ff;&quot;&gt;float&lt;/span&gt; currTime = buffer.&lt;span style=&quot;color: #00eeff;&quot;&gt;toFloat&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
                timeLine-&amp;gt;setValue&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;static_cast&amp;lt;int&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;currTime&lt;span style=&quot;color: #0000dd;&quot;&gt;+1&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
            &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0000ff;&quot;&gt;void&lt;/span&gt; pollCurrentTime&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
        mplayerProcess-&amp;gt;write&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;get_time_pos&lt;span style=&quot;color: #666666; font-weight: bold;&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #ff0000;&quot;&gt;// Dirige la timeline&lt;/span&gt;
    &lt;span style=&quot;color: #0000ff;&quot;&gt;void&lt;/span&gt; timeLineChanged&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;int&lt;/span&gt; pos&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
        mplayerProcess-&amp;gt;write&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;QString&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot;seek &amp;quot;&lt;/span&gt; + QString::&lt;span style=&quot;color: #00eeff;&quot;&gt;number&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;pos&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span style=&quot;color: #666666;&quot;&gt;&amp;quot; 2&lt;span style=&quot;color: #666666; font-weight: bold;&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #00eeff;&quot;&gt;toUtf8&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #ff0000;&quot;&gt;// Play/stop&lt;/span&gt;
    &lt;span style=&quot;color: #0000ff;&quot;&gt;void&lt;/span&gt; switchPlayState&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;...&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0000ff;&quot;&gt;void&lt;/span&gt; mplayerEnded&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;int&lt;/span&gt; exitCode, QProcess::&lt;span style=&quot;color: #00eeff;&quot;&gt;ExitStatus&lt;/span&gt; exitStatus&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;...&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #0000ff;&quot;&gt;private&lt;/span&gt;:
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;...&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
    QWidget *renderTarget;
    QProcess *mplayerProcess;
    &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;...&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;;&lt;/pre&gt;


&lt;h3&gt;Si vous avez des remarques...&lt;/h3&gt;

&lt;p&gt;Si vous avez besoin d'un éclaircissement, vous pouvez le faire &lt;a href=&quot;http://qtfr.org/forum/viewtopic.php?pid=14373#p14373&quot;&gt;ici&lt;/a&gt;.&lt;/p&gt;</description>
    
          <enclosure url="http://doc.qtfr.org/public/2007/qt_mplayer.tar.gz"
      length="2452" type="application/x-gzip" />
    
    
      </item>
    
</channel>
</rss>