v4l2videoenc: Only renegotiate with upstream

When the decoder get linked further, it will receive a renegotiation
event from downstream. This case is not supported and should be ignored.

This fixes issues when this encoder is used inside an GstRtspServer
pipeline.

https://bugzilla.gnome.org/show_bug.cgi?id=796525
This commit is contained in:
Nicolas Dufresne 2018-06-28 19:08:35 -04:00
parent 025a430d08
commit 6704fbb044

View file

@ -521,6 +521,10 @@ gst_v4l2_video_enc_negotiate (GstVideoEncoder * encoder)
GST_DEBUG_OBJECT (self, "Negotiating %s profile and level.", GST_DEBUG_OBJECT (self, "Negotiating %s profile and level.",
klass->codec_name); klass->codec_name);
/* Only renegotiate on upstream changes */
if (self->input_state)
return TRUE;
allowed_caps = gst_pad_get_allowed_caps (GST_VIDEO_ENCODER_SRC_PAD (encoder)); allowed_caps = gst_pad_get_allowed_caps (GST_VIDEO_ENCODER_SRC_PAD (encoder));
if (allowed_caps) { if (allowed_caps) {