}
success = TRUE;
+ if (priv->encoders->len == 0)
+ g_clear_pointer (&priv->encoders, g_ptr_array_unref);
+ if (priv->decoders->len == 0)
+ g_clear_pointer (&priv->decoders, g_ptr_array_unref);
+ if (priv->codecs->len == 0)
+ g_clear_pointer (&priv->codecs, g_array_unref);
+
cleanup:
g_free (profiles);
g_free (entrypoints);
decoders = display_get_decoder_codecs (display);
if (decoders) {
gst_vaapidecode_register (plugin, decoders);
+ gst_element_register (plugin, "vaapidecodebin",
+ GST_RANK_PRIMARY + 2, GST_TYPE_VAAPI_DECODE_BIN);
g_array_unref (decoders);
}
- if (_gst_vaapi_has_video_processing)
+ if (_gst_vaapi_has_video_processing) {
gst_vaapioverlay_register (plugin, display);
- gst_element_register (plugin, "vaapipostproc",
- GST_RANK_NONE, GST_TYPE_VAAPIPOSTPROC);
-
- gst_element_register (plugin, "vaapidecodebin",
- GST_RANK_PRIMARY + 2, GST_TYPE_VAAPI_DECODE_BIN);
+ gst_element_register (plugin, "vaapipostproc",
+ GST_RANK_NONE, GST_TYPE_VAAPIPOSTPROC);
+ }
rank = GST_RANK_SECONDARY;
if (g_getenv ("WAYLAND_DISPLAY"))
sink_caps_str = g_strconcat (gst_vaapidecode_sink_caps_str, "; ",
vaapi_decode_map[i].caps_str, NULL);
g_clear_pointer (&gst_vaapidecode_sink_caps_str, g_free);
+ if (!sink_caps_str)
+ break;
gst_vaapidecode_sink_caps_str = sink_caps_str;
}