I checked the dts and kernel compilation configuration, and it seems that vpu and rkvdec have been enabled, as indicated by the kernel logs.
sudo dmesg | grep -E "vpu"
[ 19.082561] hantro-vpu ff650000.video-codec: Adding to iommu group 0
[ 19.083131] hantro-vpu ff650000.video-codec: registered rockchip,rk3399-vpu-enc as /dev/video1
[ 19.083259] hantro-vpu ff650000.video-codec: registered rockchip,rk3399-vpu-dec as /dev/video2
But when using ffmpeg mpp, it behaves very strangely.
ffplay -vcodec h264_rkmpp_decoder ~/VID_20230227_163234.mp4
ffplay version n6.0 Copyright (c) 2003-2023 the FFmpeg developers
built with gcc 12.1.0 (GCC)
configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libjxl --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librav1e --enable-librsvg --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpl --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-libzimg --enable-opencl --enable-opengl --enable-shared --enable-version3 --enable-librist --disable-vulkan --enable-rkmpp --host-cflags='"-fPIC"'
libavutil 58. 2.100 / 58. 2.100
libavcodec 60. 3.100 / 60. 3.100
libavformat 60. 3.100 / 60. 3.100
libavdevice 60. 1.100 / 60. 1.100
libavfilter 9. 3.100 / 9. 3.100
libswscale 7. 1.100 / 7. 1.100
libswresample 4. 10.100 / 4. 10.100
libpostproc 57. 1.100 / 57. 1.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/test/VID_20230227_163234.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
creation_time : 2023-02-27T08:32:43.000000Z
com.android.version: 12
com.android.manufacturer: Xiaomi
com.android.model: M2012K11AC
Duration: 00:00:07.47, start: 0.000000, bitrate: 49993 kb/s
Stream #0:0[0x1](eng): Video: h264 (Baseline) (avc1 / 0x31637661), yuvj420p(pc, bt470bg/bt470bg/smpte170m, progressive), 3840x2160, 50412 kb/s, 30.03 fps, 30.03 tbr, 90k tbn (default)
Metadata:
creation_time : 2023-02-27T08:32:43.000000Z
handler_name : VideoHandle
vendor_id : [0][0][0][0]
Side data:
displaymatrix: rotation of -90.00 degrees
Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 320 kb/s (default)
Metadata:
creation_time : 2023-02-27T08:32:43.000000Z
handler_name : SoundHandle
vendor_id : [0][0][0][0]
[h264_rkmpp_decoder @ 0xffff94064730] Picture format is yuv420p.
[h264_rkmpp_decoder @ 0xffff94064730] Failed to initialize MPP context (code = -1).
[h264_rkmpp_decoder @ 0xffff94064730] Failed to initialize RKMPP Codec.
3.43 M-A: -0.000 fd= 0 aq= 39KB vq= 0KB sq= 0B f=0/0
10月 21 12:50:06 ARM mpp[72596]: vcodec_service: open vcodec_service (null) failed
10月 21 12:50:06 ARM mpp[72596]: hal_h264d_api: mpp_dev_init failed ret: -1
10月 21 12:50:06 ARM mpp[72596]: mpp_hal: mpp_hal_init hal h264d_rkdec init failed ret -1
10月 21 12:50:06 ARM mpp[72596]: mpp_hal: mpp_hal_init could not found coding type 7
10月 21 12:50:06 ARM mpp[72596]: mpp_dec: mpp_dec_init could not init hal
10月 21 12:50:06 ARM mpp[72596]: mpp_time: mpp_clock_put invalid clock (nil)
10月 21 12:50:06 ARM mpp[72596]: mpp_time: mpp_clock_put invalid clock (nil)
10月 21 12:50:06 ARM mpp[72596]: mpp_time: mpp_clock_put invalid clock (nil)
10月 21 12:50:06 ARM mpp[72596]: mpp_time: mpp_clock_put invalid clock (nil)
10月 21 12:50:06 ARM mpp[72596]: mpp_time: mpp_clock_put invalid clock (nil)
10月 21 12:50:06 ARM mpp[72596]: mpp_time: mpp_clock_put invalid clock (nil)
10月 21 12:50:06 ARM mpp[72596]: mpp_time: mpp_clock_put invalid clock (nil)
10月 21 12:50:06 ARM mpp[72596]: mpp_time: mpp_clock_put invalid clock (nil)
10月 21 12:50:06 ARM mpp[72596]: mpp_time: mpp_clock_put invalid clock (nil)
10月 21 12:50:06 ARM mpp[72596]: mpp_time: mpp_clock_put invalid clock (nil)
10月 21 12:50:06 ARM mpp[72596]: mpp_time: mpp_clock_put invalid clock (nil)
10月 21 12:50:06 ARM mpp[72596]: mpp: error found on mpp initialization
10月 21 12:50:10 ARM ffplay[72596]: mpp_mem_pool: put_pool found 4 used buffer size 224
Does MPP use a hard coded decoder path /dev/vpuservice
?