Journal XvMC, Gallium et DxVA

Posté par (page perso) .
Tags : aucun
4
4
jan.
2010
Depuis le temps que je lisais que la lecture vidéo accélérée par les GPU sous Windows était facilement accessible, j'ai voulu essayer : une simple Radeon 7500 est censée lire les DVD sans problème sur un Celeron 300. Verdict, impossible de trouver un lecteur vidéo aujourd'hui qui sache l'utiliser.

J'ai cru être devenu un manche sous Windows, mais ce fut pareil pour une NVidia GeForce 4 MX, qui me le fait pourtant bien sous Linux. Et enfin, un site de matériel me confirme que c'est le b...l : "Bien que pour l’accélération tous ces logiciels fassent appel à l’interface DXVA censée être standardisée, ils utilisent des bouts de codes spécifiques à chaque solution. Un nid a bug évident qui au fil des ans semble avoir pour constante les soucis posés lors des tests."

Source : http://www.hardware.fr/articles/780-4/intel-core-i5-i3-32nm.(...)

Bref, l'état des lieux libre me va très bien, avec des outils qui avancent lentement mais surement : VA-API est fonctionnel.
  • # Mince …

    Posté par . Évalué à -4.

    On est déjà vendredi ? Comme le temps passe.
  • # Libre ?

    Posté par (page perso) . Évalué à 5.

    Bref, l'état des lieux libre me va très bien, avec des outils qui avancent lentement mais surement : VA-API est fonctionnel.

    ...uniquement sur les chipsets poulsbo (GMA500) et certains S3 et avec des pilotes propriétaires. Est-ce-que ça compte quand même comme "état des lieux libre" ?
    • [^] # Re: Libre ?

      Posté par (page perso) . Évalué à 1.

      Oui, mais visiblement c'est mieux que sous Windows. Et il y a plus d'espoir que ça évolue.

      DLFP >> PCInpact > Numerama >> LinuxFr.org

    • [^] # Re: Libre ?

      Posté par (page perso) . Évalué à 2.

      Oui : les logiciels qui l'utilisent n'ont pas à implémenter des quirks par modèle de carte graphique. VAAPI est aussi fonctionnel avec les pilotes propriétaires Nvidia et Ati. Bref, ça avance proprement. Allez nouveau, 2010 sera-t-il l'année de ta diffusion au grand public?

      ⚓ À g'Auch TOUTE! http://afdgauch.online.fr

      • [^] # Re: Libre ?

        Posté par (page perso) . Évalué à 3.

        Pour le moment VAAPI n'est pas encore vraiment très utilisé pour les possesseurs cartes Nvidia. J'utilise encore VDPAU tout seul et non pas le backend VDPAU de VAAPI pour la simple raison que la documentation est inexistante et l'implémentation en dehors de celle de Mplayer je ne sais même pas ou elles en sont (VLC ? Xine ? Gstreamer ?). Et puis aussi, VDPAU marche très bien à l'heure actuelle, tant que ça marche, j'ai pas trop envie de bidouiller ça.
      • [^] # Re: Libre ?

        Posté par . Évalué à 3.

        les logiciels qui l'utilisent n'ont pas à implémenter des quirks par modèle de carte graphique.

        A la place, ils ont 3 backends d'acceleration hardware a implementer, vu que VA-API ne fonctionne pas avec les drivers libres des principales cartes graphiques du marche (xvMC non plus dans certains cas d'ailleurs et VDPAU pour Nvidia/S3).

        Apres on peut discuter technique et tout, mais entre "support des cartes sorties apres 2007 pour les 4 principaux constructeurs (ATI, Nvidia, Intel & S3)" et "marche sur 2 ou 3 chipsets (Intel & S3) avec des patchs encore non officiels", je suis pas bien sur que l'avantage soit pour Linux et le libre, meme pour ceux qui ont bu le Kool-Aid.

        A ce propos les tests de version de drivers Nvidia pour appliquer un comportement different suivant la version dans le backend VDPAU pour VA-AOU ou bien le workaround pour GMA 500 dans le patch VA-API pour mplayer, tu peux m'expliquer ce que c'est?
        • [^] # Re: Libre ?

          Posté par . Évalué à 2.

          A la place, ils ont 3 backends d'acceleration hardware a implementer, vu que VA-API ne fonctionne pas avec les drivers libres des principales cartes graphiques du marche (xvMC non plus dans certains cas d'ailleurs et VDPAU pour Nvidia/S3).

          Parce que tu connais des drivers libres des principales cartes graphiques du marché et qui supportent l'ASIC de décodage vidéo dédié?

          marche sur 2 ou 3 chipsets (Intel & S3) avec des patchs encore non officiels

          Quels patchs encore non officiels?

          les tests de version de drivers Nvidia pour appliquer un comportement different suivant la version dans le backend VDPAU

          Pour assurer une certaine compatibilité avec différentes versions du driver qui ont commis un changement d'API sans forcément changer la version de ladite API... Que ce soit au compile-time (headers) ou au run-time (api version). Donc il y a quelques checks au run-time sur la version du driver pour contourner cela. Mais bien sûr, si tu as toujours la dernière version, tu peux laisser tomber le check.

          le workaround pour GMA 500 dans le patch VA-API pour mplayer

          Pour que ça continue de fonctionner avec les anciens drivers GMA500 et G45.
          • [^] # Re: Libre ?

            Posté par . Évalué à 2.

            Merci pour ces precisions.

            Desole pour les patchs non officiels, j'ai du regarder trop vite et j'ai pas vu les commits pour le support VA-API dans mplayer et FFmpeg (il faudrait mettre a jour la page avec les patchs du coup, ca decrit encore la procedure pour patcher les sources direct, c'est devenu inutile si c'est deja dans le SVN).

            Et c'est pas une critique de ton boulot, ce que tu as fait est tres bien. Rajouter du code et des workarounds pour que ca marche aussi avec les anciens pilotes, c'est tout a fait normal et c'est exactement ce qu'il faut faire. Mais du coup, le post initial qui nous dit que tout est parfait et sans workaround raconte n'importe quoi.
      • [^] # Re: Libre ?

        Posté par (page perso) . Évalué à 5.

        Allez nouveau, 2010 sera-t-il l'année de ta diffusion au grand public?

        Meuh non, 2010 c'est avant tout l'année de Linux sur le desktop !

        Plus sérieusement, Linus a mergé nouveau l'autre jour (c'est son cadeau de noël) :
        http://article.gmane.org/gmane.linux.kernel/925943

        D'ailleurs 2010 est aussi l'année où Linus reconnaît son amour immodéré des poney :
        http://article.gmane.org/gmane.linux.kernel/926222
  • # accélération vidéo

    Posté par . Évalué à 0.

    Dans le libre c'est autant le bordel. Il y a peu de temps j'ai essayé de comprendre, savoir si ma carte supportait l'accélération matérielle et si mes drivers en tiraient parti, pour deux raisons :
    - je n'arrive pas à lire des vidéos HD (trop lent)
    - la sortie XV de mplayer ne fonctionne plus et x11 est lent...

    Résultat je n'ai pas compris grand chose et je ne suis pas plus avancé. J'ai encore du pain sur la planche.

    Comment savoir ce que supporte mon chipset (intel 82865G) et avec quels drivers ?
    • [^] # Re: accélération vidéo

      Posté par (page perso) . Évalué à 4.

      Ton chipset n'accepte aucune accélération de lecture HD.

      La sortie Xv de mplayer peut ne pas fonctionner tout simplement parce que la largeur maximale de vidéo est inférieure à celle de ta vidéo.

      Il y a aussi l'option "XvPreferOverlay" qui dans les derniers pilotes Intel force la vidéo texturée par défaut pour ne pas avoir des artefacts de compositing.

      Comme repère, j'arrive à lire les flux HD de l'offre Free avec un Pentium IV@ 3GHz et l'hyperthreading : il faut de mémoire threads=2 et skiploopfilter=all dans les options. Quand le flux est entrelacé, un -vf field améliore grandement la qualité de l'image. Ça bouffe 140% du CPU en moyenne, et c'est bien la première fois que je trouve un intérêt à l'hyperthreading ;-)

      ⚓ À g'Auch TOUTE! http://afdgauch.online.fr

      • [^] # Re: accélération vidéo

        Posté par . Évalué à 1.

        Merci pour ces détails. J'ai un peu avancé :

        Pour la sortie xv, le problème est le suivant :
        [joebar@arch ~]$ xvinfo
        X-Video Extension version 2.2
        screen #0
        no adaptors present

        Et la cause semble être là : https://bugzilla.redhat.com/show_bug.cgi?id=502913#c24
        En deux mots, ça serait un bug causé par le driver intel KMS dans le 2.6.32, où l'overlay n'est pas implémenté. Le problème semble être connu et sera donc sans doute corrigé dans le 2.6.33.

        Ensuite j'ai testé les options que tu me proposes : effectivement ca améliore les choses, sans résoudre tout. Le fait d'être en sortie x11 n'aide pas, certainement. Comme j'ai pu le lire dans l'expérience de quelqu'un d'autre, la méthode qui marche le mieux est avec 8 threads, bizarrement (j'ai un bi-coeur, un P4 2.6GHz). J'ai utilisé la ligne de commande suivante, avec les flux free moi aussi (je n'ai plus le divx HD que j'avais testé et qui ramaait trop) :
        mplayer -framedrop -lavdopts fast:skiploopfilter=all:threads=8 http://mafreebox.freebox.fr/freeboxtv/playlist.m3u

        Par contre -vf field provoque une image toute noire... Je n'ai pas poussé plus avant.
  • # crystal HD

    Posté par . Évalué à 2.

    Et que penser d'une telle carte ?

    http://www.presence-pc.com/actualite/crystal-hd-37722/

    Certain d'entre vous ont-ils déjà testé ?

    "La première sécurité est la liberté"

    • [^] # Re: crystal HD

      Posté par (page perso) . Évalué à -1.

      C'est une carte PCI Express, donc pour un PC récent.
      Or n'importe quel PC récent est capable de décoder du Full HD en temps réel (sauf si c'est en flash...)

      Un simple Core 2 n'utilise que 15% de CPU pour décoder du H264 full HD...

      Donc la carte externe broadcom est un gadget inutile.


      Par contre, ce que je souhaiterais, c'est pouvoir regarder les vidéos sur PC avec une qualité irréprochable. C'est a dire une synchro entre la fréquence de la vidéo et la fréquence d'affiche de l'écran. Avoir le LCD qui tourne à 72Hz lorsque je regarde une video en 1080p/24...

      Or tout les LCD informatique que je connais sont bridés à 60Hz d'ou des saccades lors de la lecture d'un film :/
      • [^] # Re: crystal HD

        Posté par . Évalué à 4.

        Cette carte est faite pour les netbook qui sont parfaitement incapable de décoder de la HD. Cela doit être aussi utile au niveau de la consommation électrique.

        Je suis surpris aussi de tes chiffres pour la HD. Il faudrait que tu refasses un test avec un film en 1080p et ~25Mbs, cela doit correspondre à un blue ray et je pense que ton core duo doit être bien chargé. Un x264 en 720p et 5Mbs, c'est une sorte de HD mais on peut faire beaucoup mieux.

        Pour le LCD qui ne supporte pas le /24, tu peux peut-être utiliser 72 hz ? (3*24)

        "La première sécurité est la liberté"

        • [^] # Re: crystal HD

          Posté par (page perso) . Évalué à 4.

          Cette carte est faite pour les netbook qui sont parfaitement incapable de décoder de la HD
          En même temps, de la HD sur un netbook...
          • [^] # Re: crystal HD

            Posté par . Évalué à 3.

            Tu as le fichier que tu as sous la main, tu ne va pas réencoder pour lire un fichier. Ensuite, j'ai une eeebox parfaitement incapable de lire un 720p.

            "La première sécurité est la liberté"

        • [^] # Re: crystal HD

          Posté par (page perso) . Évalué à 2.

          Les netbooks n'utiliseront pas cette carte broadcom mais directement une puce graphique avec accélération video tel nVidia Ion.

          Les trailers 1080p d'Apple sont encodés en H264 à 10Mbs.
          J'ai un fichier encodé en VC-1 à 18 Mbs qui consomme un peu plus de CPU.
          Je n'ai pas de fichiers 1080p à 25 Mbs sur mon disque.
          Cela dit, j'arrive a lire sans problème les HD-DVD et Blue-Ray (dont je n'ai jamais vérifié le débit vidéo) son mon portable.
      • [^] # Re: crystal HD

        Posté par (page perso) . Évalué à 3.

        Euh... mon simple core 2 T5500 n'arrive pas à décoder les video H264 1080p avec vlc ou mplayer (et pourtant les extensions XV fonctionnent bien chez moi). Ou alors très limite, avec de fréquentes saccades. C'est Ok par contre pour du 720p.

        Ok le T5500 est un core 2 assez ancien et relativement peu puissant (1,6 Ghz) dans la gamme des core 2. Sur un core 2 récent, ça doit le faire, mais ce n'est donc plus un 'simple core 2'. Et à mon avis, ça doit quand même prendre un peu plus de 15%...
        • [^] # Re: crystal HD

          Posté par (page perso) . Évalué à 3.

          A mon avis, tu dois avoir un problème ailleurs.

          Moi ça passe LARGEMENT (60% de cpu avec la sortie X11 dans VLC) avec un Core 2 duo T7300 à 2,0 GHz. De plus, le CPU passe son temps à retomber à 800 MHz durant la lecture de la vidéo...

          Ton problème vient peut être de là d'ailleurs. Essaye de configurer ton CPU a la fréquence max (mode performance de cpufreq) avant de lancer la lecture de la vidéo...
          • [^] # Re: crystal HD

            Posté par . Évalué à 3.

            Tu peux détailler ta config et vérifier que tu n'as aucune accél matérielle ? Car je trouve ça plutôt louche (de par ce dont j'ai entendu parler sur la théorie de la puissance nécessaire, et parce que sur mon dual 2,5GHz le 1080p passe avec un peu de mal, ça saccade un petit peu voire beaucoup sur les grosses scènes, tout en soft). C'est peut-être aussi une histoire d'optimisation SSE récente, ou un truc dans le genre ? T'utilises quel player ?
            • [^] # Re: crystal HD

              Posté par (page perso) . Évalué à 2.

              Dell Latitude D830, 4 Go de RAM, Core 2 Duo T7300, nVidia NVS 140M avec 512 Mo dédié et écran 1920x1200.
              Fedora 11 x86_64 à jour avec VLC 1.0.4 et pilote nvidia proprio du dépot rpmfusion

              À part activer la sortie X11 dans VLC, je ne vois pas comment je peux m'assurer n'avoir aucune accélération matérielle du GPU.
              • [^] # Re: crystal HD

                Posté par . Évalué à 2.

                Pour moi, Athlon X2 4850, 4Go de RAM, ATI HD3200 sans mémoire dédiée (ça coince peut-être là ...), et écrans dual 1680x1050 (là aussi peut-être ...)
                Debian sid et mplayer récent.

                Pire, en vérifiant, en fait c'était une vidéo en 720p seulement .... Par contre, du x264 haut débit (je sais pas du combien, mais la qualité se voit).

                Pour vérifier la sortie, je te conseillerais d'utiliser mplayer, où on peut bien tout voir comment ça se passe.

                Bon, au final, c'est peut-être le matos mal supporté par les drivers libres, enfin, pas trop optimisés. Ça ferait un bon bench quand même ...
    • [^] # Niveau licence, pas trop mal mais peut mieux faire

      Posté par (page perso) . Évalué à 3.

      Sur la page officiel du pilote du constructeur on peut lire :

      Linux Software

      To encourage the development of Linux media player applications using our HD video decoders, Broadcom is releasing the Linux kernel driver source code under the GNU General Public License (GPL), version 2 as well as application and library source code on a royalty-free basis under the GNU Lesser General Public License (LGPL), version 2.1, as published by the Free Software Foundation.

      Current driver source supporting all kernels >= 2.6.11 (12/29/2009)

      * Download Crystal HD driver source

      Note: The binary firmware files included in the source archive continue to be covered under Broadcom's standard software license agreement and are not distributed either under the GPL or LGPL.


      Donc en résumé le pilote est GPL v2, les bibliothèques et les logiciels utilisateurs sont LGPL 2.1, le firmware sous une licence proprio. Je n'ai pas vu de lien vers la licence en question, mais ça doit être du même acabit que celles pour les cartes wifi[2]. C'est donc :

      Subject to the terms and conditions of this Agreement, Broadcom grants to Licensee the non-exclusive, non-transferable, personal, revocable right to use the Software only in connection with proprietary semiconductor products of Broadcom incorporated in the equipment purchased by Licensee, and to make one (1) copy of the Software for back-up or archival purposes only. Any other use of this Software or removal of the Software from a country in which it is licensed shall automatically terminate this license.


      Aucune chance de le retrouver dans les dépôts de votre distribution préféré donc, le contrat parle d'une seule copie de sauvegarde à usage privé.

      [1] http://www.broadcom.com/support/crystal_hd/
      [2] http://www.broadcom.com/support/ethernet_nic/driver-sla.php?(...)
    • [^] # Re: crystal HD

      Posté par (page perso) . Évalué à 2.

      Dans l'idée ça peut être bien (très basse conso et ça fait assez bien le boulot), mais il y a une limitation à mon sens : le fait que le firmware (dont il est question plus tard) implémente juste 2 ou 3 codecs sans possibilité de le mettre à jour. Il faudrait pouvoir s'assurer que c'est évolutif (pour décoder du H.265 par exemple) sinon ça peut devenir très rapidement caduc.

      Certes pour lire du BluRay les formats sont connue est fixes, mais en matière de video streamée, les formats évoluent plus rapidement. Dans un futur sympa, les décodeurs video seraient écrits dans un langage de haut niveau, chargés depuis internet à la demande, et compilés à la volée pour chaque matériel...

      (bon ok j'arrête de rêver)
  • # Media Player Classic?

    Posté par . Évalué à -1.

    Je t'aurais bien demande si tu as essaye avec Media Player Classic (MPC - cite dans l'article en passant, en disant que ca marche parfaitement...), mais tu nous parles de Radeon 7500 et Geforce 4MX et de Celeron 300.

    A noter que MPC, c'est du logiciel libre, ca accelere avec DXVA et ca marche sur plus de configurations materielles que l'equivalent sous Linux (comment ca, c'est pas dur?).

    Maintenant, on est ravi d'apprendre que Linux accelere les DVD sur des cartes de plus de 8 ans. Windows aussi hein, et c'etait dispo a la sortie des cartes il y a 8 ans.

    Sinon, histoire de comparer avec quelque chose de recent (2007 ou plus / carte ati Radeon HD ou Nvidia GeForce 8400+ pour environ $30/40), ca donne quoi sous Linux l'acceleration materielle complete de MPEG-4 AVC (H264)? :D

    PS: Une idee pour ton prochain journal: explique nous comment le son sous Linux c'est super ca marche partout alors que sous Windows c'est du truc tout pourri et bugge qui marche une fois sur deux. D'ailleurs tu as teste sur ton Pentium 100 avec ta SoundBlaster et Windows n'a meme pas d'acceleration hardware.
    • [^] # Re: Media Player Classic?

      Posté par (page perso) . Évalué à 0.

      Je n'ai pas dit que dans le libre tout marche, mais quand c'est fait, c'est pour longtemps.
      Je n'ai pas pensé à MPC, mais j'essayerai.

      ⚓ À g'Auch TOUTE! http://afdgauch.online.fr

      • [^] # Re: Media Player Classic?

        Posté par . Évalué à 3.

        Je n'ai pas dit que dans le libre tout marche, mais quand c'est fait, c'est pour longtemps.

        Euh, par pitie arrete avec ce genre de phrase toutes faites (surtout que la c'est un peu a cote de la plaque quand meme).

        Si il y a bien un truc que le libre fait beaucoup moins bien (pour plein de raisons, certaines bonnes, d'autres beaucoup moins), c'est le support d'une API stable dans le temps.

        Il y a meme pas besoin d'aller chercher bien loin pour trouver plein d'exemples ou quand c'est fait, c'est rarement pour longtemps:
        - API son: OSS/Alsa/divers serveurs de son/PulseAudio/etc.
        - API de capture video: v4l et v4l2 et le gros boxon lors de la transition
        - Drivers graphiques: X, puis nouvelle API pour ne plus etre aussi dependant de l'architecture, puis maintenant gestion memoire dans le noyau
        - Extensions X: XInput, XInput2 et toutes les extensions qu'ont remplace parce qu'on a pas pris le temps de bien definir les besoins et que notre API est tellement pourrie qu'on peut meme pas l'etendre ou la versionner.
        - Decouverte des peripheriques: devfs/udev et tout le bordel autour...

        Et ca c'est seulement pour le bas niveau (et pour les API exportees, l'architecture interne bouge aussi pas mal, mais au moins il n'y a pas trop d'impact sur les utilisateurs externes "normalement"). Si on regarde un niveau au dessus pour l'UI (kde, gnome, etc), c'est encore plus le boxon.

        Je n'ai pas pensé à MPC, mais j'essayerai.

        Pour avoir une acceleration DXVA, ca demande des cartes "recentes" (d'apres 2007 en gros), donc meme avec MPC, ca ne resoudra pas ton probleme. Je suppose que les dernieres versions des lecteurs DVD sous windows ont laisse tomber le support des vieilles cartes (surtout si c'etait pas encore une API standardisee a l'epoque ou qu'elles ne supportent pas bien DXVA, surtout que depuis le temps, les nouveaux drivers constructeurs ne sont probablement plus dispo pour ces cartes).

        Tu peux aussi essayer avec VLC, mais je sais pas trop si il y a un support pour l'acceleration materielle.

        En gros, il te faut un logiciel de lecture DVD qui a l'age de la carte (ou un peu plus): une version WinDVD ou PowerDVD qui date de la sortie de la carte et ca devrait etre bon.
        • [^] # Re: Media Player Classic?

          Posté par (page perso) . Évalué à 2.

          > En gros, il te faut un logiciel de lecture DVD qui a l'age de la carte

          Ça, c'est ce que le libre me permet (distribution plus ancienne pour une fonctionalité abandonnée depuis). J'ai pas trouvé de solution propriétaire, puisque le lecteur DVD fourni avec la carte graphique à l'époque n'est plus disponible sur Internet. Et effectivement MPC ne fonctionne qu'avec DxVA v2.

          > Tu peux aussi essayer avec VLC, mais je sais pas trop si il y a un support pour l'acceleration materielle.

          J'ai essayé une Nightly Build, il y a la case à cocher mais ça ne marche qu'avec DxVA v2 (Vista et ultérieur).

          ⚓ À g'Auch TOUTE! http://afdgauch.online.fr

      • [^] # Re: Media Player Classic?

        Posté par . Évalué à 0.

        Je n'ai pas dit que dans le libre tout marche, mais quand c'est fait, c'est pour longtemps.

        Tu pourras en parler aux développeurs chargé de l'accélération 3D des chipsets Intel (genre GMA 950) qui a été cassée sur deux générations de distribution l'année dernière ?
        • [^] # Re: Media Player Classic?

          Posté par (page perso) . Évalué à 1.

          > Tu pourras en parler aux développeurs chargé de l'accélération 3D des chipsets Intel (genre GMA 950) qui a été cassée sur deux générations de distribution l'année dernière ?

          L'erreur n'est-elle pas plutôt dans les distributions qui ont empaqueté une version encore instable d'un pilote? Peut-être par manque de testeurs? Les développeurs sortent un pilote; ils n'ont pas forcément les moyens de tester les régressions...

          ⚓ À g'Auch TOUTE! http://afdgauch.online.fr

    • [^] # Re: Media Player Classic?

      Posté par . Évalué à 3.

      > Sinon, histoire de comparer avec quelque chose de recent (2007 ou plus / carte ati Radeon HD ou Nvidia GeForce 8400+ pour environ $30/40), ca donne quoi sous Linux l'acceleration materielle complete de MPEG-4 AVC (H264)? :D

      Ça marche avec les Nvidia.
      http://en.wikipedia.org/wiki/VDPAU
      Ton exemple avec le h264, c'est justement le premier truc à avoir été supporté (feature set A)
      Ça c'était pour la partie driver. Pour la partie lecteur j'utilise mplayer (smplayer pour être précis)
      J'en suis plutôt content avec mon netbook/ION mais je n'ai jamais testé avec des bitrate supérieurs à 8Kbps

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.