Ubuntu VPU Support Decode and Encode

My bad, i accidently booted to the old kernel.

rebootet to new one:

USB keyb/mouse doesn’t work

HDMI: display sets to 1080 on 4k TV

/dev/video0 - not present.

I’ll double check ther config/dts

P.S. is there a DSA support in 6.0?

Where did you found it? Could you point please?

dsa-support is mainline since 6.0, also applied the speed fix.

do you use my defconfig or your one? make sure the hantro is enabled (i guess you ned to disable the CONFIG_MEDIA_SUPPORT_FILTER too). for usb-keyboard…it looks like my defconfig miss the driver

edit: INPUT_KEYBOARD and USB_HID should be enough

your log attached :wink: the ioctrls…do not know if they needed, but it looks like it is not complete working

Input ioctls:
        test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
        test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
        test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
        test VIDIOC_ENUMAUDIO: OK (Not Supported)
        test VIDIOC_G/S/ENUMINPUT: OK (Not Supported)
        test VIDIOC_G/S_AUDIO: OK (Not Supported)
        Inputs: 0 Audio Inputs: 0 Tuners: 0

Output ioctls:
        test VIDIOC_G/S_MODULATOR: OK (Not Supported)
        test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
        test VIDIOC_ENUMAUDOUT: OK (Not Supported)
        test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
        test VIDIOC_G/S_AUDOUT: OK (Not Supported)
        Outputs: 0 Audio Outputs: 0 Modulators: 0

Input is most likely for input devices: cameras/TV-tuners/capture cards/etc so it’s not a promlem.

Outputs - interesting… I suppose OK is better than FAIL but idk all these parameters meanings. Anyway it’s a driver internals. And if i’s supported by HW it might be not implemented in driver.

ok, input not needed makes sense…but codec-ioctrls maybe needed too…there is encoding and decoding commands :wink:

Ok using gstreamer vith gst-plugins-bad (built with -Dv4l2codecs=enabled)

I got interrupts on video decoder:

bpi-r2pro /usr/lib64/gstreamer-1.0 # cat /proc/interrupts | grep video
 29:       8271          0          0          0     GICv3 171 Level     fdea0000.video-codec

command to run:

gst-launch-1.0 playbin uri=file:///path/to/file_video.avi

The speed/cpu_usage/picture quality are the same as in vlc w/o interrupts(and HW accel?) (tested on 720p and 1080p)

I’ll continue tommorow.

Could you please point me how to use decoding in I also tried Armbian_22.08.0-trunk_Bananapir2pro_sid_edge_5.19.0_xfce_desktop.img

the decoder driver is loaded - it’s present in /proc/interrupts

But i couldn’t use th hw decoding using mpv - mp4 file, chrome/firefox - youtube

Or should i use an image with BSP kernel?

What and how do you check ? The best support for full - screen video playback is in LE . There is no HW in browsers yet, browser developers must add it, or you must assemble and configure all components manually.

LE - is it a player? I used mpv (the default one)

I guess LibreElec image :slight_smile:

Have you guys tried this fork of ffmpeg:

jernejsk/FFmpeg (v4l2-request-hwaccel-4.4)

LibreElec generates it’s patches from this source.

I’ve started experimenting with building kernel from LibreElec’s config and building this ffmpeg fork. Just finished building it, for my old RK3288 board, cause I do not have a RK3588 yet.

In case it was not a typo

R2pro is rk3568

Rk3588 does not have mainline support yet. I saw some basic support patches (clock,pinctrl,…),but no hdmi/gpu/hantro yet.

It is not a typo, I mean to buy one RK3588 when it is available. But for now, I only have a RK3288 (and a RK3399 chromebook tablet for only EUR 99 new, nice for later experiments)

But anyway, I guess you need to use v4l2-request for RK3288, RK3328, RK3399, RK3568 and RK3588. (I believe v4l2-m2m is not for any rockchip chipset)

That’s why I mentioned that fork of ffmpeg.

Yes. :slight_smile: LE = KODI

The latest version of LE for BPIR2pro already supports installation on eMMC and you can get a good home theater system.

interesting… KODI on top of gentoo lets play videos upt o 720p smoothly whith 1080p display resolution, with ~100% background cpu usage:

not playing:

top - 00:34:31 up  1:42,  6 users,  load average: 4.52, 5.47, 4.60
Tasks: 271 total,   5 running, 266 sleeping,   0 stopped,   0 zombie
%Cpu(s): 94.6 us,  3.8 sy,  0.0 ni,  0.0 id,  0.0 wa,  1.4 hi,  0.2 si,  0.0 st
MiB Mem :   1981.4 total,    687.3 free,    982.1 used,    312.0 buff/cache
MiB Swap:   4096.0 total,   3581.5 free,    514.5 used.    832.1 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                                                                                                       
23379 portage   20   0  250076 224100  19424 R  97.0  11.0   0:17.68 cc1plus                                                                                                                                                       
23402 portage   20   0  130416 109080  15796 R  97.0   5.4   0:05.95 cc1plus                                                                                                                                                       
23375 portage   20   0  224512 206548  19572 R  96.4  10.2   0:22.51 cc1plus                                                                                                                                                       
23399 portage   20   0  172880 149416  15796 R  95.4   7.4   0:09.51 cc1plus                                                                                                                                                       
23380 portage   20   0    9408   4180   2684 S   1.0   0.2   0:00.03 as                                                                                                                                                            
23404 root      20   0    7540   2548   1824 R   1.0   0.1   0:00.09 top                                                                                                                                                           
 3488 zabbix    20   0 1463116  17316   4200 S   0.7   0.9   0:30.92 zabbix_agent2                                                                                                                                                 
