mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-17 11:45:25 +00:00
encoding-target: Add method to get a profile by name
API: gst_encoding_target_get_profile
This commit is contained in:
parent
cdd0a9c8bb
commit
c8fa8085ba
6 changed files with 60 additions and 8 deletions
|
@ -1957,6 +1957,7 @@ gst_encoding_target_get_name
|
||||||
gst_encoding_target_get_category
|
gst_encoding_target_get_category
|
||||||
gst_encoding_target_get_description
|
gst_encoding_target_get_description
|
||||||
gst_encoding_target_get_profiles
|
gst_encoding_target_get_profiles
|
||||||
|
gst_encoding_target_get_profile
|
||||||
gst_encoding_target_add_profile
|
gst_encoding_target_add_profile
|
||||||
gst_encoding_target_save
|
gst_encoding_target_save
|
||||||
gst_encoding_target_save_to
|
gst_encoding_target_save_to
|
||||||
|
|
|
@ -95,20 +95,14 @@
|
||||||
*{
|
*{
|
||||||
* GstEncodingProfile *prof = NULL;
|
* GstEncodingProfile *prof = NULL;
|
||||||
* GstEncodingTarget *target = NULL;
|
* GstEncodingTarget *target = NULL;
|
||||||
* GList *tmp;
|
|
||||||
*
|
*
|
||||||
* target = gst_encoding_target_load_from (path);
|
* target = gst_encoding_target_load_from (path);
|
||||||
* if (target == NULL)
|
* if (target == NULL)
|
||||||
* return NULL;
|
* return NULL;
|
||||||
*
|
*
|
||||||
* for (tmp = target->profiles; tmp; tmp = tmp->next) {
|
* prof = gst_encoding_target_get_profile (target, profilename);
|
||||||
* GstEncodingProfile *ptmp = (GstEncodingProfile*) tmp->data;
|
|
||||||
*
|
*
|
||||||
* if (!strcmp(gst_encoding_profile_get_name(ptmp), profilename)) {
|
* gst_encoding_target_unref (target);
|
||||||
* prof = ptmp;
|
|
||||||
* break;
|
|
||||||
* }
|
|
||||||
* }
|
|
||||||
*
|
*
|
||||||
* return prof;
|
* return prof;
|
||||||
*}
|
*}
|
||||||
|
|
|
@ -152,6 +152,35 @@ gst_encoding_target_get_profiles (GstEncodingTarget * target)
|
||||||
return target->profiles;
|
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
|
static inline gboolean
|
||||||
validate_name (const gchar * name)
|
validate_name (const gchar * name)
|
||||||
{
|
{
|
||||||
|
|
|
@ -85,6 +85,8 @@ const gchar *gst_encoding_target_get_name (GstEncodingTarget *target);
|
||||||
const gchar *gst_encoding_target_get_category (GstEncodingTarget *target);
|
const gchar *gst_encoding_target_get_category (GstEncodingTarget *target);
|
||||||
const gchar *gst_encoding_target_get_description (GstEncodingTarget *target);
|
const gchar *gst_encoding_target_get_description (GstEncodingTarget *target);
|
||||||
const GList *gst_encoding_target_get_profiles (GstEncodingTarget *target);
|
const GList *gst_encoding_target_get_profiles (GstEncodingTarget *target);
|
||||||
|
GstEncodingProfile *gst_encoding_target_get_profile (GstEncodingTarget *target,
|
||||||
|
const gchar *name);
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
gst_encoding_target_add_profile (GstEncodingTarget *target, GstEncodingProfile *profile);
|
gst_encoding_target_add_profile (GstEncodingTarget *target, GstEncodingProfile *profile);
|
||||||
|
|
|
@ -253,6 +253,30 @@ create_saveload_target (void)
|
||||||
return target;
|
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)
|
GST_START_TEST (test_saving_profile)
|
||||||
{
|
{
|
||||||
GstEncodingTarget *orig, *loaded = NULL;
|
GstEncodingTarget *orig, *loaded = NULL;
|
||||||
|
@ -473,6 +497,7 @@ profile_suite (void)
|
||||||
tcase_add_test (tc_chain, test_profile_creation);
|
tcase_add_test (tc_chain, test_profile_creation);
|
||||||
tcase_add_test (tc_chain, test_profile_output_caps);
|
tcase_add_test (tc_chain, test_profile_output_caps);
|
||||||
tcase_add_test (tc_chain, test_target_naming);
|
tcase_add_test (tc_chain, test_target_naming);
|
||||||
|
tcase_add_test (tc_chain, test_target_profile);
|
||||||
if (can_write) {
|
if (can_write) {
|
||||||
tcase_add_test (tc_chain, test_loading_profile);
|
tcase_add_test (tc_chain, test_loading_profile);
|
||||||
tcase_add_test (tc_chain, test_saving_profile);
|
tcase_add_test (tc_chain, test_saving_profile);
|
||||||
|
|
|
@ -85,6 +85,7 @@ EXPORTS
|
||||||
gst_encoding_target_get_category
|
gst_encoding_target_get_category
|
||||||
gst_encoding_target_get_description
|
gst_encoding_target_get_description
|
||||||
gst_encoding_target_get_name
|
gst_encoding_target_get_name
|
||||||
|
gst_encoding_target_get_profile
|
||||||
gst_encoding_target_get_profiles
|
gst_encoding_target_get_profiles
|
||||||
gst_encoding_target_get_type
|
gst_encoding_target_get_type
|
||||||
gst_encoding_target_load
|
gst_encoding_target_load
|
||||||
|
|
Loading…
Reference in a new issue