Announcement

Collapse
No announcement yet.

XBMC Project Implements AMD XvBA Interface

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

  • XBMC Project Implements AMD XvBA Interface

    Phoronix: XBMC Project Implements AMD XvBA Interface

    The XBMC multimedia project has implemented AMD's XvBA interface directly for providing video hardware acceleration for Radeon and Fusion graphics processors...

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

  • #2
    I've been confused about the state of hardware-accelerated video decoding for AMD GPUs. Since AMD has been pushing hard to get into the lower-end (e.g., HTPC) market with their APUs, isn't hardware-accelerated video decoding an absolute requirement right out of the box?

    Comment


    • #3
      This is amazing news, exactly what I was waiting for!

      #edit: Just tried this and it works perfect! The few movies that did not work with the VAAPI wrapper work now and performance is great and I hated to install all the stuff for the wrapper! Thanks
      Last edited by d2kx; 12-14-2011, 06:11 PM.

      Comment


      • #4
        @johnc

        John I totally agree with you. I even take it a step further, if I were AMD I would actively make sure Linux support was top notch. Making sure your product works and works really well on Linux is a great way to advertise it's performance. Just looking at Bulldozer, the numbers aren't great, but they are better on Linux than on Windows. AMD would have the ability to show what their stuff can do faster than having to wait for Windows to optimize for it. Linux people may use free software, but have no problem paying for low cost quality hardware like AMD generally puts out.

        Obviously, the Windows market is huge and too big to turn away from, but using Linux to show off your stuff, especially when it makes your stuff look good, or at least better, seems like a no brainer.

        Finally, I say this all understanding the cost of having Linux developers etc., but it just seems like such an untapped resource for AMD.

        Comment


        • #5
          I already test this XBMC build on AMD E-350 with Catalyst 11.12. For me it work at least not worse than with VA-API.

          Comment


          • #6
            Working well on Radeon 4200 mobile (with a new patch)

            I tried the old way Xvba/Va in the past and it just didn't work well enough.

            I built the new XbmcXvba and I'm quite pleased with how it's performing. I had a crash when I was toggling between fullscreen and window mode so I looked at the xbmc error log, and then the source code. I made a tweek to FFGetBuffer and the errors disappeared.

            These are the signs of the problem:

            23:24:48 T:139815462737664 DEBUG: XVBA::FFReleaseBuffer - ignoring invalid buffer

            This seems to fix it.

            Code:
            --- ./xbmc/cores/dvdplayer/DVDCodecs/Video/XVBA.cpp.orig	2011-12-14 23:05:22.935781205 -0700
            +++ ./xbmc/cores/dvdplayer/DVDCodecs/Video/XVBA.cpp	2011-12-15 00:16:50.562906967 -0700
            @@ -900,6 +900,16 @@ int CDecoder::FFGetBuffer(AVCodecContext
               CDecoder*             xvba  = (CDecoder*)ctx->GetHardware();
               struct pictureAge*    pA    = &xvba->picAge;
             
            +  pic->data[0] =
            +  pic->data[1] =
            +  pic->data[2] =
            +  pic->data[3] = 0;
            +
            +  pic->linesize[0] =
            +  pic->linesize[1] =
            +  pic->linesize[2] =
            +  pic->linesize[3] = 0;
            +
               CSharedLock lock(xvba->m_decoderSection);
             
               { CSharedLock dLock(xvba->m_displaySection);
            @@ -961,14 +971,6 @@ int CDecoder::FFGetBuffer(AVCodecContext
                 return -1;
             
               pic->data[0] = (uint8_t*)render;
            -  pic->data[1] =
            -  pic->data[2] =
            -  pic->data[3] = 0;
            -
            -  pic->linesize[0] =
            -  pic->linesize[1] =
            -  pic->linesize[2] =
            -  pic->linesize[3] = 0;
             
               if(pic->reference)
               {

            Comment


            • #7
              Thx for your effort in improving xvba support.
              I forwared this patch to "upstream".

              If you have a git account you could also send a pull request if you want!

              Thanks again

              Edit: Upstream is here: https://github.com/FernetMenta/xbmc/commits/xvba
              Last edited by fritsch; 12-15-2011, 03:12 AM.

              Comment


              • #8
                Very nice!
                @fritsch: have you been in contatc with the maintainer of XvBA Tools on Sourceforge (http://sourceforge.net/projects/xvbat/) about the issues you've had? He seems like the most public figure at AMD for XvBA-related stuff.

                Comment


                • #9
                  We looked a bit through xvba tools code. But they are using another base, no ffmpeg framework, so mapping, etc. could not be learned of.
                  It was hard to compare.

                  Gwens xvba-va-driver code was really helpful at some points.

                  For mail, we had an internal contact.

                  Comment


                  • #10
                    Uvd/uvd+ ?

                    Does this also work with the original UVD/UVD+? Or do you need at least UVD2?

                    Comment


                    • #11
                      The code supports the same hardware which xvba-va-driver supported.
                      It should work on normal UVD.

                      http://images.ht4u.net/reviews/2010/..._test/uvd3.png
                      Last edited by fritsch; 12-15-2011, 04:56 AM. Reason: Additional Link

                      Comment


                      • #12
                        Originally posted by PsynoKhi0 View Post
                        Very nice!
                        @fritsch: have you been in contatc with the maintainer of XvBA Tools on Sourceforge (http://sourceforge.net/projects/xvbat/) about the issues you've had? He seems like the most public figure at AMD for XvBA-related stuff.
                        actually he's not really AMD as such...Tim Writer ECSD Liaison Engineer at AMD, Owner at SaaS 44 Inc, so in effect another 3rd party vendor for this XvBA Tools.

                        Comment


                        • #13
                          Originally posted by fritsch View Post
                          We looked a bit through xvba tools code. But they are using another base, no ffmpeg framework, so mapping, etc. could not be learned of.
                          It was hard to compare.

                          Gwens xvba-va-driver code was really helpful at some points.

                          For mail, we had an internal contact.
                          Yeah, it was evident they don't get it way back in early march when he said "I can't discuss AMD's choice of license in any further detail except to say that swcale did not meet AMD's licensing requirements for XvBA Tools." as the reason for not picking the fully maintained and ported everywhere that matters "swcale" as they thought it was not LGPL licenceable
                          http://phoronix.com/forums/showthrea...309#post179309
                          http://phoronix.com/forums/showthrea...540#post181540

                          Comment


                          • #14
                            Originally posted by popper View Post
                            actually he's not really AMD as such...Tim Writer ECSD Liaison Engineer at AMD, Owner at SaaS 44 Inc, so in effect another 3rd party vendor for this XvBA Tools.
                            If that is a reference to his LinkedIn profile, the first current listed position is "Senior Member Technical Staff at AMD". So I would believe he has access to quite a bunch of info.

                            Comment


                            • #15
                              Originally posted by PsynoKhi0 View Post
                              If that is a reference to his LinkedIn profile, the first current listed position is "Senior Member Technical Staff at AMD". So I would believe he has access to quite a bunch of info.
                              im sure he does, he's apparently part of AMD Embedded Solutions but that didn't help him or the Embedded team get very far in a whole 9 months+ to date did it, were a simple public post to the the whole ffmpeg/libav ML's stating this is what we have, this is what we need,how do we integrate these patches ASAP etc..

                              would have probably generated far more developer response and feedback in a day/week than those 5 or 6 posts in his mailing list generated after all this time, fritsch and the other devs have managed to provide their working solution in spite of the "sample code intended as a guide for developers" provided, not because of it. but whatever, time moves on.

                              imagine how much more complete this could have been by now if only these player devs Tim makes reference to had all they needed patched inside the OSS libav/ffmpeg from day one.... assuming it met the high standard of code requirements and was benched to make sure it didn't slow things down, rather than keep an unreleased internal AMD ffmpeg version to try and keep their control
                              Last edited by popper; 12-15-2011, 01:29 PM.

                              Comment

                              Working...
                              X