mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-31 11:32:38 +00:00
basesrc: reflow to truncate caps just once
We get writable caps from the intersection (unless it failed). As we truncate those anyway, we don't need to manualy copy the first structure.
This commit is contained in:
parent
01a966eec3
commit
a1c2071300
1 changed files with 3 additions and 9 deletions
|
@ -2592,23 +2592,17 @@ gst_base_src_default_negotiate (GstBaseSrc * basesrc)
|
|||
peercaps = gst_pad_peer_get_caps_reffed (GST_BASE_SRC_PAD (basesrc));
|
||||
GST_DEBUG_OBJECT (basesrc, "caps of peer: %" GST_PTR_FORMAT, peercaps);
|
||||
if (peercaps) {
|
||||
GstCaps *icaps;
|
||||
|
||||
/* get intersection */
|
||||
icaps = gst_caps_intersect (thiscaps, peercaps);
|
||||
GST_DEBUG_OBJECT (basesrc, "intersect: %" GST_PTR_FORMAT, icaps);
|
||||
caps = gst_caps_intersect (thiscaps, peercaps);
|
||||
GST_DEBUG_OBJECT (basesrc, "intersect: %" GST_PTR_FORMAT, caps);
|
||||
gst_caps_unref (thiscaps);
|
||||
gst_caps_unref (peercaps);
|
||||
if (icaps) {
|
||||
/* take first (and best, since they are sorted) possibility */
|
||||
caps = gst_caps_copy_nth (icaps, 0);
|
||||
gst_caps_unref (icaps);
|
||||
}
|
||||
} else {
|
||||
/* no peer, work with our own caps then */
|
||||
caps = thiscaps;
|
||||
}
|
||||
if (caps) {
|
||||
/* take first (and best, since they are sorted) possibility */
|
||||
caps = gst_caps_make_writable (caps);
|
||||
gst_caps_truncate (caps);
|
||||
|
||||
|
|
Loading…
Reference in a new issue