-
Notifications
You must be signed in to change notification settings - Fork 7
Description
Hi,
I successfully configured the module for a 280x240 SPI display.
kmscube displays correctly the cube using EGL (no X Windows / Waylands), got 74fps.
I've been attempting to use gstreamer and display whatever thing on the display, without success.
could you provide working examples of gstreamer working panel-mipi-dbi with optimized interfaces like KMS/DRM and/or OpenGL.
I have been testing:
kmssink --> 0:00:00.623264089 1892 0x55b57ddc60 ERROR kmsallocator gstkmsallocator.c:448:gst_kms_allocator_add_fb:KMSMemory::allocator Failed to bind to framebuffer: Invalid argument (22)
$ GST_DEBUG=2 gst-launch-1.0 v4l2src device=/dev/video0 ! image/jpeg,width=720,height=576,framerate=50/1 ! capssetter replace=true caps="image/jpeg,width=720,height=576" ! jpegparse ! queue ! v4l2jpegdec output-io-mode=dmabuf capture-io-mode=dmabuf discard-corrupted-frames=true ! v4l2convert ! video/x-raw,width=280,height=210 ! kmssink driver-name="panel-mipi-dbi"
0:00:00.401957264 1892 0x55b57f0400 WARN kmssink gstkmssink.c:2101:_validate_and_set_external_fd:<kmssink0> Can't set fd... driver-name already set.
Setting pipeline to PAUSED ...
(gst-launch-1.0:1892): GStreamer-CRITICAL **: 12:49:45.948: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed
(gst-launch-1.0:1892): GStreamer-CRITICAL **: 12:49:45.949: range start is not smaller than end for `GstIntRange'
(gst-launch-1.0:1892): GStreamer-CRITICAL **: 12:49:45.949: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed
(gst-launch-1.0:1892): GStreamer-CRITICAL **: 12:49:45.949: range start is not smaller than end for `GstIntRange'
0:00:00.415762257 1892 0x55b57f0400 WARN v4l2 gstv4l2object.c:4675:gst_v4l2_object_probe_caps:<v4l2convert0:src> Failed to probe pixel aspect ratio with VIDIOC_CROPCAP: Invalid argument
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
0:00:00.428094491 1892 0x55b57d7a40 WARN v4l2 gstv4l2object.c:4410:gst_v4l2_object_set_crop:<v4l2src0:src> VIDIOC_S_CROP failed
0:00:00.430606001 1892 0x55b57d7a40 WARN v4l2 gstv4l2object.c:3228:gst_v4l2_object_reset_compose_region:<v4l2src0:src> Failed to get default compose rectangle with VIDIOC_G_SELECTION: Invalid argument
0:00:00.436135685 1892 0x55b57d7a40 WARN v4l2bufferpool gstv4l2bufferpool.c:848:gst_v4l2_buffer_pool_start:<v4l2src0:pool0:src> Uncertain or not enough buffers, enabling copy threshold
0:00:00.524302572 1892 0x55b57d8000 WARN v4l2 gstv4l2object.c:3228:gst_v4l2_object_reset_compose_region:<v4l2jpegdec0:sink> Failed to get default compose rectangle with VIDIOC_G_SELECTION: Invalid argument
0:00:00.528726841 1892 0x55b57d8000 WARN v4l2 gstv4l2object.c:2255:gst_v4l2_object_get_streamparm:<v4l2jpegdec0:src> VIDIOC_G_PARM failed
0:00:00.535846473 1892 0x55b57d8000 WARN v4l2 gstv4l2object.c:3228:gst_v4l2_object_reset_compose_region:<v4l2convert0:sink> Failed to get default compose rectangle with VIDIOC_G_SELECTION: Invalid argument
0:00:00.536997097 1892 0x55b57d8000 WARN v4l2 gstv4l2object.c:4404:gst_v4l2_object_set_crop:<v4l2convert0:src> Failed to set crop rectangle with VIDIOC_S_SELECTION: Invalid argument
0:00:00.537448920 1892 0x55b57d8000 WARN basetransform gstbasetransform.c:1379:gst_base_transform_setcaps:<v4l2convert0> FAILED to configure incaps video/x-raw, format=(string)NV12, width=(int)720, height=(int)576, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)bt601, framerate=(fraction)0/1 and outcaps video/x-raw, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, framerate=(fraction)0/1, format=(string)BGRx, width=(int)280, height=(int)210, pixel-aspect-ratio=(fraction)15/16
0:00:00.539373503 1892 0x55b57d7a40 WARN v4l2src gstv4l2src.c:1351:gst_v4l2src_create:<v4l2src0> lost frames detected: count = 3 - ts: 0:00:00.092534684
0:00:00.552157299 1892 0x55b57d8000 WARN v4l2videodec gstv4l2videodec.c:1046:gst_v4l2_video_dec_decide_allocation:<v4l2jpegdec0> Duration invalid, not setting latency
0:00:00.623264089 1892 0x55b57ddc60 ERROR kmsallocator gstkmsallocator.c:448:gst_kms_allocator_add_fb:<KMSMemory::allocator> Failed to bind to framebuffer: Invalid argument (22)
**0:00:00.626427577 1892 0x55b57ddc60 ERROR kmsallocator gstkmsallocator.c:448:gst_kms_allocator_add_fb:<KMSMemory::allocator> Failed to bind to framebuffer: Invalid argument (22)**
0:00:00.626947733 1892 0x55b57ddc60 WARN kmsbufferpool gstkmsbufferpool.c:176:gst_kms_buffer_pool_alloc_buffer:<kmsbufferpool1> can't create memory
0:00:00.627009660 1892 0x55b57ddc60 WARN bufferpool gstbufferpool.c:318:do_alloc_buffer:<kmsbufferpool1> alloc function failed
0:00:00.627052577 1892 0x55b57ddc60 WARN bufferpool gstbufferpool.c:351:default_start:<kmsbufferpool1> failed to allocate buffer
0:00:00.627090129 1892 0x55b57ddc60 ERROR bufferpool gstbufferpool.c:572:gst_buffer_pool_set_active:<kmsbufferpool1> start failed
0:00:00.627149921 1892 0x55b57ddc60 WARN kmssink gstkmssink.c:1782:ensure_internal_pool:<kmssink0> error: failed to activate buffer pool
0:00:00.627214973 1892 0x55b57ddc60 WARN kmssink gstkmssink.c:1782:ensure_internal_pool:<kmssink0> error: failed to activate buffer pool
ERROR: from element /GstPipeline:pipeline0/GstKMSSink:kmssink0: failed to activate buffer pool
Additional debug info:
../sys/kms/gstkmssink.c(1782): ensure_internal_pool (): /GstPipeline:pipeline0/GstKMSSink:kmssink0:
failed to activate buffer pool
Execution ended after 0:00:00.202390740
Setting pipeline to NULL ...
Freeing pipeline ...**
glimagesink --> 0:00:05.210371817 3378 0x558a3958c0 ERROR gleglgbm gstgl_gbm_utils.c:424:gst_gl_gbm_drm_fb_get_from_bo: Failed to add GBM BO as scanout framebuffer: Invalid argument (22)
Caught SIGSEGV
$ GST_DEBUG=2 gst-launch-1.0 v4l2src device=/dev/video0 ! image/jpeg,width=720,height=576,framerate=50/1 ! capssetter replace=true caps="image/jpeg,width=720,height=576" ! jpegparse ! queue ! v4l2jpegdec output-io-mode=dmabuf capture-io-mode=dmabuf discard-corrupted-frames=true ! v4l2convert ! video/x-raw,width=280,height=210 ! glimagesink
Setting pipeline to PAUSED ...
0:00:04.319214452 3378 0x558a49bcd0 WARN v4l2 gstv4l2object.c:4675:gst_v4l2_object_probe_caps:<v4l2convert0:src> Failed to probe pixel aspect ratio with VIDIOC_CROPCAP: Invalid argument
Pipeline is live and does not need PREROLL ...
Got context from element 'sink': gst.gl.GLDisplay=context, gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayGBM\)\ gldisplaygbm0";
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
0:00:04.497330967 3378 0x558a395b60 WARN v4l2 gstv4l2object.c:4410:gst_v4l2_object_set_crop:<v4l2src0:src> VIDIOC_S_CROP failed
0:00:04.500097424 3378 0x558a395b60 WARN v4l2 gstv4l2object.c:3228:gst_v4l2_object_reset_compose_region:<v4l2src0:src> Failed to get default compose rectangle with VIDIOC_G_SELECTION: Invalid argument
0:00:04.506012629 3378 0x558a395b60 WARN v4l2bufferpool gstv4l2bufferpool.c:848:gst_v4l2_buffer_pool_start:<v4l2src0:pool0:src> Uncertain or not enough buffers, enabling copy threshold
0:00:04.597809608 3378 0x558a390240 WARN v4l2 gstv4l2object.c:3228:gst_v4l2_object_reset_compose_region:<v4l2jpegdec0:sink> Failed to get default compose rectangle with VIDIOC_G_SELECTION: Invalid argument
0:00:04.603611636 3378 0x558a390240 WARN v4l2 gstv4l2object.c:2255:gst_v4l2_object_get_streamparm:<v4l2jpegdec0:src> VIDIOC_G_PARM failed
0:00:04.612660277 3378 0x558a395b60 WARN v4l2src gstv4l2src.c:1351:gst_v4l2src_create:<v4l2src0> lost frames detected: count = 2 - ts: 0:00:00.099474132
0:00:04.620198763 3378 0x558a390240 WARN v4l2 gstv4l2object.c:3228:gst_v4l2_object_reset_compose_region:<v4l2convert0:sink> Failed to get default compose rectangle with VIDIOC_G_SELECTION: Invalid argument
0:00:04.621483033 3378 0x558a390240 WARN v4l2 gstv4l2object.c:3951:gst_v4l2_object_set_format_full:<v4l2convert0:src> Failed to set alpha component value
0:00:04.622412147 3378 0x558a390240 WARN v4l2 gstv4l2object.c:4404:gst_v4l2_object_set_crop:<v4l2convert0:src> Failed to set crop rectangle with VIDIOC_S_SELECTION: Invalid argument
0:00:04.622902146 3378 0x558a390240 WARN basetransform gstbasetransform.c:1379:gst_base_transform_setcaps:<v4l2convert0> FAILED to configure incaps video/x-raw, format=(string)NV12, width=(int)720, height=(int)576, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)bt601, framerate=(fraction)0/1 and outcaps video/x-raw, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, framerate=(fraction)0/1, format=(string)RGBA, width=(int)280, height=(int)210, pixel-aspect-ratio=(fraction)15/16
0:00:04.660257438 3378 0x558a390240 WARN v4l2videodec gstv4l2videodec.c:1046:gst_v4l2_video_dec_decide_allocation:<v4l2jpegdec0> Duration invalid, not setting latency
**0:00:05.210371817 3378 0x558a3958c0 ERROR gleglgbm gstgl_gbm_utils.c:424:gst_gl_gbm_drm_fb_get_from_bo: Failed to add GBM BO as scanout framebuffer: Invalid argument (22)
Caught SIGSEGV**
0:00:05.812070802 3378 0x558a395b60 WARN v4l2src gstv4l2src.c:1351:gst_v4l2src_create:<v4l2src0> lost frames detected: count = 19 - ts: 0:00:01.295640133
0:00:08.807480524 3378 0x558a395b60 WARN v4l2src gstv4l2src.c:1351:gst_v4l2src_create:<v4l2src0> lost frames detected: count = 24 - ts: 0:00:01.885255591
fbdevsink --> works but sluggish performance
many thanks