2025-03-10, 04:56 PM
(2025-03-10, 01:58 PM)nyanmisaka Wrote: You are running a custom version of FFmpeg instead of the Jellyfin-FFmpeg we provide.
Therefore your FFmpeg does not contain our patches for RKMPP libraries. Please get the latest Jellyfin-FFmpeg from here and try again.
https://github.com/jellyfin/jellyfin-ffmpeg/releases
Thanks for that hint.
Code:
$ sudo ffmpeg -v debug -init_hw_device rkmpp=rk -init_hw_device opencl=ocl@rk
ffmpeg version 7.0.2-Jellyfin Copyright (c) 2000-2024 the FFmpeg developers
built with gcc 14.2.0 (crosstool-NG 1.26.0.120_4d36f27)
configuration: --prefix=/ffbuild/prefix --pkg-config=pkg-config --pkg-config-flags=--static --cross-prefix=aarch64-ffbuild-linux-gnu- --arch=aarch64 --target-os=linux --extra-version=Jellyfin --extra-cflags= --extra-cxxflags= --extra-ldflags= --extra-ldexeflags=-pie --extra-libs=-ldl --enable-gpl --enable-version3 --disable-ffplay --disable-debug --disable-doc --disable-ptx-compression --disable-sdl2 --disable-libxcb --disable-xlib --enable-lto=auto --enable-iconv --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-libxml2 --enable-openssl --enable-lzma --enable-fontconfig --enable-libharfbuzz --enable-libvorbis --enable-opencl --enable-chromaprint --enable-libdav1d --enable-libfdk-aac --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvpx --enable-libwebp --enable-libopenmpt --enable-rkmpp --enable-rkrga --enable-libsrt --enable-libsvtav1 --enable-libdrm --enable-vulkan --enable-libshaderc --enable-libplacebo --enable-libx264 --enable-libx265 --enable-libzimg --enable-libzvbi
libavutil 59. 8.100 / 59. 8.100
libavcodec 61. 3.100 / 61. 3.100
libavformat 61. 1.100 / 61. 1.100
libavdevice 61. 1.100 / 61. 1.100
libavfilter 10. 1.100 / 10. 1.100
libswscale 8. 1.100 / 8. 1.100
libswresample 5. 1.100 / 5. 1.100
libpostproc 58. 1.100 / 58. 1.100
Splitting the commandline.
Reading option '-v' ... matched as option 'v' (set logging level) with argument 'debug'.
Reading option '-init_hw_device' ... matched as option 'init_hw_device' (initialise hardware device) with argument 'rkmpp=rk'.
Reading option '-init_hw_device' ... matched as option 'init_hw_device' (initialise hardware device) with argument 'opencl=ocl@rk'.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument debug.
Applying option init_hw_device (initialise hardware device) with argument rkmpp=rk.
Applying option init_hw_device (initialise hardware device) with argument opencl=ocl@rk.
arm_release_ver: g13p0-01eac0, rk_so_ver: 10
Failed creating base context during opening of kernel driver.
Kernel module may not have been loaded
[AVHWDeviceContext @ 0xaaab013600c0] 1 OpenCL platforms found.
[AVHWDeviceContext @ 0xaaab013600c0] 1 OpenCL devices found on platform "ARM Platform".
arm_release_ver: g13p0-01eac0, rk_so_ver: 10
Failed creating base context during opening of kernel driver.
Kernel module may not have been loaded
[AVHWDeviceContext @ 0xaaab013600c0] 0.0: ARM Platform / Unknown Device
Segmentation fault
Looks like the arch package was not correctly built:
Code:
$ pacman -Ss jellyfin-ffmpeg
extra/jellyfin-ffmpeg 1:7.0.2p7-1 [0 B 63.71 MiB] [Installed]
Jellyfin fork of ffmpeg
Now I only need to find out whats wrong with OpenCL.
But thats gotta be my fault.
Do you have any hints regarding this as well ?
The coredump originates from oepncl
Code:
$ clinfo
arm_release_ver: g13p0-01eac0, rk_so_ver: 10
Failed creating base context during opening of kernel driver.
Kernel module may not have been loaded
Number of platforms 1
Platform Name ARM Platform
Platform Vendor ARM
Platform Version OpenCL 3.0 v1.g13p0-01eac0.a8b6f0c7e1f83c654c60d1775112dbe4
Platform Profile FULL_PROFILE
Platform Extensions cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_khr_3d_image_writes cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_fp16 cl_khr_icd cl_khr_egl_image cl_khr_image2d_from_buffer cl_khr_depth_images cl_khr_subgroups cl_khr_subgroup_extended_types cl_khr_subgroup_non_uniform_vote cl_khr_subgroup_ballot cl_khr_subgroup_non_uniform_arithmetic cl_khr_subgroup_shuffle cl_khr_subgroup_shuffle_relative cl_khr_subgroup_clustered_reduce cl_khr_subgroup_rotate cl_khr_il_program cl_khr_priority_hints cl_khr_create_command_queue cl_khr_spirv_no_integer_wrap_decoration cl_khr_extended_versioning cl_khr_device_uuid cl_khr_suggested_local_work_size cl_khr_extended_bit_ops cl_khr_integer_dot_product cl_khr_semaphore cl_khr_external_semaphore cl_khr_external_semaphore_sync_fd cl_khr_command_buffer cl_arm_core_id cl_arm_printf cl_arm_non_uniform_work_group_size cl_arm_import_memory cl_arm_import_memory_dma_buf cl_arm_import_memory_host cl_arm_integer_dot_product_int8 cl_arm_integer_dot_product_accumulate_int8 cl_arm_integer_dot_product_accumulate_saturate_int8 cl_arm_scheduling_controls cl_arm_controlled_kernel_termination cl_ext_cxx_for_opencl cl_ext_image_tiling_control cl_ext_image_requirements_info cl_ext_image_from_buffer
Platform Extensions with Version cl_khr_global_int32_base_atomics 0x400000 (1.0.0)
cl_khr_global_int32_extended_atomics 0x400000 (1.0.0)
cl_khr_local_int32_base_atomics 0x400000 (1.0.0)
cl_khr_local_int32_extended_atomics 0x400000 (1.0.0)
cl_khr_byte_addressable_store 0x400000 (1.0.0)
cl_khr_3d_image_writes 0x400000 (1.0.0)
cl_khr_int64_base_atomics 0x400000 (1.0.0)
cl_khr_int64_extended_atomics 0x400000 (1.0.0)
cl_khr_fp16 0x400000 (1.0.0)
cl_khr_icd 0x400000 (1.0.0)
cl_khr_egl_image 0x400000 (1.0.0)
cl_khr_image2d_from_buffer 0x400000 (1.0.0)
cl_khr_depth_images 0x400000 (1.0.0)
cl_khr_subgroups 0x400000 (1.0.0)
cl_khr_subgroup_extended_types 0x400000 (1.0.0)
cl_khr_subgroup_non_uniform_vote 0x400000 (1.0.0)
cl_khr_subgroup_ballot 0x400000 (1.0.0)
cl_khr_subgroup_non_uniform_arithmetic 0x400000 (1.0.0)
cl_khr_subgroup_shuffle 0x400000 (1.0.0)
cl_khr_subgroup_shuffle_relative 0x400000 (1.0.0)
cl_khr_subgroup_clustered_reduce 0x400000 (1.0.0)
cl_khr_subgroup_rotate 0x400000 (1.0.0)
cl_khr_il_program 0x400000 (1.0.0)
cl_khr_priority_hints 0x400000 (1.0.0)
cl_khr_create_command_queue 0x400000 (1.0.0)
cl_khr_spirv_no_integer_wrap_decoration 0x400000 (1.0.0)
cl_khr_extended_versioning 0x400000 (1.0.0)
cl_khr_device_uuid 0x400000 (1.0.0)
cl_khr_suggested_local_work_size 0x400000 (1.0.0)
cl_khr_extended_bit_ops 0x400000 (1.0.0)
cl_khr_integer_dot_product 0x800000 (2.0.0)
cl_khr_semaphore 0x9000 (0.9.0)
cl_khr_external_semaphore 0x9000 (0.9.0)
cl_khr_external_semaphore_sync_fd 0x9000 (0.9.0)
cl_khr_command_buffer 0x9000 (0.9.0)
cl_arm_core_id 0x400000 (1.0.0)
cl_arm_printf 0x400000 (1.0.0)
cl_arm_non_uniform_work_group_size 0x400000 (1.0.0)
cl_arm_import_memory 0x400000 (1.0.0)
cl_arm_import_memory_dma_buf 0x400000 (1.0.0)
cl_arm_import_memory_host 0x400000 (1.0.0)
cl_arm_integer_dot_product_int8 0x400000 (1.0.0)
cl_arm_integer_dot_product_accumulate_int8 0x400000 (1.0.0)
cl_arm_integer_dot_product_accumulate_saturate_int8 0x400000 (1.0.0)
cl_arm_scheduling_controls 0x4000 (0.4.0)
cl_arm_controlled_kernel_termination 0x400000 (1.0.0)
cl_ext_cxx_for_opencl 0x400000 (1.0.0)
cl_ext_image_tiling_control 0x1000 (0.1.0)
cl_ext_image_requirements_info 0x5000 (0.5.0)
cl_ext_image_from_buffer 0x400000 (1.0.0)
Platform Numeric Version 0xc00000 (3.0.0)
Platform Extensions function suffix ARM
Platform Host timer resolution 1ns
Platform Semaphore types Binary
Platform External semaphore import types 0
Platform External semaphore export types 0
Platform Name ARM Platform
Number of devices 1
arm_release_ver: g13p0-01eac0, rk_so_ver: 10
Failed creating base context during opening of kernel driver.
Kernel module may not have been loaded
Device Name <printDeviceInfo:0: get CL_DEVICE_NAME size : error -6>
Device Vendor ARM
arm_release_ver: g13p0-01eac0, rk_so_ver: 10
Failed creating base context during opening of kernel driver.
Kernel module may not have been loaded
Device Vendor ID <printDeviceInfo:2: get CL_DEVICE_VENDOR_ID : error -6>
Device Version OpenCL 3.0 v1.g13p0-01eac0.a8b6f0c7e1f83c654c60d1775112dbe4
arm_release_ver: g13p0-01eac0, rk_so_ver: 10
Failed creating base context during opening of kernel driver.
Kernel module may not have been loaded
Device UUID <printDeviceInfo:6: get CL_DEVICE_UUID_KHR : error -6>
arm_release_ver: g13p0-01eac0, rk_so_ver: 10
Failed creating base context during opening of kernel driver.
Kernel module may not have been loaded
Driver UUID <printDeviceInfo:7: get CL_DRIVER_UUID_KHR : error -6>
arm_release_ver: g13p0-01eac0, rk_so_ver: 10
Failed creating base context during opening of kernel driver.
Kernel module may not have been loaded
Valid Device LUID <printDeviceInfo:8: get CL_DEVICE_LUID_VALID_KHR : error -6>
arm_release_ver: g13p0-01eac0, rk_so_ver: 10
Failed creating base context during opening of kernel driver.
Kernel module may not have been loaded
Device LUID <printDeviceInfo:9: get CL_DEVICE_LUID_KHR : error -6>
arm_release_ver: g13p0-01eac0, rk_so_ver: 10
Failed creating base context during opening of kernel driver.
Kernel module may not have been loaded
Device Node Mask <printDeviceInfo:10: get CL_DEVICE_NODE_MASK_KHR : error -6>
Device Numeric Version 0xc00000 (3.0.0)
Driver Version 3.0
Device OpenCL C Version OpenCL C 3.0 v1.g13p0-01eac0.a8b6f0c7e1f83c654c60d1775112dbe4
Device OpenCL C Numeric Version 0xc00000 (3.0.0)
Device OpenCL C all versions OpenCL C 0x400000 (1.0.0)
OpenCL C 0x401000 (1.1.0)
OpenCL C 0x402000 (1.2.0)
OpenCL C 0x800000 (2.0.0)
OpenCL C 0xc00000 (3.0.0)
Device OpenCL C features __opencl_c_images 0x400000 (1.0.0)
__opencl_c_int64 0x400000 (1.0.0)
__opencl_c_3d_image_writes 0x402000 (1.2.0)
__opencl_c_atomic_order_acq_rel 0x800000 (2.0.0)
__opencl_c_atomic_order_seq_cst 0x800000 (2.0.0)
__opencl_c_atomic_scope_device 0x800000 (2.0.0)
__opencl_c_atomic_scope_all_devices 0x800000 (2.0.0)
__opencl_c_device_enqueue 0x800000 (2.0.0)
__opencl_c_generic_address_space 0x800000 (2.0.0)
__opencl_c_pipes 0x800000 (2.0.0)
__opencl_c_program_scope_global_variables 0x800000 (2.0.0)
__opencl_c_read_write_images 0x800000 (2.0.0)
__opencl_c_subgroups 0x800000 (2.0.0)
__opencl_c_work_group_collective_functions 0x800000 (2.0.0)
Device C++ for OpenCL Numeric Version 0x400000 (1.0.0)
Latest conformance test passed v2021-03-05-00
Device Type GPU
Device Profile FULL_PROFILE
Device Available Yes
Compiler Available Yes
Linker Available Yes
arm_release_ver: g13p0-01eac0, rk_so_ver: 10
Failed creating base context during opening of kernel driver.
Kernel module may not have been loaded
Max compute units <printDeviceInfo:32: get CL_DEVICE_MAX_COMPUTE_UNITS : error -6>
arm_release_ver: g13p0-01eac0, rk_so_ver: 10
Failed creating base context during opening of kernel driver.
Kernel module may not have been loaded
Available core IDs (ARM) <printDeviceInfo:33: get CL_DEVICE_COMPUTE_UNITS_BITFIELD_ARM : error -6>
arm_release_ver: g13p0-01eac0, rk_so_ver: 10
Failed creating base context during opening of kernel driver.
Kernel module may not have been loaded
Max clock frequency <printDeviceInfo:40: get CL_DEVICE_MAX_CLOCK_FREQUENCY : error -6>
Device Partition (core)
Max number of sub-devices 0
Supported partition types None
Supported affinity domains (n/a)
Max work item dimensions 3
arm_release_ver: g13p0-01eac0, rk_so_ver: 10
Failed creating base context during opening of kernel driver.
Kernel module may not have been loaded
Max work item sizes <printDeviceInfo:62: get number of CL_DEVICE_MAX_WORK_ITEM_SIZES : error -6>
arm_release_ver: g13p0-01eac0, rk_so_ver: 10
Failed creating base context during opening of kernel driver.
Kernel module may not have been loaded
Max work group size <printDeviceInfo:63: get CL_DEVICE_MAX_WORK_GROUP_SIZE : error -6>
Preferred work group size multiple (device) 16
Segmentation fault (core dumped)
I only found some articles on the net where i've got no idea if theyre outdated or not.
Code:
$ pacman -Q | grep mali
libmali-valhall-g610-base g13p0.10-2
libmali-valhall-g610-x11-wayland-gbm g13p0.10-2
mali-valhall-g610-firmware g18p0.01eac0-4
# This file didnt exist and clinfo is empty without it. Found this info in some old article...
$ cat /etc/OpenCL/vendors/mali.icd
/usr/lib/mali-valhall-g610/x11-wayland-gbm/libmali.so