/** * gst_encoding_profile_find: * @targetname: (transfer none): The name of the target * @profilename: (transfer none): (allow-none): The name of the profile, if %NULL * provided, it will default to the encoding profile called `default`. * @category: (transfer none) (allow-none): The target category. Can be %NULL * * Find the #GstEncodingProfile with the specified name and category. * * Returns: (transfer full): The matching #GstEncodingProfile or %NULL. */ GstEncodingProfile * gst_encoding_profile_find (const gchar * targetname, const gchar * profilename, const gchar * category) { GstEncodingProfile *res = NULL; GstEncodingTarget *target; g_return_val_if_fail (targetname != NULL, NULL); target = gst_encoding_target_load (targetname, category, NULL); if (target) { res = gst_encoding_target_get_profile (target, profilename ? profilename : "default"); gst_encoding_target_unref (target); } return res; }
static GstEncodingProfile * load_encoding_profile (void) { GstEncodingProfile *prof = NULL; GstEncodingTarget *target = NULL; GError *error = NULL; /* if profile file was given, try to load profile from there */ if (gep_filename && gep_profilename) { target = gst_encoding_target_load_from_file (gep_filename, &error); if (!target) { GST_WARNING ("Could not load target %s from file %s", gep_targetname, gep_filename); if (error) { GST_WARNING ("Error from file loading: %s", error->message); g_error_free (error); error = NULL; } } else { prof = gst_encoding_target_get_profile (target, gep_profilename); if (prof) GST_DEBUG ("Loaded encoding profile %s from %s", gep_profilename, gep_filename); else GST_WARNING ("Could not load specified encoding profile %s from file %s", gep_profilename, gep_filename); } /* if we could not load profile from file then try to find one from system */ } else if (gep_profilename && gep_targetname) { prof = gst_encoding_profile_find (gep_targetname, gep_profilename, NULL); if (prof) GST_DEBUG ("Loaded encoding profile %s from target %s", gep_profilename, gep_targetname); } else GST_DEBUG ("Encoding profile not set, using camerabin2 default encoding profile"); return prof; }