Details
-
Bug
-
Resolution: Out of scope
-
P2: Important
-
None
-
6.2.4, 6.3.1
-
None
-
I see the errors on two platforms: (1) Ubuntu 20.04, Qt 6.2 and newer, X11, x86_64; (2) embedded Linux built with Yocto 2.7, Qt 6.2 and newer, Wayland, ARMv7-A (32-bit iMX6).
Description
With Qt 6.2 or newer, the Video element fails to create the GStreamer pipeline assigned to the source property.
Video
{
Component.onCompleted: play() anchors.fill: parent
source: "gst-pipeline: udpsrc port=5004 caps=application/x-rtp,media=video,clock-rate=90000,encoding-name=JPEG ! decodebin ! queue ! autovideosink"
}
With GST_DEBUG=2, I see the following GStreamer and Qt messages:
(MainApp:1283): GStreamer-CRITICAL **: 02:45:22.527: gst_element_message_full_with_details: assertion 'GST_IS_ELEMENT (element)' failed 0:00:00.152825743 1283 0x810a00 WARN v4l2 gstv4l2object.c:4487:gst_v4l2_object_probe_caps:<v4l2deviceprovider0> Failed to probe pixel aspect ratio with VIDIOC_CROPCAP: Invalid argument 0:00:00.179280450 1283 0x810a00 WARN v4l2 v4l2_calls.c:94:gst_v4l2_get_capabilities: error: system error: Inappropriate ioctl for device (MainApp:1283): GStreamer-CRITICAL **: 02:45:22.561: gst_element_message_full_with_details: assertion 'GST_IS_ELEMENT (element)' failed 0:00:00.187135328 1283 0x810a00 WARN v4l2 v4l2_calls.c:94:gst_v4l2_get_capabilities: error: Error getting capabilities for device '/dev/v4l-subdev11': It isn't a v4l2 driver. Check if it is a v4l1 driver. 0:00:00.187195025 1283 0x810a00 WARN v4l2 v4l2_calls.c:94:gst_v4l2_get_capabilities: error: system error: Inappropriate ioctl for device (MainApp:1283): GStreamer-CRITICAL **: 02:45:22.562: gst_element_message_full_with_details: assertion 'GST_IS_ELEMENT (element)' failed 0:00:00.188694004 1283 0x810a00 ERROR pulse pulsedeviceprovider.c:431:gst_pulse_device_provider_probe:<pulsedeviceprovider0> Failed to connect: Invalid argument 0:00:00.209133581 1283 0x810a00 WARN GST_ELEMENT_FACTORY gstelementfactory.c:462:gst_element_factory_make: no such element factory "imxvideoconvert_g2d"! 0:00:00.317941455 1283 0x810a00 WARN pulse pulsesink.c:615:gst_pulseringbuffer_open_device:<autoAudioSink-actual-sink-pulse> error: Failed to connect: Connection refused 0:00:00.359513301 1283 0x810a00 WARN uridecodebin gsturidecodebin.c:1409:gen_source_element:<uridecoder> error: No URI handler implemented for "gst-pipeline". qt.multimedia.player: Unable to set the pipeline to the paused state. 0:00:00.754622382 1283 0x810a00 WARN uridecodebin gsturidecodebin.c:1409:gen_source_element:<uridecoder> error: No URI handler implemented for "gst-pipeline". 0:00:00.938965119 1283 0x1439e40 WARN glwindow gstglwindow.c:289:gst_gl_window_new: Could not create window. user specified (null), creating dummy window
The Video element from Qt 5.15 has no problems to create the pipeline successfully. I can also display the video stream from an Ethernet camera. So, it looks very much like a regression.
I have attached the source code for a simple video app. The first version in the directory src-5 builds and runs against Qt 5.15, the second version in src-6 against Qt 6.2 or newer. The first works, the second doesn't.
Attachments
Issue Links
- relates to
-
QTBUG-112999 Support RTP cameras with the gstreamer backend
- Closed