mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-29 13:11:06 +00:00
pluginfeature: fix unexpected version check behaviour for git versions
check_version(1.23.1) would return TRUE for a git development version like 1.23.0.1, which is quite confusing and somewhat unexpected. We fixed this up in the version check macros already in !2501, so this updates the run-time check accordingly as well. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4513>
This commit is contained in:
parent
66c15bc753
commit
f64acbf9e5
3 changed files with 17 additions and 19 deletions
|
@ -33400,8 +33400,13 @@ ranks are equal but the name of p2 comes before the name of p1</doc>
|
||||||
</parameters>
|
</parameters>
|
||||||
</function>
|
</function>
|
||||||
<method name="check_version" c:identifier="gst_plugin_feature_check_version">
|
<method name="check_version" c:identifier="gst_plugin_feature_check_version">
|
||||||
<doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">Checks whether the given plugin feature is at least
|
<doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">Checks whether the given plugin feature is at least the required version.
|
||||||
the required version</doc>
|
|
||||||
|
Note: Since version 1.24 this function no longer returns %TRUE if the
|
||||||
|
version is a git development version (e.g. 1.23.0.1) and the check is
|
||||||
|
for the "next" micro version, that is it will no longer return %TRUE for
|
||||||
|
e.g. 1.23.0.1 if the check is for 1.23.1. It is still possible to parse
|
||||||
|
the nano version from the string and do this check that way if needed.</doc>
|
||||||
<source-position filename="../subprojects/gstreamer/gst/gstpluginfeature.h"/>
|
<source-position filename="../subprojects/gstreamer/gst/gstpluginfeature.h"/>
|
||||||
<return-value transfer-ownership="none">
|
<return-value transfer-ownership="none">
|
||||||
<doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">%TRUE if the plugin feature has at least
|
<doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstpluginfeature.c">%TRUE if the plugin feature has at least
|
||||||
|
|
|
@ -310,8 +310,13 @@ gst_plugin_feature_list_debug (GList * list)
|
||||||
* @min_minor: minimum required minor version
|
* @min_minor: minimum required minor version
|
||||||
* @min_micro: minimum required micro version
|
* @min_micro: minimum required micro version
|
||||||
*
|
*
|
||||||
* Checks whether the given plugin feature is at least
|
* Checks whether the given plugin feature is at least the required version.
|
||||||
* the required version
|
*
|
||||||
|
* Note: Since version 1.24 this function no longer returns %TRUE if the
|
||||||
|
* version is a git development version (e.g. 1.23.0.1) and the check is
|
||||||
|
* for the "next" micro version, that is it will no longer return %TRUE for
|
||||||
|
* e.g. 1.23.0.1 if the check is for 1.23.1. It is still possible to parse
|
||||||
|
* the nano version from the string and do this check that way if needed.
|
||||||
*
|
*
|
||||||
* Returns: %TRUE if the plugin feature has at least
|
* Returns: %TRUE if the plugin feature has at least
|
||||||
* the required version, otherwise %FALSE.
|
* the required version, otherwise %FALSE.
|
||||||
|
@ -355,10 +360,6 @@ gst_plugin_feature_check_version (GstPluginFeature * feature,
|
||||||
ret = FALSE;
|
ret = FALSE;
|
||||||
else if (micro > min_micro)
|
else if (micro > min_micro)
|
||||||
ret = TRUE;
|
ret = TRUE;
|
||||||
/* micro is 1 smaller but we have a nano version, this is the upcoming
|
|
||||||
* release of the requested version and we're ok then */
|
|
||||||
else if (nscan == 4 && nano > 0 && (micro + 1 == min_micro))
|
|
||||||
ret = TRUE;
|
|
||||||
else
|
else
|
||||||
ret = (micro == min_micro);
|
ret = (micro == min_micro);
|
||||||
|
|
||||||
|
|
|
@ -267,17 +267,9 @@ GST_START_TEST (test_version_checks)
|
||||||
GST_VERSION_MAJOR, GST_VERSION_MINOR + 1, GST_VERSION_MICRO) == TRUE,
|
GST_VERSION_MAJOR, GST_VERSION_MINOR + 1, GST_VERSION_MICRO) == TRUE,
|
||||||
"Unexpected version check result");
|
"Unexpected version check result");
|
||||||
|
|
||||||
/* If the nano is set, then we expect that X.Y.Z-1.x >= X.Y.Z, so that a
|
fail_if (gst_default_registry_check_feature_version ("identity",
|
||||||
* devel plugin is valid against an upcoming release */
|
GST_VERSION_MAJOR, GST_VERSION_MINOR, GST_VERSION_MICRO + 1) ==
|
||||||
if (GST_VERSION_NANO > 0) {
|
TRUE, "Unexpected version check result");
|
||||||
fail_unless (gst_default_registry_check_feature_version ("identity",
|
|
||||||
GST_VERSION_MAJOR, GST_VERSION_MINOR, GST_VERSION_MICRO + 1) ==
|
|
||||||
TRUE, "Unexpected version check result");
|
|
||||||
} else {
|
|
||||||
fail_if (gst_default_registry_check_feature_version ("identity",
|
|
||||||
GST_VERSION_MAJOR, GST_VERSION_MINOR, GST_VERSION_MICRO + 1) ==
|
|
||||||
TRUE, "Unexpected version check result");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (GST_VERSION_MAJOR > 0) {
|
if (GST_VERSION_MAJOR > 0) {
|
||||||
fail_if (gst_default_registry_check_feature_version ("identity",
|
fail_if (gst_default_registry_check_feature_version ("identity",
|
||||||
|
|
Loading…
Reference in a new issue