flutter-pi icon indicating copy to clipboard operation
flutter-pi copied to clipboard

gstreamer on x64 linux

Open bojidartonchev opened this issue 2 years ago • 5 comments

Starting this as a new thread since I am starting to investigate it. Playing video with the gstreamer player shows green screen. The issue occurs only on x64 linux.

Used HW: MIO-5152J-U6A1

https://github.com/ardera/flutter-pi/assets/12398245/bff662c2-43d2-4623-9769-8fc170eb146d

Best regards!

Originally posted by @bojidartonchev in https://github.com/ardera/flutter-pi/issues/355#issuecomment-1709677108

bojidartonchev avatar Sep 12 '23 10:09 bojidartonchev

That's only with --pixelformat RGB565 right? Does it work correctly without that?

What video are you playing?

What's the complete flutter-pi output? (with a debug build, i.e. configured with cmake -DCMAKE_BUILD_TYPE=Debug ...)

ardera avatar Sep 17 '23 12:09 ardera

I am not using --pixelformat RGB565 since you published the fix for that, but the issue still occurs. I am using --rotation 270 because my device monitor is in portrait mode. The video is in portrait mode too, 1080x1920. I have tried with landscape video without the --rotation 270 argument, the result was the same.

Here you can see the metadata of the video I am trying to play.

This is the requested debug log:

root@intel-corei7-64:/tmp# flutter-pi --release --rotation 270 /usr/share/flutter/kiosk/3.13.2/release/
[locales] Warning: The system has no configured locale. The default "C" locale may or may not be supported by the app.
==============Locale==============
Flutter locale:
  default: C
  locales: C
===================================
root@intel-corei7-64:/tmp# rpm --force --nodeps --ignorearch -Uvh flutter-pi-git-r0.corei7_64.rpm
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:flutter-pi-git-r0                ################################# [ 50%]
Cleaning up / removing...
   2:flutter-pi-git-r0                ################################# [100%]
root@intel-corei7-64:/tmp# flutter-pi --release --rotation 270 /usr/share/flutter/kiosk/3.13.2/release/
[locales] Warning: The system has no configured locale. The default "C" locale may or may not be supported by the app.
==============Locale==============
Flutter locale:
  default: C
  locales: C
===================================
modesetting.c: Unknown DRM connector property: subconnector
modesetting.c: Unknown DRM connector property: audio
modesetting.c: Unknown DRM connector property: vrr_capable
modesetting.c: Unknown DRM connector property: Content Protection
modesetting.c: Unknown DRM connector property: audio
modesetting.c: Unknown DRM connector property: aspect ratio
modesetting.c: Unknown DRM connector property: content type
modesetting.c: Unknown DRM connector property: Content Protection
modesetting.c: Unknown DRM connector property: audio
modesetting.c: Unknown DRM connector property: aspect ratio
modesetting.c: Unknown DRM connector property: content type
modesetting.c: Unknown DRM connector property: Content Protection
modesetting.c: Unknown DRM crtc property: SCALING_FILTER
modesetting.c: Unknown DRM crtc property: DEGAMMA_LUT
modesetting.c: Unknown DRM crtc property: DEGAMMA_LUT_SIZE
modesetting.c: Unknown DRM crtc property: SCALING_FILTER
modesetting.c: Unknown DRM crtc property: DEGAMMA_LUT
modesetting.c: Unknown DRM crtc property: DEGAMMA_LUT_SIZE
modesetting.c: Unknown DRM crtc property: SCALING_FILTER
modesetting.c: Unknown DRM crtc property: DEGAMMA_LUT
modesetting.c: Unknown DRM crtc property: DEGAMMA_LUT_SIZE
===================================
EGL information:
  version: 1.5
  vendor: Mesa Project
  client extensions: EGL_EXT_client_extensions EGL_EXT_device_base EGL_EXT_device_enumeration EGL_EXT_device_query EGL_EXT_platform_base EGL_KHR_client_get_all_proc_addresses EGL_KHR_debug EGL_EXT_platform_device EGL_EXT_platform_wayland EGL_KHR_platform_wayland EGL_MESA_platform_gbm EGL_KHR_platform_gbm EGL_MESA_platform_surfaceless
  display extensions: EGL_ANDROID_blob_cache EGL_ANDROID_native_fence_sync EGL_EXT_buffer_age EGL_EXT_create_context_robustness EGL_EXT_image_dma_buf_import EGL_EXT_image_dma_buf_import_modifiers EGL_IMG_context_priority EGL_KHR_cl_event2 EGL_KHR_config_attribs EGL_KHR_create_context EGL_KHR_create_context_no_error EGL_KHR_fence_sync EGL_KHR_get_all_proc_addresses EGL_KHR_gl_colorspace EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_KHR_no_config_context EGL_KHR_reusable_sync EGL_KHR_surfaceless_context EGL_EXT_pixel_format_float EGL_KHR_wait_sync EGL_MESA_configless_context EGL_MESA_drm_image EGL_MESA_image_dma_buf_export EGL_MESA_query_driver EGL_WL_bind_wayland_display
