[Bug 684981] Pipeline hangs on PREROLLING negotiating caps

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Thu Sep 27 10:23:43 PDT 2012


https://bugzilla.gnome.org/show_bug.cgi?id=684981
  GStreamer | gstreamer (core) | 1.0.0

--- Comment #1 from Andre Moreira Magalhaes <andrunko at gmail.com> 2012-09-27 17:23:40 UTC ---
Created an attachment (id=225274)
 View: https://bugzilla.gnome.org/attachment.cgi?id=225274
 Review: https://bugzilla.gnome.org/review?bug=684981&attachment=225274

Do not hang on caps intersect when the caps have duplicated entries

After some investigation, the issue happens when caps with duplicated entries
are intersected. gst_caps_intersect_full will be called from gst_base_transform
and will hang on gst_structure_intersect, resulting in a caps with many
duplicated lists inside lists entries.

This happened cause the gamma element set it caps tempĺate to    
GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE ("{ AYUV, "
            "ARGB, BGRA, ABGR, RGBA, ABGR, RGBA, Y444, "
            "xRGB, RGBx, xBGR, BGRx, RGB, BGR, Y42B, NV12, "
            "NV21, YUY2, UYVY, YVYU, I420, YV12, IYUV, Y41B }"))
where RGBA and ABGR are duplicated entries. 

After caps negotiation finally finishes, the result is:
video/x-raw, format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB,
xBGR, { RGBA, RGBA, { RGBA, RGBA }, { RGBA, RGBA, { RGBA, RGBA } }, { RGBA,
RGBA, { RGBA, RGBA }, { RGBA, RGBA, { RGBA, RGBA } } }, { RGBA, RGBA, { RGBA,
RGBA }, { RGBA, RGBA, { RGBA, RGBA } }, { RGBA, RGBA, { RGBA, RGBA }, { RGBA,
RGBA, { RGBA, RGBA } } } }, { RGBA, RGBA, { RGBA, RGBA }, { RGBA, RGBA,...

Fixing gstgamma also fixes the issue, but a more generic fix is attached.

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list