Linking v4l2convert to kmssink
Fabio Estevam
festevam at gmail.com
Thu Oct 14 18:02:23 UTC 2021
Hi,
The following pipeline works correctly on a imx6ull-evk:
gst-launch-1.0 -v videotestsrc ! video/x-raw,format=BGRx,width=320,height=240 \
! v4l2convert ! video/x-raw,format=BGRx,width=160,height=120 ! fbdevsink
Now I would like to use kmssink instead of fbdevsink:
export GST_DEBUG="kmssink:7"
gst-launch-1.0 -v videotestsrc ! video/x-raw,format=BGRx,width=320,height=240 \
! v4l2convert ! video/x-raw,format=BGRx,width=160,height=120 ! kmssink
can-scale=false
Setting pipeline to PAUSED ...
0:00:00.940630791 249 0x1e394c0 INFO kmssink
gstkmssink.c:364:log_drm_version:<kmssink0> DRM v1.0.0 [mxsfb-drm �—
MXSFB Controller DRM �— 20160824]
0:00:00.946571791 249 0x1e394c0 INFO kmssink
gstkmssink.c:409:get_drm_caps:<kmssink0> prime import (�✓) / prime
export (�✓) / async page flip (�✗)
0:00:00.951843708 249 0x1e394c0 INFO kmssink
gstkmssink.c:542:ensure_allowed_caps:<kmssink0> ignoring format RG16
0:00:00.956671416 249 0x1e394c0 DEBUG kmssink
gstkmssink.c:579:ensure_allowed_caps:<kmssink0> allowed caps =
video/x-raw, format=(string)BGRx, width=(int)[ 120, 65535 ],
height=(int)[ 1
20, 65535 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
0:00:00.960598125 249 0x1e394c0 INFO kmssink
gstkmssink.c:789:gst_kms_sink_start:<kmssink0> connector id = 35 /
crtc id = 33 / plane id = 31
0:00:00.965056000 249 0x1e394c0 INFO kmssink
gstkmssink.c:811:gst_kms_sink_start:<kmssink0> display size: pixels =
480x272 / millimeters = 95x54
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstKMSSink:kmssink0: display-width = 480
/GstPipeline:pipeline0/GstKMSSink:kmssink0: display-height = 272
0:00:01.011140500 249 0x1e3d838 DEBUG
/GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0.GstPad:src: caps
= video/x-raw, format=(string)BGRx, width=(int)320, height=(int)240,
framerat
e=(fraction)30/1, multiview-mode=(string)mono,
interlace-mode=(string)progressive, colorimetry=(string)1:1:5:1,
pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps =
video/x-raw, format=(string)BGRx, width=(int)320, height=(int)240,
framerate=(fraction)30/1, multiview-mode=(string)mono, interlace-mod
e=(string)progressive, colorimetry=(string)1:1:5:1,
pixel-aspect-ratio=(fraction)1/1
kmssink gstkmssink.c:1015:gst_kms_sink_get_caps:<kmssink0> Proposing
caps video/x-raw, format=(string)BGRx, width=(int)480,
height=(int)272, framerate=(fraction)[ 0/1, 2147483647/1 ],
pixel-aspect-ratio=
(fraction)1/1; video/x-raw, format=(string)BGRx, width=(int)[ 120,
65535 ], height=(int)[ 120, 65535 ], framerate=(fraction)[ 0/1,
2147483647/1 ], pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/v4l2convert:v4l2convert0.GstPad:src: caps =
video/x-raw, framerate=(fraction)30/1, multiview-mode=(string)mono,
interlace-mode=(string)progressive, format=(string)BGRx, width=(int)
160, height=(int)120, pixel-aspect-ratio=(fraction)1/1
0:00:01.026995416 249 0x1e3d838 DEBUG kmssink
gstkmssink.c:1015:gst_kms_sink_get_caps:<kmssink0> Proposing caps
video/x-raw, format=(string)BGRx, width=(int)480, height=(int)272,
framer
ate=(fraction)[ 0/1, 2147483647/1 ], pixel-aspect-ratio=(fraction)1/1;
video/x-raw, format=(string)BGRx, width=(int)[ 120, 65535 ],
height=(int)[ 120, 65535 ], framerate=(fraction)[ 0/1, 2147483647/1 ],
pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:src: caps =
video/x-raw, framerate=(fraction)30/1, multiview-mode=(string)mono,
interlace-mode=(string)progressive, format=(string)BGRx, width=(int
)160, height=(int)120, pixel-aspect-ratio=(fraction)1/1
0:00:01.034106458 249 0x1e3d838 DEBUG kmssink
gstkmssink.c:1015:gst_kms_sink_get_caps:<kmssink0> Proposing caps
video/x-raw, format=(string)BGRx, width=(int)480, height=(int)272,
framer
ate=(fraction)[ 0/1, 2147483647/1 ], pixel-aspect-ratio=(fraction)1/1;
video/x-raw, format=(string)BGRx, width=(int)[ 120, 65535 ],
height=(int)[ 120, 65535 ], framerate=(fraction)[ 0/1, 2147483647/1 ],
pixel-aspect-ratio=(fraction)1/1
0:00:01.038949625 249 0x1e3d838 DEBUG kmssink
gstkmssink.c:1117:gst_kms_sink_calculate_display_ratio:<kmssink0>
scaling to 160x120
0:00:01.043342583 249 0x1e3d838 DEBUG kmssink
gstkmssink.c:1158:gst_kms_sink_set_caps:<kmssink0> negotiated caps =
video/x-raw, framerate=(fraction)30/1, multiview-mode=(string)mono, in
terlace-mode=(string)progressive, format=(string)BGRx, width=(int)160,
height=(int)120, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstKMSSink:kmssink0.GstPad:sink: caps =
video/x-raw, framerate=(fraction)30/1, multiview-mode=(string)mono,
interlace-mode=(string)progressive, format=(string)BGRx,
width=(int)160,
height=(int)120, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:sink: caps =
video/x-raw, framerate=(fraction)30/1, multiview-mode=(string)mono,
interlace-mode=(string)progressive, format=(string)BGRx, width=(in
t)160, height=(int)120, pixel-aspect-ratio=(fraction)1/1
0:00:01.052128833 249 0x1e3d838 DEBUG kmssink
gstkmssink.c:1204:gst_kms_sink_propose_allocation:<kmssink0> propose
allocation
/GstPipeline:pipeline0/v4l2convert:v4l2convert0.GstPad:sink: caps =
video/x-raw, format=(string)BGRx, width=(int)320, height=(int)240,
framerate=(fraction)30/1, multiview-mode=(string)mono, interlace-mod
e=(string)progressive, colorimetry=(string)1:1:5:1,
pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps =
video/x-raw, format=(string)BGRx, width=(int)320, height=(int)240,
framerate=(fraction)30/1, multiview-mode=(string)mono, interlace-mo
de=(string)progressive, colorimetry=(string)1:1:5:1,
pixel-aspect-ratio=(fraction)1/1
0:00:01.082080458 249 0x1e3d838 TRACE kmssink
gstkmssink.c:1357:gst_kms_sink_import_dmabuf:<kmssink0> Found a dmabuf
with 1 planes and 1 memories
0:00:01.679061083 249 0x1e3d838 LOG kmssink
gstkmssink.c:1408:gst_kms_sink_import_dmabuf:<kmssink0> found these
prime ids: 22, 0, 0, 0
0:00:01.687960166 249 0x1e3d838 LOG kmssink
gstkmssink.c:1416:gst_kms_sink_import_dmabuf:<kmssink0> setting KMS
mem 0x1e65178 to DMABuf mem 0x1e64f28 with fb id = 38
0:00:01.692443458 249 0x1e3d838 TRACE kmssink
gstkmssink.c:1602:gst_kms_sink_show_frame:<kmssink0> displaying fb 38
0:00:01.697410416 249 0x1e3d838 TRACE kmssink
gstkmssink.c:1659:gst_kms_sink_show_frame:<kmssink0> drmModeSetPlane
at (160,76) 160x120 sourcing at (0,0) 160x120
0:00:01.701847291 249 0x1e3d838 DEBUG kmssink
gstkmssink.c:1707:gst_kms_sink_show_frame:<kmssink0> result = { 160,
76, 160, 120} / src = { 0, 0, 160 120 } / dst = { 0, 0, 480 272 }
0:00:01.706981083 249 0x1e3d838 WARN kmssink
gstkmssink.c:1711:gst_kms_sink_show_frame:<kmssink0> error:
drmModeSetPlane failed: Resource temporarily unavailable (11)
ERROR: from element /GstPipeline:pipeline0/GstKMSSink:kmssink0:
GStreamer encountered a general resource error.
Additional debug info:
../sys/kms/gstkmssink.c(1711): gst_kms_sink_show_frame ():
/GstPipeline:pipeline0/GstKMSSink:kmssink0:
drmModeSetPlane failed: Resource temporarily unavailable (11)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
ERROR: from element
/GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0: Internal data
stream error.
Additional debug info:
../libs/gst/base/gstbasesrc.c(3127): gst_base_src_loop ():
/GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0:
streaming stopped, reason error (-5)
ERROR: pipeline doesn't want to preroll.
Freeing pipeline ...
#
Does anyone know what needs to be changed in the PXP or mxfdb driver
to allow the
Gstreamer pipeline to work with kmssink?
Thanks,
Fabio Estevam
More information about the gstreamer-devel
mailing list