Elizabeth Figura (@zfigura) commented about dlls/winegstreamer/wg_transform.c:
- return caps;
}
static gboolean transform_sink_query_caps(struct wg_transform *transform, GstQuery *query) { GstCaps *caps, *filter, *temp;
bool strip_size = false;
GST_LOG("transform %p, %"GST_PTR_FORMAT, transform, query);
gst_query_parse_caps(query, &filter);
- if (!(caps = transform_format_to_caps(transform, &transform->output_format)))
- if (filter && gst_structure_has_field(gst_caps_get_structure(filter, 0), "width"))
strip_size = transform->attrs.allow_size_change;
- if (!(caps = caps_strip_fields(transform->output_caps, strip_size)))
But transform->output_format isn't equivalent to transform->output_caps.
GStreamer may never do a caps query at a relevant time, but if the application is required to call SetOutputType() with the new format, then pretending that the new format is already set looks very wrong.