Gstreamer rkximageisnk

Linux rock-5t 6.1.84-8-rk2410 #8 SMP Thu Oct 16 07:07:35 UTC 2025 aarch64 GNU/Linux

When flashing the RADXA OS image from the RADXA site for a rock 5T board the following gstreamer plug-in does not work, and therefore I cannot get 4k60 to playback on this machine using the rockchip gstreamer plugins.

radxa@rock-5t:~$ sudo cat /sys/kernel/debug/dri/0/state|grep “plane[”
plane[56]: Cluster0-win0
plane[72]: Esmart0-win0
plane[96]: Cluster1-win0
plane[112]: Esmart1-win0
plane[136]: Cluster2-win0
plane[152]: Esmart2-win0
plane[176]: Cluster3-win0
plane[192]: Esmart3-win0

radxa@rock-5t:~$ GST_DEBUG=3 gst-launch-1.0 videotestsrc ! rkximagesink plane-id=72
Setting pipeline to PAUSED …
Pipeline is PREROLLING …
0:00:00.137371977 33304 0xaaaae26ac860 FIXME default gstutils.c:4036:gst_pad_create_stream_id_internal:<videotestsrc0:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
0:00:00.158941753 33304 0xaaaae26ac860 ERROR rkximagesink ximagesink.c:1284:gst_x_image_sink_ximage_put: drmModesetplane failed: -13
0:00:00.159089631 33304 0xaaaae26ac860 WARN rkximagesink ximagesink.c:2143:gst_x_image_sink_show_frame: could not output image - no window
0:00:00.159199591 33304 0xaaaae26ac860 WARN basesrc gstbasesrc.c:3132:gst_base_src_loop: error: Internal data stream error.
0:00:00.159261426 33304 0xaaaae26ac860 WARN basesrc gstbasesrc.c:3132:gst_base_src_loop: error: streaming stopped, reason error (-5)
ERROR: from element /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0: Internal data stream error.
Additional debug info:
../libs/gst/base/gstbasesrc.c(3132): gst_base_src_loop (): /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0:
streaming stopped, reason error (-5)
ERROR: pipeline doesn’t want to preroll.
Setting pipeline to NULL …
Freeing pipeline …

I have seen this same issue when upgrading the packages on my rock-5b. Is this a known issue when updating a gstreamer package? Which package should I be targetting? I plan to use these boards in a run of products that will rely on this plug-in working.

Thank you for any hints!
@radxa please help, Im going crazy!

I have tested before and after running rsetup and a system upgrade.
I have only had this pipeline working on a rock-5b board using the image provided on the website before running rsetup and a system update. After the update breaks the pipeline.

I believe I’m using the correct method to use rkximagesink:

To get connector-id:
radxa@rock-5t:~$ sudo cat /sys/kernel/debug/dri/0/state | grep connector
connectors_changed=0
connector_mask=2
connectors_changed=0
connector_mask=0
connectors_changed=0
connector_mask=0
connector[213]: Writeback-1
connector[215]: HDMI-A-1
connector[231]: HDMI-A-2
connector[245]: DP-1

To get a non-primary plane-id:
radxa@rock-5t:~$ sudo cat /sys/kernel/debug/dri/0/state | grep plane
plane[56]: Cluster0-win0
plane[72]: Esmart0-win0
plane[96]: Cluster1-win0
plane[112]: Esmart1-win0
plane[136]: Cluster2-win0
plane[152]: Esmart2-win0
plane[176]: Cluster3-win0
plane[192]: Esmart3-win0
planes_changed=1
plane_mask=1
planes_changed=0
plane_mask=0
planes_changed=0
plane_mask=0

This is a NON-Working pipeline Initialisation:
radxa@rock-5t:~$ GST_DEBUG=4 gst-launch-1.0 videotestsrc ! rkximagesink plane-id=72 connector-id=215
0:00:00.001028174 3328 0xaaaad805ae00 INFO GST_INIT gst.c:576:init_pre: Initializing GStreamer Core Library version 1.22.9
0:00:00.001268227 3328 0xaaaad805ae00 INFO GST_INIT gst.c:577:init_pre: Using library installed in /lib/aarch64-linux-gnu
0:00:00.001408817 3328 0xaaaad805ae00 INFO GST_INIT gst.c:595:init_pre: Linux rock-5t 6.1.84-8-rk2410 #8 SMP Thu Oct 16 07:07:35 UTC 2025 aarch64
0:00:00.003573960 3328 0xaaaad805ae00 INFO GST_INIT gstmessage.c:129:_priv_gst_message_initialize: init messages
0:00:00.008071963 3328 0xaaaad805ae00 INFO GST_INIT gstcontext.c:86:_priv_gst_context_initialize: init contexts
0:00:00.010452366 3328 0xaaaad805ae00 INFO GST_PLUGIN_LOADING gstplugin.c:324:_priv_gst_plugin_initialize: registering 0 static plugins
0:00:00.011742469 3328 0xaaaad805ae00 INFO GST_PLUGIN_LOADING gstplugin.c:232:gst_plugin_register_static: registered static plugin “staticelements”
0:00:00.011872850 3328 0xaaaad805ae00 INFO GST_PLUGIN_LOADING gstplugin.c:234:gst_plugin_register_static: added static plugin “staticelements”, result: 1
0:00:00.012466419 3328 0xaaaad805ae00 INFO GST_REGISTRY gstregistry.c:1836:ensure_current_registry: reading registry cache: /home/radxa/.cache/gstreamer-1.0/registry.aarch64.bin
0:00:00.119869548 3328 0xaaaad805ae00 INFO GST_REGISTRY gstregistrybinary.c:683:priv_gst_registry_binary_read_cache: loaded /home/radxa/.cache/gstreamer-1.0/registry.aarch64.bin in 0.107182 seconds
0:00:00.120396614 3328 0xaaaad805ae00 INFO GST_REGISTRY gstregistry.c:1703:scan_and_update_registry: Validating plugins from registry cache: /home/radxa/.cache/gstreamer-1.0/registry.aarch64.bin
0:00:00.124724567 3328 0xaaaad805ae00 INFO GST_PLUGIN_LOADING gstplugin.c:1622:gst_plugin_ext_dep_extract_env_vars_paths: ignoring environment variable content ‘’: either not an absolute path or not a path at all
0:00:00.124786695 3328 0xaaaad805ae00 INFO GST_PLUGIN_LOADING gstplugin.c:1622:gst_plugin_ext_dep_extract_env_vars_paths: ignoring environment variable content ‘1’: either not an absolute path or not a path at all
0:00:00.128186813 3328 0xaaaad805ae00 INFO GST_REGISTRY gstregistry.c:1795:scan_and_update_registry: Registry cache has not changed
0:00:00.128233190 3328 0xaaaad805ae00 INFO GST_REGISTRY gstregistry.c:1871:ensure_current_registry: registry reading and updating done
0:00:00.128269359 3328 0xaaaad805ae00 INFO GST_INIT gst.c:805:init_post: GLib runtime version: 2.74.6
0:00:00.128304944 3328 0xaaaad805ae00 INFO GST_INIT gst.c:807:init_post: GLib headers version: 2.74.6
0:00:00.128330903 3328 0xaaaad805ae00 INFO GST_INIT gst.c:809:init_post: initialized GStreamer successfully
0:00:00.128466243 3328 0xaaaad805ae00 INFO GST_PIPELINE gstparse.c:344:gst_parse_launch_full: parsing pipeline description 'videotestsrc ! rkximagesink plane-id=72 connector-id=215 ’
0:00:00.143116473 3328 0xaaaad805ae00 INFO GST_PLUGIN_LOADING gstplugin.c:987:_priv_gst_plugin_load_file_for_registry: plugin “/lib/aarch64-linux-gnu/gstreamer-1.0/libgstvideotestsrc.so” loaded
0:00:00.143961179 3328 0xaaaad805ae00 INFO GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element “videotestsrc”
0:00:00.144100311 3328 0xaaaad805ae00 INFO GST_ELEMENT_PADS gstelement.c:758:gst_element_add_pad:<GstBaseSrc@0xaaaad831c770> adding pad ‘src’
0:00:00.151487408 3328 0xaaaad805ae00 INFO GST_PLUGIN_LOADING gstplugin.c:987:_priv_gst_plugin_load_file_for_registry: plugin “/lib/aarch64-linux-gnu/gstreamer-1.0/libgstrkximage.so” loaded
0:00:00.152012141 3328 0xaaaad805ae00 INFO GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element “rkximagesink”
0:00:00.152146314 3328 0xaaaad805ae00 INFO GST_ELEMENT_PADS gstelement.c:758:gst_element_add_pad:<GstBaseSink@0xaaaad8326af0> adding pad ‘sink’
0:00:00.152359240 3328 0xaaaad805ae00 INFO GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element “pipeline”
0:00:00.152654129 3328 0xaaaad805ae00 INFO GST_PIPELINE gst/parse/grammar.y:998:gst_parse_perform_link: linking some pad of GstVideoTestSrc named videotestsrc0 to some pad of GstRkXImageSink named rkximagesink0 (0/0) with caps “(NULL)”
0:00:00.152708965 3328 0xaaaad805ae00 INFO GST_ELEMENT_PADS gstutils.c:1818:gst_element_link_pads_full: trying to link element videotestsrc0:(any) to element rkximagesink0:(any)
0:00:00.152754467 3328 0xaaaad805ae00 INFO GST_PADS gstutils.c:1080:gst_pad_check_link: trying to link videotestsrc0:src and rkximagesink0:sink
0:00:00.152847222 3328 0xaaaad805ae00 INFO GST_PADS gstutils.c:1634:prepare_link_maybe_ghosting: videotestsrc0 and rkximagesink0 in same bin, no need for ghost pads
0:00:00.152902349 3328 0xaaaad805ae00 INFO GST_PADS gstpad.c:2459:gst_pad_link_prepare: trying to link videotestsrc0:src and rkximagesink0:sink
0:00:00.152969144 3328 0xaaaad805ae00 INFO GST_PADS gstpad.c:2640:gst_pad_link_full: linked videotestsrc0:src and rkximagesink0:sink, successful
0:00:00.153004729 3328 0xaaaad805ae00 INFO GST_EVENT gstevent.c:1687:gst_event_new_reconfigure: creating reconfigure event
0:00:00.153033314 3328 0xaaaad805ae00 INFO GST_EVENT gstpad.c:6030:gst_pad_send_event_unchecked:<videotestsrc0:src> Received event on flushing pad. Discarding
Setting pipeline to PAUSED …
0:00:00.153322661 3328 0xaaaad805ae00 INFO GST_STATES gstbin.c:2480:gst_bin_element_set_state: current NULL pending VOID_PENDING, desired next READY
0:00:00.157373226 3328 0xaaaad805ae00 INFO rkximagesink ximagesink.c:325:drm_log_version: DRM v4.0.0 [rockchip — RockChip Soc DRM — 20140818]
0:00:00.157455188 3328 0xaaaad805ae00 INFO rkximagesink ximagesink.c:370:drm_get_caps: prime import (✓) / prime export (✓) / async page flip (✓)
0:00:00.158342771 3328 0xaaaad805ae00 INFO rkximagesink ximagesink.c:488:drm_ensure_allowed_caps: ignoring format RG24
0:00:00.158448651 3328 0xaaaad805ae00 INFO rkximagesink ximagesink.c:488:drm_ensure_allowed_caps: ignoring format BG24
0:00:00.158538781 3328 0xaaaad805ae00 INFO rkximagesink ximagesink.c:488:drm_ensure_allowed_caps: ignoring format RG16
0:00:00.158632118 3328 0xaaaad805ae00 INFO rkximagesink ximagesink.c:488:drm_ensure_allowed_caps: ignoring format BG16
0:00:00.158927007 3328 0xaaaad805ae00 INFO rkximagesink ximagesink.c:488:drm_ensure_allowed_caps: ignoring format NV61
0:00:00.159020345 3328 0xaaaad805ae00 INFO rkximagesink ximagesink.c:488:drm_ensure_allowed_caps: ignoring format NV24
0:00:00.159112224 3328 0xaaaad805ae00 INFO rkximagesink ximagesink.c:488:drm_ensure_allowed_caps: ignoring format NV42
0:00:00.159391071 3328 0xaaaad805ae00 INFO rkximagesink ximagesink.c:488:drm_ensure_allowed_caps: ignoring format NV30
0:00:00.159554995 3328 0xaaaad805ae00 INFO rkximagesink ximagesink.c:488:drm_ensure_allowed_caps: ignoring format VYUY
0:00:00.159950222 3328 0xaaaad805ae00 INFO rkximagesink ximagesink.c:2664:gst_x_image_sink_start: connector id = 215 / crtc id = 88 / plane id = 72
0:00:00.159996307 3328 0xaaaad805ae00 INFO rkximagesink ximagesink.c:2677:gst_x_image_sink_start: display size: pixels = 3840x2160 / millimeters = 0x0
0:00:00.160041518 3328 0xaaaad805ae00 INFO GST_STATES gstelement.c:2816:gst_element_continue_state: completed state change to READY
0:00:00.160081478 3328 0xaaaad805ae00 INFO GST_STATES gstelement.c:2716:_priv_gst_element_state_changed: notifying about state-changed NULL to READY (VOID_PENDING pending)
0:00:00.160178899 3328 0xaaaad805ae00 INFO GST_STATES gstbin.c:2936:gst_bin_change_state_func: child ‘rkximagesink0’ changed state to 2(READY) successfully
0:00:00.160232277 3328 0xaaaad805ae00 INFO GST_STATES gstbin.c:2480:gst_bin_element_set_state: current NULL pending VOID_PENDING, desired next READY
0:00:00.160273404 3328 0xaaaad805ae00 INFO GST_STATES gstelement.c:2816:gst_element_continue_state: completed state change to READY
0:00:00.160308989 3328 0xaaaad805ae00 INFO GST_STATES gstelement.c:2716:_priv_gst_element_state_changed: notifying about state-changed NULL to READY (VOID_PENDING pending)
0:00:00.160354491 3328 0xaaaad805ae00 INFO GST_STATES gstbin.c:2936:gst_bin_change_state_func: child ‘videotestsrc0’ changed state to 2(READY) successfully
0:00:00.160407285 3328 0xaaaad805ae00 INFO GST_STATES gstelement.c:2788:gst_element_continue_state: committing state from NULL to READY, pending PAUSED, next PAUSED
0:00:00.160444328 3328 0xaaaad805ae00 INFO GST_STATES gstelement.c:2716:_priv_gst_element_state_changed: notifying about state-changed NULL to READY (PAUSED pending)
0:00:00.160561876 3328 0xaaaad805ae00 INFO GST_STATES gstelement.c:2796:gst_element_continue_state: continue state change READY to PAUSED, final PAUSED
0:00:00.160631587 3328 0xaaaad805ae00 INFO GST_STATES gstbin.c:2480:gst_bin_element_set_state: current READY pending VOID_PENDING, desired next PAUSED
0:00:00.160702466 3328 0xaaaad805ae00 INFO GST_STATES gstbin.c:2943:gst_bin_change_state_func: child ‘rkximagesink0’ is changing state asynchronously to PAUSED
0:00:00.160743884 3328 0xaaaad805ae00 INFO GST_STATES gstbin.c:2480:gst_bin_element_set_state: current READY pending VOID_PENDING, desired next PAUSED
0:00:00.160837805 3328 0xaaaad805ae00 INFO basesrc gstbasesrc.c:1435:gst_base_src_do_seek: seeking: time segment start=0:00:00.000000000, offset=0:00:00.000000000, stop=99:99:99.999999999, rate=1.000000, applied_rate=1.000000, flags=0x00, time=0:00:00.000000000, base=0:00:00.000000000, position 0:00:00.000000000, duration 99:99:99.999999999
0:00:00.160981895 3328 0xaaaad805ae00 INFO task gsttask.c:516:gst_task_set_lock: setting stream lock 0xaaaad831e210 on task 0xaaaad833c050
0:00:00.161024189 3328 0xaaaad805ae00 INFO GST_PADS gstpad.c:6376:gst_pad_start_task:<videotestsrc0:src> created task 0xaaaad833c050
0:00:00.161325787 3328 0xaaaad805ae00 INFO GST_STATES gstelement.c:2816:gst_element_continue_state: completed state change to PAUSED
0:00:00.161374205 3328 0xaaaad805ae00 INFO GST_STATES gstelement.c:2716:_priv_gst_element_state_changed: notifying about state-changed READY to PAUSED (VOID_PENDING pending)
0:00:00.161428166 3328 0xaaaad805ae00 INFO GST_STATES gstbin.c:2936:gst_bin_change_state_func: child ‘videotestsrc0’ changed state to 3(PAUSED) successfully
0:00:00.161474544 3328 0xaaaad805ae00 INFO pipeline gstpipeline.c:533:gst_pipeline_change_state: pipeline is not live
Pipeline is PREROLLING …
0:00:00.161604341 3328 0xaaaad832a860 INFO GST_ELEMENT_PADS gstelement.c:1013:gst_element_get_static_pad: no such pad ‘sink’ in element “videotestsrc0”
0:00:00.161786642 3328 0xaaaad832a860 FIXME default gstutils.c:4036:gst_pad_create_stream_id_internal:<videotestsrc0:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
0:00:00.162359502 3328 0xaaaad832a860 INFO GST_EVENT gstevent.c:918:gst_event_new_caps: creating caps event video/x-raw, format=(string)BGRx, width=(int)320, height=(int)240, framerate=(fraction)30/1, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
0:00:00.173282348 3328 0xaaaad832a860 INFO GST_EVENT gstevent.c:998:gst_event_new_segment: creating segment event time segment start=0:00:00.000000000, offset=0:00:00.000000000, stop=99:99:99.999999999, rate=1.000000, applied_rate=1.000000, flags=0x00, time=0:00:00.000000000, base=0:00:00.000000000, position 0:00:00.000000000, duration 99:99:99.999999999
0:00:00.173409812 3328 0xaaaad832a860 INFO basesrc gstbasesrc.c:3023:gst_base_src_loop: marking pending DISCONT
0:00:00.174327731 3328 0xaaaad832a860 ERROR rkximagesink ximagesink.c:1284:gst_x_image_sink_ximage_put: drmModesetplane failed: -13
0:00:00.174421360 3328 0xaaaad832a860 WARN rkximagesink ximagesink.c:2143:gst_x_image_sink_show_frame: could not output image - no window
0:00:00.174467737 3328 0xaaaad832a860 INFO GST_STATES gstelement.c:2688:gst_element_abort_state: aborting state from READY to PAUSED
0:00:00.174514406 3328 0xaaaad832a860 INFO basesrc gstbasesrc.c:3042:gst_base_src_loop: pausing after gst_pad_push() = error
0:00:00.174594910 3328 0xaaaad832a860 WARN basesrc gstbasesrc.c:3132:gst_base_src_loop: error: Internal data stream error.
0:00:00.174640704 3328 0xaaaad832a860 WARN basesrc gstbasesrc.c:3132:gst_base_src_loop: error: streaming stopped, reason error (-5)
0:00:00.174732000 3328 0xaaaad832a860 INFO GST_ERROR_SYSTEM gstelement.c:2281:gst_element_message_full_with_details: posting message: Internal data stream error.
ERROR: from element /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0: Internal data stream error.

This is a WORKING pipeline initialisation using a non updated rock-5b image:
radxa@rock-5b:~$ GST_DEBUG=4 gst-launch-1.0 videotestsrc ! rkximagesink plane-id=71
0:00:00.000417083 3139 0xaaaaca0ba200 INFO GST_INIT gst.c:576:init_pre: Initializing GStreamer Core Library version 1.22.0
0:00:00.000512750 3139 0xaaaaca0ba200 INFO GST_INIT gst.c:577:init_pre: Using library installed in /lib/aarch64-linux-gnu
0:00:00.000561750 3139 0xaaaaca0ba200 INFO GST_INIT gst.c:595:init_pre: Linux rock-5b 6.1.43-15-rk2312 #3176a44da SMP Wed Jul 31 04:27:40 UTC 2024 aarch64
0:00:00.001332625 3139 0xaaaaca0ba200 INFO GST_INIT gstmessage.c:129:_priv_gst_message_initialize: init messages
0:00:00.002974709 3139 0xaaaaca0ba200 INFO GST_INIT gstcontext.c:86:_priv_gst_context_initialize: init contexts
0:00:00.003889084 3139 0xaaaaca0ba200 INFO GST_PLUGIN_LOADING gstplugin.c:324:_priv_gst_plugin_initialize: registering 0 static plugins
0:00:00.004213125 3139 0xaaaaca0ba200 INFO GST_PLUGIN_LOADING gstplugin.c:232:gst_plugin_register_static: registered static plugin “staticelements”
0:00:00.004260667 3139 0xaaaaca0ba200 INFO GST_PLUGIN_LOADING gstplugin.c:234:gst_plugin_register_static: added static plugin “staticelements”, result: 1
0:00:00.004486709 3139 0xaaaaca0ba200 INFO GST_REGISTRY gstregistry.c:1836:ensure_current_registry: reading registry cache: /home/radxa/.cache/gstreamer-1.0/registry.aarch64.bin
0:00:00.073525382 3139 0xaaaaca0ba200 INFO GST_REGISTRY gstregistrybinary.c:683:priv_gst_registry_binary_read_cache: loaded /home/radxa/.cache/gstreamer-1.0/registry.aarch64.bin in 0.068944 seconds
0:00:00.074631382 3139 0xaaaaca0ba200 INFO GST_REGISTRY gstregistry.c:1703:scan_and_update_registry: Validating plugins from registry cache: /home/radxa/.cache/gstreamer-1.0/registry.aarch64.bin
0:00:00.077337758 3139 0xaaaaca0ba200 INFO GST_PLUGIN_LOADING gstplugin.c:1622:gst_plugin_ext_dep_extract_env_vars_paths: ignoring environment variable content ‘’: either not an absolute path or not a path at all
0:00:00.077395508 3139 0xaaaaca0ba200 INFO GST_PLUGIN_LOADING gstplugin.c:1622:gst_plugin_ext_dep_extract_env_vars_paths: ignoring environment variable content ‘1’: either not an absolute path or not a path at all
0:00:00.081543883 3139 0xaaaaca0ba200 INFO GST_REGISTRY gstregistry.c:1795:scan_and_update_registry: Registry cache has not changed
0:00:00.081592300 3139 0xaaaaca0ba200 INFO GST_REGISTRY gstregistry.c:1871:ensure_current_registry: registry reading and updating done
0:00:00.081632550 3139 0xaaaaca0ba200 INFO GST_INIT gst.c:805:init_post: GLib runtime version: 2.74.6
0:00:00.081682425 3139 0xaaaaca0ba200 INFO GST_INIT gst.c:807:init_post: GLib headers version: 2.74.5
0:00:00.081708383 3139 0xaaaaca0ba200 INFO GST_INIT gst.c:809:init_post: initialized GStreamer successfully
0:00:00.081827383 3139 0xaaaaca0ba200 INFO GST_PIPELINE gstparse.c:344:gst_parse_launch_full: parsing pipeline description 'videotestsrc ! rkximagesink plane-id=71 ’
0:00:00.085493633 3139 0xaaaaca0ba200 INFO GST_PLUGIN_LOADING gstplugin.c:987:_priv_gst_plugin_load_file_for_registry: plugin “/lib/aarch64-linux-gnu/gstreamer-1.0/libgstvideotestsrc.so” loaded
0:00:00.086280550 3139 0xaaaaca0ba200 INFO GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element “videotestsrc”
0:00:00.086396634 3139 0xaaaaca0ba200 INFO GST_ELEMENT_PADS gstelement.c:758:gst_element_add_pad:<GstBaseSrc@0xaaaaca35feb0> adding pad ‘src’
0:00:00.093086009 3139 0xaaaaca0ba200 INFO GST_PLUGIN_LOADING gstplugin.c:987:_priv_gst_plugin_load_file_for_registry: plugin “/lib/aarch64-linux-gnu/gstreamer-1.0/libgstrkximage.so” loaded
0:00:00.093576884 3139 0xaaaaca0ba200 INFO GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element “rkximagesink”
0:00:00.093655634 3139 0xaaaaca0ba200 INFO GST_ELEMENT_PADS gstelement.c:758:gst_element_add_pad:<GstBaseSink@0xaaaaca36a5c0> adding pad ‘sink’
0:00:00.093835593 3139 0xaaaaca0ba200 INFO GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element “pipeline”
0:00:00.094076509 3139 0xaaaaca0ba200 INFO GST_PIPELINE gst/parse/grammar.y:996:gst_parse_perform_link: linking some pad of GstVideoTestSrc named videotestsrc0 to some pad of GstRkXImageSink named rkximagesink0 (0/0) with caps “(NULL)”
0:00:00.094126384 3139 0xaaaaca0ba200 INFO GST_ELEMENT_PADS gstutils.c:1816:gst_element_link_pads_full: trying to link element videotestsrc0:(any) to element rkximagesink0:(any)
0:00:00.094172468 3139 0xaaaaca0ba200 INFO GST_PADS gstutils.c:1079:gst_pad_check_link: trying to link videotestsrc0:src and rkximagesink0:sink
0:00:00.094248301 3139 0xaaaaca0ba200 INFO GST_PADS gstutils.c:1632:prepare_link_maybe_ghosting: videotestsrc0 and rkximagesink0 in same bin, no need for ghost pads
0:00:00.094306051 3139 0xaaaaca0ba200 INFO GST_PADS gstpad.c:2387:gst_pad_link_prepare: trying to link videotestsrc0:src and rkximagesink0:sink
0:00:00.094364384 3139 0xaaaaca0ba200 INFO GST_PADS gstpad.c:2595:gst_pad_link_full: linked videotestsrc0:src and rkximagesink0:sink, successful
0:00:00.094393843 3139 0xaaaaca0ba200 INFO GST_EVENT gstevent.c:1687:gst_event_new_reconfigure: creating reconfigure event
0:00:00.094425343 3139 0xaaaaca0ba200 INFO GST_EVENT gstpad.c:5985:gst_pad_send_event_unchecked:<videotestsrc0:src> Received event on flushing pad. Discarding
Setting pipeline to PAUSED …
0:00:00.094651676 3139 0xaaaaca0ba200 INFO GST_STATES gstbin.c:2479:gst_bin_element_set_state: current NULL pending VOID_PENDING, desired next READY
0:00:00.096943010 3139 0xaaaaca0ba200 INFO rkximagesink ximagesink.c:298:drm_log_version: DRM v3.0.0 [rockchip — RockChip Soc DRM — 20140818]
0:00:00.097012135 3139 0xaaaaca0ba200 INFO rkximagesink ximagesink.c:343:drm_get_caps: prime import (✓) / prime export (✓) / async page flip (✓)
0:00:00.097990968 3139 0xaaaaca0ba200 INFO rkximagesink ximagesink.c:461:drm_ensure_allowed_caps: ignoring format RG24
0:00:00.098091301 3139 0xaaaaca0ba200 INFO rkximagesink ximagesink.c:461:drm_ensure_allowed_caps: ignoring format BG24
0:00:00.098183468 3139 0xaaaaca0ba200 INFO rkximagesink ximagesink.c:461:drm_ensure_allowed_caps: ignoring format RG16
0:00:00.098273301 3139 0xaaaaca0ba200 INFO rkximagesink ximagesink.c:461:drm_ensure_allowed_caps: ignoring format BG16
0:00:00.098557385 3139 0xaaaaca0ba200 INFO rkximagesink ximagesink.c:461:drm_ensure_allowed_caps: ignoring format NV61
0:00:00.098645760 3139 0xaaaaca0ba200 INFO rkximagesink ximagesink.c:461:drm_ensure_allowed_caps: ignoring format NV24
0:00:00.098732676 3139 0xaaaaca0ba200 INFO rkximagesink ximagesink.c:461:drm_ensure_allowed_caps: ignoring format NV42
0:00:00.098950552 3139 0xaaaaca0ba200 INFO rkximagesink ximagesink.c:461:drm_ensure_allowed_caps: ignoring format NV30
0:00:00.099104260 3139 0xaaaaca0ba200 INFO rkximagesink ximagesink.c:461:drm_ensure_allowed_caps: ignoring format VYUY
0:00:00.099467968 3139 0xaaaaca0ba200 INFO rkximagesink ximagesink.c:2631:gst_x_image_sink_start: connector id = 208 / crtc id = 85 / plane id = 71
0:00:00.099593385 3139 0xaaaaca0ba200 INFO rkximagesink ximagesink.c:2644:gst_x_image_sink_start: display size: pixels = 3840x2160 / millimeters = 0x0
0:00:00.099637135 3139 0xaaaaca0ba200 INFO GST_STATES gstelement.c:2816:gst_element_continue_state: completed state change to READY

I’ve done some digging and it appears that the DRM susbsystem for the latest kernel has been changed from:
V3.0 (Kernel:6.1.43-26)
to
V4.0 (Kernel: 6.1.84-8)
Which now includes the render atomic request api. rkximagesink plug-in hasn’t kept up with this change, and therefore doesn’t work so I cannot use a full hardware accelerated gstreamer video playback pipeline.

This works on the latest image of radxa OS:

Linux rock-5t 6.1.84-8-rk2410 #8 SMP Thu Oct 16 07:07:35 UTC 2025 aarch64 GNU/Linux

GST_DEBUG=4 gst-launch-1.0 uridecodebin3 uri=file://videofilemp4 ! kmssink plane-id=72

For it to work you have to be switched into a separate tty KMS

1 Like