===================================
===================================
OpenGL ES information:
  version: "OpenGL ES 3.2 Mesa 22.0.3"
  shading language version: "OpenGL ES GLSL ES 3.20"
  vendor: "Intel"
  renderer: "Mesa Intel(R) UHD Graphics (EHL)"
  extensions: "GL_EXT_blend_minmax GL_EXT_multi_draw_arrays GL_EXT_texture_filter_anisotropic GL_EXT_texture_compression_s3tc GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_rgtc GL_EXT_texture_format_BGRA8888 GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth24 GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_mapbuffer GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_stencil8 GL_OES_texture_3D GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_vertex_half_float GL_EXT_draw_instanced GL_EXT_texture_sRGB_decode GL_OES_EGL_image GL_OES_depth_texture GL_AMD_performance_monitor GL_OES_packed_depth_stencil GL_EXT_texture_type_2_10_10_10_REV GL_NV_conditional_render GL_OES_get_program_binary GL_APPLE_texture_max_level GL_EXT_discard_framebuffer GL_EXT_read_format_bgra GL_EXT_frag_depth GL_NV_fbo_color_attachments GL_OES_EGL_image_external GL_OES_EGL_sync GL_OES_vertex_array_object GL_OES_viewport_array GL_ANGLE_pack_reverse_row_order GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_EXT_occlusion_query_boolean GL_EXT_robustness GL_EXT_texture_rg GL_EXT_unpack_subimage GL_NV_draw_buffers GL_NV_read_buffer GL_NV_read_depth GL_NV_read_depth_stencil GL_NV_read_stencil GL_EXT_draw_buffers GL_EXT_map_buffer_range GL_KHR_debug GL_KHR_robustness GL_KHR_texture_compression_astc_ldr GL_NV_pixel_buffer_object GL_OES_depth_texture_cube_map GL_OES_required_internalformat GL_OES_surfaceless_context GL_EXT_color_buffer_float GL_EXT_sRGB_write_control GL_EXT_separate_shader_objects GL_EXT_shader_framebuffer_fetch GL_EXT_shader_group_vote GL_EXT_shader_implicit_conversions GL_EXT_shader_integer_mix GL_EXT_tessellation_point_size GL_EXT_tessellation_shader GL_INTEL_conservative_rasterization GL_INTEL_performance_query GL_ANDROID_extension_pack_es31a GL_EXT_base_instance GL_EXT_compressed_ETC1_RGB8_sub_texture GL_EXT_copy_image GL_EXT_draw_buffers_indexed GL_EXT_draw_elements_base_vertex GL_EXT_gpu_shader5 GL_EXT_polygon_offset_clamp GL_EXT_primitive_bounding_box GL_EXT_render_snorm GL_EXT_shader_io_blocks GL_EXT_texture_border_clamp GL_EXT_texture_buffer GL_EXT_texture_cube_map_array GL_EXT_texture_norm16 GL_EXT_texture_view GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_KHR_context_flush_control GL_KHR_robust_buffer_access_behavior GL_NV_image_formats GL_OES_copy_image GL_OES_draw_buffers_indexed GL_OES_draw_elements_base_vertex GL_OES_gpu_shader5 GL_OES_primitive_bounding_box GL_OES_sample_shading GL_OES_sample_variables GL_OES_shader_io_blocks GL_OES_shader_multisample_interpolation GL_OES_tessellation_point_size GL_OES_tessellation_shader GL_OES_texture_border_clamp GL_OES_texture_buffer GL_OES_texture_cube_map_array GL_OES_texture_stencil8 GL_OES_texture_storage_multisample_2d_array GL_OES_texture_view GL_EXT_blend_func_extended GL_EXT_buffer_storage GL_EXT_float_blend GL_EXT_geometry_point_size GL_EXT_geometry_shader GL_EXT_shader_samples_identical GL_EXT_texture_sRGB_R8 GL_KHR_no_error GL_KHR_texture_compression_astc_sliced_3d GL_NV_fragment_shader_interlock GL_OES_EGL_image_external_essl3 GL_OES_geometry_point_size GL_OES_geometry_shader GL_OES_shader_image_atomic GL_EXT_clear_texture GL_EXT_clip_cull_distance GL_EXT_disjoint_timer_query GL_EXT_texture_compression_s3tc_srgb GL_MESA_shader_integer_functions GL_EXT_clip_control GL_EXT_color_buffer_half_float GL_EXT_memory_object GL_EXT_memory_object_fd GL_EXT_semaphore GL_EXT_semaphore_fd GL_EXT_texture_compression_bptc GL_EXT_texture_mirror_clamp_to_edge GL_KHR_parallel_shader_compile GL_EXT_EGL_image_storage GL_EXT_shader_framebuffer_fetch_non_coherent GL_EXT_texture_shadow_lod GL_INTEL_blackhole_render GL_MESA_framebuffer_flip_y GL_NV_compute_shader_derivatives GL_EXT_demote_to_helper_invocation GL_EXT_depth_clamp GL_EXT_texture_query_lod GL_MESA_bgra "
