diff --git a/sys/v4l2/gstv4l2videoenc.c b/sys/v4l2/gstv4l2videoenc.c index f89d02196317e00f0bc08f52d118bf586a1f52de..ea574de6ac624191f883b0e18a10921021afef23 100644 --- a/sys/v4l2/gstv4l2videoenc.c +++ b/sys/v4l2/gstv4l2videoenc.c @@ -1176,20 +1176,20 @@ gst_v4l2_video_enc_register (GstPlugin * plugin, GType type, GstV4l2VideoEncCData *cdata; GValue value = G_VALUE_INIT; + filtered_caps = gst_caps_intersect (src_caps, codec_caps); + if (codec != NULL && video_fd != -1) { if (gst_v4l2_codec_probe_levels (codec, video_fd, &value)) { - gst_caps_set_value (src_caps, "level", &value); + gst_caps_set_value (filtered_caps, "level", &value); g_value_unset (&value); } if (gst_v4l2_codec_probe_profiles (codec, video_fd, &value)) { - gst_caps_set_value (src_caps, "profile", &value); + gst_caps_set_value (filtered_caps, "profile", &value); g_value_unset (&value); } } - filtered_caps = gst_caps_intersect (src_caps, codec_caps); - cdata = g_new0 (GstV4l2VideoEncCData, 1); cdata->device = g_strdup (device_path); cdata->sink_caps = gst_caps_ref (sink_caps);