mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-06-05 06:58:56 +00:00
dvdsubdec: use query caps instead of accept-caps
accept-caps does only a shallow check and a full downstream caps query is needed to check if ARGB is possible
This commit is contained in:
parent
9ee60482b2
commit
deb1b257f4
1 changed files with 5 additions and 1 deletions
|
@ -891,6 +891,7 @@ gst_dvd_sub_dec_sink_setcaps (GstPad * pad, GstCaps * caps)
|
||||||
GstStructure *s = gst_caps_get_structure (peer_caps, i);
|
GstStructure *s = gst_caps_get_structure (peer_caps, i);
|
||||||
/* Check if the peer pad support ARGB format, if yes change caps */
|
/* Check if the peer pad support ARGB format, if yes change caps */
|
||||||
if (gst_structure_has_name (s, "video/x-raw")) {
|
if (gst_structure_has_name (s, "video/x-raw")) {
|
||||||
|
GstCaps *downstream_caps;
|
||||||
gst_caps_unref (out_caps);
|
gst_caps_unref (out_caps);
|
||||||
GST_DEBUG_OBJECT (dec, "trying with ARGB");
|
GST_DEBUG_OBJECT (dec, "trying with ARGB");
|
||||||
|
|
||||||
|
@ -900,12 +901,15 @@ gst_dvd_sub_dec_sink_setcaps (GstPad * pad, GstCaps * caps)
|
||||||
"height", G_TYPE_INT, dec->in_height,
|
"height", G_TYPE_INT, dec->in_height,
|
||||||
"framerate", GST_TYPE_FRACTION, 0, 1, NULL);
|
"framerate", GST_TYPE_FRACTION, 0, 1, NULL);
|
||||||
|
|
||||||
if (gst_pad_peer_query_accept_caps (dec->srcpad, out_caps)) {
|
downstream_caps = gst_pad_peer_query_caps (dec->srcpad, NULL);
|
||||||
|
if (gst_caps_can_intersect (downstream_caps, out_caps)) {
|
||||||
|
gst_caps_unref (downstream_caps);
|
||||||
GST_DEBUG_OBJECT (dec, "peer accepted ARGB");
|
GST_DEBUG_OBJECT (dec, "peer accepted ARGB");
|
||||||
/* If ARGB format then set the flag */
|
/* If ARGB format then set the flag */
|
||||||
dec->use_ARGB = TRUE;
|
dec->use_ARGB = TRUE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
gst_caps_unref (downstream_caps);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
gst_caps_unref (peer_caps);
|
gst_caps_unref (peer_caps);
|
||||||
|
|
Loading…
Reference in a new issue