From c84f911cee427ea8e1759cccfa99950c1e0988d3 Mon Sep 17 00:00:00 2001 From: George Kiagiadakis Date: Thu, 28 May 2015 12:51:35 +0200 Subject: [PATCH] videorate: update the caps framerate only in the GST_PAD_SINK transform_caps direction When a stream has a variable framerate, videorate calculates it and forces it on the output caps. However, the code in _transform_caps() currently also does that if the transform is going in the opposite direction (GST_PAD_SRC), so during a renegotiation it tries to force upstream to use the calculated framerate and it fails. https://bugzilla.gnome.org/show_bug.cgi?id=750032 --- gst/videorate/gstvideorate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gst/videorate/gstvideorate.c b/gst/videorate/gstvideorate.c index aa3cf1460a..19441c70e1 100644 --- a/gst/videorate/gstvideorate.c +++ b/gst/videorate/gstvideorate.c @@ -375,7 +375,7 @@ gst_video_rate_transform_caps (GstBaseTransform * trans, s1 = gst_structure_copy (s); - if (videorate->updating_caps) { + if (videorate->updating_caps && direction == GST_PAD_SINK) { GST_INFO_OBJECT (trans, "Only updating caps %" GST_PTR_FORMAT " with framerate" " %d/%d", caps, videorate->to_rate_numerator, videorate->to_rate_denominator);