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
This commit is contained in:
George Kiagiadakis 2015-05-28 12:51:35 +02:00
parent 12ac087807
commit c84f911cee

View file

@ -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);