diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2020-08-25 12:56:21 +0300 |
---|---|---|
committer | GStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org> | 2020-08-26 09:10:29 +0000 |
commit | 3edf390b4c6bd4ee9ad40fb3b6705992b2b0b7c0 (patch) | |
tree | a031ac78e3548c66ecbaff21a5181cf4b0cc1190 | |
parent | d74b9f56fc3466aff631f52b0b56fd3b40072a16 (diff) | |
download | gstreamer-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.c | 2 | ||||
-rw-r--r-- | gst/videorate/gstvideorate.c | 2 | ||||
-rw-r--r-- | gst/videoscale/gstvideoscale.c | 2 |
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) |