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
diff --git a/sys/v4l2/gstv4l2videoenc.c b/sys/v4l2/gstv4l2videoenc.c
index 5b6b810..7e88923 100644
--- a/sys/v4l2/gstv4l2videoenc.c
+++ b/sys/v4l2/gstv4l2videoenc.c
@@ -521,6 +521,10 @@
GST_DEBUG_OBJECT (self, "Negotiating %s profile and level.",
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));
if (allowed_caps) {