Announcement

Collapse
No announcement yet.

GStreamer VA-API Plug-In Update Adds New Features

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

  • #16
    Originally posted by agd5f View Post
    There are actually four and all are pretty similar:

    VDPAU - Decode only. Designed by nvidia. Currently supported by radeon, nouveau, nvidia drivers.
    VA-API - Encode and Decode. Designed by Intel. Currently supported by intel driver.
    OpenMAX - Encode and Decode. Multi-platform Khronos standard. Currently supported by radeon driver.
    XvBA - Decode only. Designed by AMD. Currently supported by catalyst driver.

    The main difference is who designed them. They tend to be somewhat tailored to the designer's hardware.
    Intel will do their own thing but is there any reason why the other (open)drivers don't get behind openMAX for both encode and decode? The standard looks very complete with regards to hardware media acceleration, in general, but, likewise, pretty complicated.

    Comment


    • #17
      Originally posted by gbeauche View Post
      Firefox will not use hardware accelerated rendering and requires the decoded frames to be transferred to their own buffers. i.e. reading every single frame from GPU memory is necessary. If you want to compare Firefox behaviour's to the "optimal" one, you could probably use gst-launch-1.0 uri=file:///path/to/Video.mp4 video-sink="ximagesink" (similar to firefox behaviour), vs. gst-launch-1.0 uri=file:///path/to/Video/mp4 video-sink="vaapisink" (the default).

      Yes, we have NV12 -> I420 (HW accelerated through GPU memory) -> read back to I420 buffer -> I420 to RGB32 conversion through SSE2 code it seems. Not the fastest pipeline, but patches are welcome for Firefox.
      I was just comparing non vaapi vs vaapi in firefox. I was getting around 60% CPU without and around 40% with. Hence my comment on not seeing much improvement in CPU usage with vaapi. Thanks for the info.

      The screen flickering upon starting a video is the annoyance that remains then.

      Comment


      • #18
        BTW does anyone know if gst-omx is considered production ready for r600 drivers?

        Comment


        • #19
          Also i sometimes get this and a black screen in Youtube.

          Code:
          Jul 29 23:14:54 mainland kernel: [drm:radeon_uvd_cs_msg] *ERROR* No more free UVD handles!
          Jul 29 23:14:54 mainland kernel: [drm:radeon_cs_ib_chunk] *ERROR* Invalid command stream !

          Comment


          • #20
            The flickering happens when going from:
            Code:
            Jul 30 00:08:52 mainland kernel: switching from power state:
            Jul 30 00:08:52 mainland kernel:         ui class: performance
            Jul 30 00:08:52 mainland kernel:         internal class: none
            Jul 30 00:08:52 mainland kernel:         caps:
            Jul 30 00:08:52 mainland kernel:         uvd    vclk: 0 dclk: 0
            Jul 30 00:08:52 mainland kernel:                 power level 0    sclk: 10000 mclk: 15000 vddc: 950 vddci: 950
            Jul 30 00:08:52 mainland kernel:                 power level 1    sclk: 60000 mclk: 100000 vddc: 1100 vddci: 1100
            Jul 30 00:08:52 mainland kernel:                 power level 2    sclk: 77500 mclk: 100000 vddc: 1150 vddci: 1100
            Jul 30 00:08:52 mainland kernel:         status: c
            to

            Code:
            Jul 30 00:08:52 mainland kernel: switching to power state:
            Jul 30 00:08:52 mainland kernel:         ui class: none
            Jul 30 00:08:52 mainland kernel:         internal class: uvd
            Jul 30 00:08:52 mainland kernel:         caps: video
            Jul 30 00:08:52 mainland kernel:         uvd    vclk: 54000 dclk: 40000
            Jul 30 00:08:52 mainland kernel:                 power level 0    sclk: 30000 mclk: 100000 vddc: 950 vddci: 1100
            Jul 30 00:08:52 mainland kernel:                 power level 1    sclk: 30000 mclk: 100000 vddc: 950 vddci: 1100
            Jul 30 00:08:52 mainland kernel:                 power level 2    sclk: 77500 mclk: 100000 vddc: 1150 vddci: 1100
            Jul 30 00:08:52 mainland kernel:         status: r
            Also if you play a video on YT and then replay it it looks pixelated.

            Comment


            • #21
              I don't know if this thing is working at all.
              i made a simple 720p .mp4 file with an h264 inside and put it into /tmp/video.mp4
              then, in firefox i went to file:///tmp/video.mp4 and clicked on it.
              It started playing and the cpu usage wasn't that bad:
              Code:
              # top -b|grep -i fire
              24156 root      20   0 1404708 325856 112752 S  12,9  6,4   0:07.75 firefox
              24156 root      20   0 1404708 325868 112752 S  11,0  6,4   0:08.08 firefox
              24156 root      20   0 1404708 326248 112752 R  11,0  6,4   0:08.41 firefox
              24156 root      20   0 1404708 324432 112752 R  11,0  6,4   0:08.74 firefox
              24156 root      20   0 1404708 324700 112752 S  10,6  6,4   0:09.06 firefox
              24156 root      20   0 1404708 325232 112752 S  10,6  6,4   0:09.38 firefox
              24156 root      20   0 1345640 318492 112908 R  20,6  6,3   0:10.00 firefox
              firefox also reported in the console:
              Code:
              libva info: VA-API version 0.35.1
              libva info: va_getDriverName() returns 0
              libva info: Trying to open /usr/lib/dri/nvidia_drv_video.so
              libva info: Found init function __vaDriverInit_0_33
              libva info: va_openDriver() returns 0
              I i decided to test without vaapi acceleration and uninstalled gst-vaapi.
              This time firefox didn't reported anything in the console, but still the cpu usage was about the same:
              # top -b|grep -i fire
              Code:
              24887 root      20   0 1272800 330908 109036 S  12,8  6,5   0:04.39 firefox
              24887 root      20   0 1283300 314076 109632 R  24,6  6,2   0:05.13 firefox
              24887 root      20   0 1297868 315444 109664 S  18,6  6,2   0:05.69 firefox
              24887 root      20   0 1297868 312756 109720 S  19,9  6,2   0:06.29 firefox
              24887 root      20   0 1298060 311700 109720 S  18,3  6,1   0:06.84 firefox
              24887 root      20   0 1296652 309784 109720 S  20,0  6,1   0:07.44 firefox
              ...meh

              Comment


              • #22
                Originally posted by gbeauche View Post
                ... 114% of CPU ...
                LOL
                How do you achieve more than 100%?

                Comment


                • #23
                  Originally posted by kokoko3k View Post
                  ...meh
                  Maybe try with a 1080p file.

                  Comment


                  • #24
                    Originally posted by drSeehas View Post
                    LOL
                    How do you achieve more than 100%?
                    Simple. I have 4 cores. A program with multi-threading can use about 98% of all of them due to the 4-8% CPU the OS needs regardless.
                    So:
                    Core 0: 94%
                    Core 1: 98%
                    Core 2: 100%
                    Core 3: 100%

                    So that one program used 392%

                    In Linux (using top), if you're running 3 programs and they all say 100%, then you know they aren't multi-threaded.
                    Windows works the other way around. If you're running 3 programs and they all say 25%, then you know they aren't multi-threaded.

                    Comment


                    • #25
                      Originally posted by kokoko3k View Post
                      I don't know if this thing is working at all.
                      i made a simple 720p .mp4 file with an h264 inside and put it into /tmp/video.mp4
                      then, in firefox i went to file:///tmp/video.mp4 and clicked on it.
                      It started playing and the cpu usage wasn't that bad:
                      Code:
                      # top -b|grep -i fire
                      24156 root      20   0 1404708 325856 112752 S  12,9  6,4   0:07.75 firefox
                      24156 root      20   0 1404708 325868 112752 S  11,0  6,4   0:08.08 firefox
                      24156 root      20   0 1404708 326248 112752 R  11,0  6,4   0:08.41 firefox
                      24156 root      20   0 1404708 324432 112752 R  11,0  6,4   0:08.74 firefox
                      24156 root      20   0 1404708 324700 112752 S  10,6  6,4   0:09.06 firefox
                      24156 root      20   0 1404708 325232 112752 S  10,6  6,4   0:09.38 firefox
                      24156 root      20   0 1345640 318492 112908 R  20,6  6,3   0:10.00 firefox
                      firefox also reported in the console:
                      Code:
                      libva info: VA-API version 0.35.1
                      libva info: va_getDriverName() returns 0
                      libva info: Trying to open /usr/lib/dri/nvidia_drv_video.so
                      libva info: Found init function __vaDriverInit_0_33
                      libva info: va_openDriver() returns 0
                      I i decided to test without vaapi acceleration and uninstalled gst-vaapi.
                      This time firefox didn't reported anything in the console, but still the cpu usage was about the same:
                      # top -b|grep -i fire
                      Code:
                      24887 root      20   0 1272800 330908 109036 S  12,8  6,5   0:04.39 firefox
                      24887 root      20   0 1283300 314076 109632 R  24,6  6,2   0:05.13 firefox
                      24887 root      20   0 1297868 315444 109664 S  18,6  6,2   0:05.69 firefox
                      24887 root      20   0 1297868 312756 109720 S  19,9  6,2   0:06.29 firefox
                      24887 root      20   0 1298060 311700 109720 S  18,3  6,1   0:06.84 firefox
                      24887 root      20   0 1296652 309784 109720 S  20,0  6,1   0:07.44 firefox
                      ...meh
                      Here's your problem: You are using Firefox to open it. Web browsers are pretty awesome, but to do the same thing as a normal video player it requires more CPU, period. I know this because I had a Pentium 4 computer whose GPU died, and I could still watch 720p h.264 video in VLC (if I disable a few things) However, I couldn't even watch 480p video properly on youtube, heck, it was choppy when watching 360p! Using YTO (when it was still free not saying it's not worth paying for but anyways) I copied the download link address under the video and was able to watch 720p and stream it better using a media player on the desktop.

                      Comment


                      • #26
                        Is the screen flickering something to be expected when clock speeds (or whatever that is) change or is there something wrong with the r600 driver.

                        Comment


                        • #27
                          Originally posted by kokoko3k View Post
                          I don't know if this thing is working at all.
                          i made a simple 720p .mp4 file with an h264 inside and put it into /tmp/video.mp4
                          then, in firefox i went to file:///tmp/video.mp4 and clicked on it.
                          It started playing and the cpu usage wasn't that bad:
                          Code:
                          # top -b|grep -i fire
                          24156 root      20   0 1404708 325856 112752 S  12,9  6,4   0:07.75 firefox
                          24156 root      20   0 1404708 325868 112752 S  11,0  6,4   0:08.08 firefox
                          24156 root      20   0 1404708 326248 112752 R  11,0  6,4   0:08.41 firefox
                          24156 root      20   0 1404708 324432 112752 R  11,0  6,4   0:08.74 firefox
                          24156 root      20   0 1404708 324700 112752 S  10,6  6,4   0:09.06 firefox
                          24156 root      20   0 1404708 325232 112752 S  10,6  6,4   0:09.38 firefox
                          24156 root      20   0 1345640 318492 112908 R  20,6  6,3   0:10.00 firefox
                          firefox also reported in the console:
                          Code:
                          h
                          libva info: VA-API version 0.35.1
                          libva info: va_getDriverName() returns 0
                          libva info: Trying to open /usr/lib/dri/nvidia_drv_video.so
                          libva info: Found init function __vaDriverInit_0_33
                          libva info: va_openDriver() returns 0
                          I i decided to test without vaapi acceleration and uninstalled gst-vaapi.
                          This time firefox didn't reported anything in the console, but still the cpu usage was about the same:
                          # top -b|grep -i fire
                          Code:
                          24887 root      20   0 1272800 330908 109036 S  12,8  6,5   0:04.39 firefox
                          24887 root      20   0 1283300 314076 109632 R  24,6  6,2   0:05.13 firefox
                          24887 root      20   0 1297868 315444 109664 S  18,6  6,2   0:05.69 firefox
                          24887 root      20   0 1297868 312756 109720 S  19,9  6,2   0:06.29 firefox
                          24887 root      20   0 1298060 311700 109720 S  18,3  6,1   0:06.84 firefox
                          24887 root      20   0 1296652 309784 109720 S  20,0  6,1   0:07.44 firefox
                          ...meh
                          Try this method:

                          Originally posted by gbeauche View Post
                          Firefox will not use hardware accelerated rendering and requires the decoded frames to be transferred to their own buffers. i.e. reading every single frame from GPU memory is necessary. If you want to compare Firefox behaviour's to the "optimal" one, you could probably use gst-launch-1.0 uri=file:///path/to/Video.mp4 video-sink="ximagesink" (similar to firefox behaviour), vs. gst-launch-1.0 uri=file:///path/to/Video/mp4 video-sink="vaapisink" (the default).

                          Yes, we have NV12 -> I420 (HW accelerated through GPU memory) -> read back to I420 buffer -> I420 to RGB32 conversion through SSE2 code it seems. Not the fastest pipeline, but patches are welcome for Firefox.

                          Comment


                          • #28
                            I have an Intel NUC D54250WYK that i use for HTPC. Normally I use XBMC to play movies and that works great. The box has a Haswell core i5-4250U with HD5000 GPU. Seeing as the latest gst-vaapi release supports MVC 3D decoding I'm really anxious to get a gstreamer based movie player going.
                            Only problem is that when I try to play a movie it fails with the "intel_do_flush_locked no such file or directory" error. This happen with pretty much every media file I have (mostly mkv/h264).
                            Anyone else seeing this? Do you have an intel card working with gstreamer media players?
                            Driver stack:
                            Kernel 3.16-rc7
                            Mesa 10.3 git
                            libva and libva-intel-driver from git
                            libdrm 2.4.56
                            xf86-video-intel git
                            x.org 1.16.0
                            Tried stable versions of every component in the stack as well with the same result. No special xorg.conf options, no nothing.

                            Comment

                            Working...
                            X