static GstEncodingProfile * combo_search (const gchar * pname) { GstEncodingProfile *res; gchar **split; gint split_length; /* Splitup */ split = g_strsplit (pname, "/", 3); split_length = g_strv_length (split); if (split_length > 3) return NULL; res = gst_encoding_profile_find (split[0], split_length == 2 ? split[1] : NULL, split_length == 3 ? split[2] : NULL); g_strfreev (split); 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; }