Jump to content

Hardware accelerated video decoding in Kodi on Orange PI PC Plus


szx

Recommended Posts

Hello,

 

Is there a guide / tutorial on making Kodi run with hardware acceleration enabled on Armbian on Orange PI PC Plus? e.g. like how LibreELEC does it.

 

I have found a bunch of information on different sites and forums, but I can't put it all together.

 

What I know so far:

* Apparently the HW-accelerated decoding is supposed to be done on Kodi's side via VDPAU API

* The Kodi build in Armbian repos does not have built-in support for libvdpau (?)

* ffmpeg, the video decoding library used by Kodi, doesn't support Allwinner GPU out of the box and needs patching

* Kodi needs to be re-compiled with the patched ffmpeg version

 

 

 

Link to comment
Share on other sites

Your understanding is incorrect:

 

1. VDPAU was used only with vendor kernel, which is obsolete for a long time. Armbian uses only mainline kernel.

2. No need to worry due to 1)

3. GPU doesn't do anything for video decoding. That's desktop PC concept. Embedded SoCs have dedicated VPUs (video processing unit). But it's true that ffmpeg need patching. More specifically, it needs v4l2 request api support.

4. That's not necessary if ffmpeg libraries are patched and installed system wide.

 

Last but not least, v4l2 request video decoding support is tested only in Kodi GBM mode. This means that it must be started from console, when no desktop environment is running. Maybe wayland mode would work, but I don't know. Certainly it won't work under X11. You have to use software decoding there.

Link to comment
Share on other sites

OK, thank you for the clarifications, jernej.

 

I've managed to compile FFmpeg-Cedrus (https://github.com/stulluk/FFmpeg-Cedrus) with the 4.4 release version of FFmpeg (same as used by Kodi) and installed the shared libraries (libav*) system-wide to a location used by Kodi (/lib/arm-linux-gnueabihf/ on my Armbian system).

 

But the thing is, Kodi still uses SW decoding for some reason. And it appears to be already running in GBM mode as you mentioned. I'm using the version from the team-xbmc PPA for Ubuntu.

 

/usr/lib/arm-linux-gnueabihf/kodi/kodi.bin --standalone --windowing=gbm

 

Video decoder: ff-h264 (SW)

 

FFmpeg configure flags:
 

--enable-shared \

--enable-nonfree \

--enable-gpl \

--enable-version3 \

--enable-vdpau \

--enable-libx264 \

--enable-libmp3lame \

--enable-libpulse \

--enable-libv4l2 \

--enable-openssl

 

Any clues?

 

On LibreELEC the info panel shows:

 

Video decoder: ff-h264-drm_prime (HW)

 

Linux kernel version: 6.1.7-sunxi

Edited by szx
Link to comment
Share on other sites

FFmpeg says that it can use `drm` hwaccel method, so this is not caused by it.

 

Found an interesting condition inside Kodi settings XML definitions:

 

        <setting id="videoplayer.useprimedecoder" type="boolean" label="13430" help="36172">
          <requirement>HAS_GLES</requirement>
          <visible>false</visible>
          <level>2</level>
          <default>false</default>
          <control type="toggle" />
        </setting>

 

It looks like in order to be able to use DRM PRIME, Kodi must be compiled with GLES support.

 

#ifdef HAS_GLES
  m_simpleConditions.insert("has_gles");
#endif

 

However, the version of Kodi from the official XBMC PPA was not.

 

So basically, yes, Kodi must be recopiled to get HW acceleration to work.

 

Update:

 

Actually, it turns out that Team Kodi don't provide ARM builds in the PPA, all this time I was using the Debian build (lol).

 

Edited by szx
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines