Announcement

Collapse
No announcement yet.

AMD's UVD2-based XvBA Finally Does Something On Linux

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

  • Originally posted by gbeauche View Post
    I don't think you can take any snapshot anyway. I mean, I pretty doubt the backing store is active so you would get some black or white content instead.



    It could be that your system deviates too much from an AMD officially supported distribution. I also got that with some Debian/lenny mixture, though some other people have better success than me there.

    BTW, it's simpler to test step by step. e.g. please download
    http://splitted-desktop.com/~gbeauch...wdecode-demos/

    And run e.g. vaapi_h264 --glx (double dash glx)
    the answer is:
    Code:
    ./vaapi_h264 --glx
    Display type 'glx'
    Hardware accelerator 'vaapi'
    [hwdecode_demos] VA display 0x1901c60
    libva: libva version 0.31.0-sds3
    libva: va_getDriverName() returns 0
    libva: Trying to open /usr/lib64/va/drivers/fglrx_drv_video.so
    libva: va_openDriver() returns 0
    [hwdecode_demos] VA API version 0.31
    [hwdecode_demos] 1 display attributes available
    [hwdecode_demos]   VADisplayAttribDirectSurface     (get/---) min 0 max 0 value 0x0
    [hwdecode_demos] 4 profiles available
    [hwdecode_demos]   VAProfileMPEG2Simple
    [hwdecode_demos]   VAProfileMPEG2Main
    [hwdecode_demos]   VAProfileH264High
    [hwdecode_demos]   VAProfileVC1Advanced
    [hwdecode_demos] 1 entrypoints available for VAProfileH264High
    [hwdecode_demos]   VAEntrypointVLD
    xvba_video: XVBA_CreateDecode(): status 2
    VAAPI: use vaCopySurfaceGLX()
    [hwdecode_demos] vaCopySurfaceGLX(): unknown libva error
    ERROR: display failed


    then take me to the next level

    Comment


    • I've updated the ebuilds for xvba-video to include ~amd64 support and also for mplayer, but still have no luck with va-api. hwcodec demo also fails to compile

      Code:
      make[2]: Entering directory `/home/non7top/soft/vaapi/hwdecode-demos-0.7.4/src'
      gcc -DHAVE_CONFIG_H -I.     -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12    -DUSE_FFMPEG    -DUSE_VAAPI -DUSE_VAAPI_X11 -DUSE_VAAPI_GLX  -DUSE_H264 -g -O2 -MT ffmpeg_h264-debug.o -MD -MP -MF .deps/ffmpeg_h264-debug.Tpo -c -o ffmpeg_h264-debug.o `test -f 'debug.c' || echo './'`debug.c
      In file included from debug.c:22:
      debug.h:24: error: conflicting types for 'dprintf'
      /usr/include/stdio.h:397: note: previous declaration of 'dprintf' was here
      debug.c:25: error: conflicting types for 'dprintf'
      /usr/include/stdio.h:397: note: previous declaration of 'dprintf' was here

      Comment


      • @non7tip

        You really own r700 hardware (hd 4xxx)?

        @RemcoL

        Why didn't you try just

        http://www.phoronix.com/forums/showp...3&postcount=12

        I removed the libstdc++5 yesterday.
        Last edited by Kano; 11-06-2009, 03:19 AM.

        Comment


        • Originally posted by non7top View Post
          I've updated the ebuilds for xvba-video to include ~amd64 support and also for mplayer, but still have no luck with va-api. hwcodec demo also fails to compile

          Code:
          make[2]: Entering directory `/home/non7top/soft/vaapi/hwdecode-demos-0.7.4/src'
          gcc -DHAVE_CONFIG_H -I.     -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12    -DUSE_FFMPEG    -DUSE_VAAPI -DUSE_VAAPI_X11 -DUSE_VAAPI_GLX  -DUSE_H264 -g -O2 -MT ffmpeg_h264-debug.o -MD -MP -MF .deps/ffmpeg_h264-debug.Tpo -c -o ffmpeg_h264-debug.o `test -f 'debug.c' || echo './'`debug.c
          In file included from debug.c:22:
          debug.h:24: error: conflicting types for 'dprintf'
          /usr/include/stdio.h:397: note: previous declaration of 'dprintf' was here
          debug.c:25: error: conflicting types for 'dprintf'
          /usr/include/stdio.h:397: note: previous declaration of 'dprintf' was here
          I don't know what Ulrich smoke, he should have named those new functions as fdprintf()... Anyway, I released a new hwdecode-demos (0.7.5) that renames dprintf() to debug_printf().

          Comment


          • Are there any plans to include support for HD3870??
            This is still quite a popular card and accelerated playback in Windows XP is working for long time already.

            Comment


            • Originally posted by Kano View Post
              @RemcoL

              Why didn't you try just

              http://www.phoronix.com/forums/showp...3&postcount=12

              I removed the libstdc++5 yesterday.
              Because I rather dislike running scripts as root made by others. I also don't want to install mplayer-vaapi, I just want it to live in a directory

              Besides, the script compiles and installs libva and installs xvba_video. I did that manually and it didn't work so I doubt your script would fix it. The fact that the hwdecode-demos said I don't have xvba could be because it didn't find headers, but unless I can get vainfo to actually work with the last xvba_video I'm not even trying to get that to work.

              Comment


              • Originally posted by non7top View Post
                I've updated the ebuilds for xvba-video to include ~amd64 support.
                I think you forgot to digest the ebuild.


                Originally posted by gbeauche View Post
                It could be that your system deviates too much from an AMD officially supported distribution. I also got that with some Debian/lenny mixture, though some other people have better success than me there.
                mhh If I could know the package versions of their target distro, with gentoo is quite simple to re arrange the meaningful ebuilds to be at the same version.

                Originally posted by gbeauche View Post
                And run e.g. vaapi_h264 --glx (double dash glx)
                here are all the results (I think I've already posted one of them)

                Code:
                ben@Obi-Wan ~/Desktop/hwdecode-demos-0.7.5 $ src/vaapi_h264 --glx
                Display type 'glx'
                Hardware accelerator 'vaapi'
                [hwdecode_demos] VA display 0x12a1c60
                libva: libva version 0.31.0-sds3
                libva: va_getDriverName() returns 0
                libva: Trying to open /usr/lib64/va/drivers/fglrx_drv_video.so
                libva: va_openDriver() returns 0
                [hwdecode_demos] VA API version 0.31
                [hwdecode_demos] 1 display attributes available
                [hwdecode_demos]   VADisplayAttribDirectSurface     (get/---) min 0 max 0 value 0x0
                [hwdecode_demos] 4 profiles available
                [hwdecode_demos]   VAProfileMPEG2Simple
                [hwdecode_demos]   VAProfileMPEG2Main
                [hwdecode_demos]   VAProfileH264High
                [hwdecode_demos]   VAProfileVC1Advanced
                [hwdecode_demos] 1 entrypoints available for VAProfileH264High
                [hwdecode_demos]   VAEntrypointVLD
                xvba_video: XVBA_CreateDecode(): status 2
                VAAPI: use vaCopySurfaceGLX()
                [hwdecode_demos] vaCopySurfaceGLX(): unknown libva error
                ERROR: display failed
                ben@Obi-Wan ~/Desktop/hwdecode-demos-0.7.5 $ src/vaapi_ --glx
                vaapi_h264   vaapi_mpeg2  vaapi_mpeg4  vaapi_vc1    
                ben@Obi-Wan ~/Desktop/hwdecode-demos-0.7.5 $ src/vaapi_mpeg2 --glx
                vaapi_mpeg2
                ben@Obi-Wan ~/Desktop/hwdecode-demos-0.7.5 $ src/vaapi_mpeg2 --glx
                Display type 'glx'
                Hardware accelerator 'vaapi'
                [hwdecode_demos] VA display 0xdcff00
                libva: libva version 0.31.0-sds3
                libva: va_getDriverName() returns 0
                libva: Trying to open /usr/lib64/va/drivers/fglrx_drv_video.so
                libva: va_openDriver() returns 0
                [hwdecode_demos] VA API version 0.31
                [hwdecode_demos] 1 display attributes available
                [hwdecode_demos]   VADisplayAttribDirectSurface     (get/---) min 0 max 0 value 0x0
                [hwdecode_demos] 4 profiles available
                [hwdecode_demos]   VAProfileMPEG2Simple
                [hwdecode_demos]   VAProfileMPEG2Main
                [hwdecode_demos]   VAProfileH264High
                [hwdecode_demos]   VAProfileVC1Advanced
                [hwdecode_demos] 1 entrypoints available for VAProfileMPEG2Main
                [hwdecode_demos]   VAEntrypointIDCT
                ERROR: decode failed
                ben@Obi-Wan ~/Desktop/hwdecode-demos-0.7.5 $ src/vaapi_vc1 --glx
                Display type 'glx'
                Hardware accelerator 'vaapi'
                [hwdecode_demos] VA display 0x2784f00
                libva: libva version 0.31.0-sds3
                libva: va_getDriverName() returns 0
                libva: Trying to open /usr/lib64/va/drivers/fglrx_drv_video.so
                libva: va_openDriver() returns 0
                [hwdecode_demos] VA API version 0.31
                [hwdecode_demos] 1 display attributes available
                [hwdecode_demos]   VADisplayAttribDirectSurface     (get/---) min 0 max 0 value 0x0
                [hwdecode_demos] 4 profiles available
                [hwdecode_demos]   VAProfileMPEG2Simple
                [hwdecode_demos]   VAProfileMPEG2Main
                [hwdecode_demos]   VAProfileH264High
                [hwdecode_demos]   VAProfileVC1Advanced
                [hwdecode_demos] 1 entrypoints available for VAProfileVC1Advanced
                [hwdecode_demos]   VAEntrypointVLD
                xvba_video: XVBA_CreateDecode(): status 2
                VAAPI: use vaCopySurfaceGLX()
                [hwdecode_demos] vaCopySurfaceGLX(): unknown libva error
                ERROR: display failed

                Comment


                • @RemcoL

                  You can be sure the script does not harm your pc, it just hotfixes the packageing error for karmic in case of 9-10. It has serveral other patches for older drivers however.

                  Comment


                  • Ubuntu Karmic 64-bit works

                    I installed using your script (before the libstdc++5 patch) using the jaunty lib. Pretty much works fine. I watched an entire h.264 720p movie but the Planet Earth video sample mentioned in a previous post crashes X.

                    Comment


                    • Originally posted by RemcoL View Post
                      Nice, I thought, so I compiled mplayer-vaapi, which ran through after I linked the src dir from libva_0.31.0-1+sds7.tar.gz in /usr/includes as vm.

                      But running that mplayer against any file just gives me this:



                      Also vaapi is not in the list I get when running ./mplayer -vo help

                      If you need more info, let me know. I would really like that hardware acceleration
                      Have you compiled and installed the right libva library and headers? Is mplayer looking in the right place for them? Do they have the correct permissions? If mplayer isn't finding VA-API support, one of those is probably your problem.

                      Comment


                      • Also even if you don't use the vaapi feature, my script gives you a current svn mplayer (with some extra m2ts soundfix). There is a version with extra patches, thats with 2 instead of 1 and includes mplayer vaapi hotfixes. Of course if you run the script on nvidia hardware you get vdpau AND vaapi support to compare.

                        Comment


                        • Originally posted by makomk View Post
                          Have you compiled and installed the right libva library and headers? Is mplayer looking in the right place for them? Do they have the correct permissions? If mplayer isn't finding VA-API support, one of those is probably your problem.
                          Originally posted by RemcoL View Post
                          The fact that the hwdecode-demos said I don't have xvba could be because it didn't find headers, but unless I can get vainfo to actually work with the last xvba_video I'm not even trying to get that to work.
                          The same applies to mplayer-vaapi, not trying until vainfo gives me the go ahead

                          @Kano

                          If you could alter the mplayer script to:

                          1) only ask/demand for root *after* commandline options are parsed
                          2) have an option to build all the software but to put the created packages into a dir of the users choosing (or ./ as default)
                          3) have an option to dump the created mplayer into a dir (like --prefix would do I think)

                          then I would be happy to use the script. It would mean root wouldn't be required to build it. Compiling as a normal user is just a lot safer

                          It would totally rock if you could show a "I'm going to do *this*" screen before actually doing it, with a continue prompt. Like apt-get normally does, so you can double check you gave the right options.

                          To put it simple, I'm most interested in 3 while building it as a normal user. If it's too much trouble, forget about it. It's not like vainfo even works for me at the moment.

                          Comment


                          • Maybe you did not fully understand the scripts, all scripts create Debian packages and install em. The mplayer script does not delete the debs, you can fetch em from the /tmp dir. It is impossible to install the apps in a better way on Debian/Ubuntu. You can remove em easyly too with your favorite package manager. It does not use /usr/local or so just when a noob would use checkinstall or so. As the packages depend on each other you could of course use sudo for each dpkg -i command (and the apt-get) and run the rest as user. Feel free to do that mod, i won't do this as the target distro (Kanotix) does not use sudo.
                            Last edited by Kano; 11-06-2009, 02:15 PM.

                            Comment


                            • I have the very same issue RemcoL is having. I'm running Fedora 11. Here's the lazy way to get your mplayer with vaapi support and libva:
                              - Install them from http://www.happyassassin.net/video-e...tal/11/x86_64/
                              mplayer-vaapi is named mplayer-accelerated there.
                              - Then unpack the xvba-video package to /usr/lib64/

                              The video card is HD3450 with Catalyst 9.10. Here's what vainfo gives with latest xvba-video:
                              Code:
                              $ vainfo
                              libva: libva version 0.31.0-sds3
                              libva: va_getDriverName() returns 0
                              libva: Trying to open /usr/lib64/va/drivers/fglrx_drv_video.so
                              libva: va_openDriver() returns 0
                              vainfo: VA API version: 0.31
                              vainfo: Driver version: Splitted-Desktop Systems XvBA backend for VA API - 0.5.1
                              vainfo: Supported profile and entrypoints
                              xvba_video: XVBA_CreateContext(): status 11
                              X Error of failed request:  BadIDChoice (invalid resource ID chosen for this connection)
                                Major opcode of failed request:  1 (X_CreateWindow)
                                Resource id in failed request:  0x0
                                Serial number of failed request:  14
                                Current serial number in output stream:  14
                              So, I use xvba-video 0.43 and this is what I get:
                              Code:
                              $ vainfo
                              libva: libva version 0.31.0-sds3
                              libva: va_getDriverName() returns 0
                              libva: Trying to open /usr/lib64/va/drivers/fglrx_drv_video.so
                              libva: va_openDriver() returns 0
                              vainfo: VA API version: 0.31
                              vainfo: Driver version: Splitted-Desktop Systems XvBA backend for VA API - 0.4.3
                              vainfo: Supported profile and entrypoints
                                    VAProfileMPEG2Simple            : VAEntrypointIDCT
                                    VAProfileMPEG2Main              : VAEntrypointIDCT
                                    VAProfileH264Baseline           : VAEntrypointVLD
                                    VAProfileH264Main               : VAEntrypointVLD
                                    VAProfileH264High               : VAEntrypointVLD
                                    VAProfileVC1Simple              : VAEntrypointVLD
                                    VAProfileVC1Main                : VAEntrypointVLD
                                    VAProfileVC1Advanced            : VAEntrypointVLD
                              Any idea anyone?

                              Comment


                              • Why don't you use 0.5.1? In order to use 0.4.x you would need older mplayer snapshots.

                                Comment

                                Working...
                                X