summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2020-08-25 12:56:21 +0300
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>2020-08-26 09:10:29 +0000
commit3edf390b4c6bd4ee9ad40fb3b6705992b2b0b7c0 (patch)
treea031ac78e3548c66ecbaff21a5181cf4b0cc1190
parentd74b9f56fc3466aff631f52b0b56fd3b40072a16 (diff)
downloadgstreamer-plugins-base-3edf390b4c6bd4ee9ad40fb3b6705992b2b0b7c0.tar.gz
videorate/videoscale/audioresample: Ensure that the caps returned from fixate_caps() are actually fixated
If there is some other field than the ones we care about left and not fixated yet then basetransform will just error out. So instead just pass the result through gst_caps_fixate() in the very end. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/799>
-rw-r--r--gst/audioresample/gstaudioresample.c2
-rw-r--r--gst/videorate/gstvideorate.c2
-rw-r--r--gst/videoscale/gstvideoscale.c2
3 files changed, 4 insertions, 2 deletions
diff --git a/gst/audioresample/gstaudioresample.c b/gst/audioresample/gstaudioresample.c
index de8bd80f7..cd9e329fd 100644
--- a/gst/audioresample/gstaudioresample.c
+++ b/gst/audioresample/gstaudioresample.c
@@ -362,7 +362,7 @@ gst_audio_resample_fixate_caps (GstBaseTransform * base,
s = gst_caps_get_structure (othercaps, 0);
gst_structure_fixate_field_nearest_int (s, "rate", rate);
- return othercaps;
+ return gst_caps_fixate (othercaps);
}
static GstStructure *
diff --git a/gst/videorate/gstvideorate.c b/gst/videorate/gstvideorate.c
index ea99e00ee..6ef926c12 100644
--- a/gst/videorate/gstvideorate.c
+++ b/gst/videorate/gstvideorate.c
@@ -535,7 +535,7 @@ gst_video_rate_fixate_caps (GstBaseTransform * trans,
if ((par = gst_structure_get_value (s, "pixel-aspect-ratio")))
gst_structure_fixate_field_nearest_fraction (s, "pixel-aspect-ratio", 1, 1);
- return othercaps;
+ return gst_caps_fixate (othercaps);
}
static gboolean
diff --git a/gst/videoscale/gstvideoscale.c b/gst/videoscale/gstvideoscale.c
index 198a76774..83377aa38 100644
--- a/gst/videoscale/gstvideoscale.c
+++ b/gst/videoscale/gstvideoscale.c
@@ -1149,6 +1149,8 @@ gst_video_scale_fixate_caps (GstBaseTransform * base, GstPadDirection direction,
}
done:
+ othercaps = gst_caps_fixate (othercaps);
+
GST_DEBUG_OBJECT (base, "fixated othercaps to %" GST_PTR_FORMAT, othercaps);
if (from_par == &fpar)