===================================
window.c: WARNING: display didn't provide valid physical dimensions. The device-pixel ratio will default to 1.0, which may not be the fitting device-pixel ratio for your display.
Use the `-d` commandline parameter to specify the physical dimensions of your display.
display mode:
  resolution: 1920 x 1080
  refresh rate: 60.000000Hz
  physical size: 0mm x 0mm
  flutter device pixel ratio: 1.000000
  pixel format: (any)
keyboard.c: Could not load keyboard configuration from "/etc/default/keyboard". Default keyboard config will be used. load_file: No such file or directory
pluginregistry.c: Initialized plugins: services, text input, raw keyboard plugin, gstreamer video_player, audioplayers, charset converter plugin,
window.c: Flutter requested render surface before supplying surface dimensions.
gl_renderer.c: Choosing EGL config with pixel format ARGB 8:8:8:8...
egl_gbm_render_surface.c: using fourcc AR24 (ARGB 8:8:8:8) with modifier 0x100000000000004
$ rpm -q kiosk-app --queryformat %{VERSION}
5.3.0plugins/gstreamer_video_player/frame.c: supported formats for EGL import: AB4H, XB4H, AR30, XR30, AB30, AR24, AB24, XR24, XB24, AR15, RG16, R8  , R16 , GR88, GR32, YUV9, YU11, YU12, YU16, YU24, YVU9, YV11, YV12, YV16, YV24, NV12, P010, P012, P016, NV16, AYUV, XYUV, Y410, Y412, Y416, YUYV, UYVY, Y210, Y212, Y216,
plugins/gstreamer_video_player/player.c: Setting state to paused...
plugins/gstreamer_video_player/player.c: Failed to set custom HTTP headers because gstreamer source element has no 'extra-headers' property.
plugins/gstreamer_video_player/player.c: Not live!
plugins/gstreamer_video_player/player.c: state-changed: src: sink, old: NULL, current: READY, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: state-changed: src: src, old: NULL, current: READY, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: state-changed: src: pipeline0, old: NULL, current: READY, pending: PAUSED
plugins/gstreamer_video_player/player.c: state-changed: src: typefind, old: NULL, current: READY, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: state-changed: src: decodebin0, old: NULL, current: READY, pending: PAUSED
plugins/gstreamer_video_player/player.c: gstreamer message: stream-status, src: sink
plugins/gstreamer_video_player/player.c: state-changed: src: typefind, old: READY, current: PAUSED, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: state-changed: src: source, old: NULL, current: READY, pending: PAUSED
plugins/gstreamer_video_player/player.c: state-changed: src: source, old: READY, current: PAUSED, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: gstreamer message: stream-status, src: sink
plugins/gstreamer_video_player/player.c: state-changed: src: qtdemux0, old: NULL, current: READY, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: gstreamer message: stream-status, src: sink
plugins/gstreamer_video_player/player.c: state-changed: src: qtdemux0, old: READY, current: PAUSED, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: gstreamer message: stream-status, src: sink
plugins/gstreamer_video_player/player.c: gstreamer message: stream-status, src: src_0
plugins/gstreamer_video_player/player.c: gstreamer message: stream-status, src: src_0
plugins/gstreamer_video_player/player.c: state-changed: src: h264parse0, old: NULL, current: READY, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: state-changed: src: h264parse0, old: READY, current: PAUSED, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: gstreamer: redistributing latency
plugins/gstreamer_video_player/player.c: state-changed: src: avdec_h264-0, old: NULL, current: READY, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: state-changed: src: avdec_h264-0, old: READY, current: PAUSED, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: gstreamer: redistributing latency
plugins/gstreamer_video_player/player.c: gstreamer message: stream-status, src: src_1
plugins/gstreamer_video_player/player.c: gstreamer message: stream-status, src: src_1
plugins/gstreamer_video_player/player.c: state-changed: src: aacparse0, old: NULL, current: READY, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: state-changed: src: aacparse0, old: READY, current: PAUSED, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: state-changed: src: avdec_aac0, old: NULL, current: READY, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: state-changed: src: avdec_aac0, old: READY, current: PAUSED, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: gstreamer: redistributing latency
plugins/gstreamer_video_player/player.c: gstreamer message: duration-changed, src: h264parse0
plugins/gstreamer_video_player/player.c: state-changed: src: capsfilter2, old: NULL, current: READY, pending: PAUSED
plugins/gstreamer_video_player/player.c: state-changed: src: capsfilter2, old: READY, current: PAUSED, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: state-changed: src: decodebin0, old: READY, current: PAUSED, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: state-changed: src: src, old: READY, current: PAUSED, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: gstreamer message: stream-start, src: pipeline0
plugins/gstreamer_video_player/player.c: on_probe_pad, fps: 25.000000, res:  1080 x  1920, format: I420
plugins/gstreamer_video_player/player.c: gstreamer: redistributing latency
plugins/gstreamer_video_player/player.c: gstreamer message: tag, src: sink
plugins/gstreamer_video_player/player.c: gstreamer message: tag, src: sink
plugins/gstreamer_video_player/player.c: gstreamer message: tag, src: sink
plugins/gstreamer_video_player/player.c: state-changed: src: sink, old: READY, current: PAUSED, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: state-changed: src: pipeline0, old: READY, current: PAUSED, pending: VOID_PENDING
plugins/gstreamer_video_player/plugin.c: Got video info: stream? no, w x h:  1080 x  1920, duration: 0:00:21.013000000
plugins/gstreamer_video_player/player.c: gstreamer: redistributing latency
plugins/gstreamer_video_player/player.c: gstplayer_set_looping(false)
plugins/gstreamer_video_player/player.c: gstplayer_set_volume(1.000000)
plugins/gstreamer_video_player/player.c: gstplayer_pause()
plugins/gstreamer_video_player/player.c: apply_playback_state(playing: paused): already in desired state and none pending
plugins/gstreamer_video_player/player.c: gstplayer_set_volume(0.000000)
plugins/gstreamer_video_player/player.c: gstplayer_set_looping(true)
plugins/gstreamer_video_player/player.c: gstplayer_play()
plugins/gstreamer_video_player/player.c: apply_playback_state(playing: playing): setting state to PLAYING
plugins/gstreamer_video_player/player.c: gstreamer message: new-clock, src: pipeline0
plugins/gstreamer_video_player/player.c: state-changed: src: sink, old: PAUSED, current: PLAYING, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: state-changed: src: capsfilter2, old: PAUSED, current: PLAYING, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: state-changed: src: avdec_aac0, old: PAUSED, current: PLAYING, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: state-changed: src: aacparse0, old: PAUSED, current: PLAYING, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: gstplayer_set_playback_speed(1.000000)
plugins/gstreamer_video_player/player.c: apply_playback_state(playing: playing): already in desired state and none pending
plugins/gstreamer_video_player/player.c: state-changed: src: avdec_h264-0, old: PAUSED, current: PLAYING, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: state-changed: src: capsfilter1, old: PAUSED, current: PLAYING, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: state-changed: src: h264parse0, old: PAUSED, current: PLAYING, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: state-changed: src: multiqueue0, old: PAUSED, current: PLAYING, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: state-changed: src: qtdemux0, old: PAUSED, current: PLAYING, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: state-changed: src: typefind, old: PAUSED, current: PLAYING, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: state-changed: src: decodebin0, old: PAUSED, current: PLAYING, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: state-changed: src: source, old: PAUSED, current: PLAYING, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: state-changed: src: src, old: PAUSED, current: PLAYING, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: state-changed: src: pipeline0, old: PAUSED, current: PLAYING, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: gstreamer message: tag, src: sink
plugins/gstreamer_video_player/player.c: gstreamer message: tag, src: sink
plugins/gstreamer_video_player/player.c: gstreamer message: tag, src: sink
plugins/gstreamer_video_player/player.c: gstreamer message: tag, src: sink
plugins/gstreamer_video_player/player.c: gstreamer message: tag, src: sink
plugins/gstreamer_video_player/player.c: gstreamer message: tag, src: sink
plugins/gstreamer_video_player/player.c: gstreamer message: tag, src: sink
plugins/gstreamer_video_player/player.c: gstreamer message: tag, src: sink
plugins/gstreamer_video_player/player.c: gstreamer message: tag, src: sink
plugins/gstreamer_video_player/player.c: gstreamer message: tag, src: sink
plugins/gstreamer_video_player/player.c: gstreamer message: tag, src: sink
plugins/gstreamer_video_player/player.c: gstreamer message: tag, src: sink
plugins/gstreamer_video_player/player.c: gstreamer message: tag, src: sink
plugins/gstreamer_video_player/player.c: gstreamer message: tag, src: sink
plugins/gstreamer_video_player/player.c: on_appsink_eos()
plugins/gstreamer_video_player/player.c: appsink eos, seeking back to segment start (flushing)
plugins/gstreamer_video_player/player.c: apply_playback_state(playing: playing): async state change in progress, setting state to PLAYING
plugins/gstreamer_video_player/player.c: state-changed: src: sink, old: PAUSED, current: PAUSED, pending: PAUSED
plugins/gstreamer_video_player/player.c: state-changed: src: pipeline0, old: PAUSED, current: PAUSED, pending: PAUSED
plugins/gstreamer_video_player/player.c: gstreamer message: reset-time, src: sink
plugins/gstreamer_video_player/player.c: gstreamer message: tag, src: sink
plugins/gstreamer_video_player/player.c: state-changed: src: sink, old: PAUSED, current: PAUSED, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: state-changed: src: pipeline0, old: PAUSED, current: PAUSED, pending: PLAYING
plugins/gstreamer_video_player/player.c: gstreamer: redistributing latency
plugins/gstreamer_video_player/player.c: state-changed: src: sink, old: PAUSED, current: PLAYING, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: state-changed: src: pipeline0, old: PAUSED, current: PLAYING, pending: VOID_PENDING

