API: add gst_type_find_suggest_simple(), #533740.

Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gsttypefind.c: (gst_type_find_suggest_simple):
* gst/gsttypefind.h:
* win32/common/libgstreamer.def:
API: add gst_type_find_suggest_simple(), #533740.
This commit is contained in:
Tim-Philipp Müller 2008-05-19 10:46:44 +00:00
parent 8ccf150874
commit ffee4e6260
5 changed files with 66 additions and 0 deletions

View file

@ -1,3 +1,11 @@
2008-05-19 Tim-Philipp Müller <tim.muller at collabora co uk>
* docs/gst/gstreamer-sections.txt:
* gst/gsttypefind.c: (gst_type_find_suggest_simple):
* gst/gsttypefind.h:
* win32/common/libgstreamer.def:
API: add gst_type_find_suggest_simple(), #533740.
2008-05-19 Tim-Philipp Müller <tim.muller at collabora co uk>
* libs/gst/base/gstbasesrc.c: (gst_base_src_start):

View file

@ -2144,6 +2144,7 @@ GstTypeFindFunction
GstTypeFindProbability
gst_type_find_peek
gst_type_find_suggest
gst_type_find_suggest_simple
gst_type_find_get_length
gst_type_find_register
<SUBSECTION Standard>

View file

@ -156,6 +156,57 @@ gst_type_find_suggest (GstTypeFind * find, guint probability,
find->suggest (find->data, probability, caps);
}
/**
* gst_type_find_suggest_simple:
* @find: The #GstTypeFind object the function was called with
* @probability: The probability in percent that the suggestion is right
* @media_type: the media type of the suggested caps
* @fieldname: first field of the suggested caps, or NULL
* @...: additional arguments to the suggested caps in the same format as the
* arguments passed to gst_structure_new() (ie. triplets of field name,
* field GType and field value)
*
* If a #GstTypeFindFunction calls this function it suggests the caps with the
* given probability. A #GstTypeFindFunction may supply different suggestions
* in one call. It is up to the caller of the #GstTypeFindFunction to interpret
* these values.
*
* This function is similar to gst_type_find_suggest(), only that instead of
* passing a #GstCaps argument you can create the caps on the fly in the same
* way as you can with gst_caps_new_simple().
*
* Make sure you terminate the list of arguments with a NULL argument and that
* the values passed have the correct type (in terms of width in bytes when
* passed to the vararg function - this applies particularly to gdouble and
* guint64 arguments).
*
* Since: 0.10.20
*/
void
gst_type_find_suggest_simple (GstTypeFind * find, guint probability,
const char *media_type, const char *fieldname, ...)
{
GstStructure *structure;
va_list var_args;
GstCaps *caps;
g_return_if_fail (find->suggest != NULL);
g_return_if_fail (probability <= 100);
g_return_if_fail (media_type != NULL);
caps = gst_caps_new_empty ();
va_start (var_args, fieldname);
structure = gst_structure_new_valist (media_type, fieldname, var_args);
va_end (var_args);
gst_caps_append_structure (caps, structure);
g_return_if_fail (gst_caps_is_fixed (caps));
find->suggest (find->data, probability, caps);
gst_caps_unref (caps);
}
/**
* gst_type_find_get_length:
* @find: The #GstTypeFind the function was called with

View file

@ -100,6 +100,11 @@ void gst_type_find_suggest (GstTypeFind * find,
guint probability,
const GstCaps * caps);
void gst_type_find_suggest_simple (GstTypeFind * find,
guint probability,
const char * media_type,
const char * fieldname, ...);
guint64 gst_type_find_get_length (GstTypeFind * find);
/* registration interface */

View file

@ -907,6 +907,7 @@ EXPORTS
gst_type_find_probability_get_type
gst_type_find_register
gst_type_find_suggest
gst_type_find_suggest_simple
gst_type_register_static_full
gst_update_registry
gst_uri_construct