qml6glmixer doesn't seems to set correctly buffer metadata
Describe your issue
when trying to set a different cap on qml6glmixer source pad the pipeline failed with the following error logs:
GStreamer-Video-CRITICAL **: 12:33:07.319: gst_video_frame_map_id: assertion 'info->width <= meta->width' failed
**
ERROR:../subprojects/gst-plugins-good/ext/qt6/gstqsg6glnode.cc:125:void GstQSG6OpenGLNode::setBuffer(GstBuffer*): code should not be reached
Bail out! ERROR:../subprojects/gst-plugins-good/ext/qt6/gstqsg6glnode.cc:125:void GstQSG6OpenGLNode::setBuffer(GstBuffer*): code should not be reached
the info->width value correspond to the caps but the meta->width is 320
Expected Behavior
setting caps on qml6glmixer source pad should be possible.
Observed Behavior
application is crashing.
Setup
- Operating System: Arch Linux
- Device: Computer
- GStreamer Version: build from main branch
Steps to reproduce the bug
- use the example from source tree: gstreamer/subprojects/gst-plugins-good/tests/examples/qt6/qmlmixer
- add the following capsfilter:
GstCaps *caps = gst_caps_new_simple ("video/x-raw",
"width", G_TYPE_INT, 800,
"height", G_TYPE_INT, 600,
"framerate", GST_TYPE_FRACTION, 60, 1, \
"texture-target", G_TYPE_STRING, "2D", \
NULL);
GstCapsFeatures * features = gst_caps_features_new_single("memory:GLMemory");
gst_caps_set_features_simple (caps, features);
GstElement *capsFilter = gst_element_factory_make ("capsfilter", NULL);
g_object_set (capsFilter, "caps", caps, NULL);
- link the capsfilter between the qml6glmixer and the qml6glsink node
How reproducible is the bug?
The reproducibility of the bug is Always