gst_encoding_target_get_category
gst_encoding_target_get_description
gst_encoding_target_get_profiles
+gst_encoding_target_get_profile
gst_encoding_target_add_profile
gst_encoding_target_save
gst_encoding_target_save_to
*{
* GstEncodingProfile *prof = NULL;
* GstEncodingTarget *target = NULL;
- * GList *tmp;
*
* target = gst_encoding_target_load_from (path);
* if (target == NULL)
* return NULL;
*
- * for (tmp = target->profiles; tmp; tmp = tmp->next) {
- * GstEncodingProfile *ptmp = (GstEncodingProfile*) tmp->data;
+ * prof = gst_encoding_target_get_profile (target, profilename);
*
- * if (!strcmp(gst_encoding_profile_get_name(ptmp), profilename)) {
- * prof = ptmp;
- * break;
- * }
- * }
+ * gst_encoding_target_unref (target);
*
* return prof;
*}
return target->profiles;
}
+/**
+ * gst_encoding_target_get_profile:
+ * @target: a #GstEncodingTarget
+ * @name: the name of the profile to retrieve
+ *
+ * Since: 0.10.32
+ *
+ * Returns: (transfer full): The matching #GstEncodingProfile, or %NULL.
+ */
+GstEncodingProfile *
+gst_encoding_target_get_profile (GstEncodingTarget * target, const gchar * name)
+{
+ GList *tmp;
+
+ g_return_val_if_fail (GST_IS_ENCODING_TARGET (target), NULL);
+ g_return_val_if_fail (name != NULL, NULL);
+
+ for (tmp = target->profiles; tmp; tmp = tmp->next) {
+ GstEncodingProfile *tprof = (GstEncodingProfile *) tmp->data;
+
+ if (!g_strcmp0 (gst_encoding_profile_get_name (tprof), name)) {
+ gst_encoding_profile_ref (tprof);
+ return tprof;
+ }
+ }
+
+ return NULL;
+}
+
static inline gboolean
validate_name (const gchar * name)
{
const gchar *gst_encoding_target_get_category (GstEncodingTarget *target);
const gchar *gst_encoding_target_get_description (GstEncodingTarget *target);
const GList *gst_encoding_target_get_profiles (GstEncodingTarget *target);
+GstEncodingProfile *gst_encoding_target_get_profile (GstEncodingTarget *target,
+ const gchar *name);
gboolean
gst_encoding_target_add_profile (GstEncodingTarget *target, GstEncodingProfile *profile);
return target;
}
+GST_START_TEST (test_target_profile)
+{
+ GstEncodingTarget *target;
+ GstEncodingProfile *prof;
+
+ target = create_saveload_target ();
+
+ /* NULL isn't a valid profile name */
+ ASSERT_CRITICAL (gst_encoding_target_get_profile (target, NULL));
+
+ /* try finding a profile that doesn't exist */
+ fail_if (gst_encoding_target_get_profile (target,
+ "no-really-does-not-exist"));
+
+ /* try finding a profile that exists */
+ prof = gst_encoding_target_get_profile (target, "pony");
+ fail_if (prof == NULL);
+
+ gst_encoding_profile_unref (prof);
+ gst_encoding_target_unref (target);
+}
+
+GST_END_TEST;
+
GST_START_TEST (test_saving_profile)
{
GstEncodingTarget *orig, *loaded = NULL;
tcase_add_test (tc_chain, test_profile_creation);
tcase_add_test (tc_chain, test_profile_output_caps);
tcase_add_test (tc_chain, test_target_naming);
+ tcase_add_test (tc_chain, test_target_profile);
if (can_write) {
tcase_add_test (tc_chain, test_loading_profile);
tcase_add_test (tc_chain, test_saving_profile);
gst_encoding_target_get_category
gst_encoding_target_get_description
gst_encoding_target_get_name
+ gst_encoding_target_get_profile
gst_encoding_target_get_profiles
gst_encoding_target_get_type
gst_encoding_target_load