23376 portage   20   0   10576   5528   2720 S   0.7   0.3   0:00.09 as                                                                                                                                                            

playing:

top - 00:36:17 up  1:44,  6 users,  load average: 5.83, 5.46, 4.67
Tasks: 273 total,   7 running, 266 sleeping,   0 stopped,   0 zombie
%Cpu(s): 89.4 us,  8.2 sy,  0.0 ni,  0.0 id,  0.0 wa,  1.9 hi,  0.5 si,  0.0 st
MiB Mem :   1981.4 total,    273.5 free,   1233.8 used,    474.1 buff/cache
MiB Swap:   4096.0 total,   3583.2 free,    512.8 used.    517.8 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                                                                                                       
23514 alex      20   0 2691940 186888  82124 R 113.4   9.2   0:36.89 kodi-x11                                                                                                                                                      
23601 portage   20   0  195872 170728  15996 R  71.8   8.4   0:10.21 cc1plus                                                                                                                                                       
23595 portage   20   0  231416 208592  16000 R  65.2  10.3   0:13.31 cc1plus                                                                                                                                                       
23575 portage   20   0  277364 251752  17388 R  60.7  12.4   0:18.15 cc1plus                                                                                                                                                       
23598 portage   20   0  223432 195152  16068 R  58.7   9.6   0:12.45 cc1plus                                                                                                                                                       
 3188 root      20   0  290380  29996  21812 D   4.6   1.5   0:23.61 X                                                                                                                                                             
 3827 alex      20   0  947076   6408   4600 S   3.0   0.3   0:08.84 pulseaudio                                                                                                                                                    
   42 root      39  19       0      0      0 S   1.3   0.0   0:06.01 khugepaged                                                                                                                                                    
 3488 zabbix    20   0 1463116  17024   4200 S   1.3   0.8   0:31.52 zabbix_agent2                                                                                                                                                 

it’s 6.0-rc w/o VPU dts/driver

I’ll defenetly try, but i need a SD image

Is the LE built with mainline linux? if so during playing does the vpu interrupts increases? (cat /proc/interrupts | grep video)

I’m seeking for router/wifi/HT combo :slight_smile: (that’s why only SD)

1 Like

Kodi uses ffmpeg, so you’ll need a v4l2-request fork of ffmpeg to use hwaccel. I can only find that prebuild in LibreElec (not for RK3568 yet?), which is based on the github repo I mentioned before…

Previously i’ve tested raw gstreamer with v4l2-codecs. Result was near the same as w/o v4l2 :man_shrugging:

In kernel config I see:

CONFIG_VIDEO_HANTRO=m
CONFIG_VIDEO_HANTRO_ROCKCHIP=y
CONFIG_VIDEO_ROCKCHIP_VDEC=m

Then build https://github.com/jernejsk/FFmpeg/tree/v4l2-request-hwaccel-4.4

According to: PKGBUILD - ffmpeg-v4l2-request-git Needs to build with:

	./configure \
        --prefix='/usr' \
        --disable-debug \
        --disable-static \
        --disable-stripping \
        --enable-fontconfig \
        --enable-gmp \
        --enable-gnutls \
        --enable-gpl \
        --enable-ladspa \
        --enable-libass \
        --enable-libbluray \
        --enable-libdrm \
        --enable-libfreetype \
        --enable-libfribidi \
        --enable-libgsm \
        --enable-libiec61883 \
        --enable-libjack \
        --enable-libmodplug \
        --enable-libmp3lame \
        --enable-libopencore_amrnb \
        --enable-libopencore_amrwb \
        --enable-libopenjpeg \
        --enable-libopus \
        --enable-libpulse \
        --enable-libsoxr \
        --enable-libspeex \
        --enable-libssh \
        --enable-libtheora \
        --enable-libv4l2 \
        --enable-libvidstab \
        --enable-libvorbis \
        --enable-libvpx \
        --enable-libwebp \
        --enable-libx264 \
        --enable-libx265 \
        --enable-libxcb \
        --enable-libxml2 \
        --enable-libxvid \
        --enable-omx \
        --enable-shared \
        --enable-version3 \
        --enable-libudev \
        --enable-v4l2-request \
        --enable-pic

	make

But then use the most recent ffmpeg4.4 version (that package uses 4.2.2).

Make sure you also have the most recent linux (api) headers.

Then I guess try something like:

ffmpeg -i input.mp4 -vf scale=320:-1 output.mp4

And check the output on console if hwaccel is being used. But I have yet still to try it on my own system.

1 Like

KODI gento != KODI LE These are completely different versions and systems, there is no optimization for HW in gentoo).

https://forum.banana-pi.org/t/armbian-and-libreelec-for-bpi-r2-pro-rk3568/13308/20

the latest version of LE for R2pro uses the 5.19.3 kernel

Armbian works with full-screen video up to 1440p without any problems (it is important to have good cooling) and can be used in any version.

1 Like

LE has been available for BPIR2pro for a long time. See the link in the previous post or on the LE forum