Announcement

Collapse
No announcement yet.

XBMC Gets Working Intel VA-API Support

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • XBMC Gets Working Intel VA-API Support

    Phoronix: XBMC Gets Working Intel VA-API Support

    The popular open-source XBMC media player has had VDPAU support for more than a year now to offload some of the video decoding work during the playback process onto the GPU (primarily NVIDIA GPUs) using this robust Linux/Unix graphics API. However, for graphics hardware / drivers that do not implement NVIDIA's Video Decode and Presentation API for Unix, the XBMC mainline code-base now has working support for VA-API...

    http://www.phoronix.com/vr.php?view=ODEyNw

  • #2
    Wohoo! XBMC is truly the greatest media center application ever

    Comment


    • #3
      That's cool, on a similar note, I hope somebody applies for the GSoC project to add VA-API support to GStreamer:
      http://blogs.gnome.org/edwardrv/2010...e-your-summer/

      Comment


      • #4
        Well after asking gb and in the #xbmc-linux channel on freenode i got it compiled (needed newer libboost 1.35 too), but it just crashes. used:
        Code:
        --- xbmc/configure.in   2010-04-06 22:13:42.000000000 +0200
        +++ xbmc.fix/configure.in       2010-04-06 23:58:13.387819233 +0200
        @@ -690,6 +690,7 @@
         else
           if test "$use_vaapi" = "yes"; then
             AC_CHECK_LIB([va], main,, use_vaapi=no;AC_MSG_RESULT($vaapi_not_found))
        +    AC_CHECK_LIB([va-glx], main,, use_vaapi=no;AC_MSG_RESULT($vaapi_not_found))
           else
             AC_MSG_NOTICE($vaapi_disabled)
           fi
        i really want to see it working...

        Comment


        • #5
          Well in order to test it do not use vdpau-video 0.6.7, the older 0.6.6 worked, but only fullscreen.

          Comment


          • #6
            Any chance Fluendo pushes those accelerated bits into the free versions?

            I think GStreamer is under LGPL so that means they could add closed bits in, IIRC. However, I don't know if that is what they've done here, and simply pushed their work out to the paying customers first.

            Best/Liam

            Comment


            • #7
              So tested it on 64 bit now, the patch above is not needed anymore. But the code needs a 64 bit hotfix:
              Code:
              --- xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp.orig	2010-04-07 03:33:14.423226904 +0200
              +++ xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp	2010-04-07 03:48:06.230725559 +0200
              @@ -97,7 +97,7 @@
               
               void CDecoder::RelBuffer(AVCodecContext *avctx, AVFrame *pic)
               {
              -  VASurfaceID surface = (VASurfaceID)pic->data[3];
              +  VASurfaceID surface = (VASurfaceID)(uintptr_t)pic->data[3];
                 
                 for(std::list<VASurfaceID>::iterator it = m_surfaces_used.begin(); it != m_surfaces_used.end(); it++)
                 {    
              @@ -116,7 +116,7 @@
               
               int CDecoder::GetBuffer(AVCodecContext *avctx, AVFrame *pic)
               {
              -  VASurfaceID surface = (VASurfaceID)pic->data[3];
              +  VASurfaceID surface = (VASurfaceID)(uintptr_t)pic->data[3];
                 if(surface)
                 {
                   /* reget call */
              @@ -298,7 +298,7 @@
               {
                 picture->format        = DVDVideoPicture::FMT_VAAPI;
                 picture->vaapi_object  = this;
              -  picture->vaapi_surface = (unsigned int)frame->data[3];
              +  picture->vaapi_surface = (uintptr_t)frame->data[3];
                 return true;
               }
              I could not get vc1 working with it yet. h264 works with vdpau-video 0.6.6, with xvba-video 0.6.10 it did not work at all, just like vdpau-video 0.6.7 -> crash.

              Comment


              • #8
                Originally posted by liam View Post
                I think GStreamer is under LGPL so that means they could add closed bits in, IIRC.
                Well you recall wrong. LGPL means that the library MUST stay open source.
                So, GStreamer cna be used in proprietary projects, and proprietary plugins can be written, but the library code is copyleft and must stay LGPL.

                Comment


                • #9
                  It works, it works!!!





                  Ubuntu 9.10+HD4670+XvBA0.6.10+OGL4preview drivers

                  i register only to say that

                  Comment


                  • #10
                    It works, it works!!!





                    Ubuntu 9.10+HD4670+XvBA0.6.10+OGL4preview drivers

                    i register only to say that

                    Comment

                    Working...
                    X