mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-20 00:31:13 +00:00
tag: add function to check whether a string is a valid language code
API: gst_tag_check_language_code()
This commit is contained in:
parent
c3e6e23b85
commit
76cc8b8f2a
5 changed files with 38 additions and 4 deletions
|
@ -1971,6 +1971,7 @@ gst_tag_get_language_code
|
||||||
gst_tag_get_language_code_iso_639_1
|
gst_tag_get_language_code_iso_639_1
|
||||||
gst_tag_get_language_code_iso_639_2B
|
gst_tag_get_language_code_iso_639_2B
|
||||||
gst_tag_get_language_code_iso_639_2T
|
gst_tag_get_language_code_iso_639_2T
|
||||||
|
gst_tag_check_language_code
|
||||||
</SECTION>
|
</SECTION>
|
||||||
|
|
||||||
<SECTION>
|
<SECTION>
|
||||||
|
|
|
@ -30,8 +30,6 @@
|
||||||
* </refsect2>
|
* </refsect2>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* FIXME 0.11: maybe switch to ISO-639-2 everywhere incl. GST_TAG_LANGUAGE? */
|
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
#ifdef HAVE_CONFIG_H
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#endif
|
#endif
|
||||||
|
@ -311,8 +309,8 @@ gst_tag_get_language_codes (void)
|
||||||
* gst_tag_get_language_name:
|
* gst_tag_get_language_name:
|
||||||
* @language_code: two or three-letter ISO-639 language code
|
* @language_code: two or three-letter ISO-639 language code
|
||||||
*
|
*
|
||||||
* Returns the name of the language given an ISO-639 language code, such
|
* Returns the name of the language given an ISO-639 language code as
|
||||||
* as often found in a GST_TAG_LANGUAGE tag. The name will be translated
|
* found in a GST_TAG_LANGUAGE_CODE tag. The name will be translated
|
||||||
* according to the current locale (if the library was built against the
|
* according to the current locale (if the library was built against the
|
||||||
* iso-codes package, otherwise the English name will be returned).
|
* iso-codes package, otherwise the English name will be returned).
|
||||||
*
|
*
|
||||||
|
@ -492,3 +490,25 @@ gst_tag_get_language_code_iso_639_2B (const gchar * lang_code)
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gst_tag_check_language_code:
|
||||||
|
* @lang_code: ISO-639 language code (e.g. "deu" or "ger" or "de")
|
||||||
|
*
|
||||||
|
* Check if a given string contains a known ISO 639 language code.
|
||||||
|
*
|
||||||
|
* This is useful in situations where it's not clear whether a given
|
||||||
|
* string is a language code (which should be put into a #GST_TAG_LANGUAGE_CODE
|
||||||
|
* tag) or a free-form language name descriptor (which should be put into a
|
||||||
|
* #GST_TAG_LANGUAGE_NAME tag instead).
|
||||||
|
*
|
||||||
|
* Returns: TRUE if the two- or three-letter language code in @lang_code
|
||||||
|
* is a valid ISO-639 language code.
|
||||||
|
*
|
||||||
|
* Since: 0.10.37
|
||||||
|
*/
|
||||||
|
gboolean
|
||||||
|
gst_tag_check_language_code (const gchar * lang_code)
|
||||||
|
{
|
||||||
|
return (gst_tag_get_language_code_iso_639_1 (lang_code) != NULL);
|
||||||
|
}
|
||||||
|
|
|
@ -551,6 +551,8 @@ const gchar * gst_tag_get_language_code_iso_639_2B (const gchar * lang_code);
|
||||||
|
|
||||||
const gchar * gst_tag_get_language_code_iso_639_2T (const gchar * lang_code);
|
const gchar * gst_tag_get_language_code_iso_639_2T (const gchar * lang_code);
|
||||||
|
|
||||||
|
gboolean gst_tag_check_language_code (const gchar * lang_code);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gst_tag_get_language_code:
|
* gst_tag_get_language_code:
|
||||||
* @lang_code: ISO-639 language code (e.g. "deu" or "ger" or "de")
|
* @lang_code: ISO-639 language code (e.g. "deu" or "ger" or "de")
|
||||||
|
|
|
@ -748,6 +748,16 @@ GST_START_TEST (test_language_utils)
|
||||||
ASSERT_STRINGS_EQUAL (gst_tag_get_language_code_iso_639_2B ("de"), "ger");
|
ASSERT_STRINGS_EQUAL (gst_tag_get_language_code_iso_639_2B ("de"), "ger");
|
||||||
ASSERT_STRINGS_EQUAL (gst_tag_get_language_code_iso_639_2B ("deu"), "ger");
|
ASSERT_STRINGS_EQUAL (gst_tag_get_language_code_iso_639_2B ("deu"), "ger");
|
||||||
ASSERT_STRINGS_EQUAL (gst_tag_get_language_code_iso_639_2B ("ger"), "ger");
|
ASSERT_STRINGS_EQUAL (gst_tag_get_language_code_iso_639_2B ("ger"), "ger");
|
||||||
|
|
||||||
|
fail_unless (gst_tag_check_language_code ("de"));
|
||||||
|
fail_unless (gst_tag_check_language_code ("deu"));
|
||||||
|
fail_unless (gst_tag_check_language_code ("ger"));
|
||||||
|
fail_if (gst_tag_check_language_code ("xxx"));
|
||||||
|
fail_if (gst_tag_check_language_code ("und"));
|
||||||
|
fail_if (gst_tag_check_language_code ("un"));
|
||||||
|
fail_if (gst_tag_check_language_code (""));
|
||||||
|
fail_if (gst_tag_check_language_code ("\377"));
|
||||||
|
fail_if (gst_tag_check_language_code ("deutsch"));
|
||||||
}
|
}
|
||||||
|
|
||||||
GST_END_TEST;
|
GST_END_TEST;
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
EXPORTS
|
EXPORTS
|
||||||
|
gst_tag_check_language_code
|
||||||
gst_tag_demux_get_type
|
gst_tag_demux_get_type
|
||||||
gst_tag_demux_result_get_type
|
gst_tag_demux_result_get_type
|
||||||
gst_tag_freeform_string_to_utf8
|
gst_tag_freeform_string_to_utf8
|
||||||
|
|
Loading…
Reference in a new issue