(flutter-pi:10662): GStreamer-CRITICAL **: 17:03:10.017: gst_sample_set_caps: assertion 'gst_sample_is_writable (sample)' failed
plugins/gstreamer_video_player/player.c: on_appsink_eos()
plugins/gstreamer_video_player/player.c: appsink eos, seeking back to segment start (flushing)
plugins/gstreamer_video_player/player.c: apply_playback_state(playing: playing): async state change in progress, setting state to PLAYING
plugins/gstreamer_video_player/player.c: state-changed: src: sink, old: PAUSED, current: PAUSED, pending: PAUSED
plugins/gstreamer_video_player/player.c: state-changed: src: pipeline0, old: PAUSED, current: PAUSED, pending: PAUSED
plugins/gstreamer_video_player/player.c: gstreamer message: reset-time, src: sink
plugins/gstreamer_video_player/player.c: gstreamer message: tag, src: sink
plugins/gstreamer_video_player/player.c: state-changed: src: sink, old: PAUSED, current: PAUSED, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: state-changed: src: pipeline0, old: PAUSED, current: PAUSED, pending: PLAYING
plugins/gstreamer_video_player/player.c: gstreamer: redistributing latency

(flutter-pi:10662): GStreamer-CRITICAL **: 17:03:31.018: gst_sample_set_caps: assertion 'gst_sample_is_writable (sample)' failed
plugins/gstreamer_video_player/player.c: state-changed: src: sink, old: PAUSED, current: PLAYING, pending: VOID_PENDING
plugins/gstreamer_video_player/player.c: state-changed: src: pipeline0, old: PAUSED, current: PLAYING, pending: VOID_PENDING

bojidartonchev avatar Sep 19 '23 07:09 bojidartonchev

Hi @ardera, do you have any ideas that could help me in my investigation? And were you able to reproduce it on your x86 setup?

Forgot to mention I am using GStreamer Core Library version 1.20.7

bojidartonchev avatar Oct 23 '23 11:10 bojidartonchev

I was not able to reproduce it, I'm afraid; I might have another idea on how to work around though

ardera avatar Dec 14 '23 08:12 ardera

Hi, did you have time check that issue, or maybe give me some hints I can work on?

bojidartonchev avatar Apr 11 '24 10:04 bojidartonchev