mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-23 00:36:51 +00:00
splitmuxsrc: Use natural ordering to find files
Today when using the `splitmuxsrc` on a collection of files named as: ``` item0.mkv item1.mkv item2.mkv [...] item10.mkv item11.mkv [...] ``` You will get a continuous stream made in the order of: ``` item0.mkv -> item1.mkv -> item10.mkv -> item11.mkv -> [...] ``` You can fix this by having smarter names of the items: ``` item000.mkv item001.mkv item002.mkv [...] item010.mkv item011.mkv [...] ``` Will get you: ``` item000.mkv -> item001.mkv -> item003.mkv -> item004.mkv -> [...] ``` But, we could also "fix" the former case by using natural ordering when comparing the files in gstsplitutils.c. Fixes #2523 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4491>
This commit is contained in:
parent
0cd3a98c78
commit
b0becfa46b
2 changed files with 18 additions and 1 deletions
|
@ -54381,6 +54381,23 @@ the result.</doc>
|
||||||
</parameter>
|
</parameter>
|
||||||
</parameters>
|
</parameters>
|
||||||
</function>
|
</function>
|
||||||
|
<function name="util_filename_compare" c:identifier="gst_util_filename_compare" version="1.24">
|
||||||
|
<doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Compares the given filenames using natural ordering.</doc>
|
||||||
|
<source-position filename="../subprojects/gstreamer/gst/gstutils.h"/>
|
||||||
|
<return-value transfer-ownership="none">
|
||||||
|
<type name="gint" c:type="gint"/>
|
||||||
|
</return-value>
|
||||||
|
<parameters>
|
||||||
|
<parameter name="a" transfer-ownership="none">
|
||||||
|
<doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a filename to compare with @b</doc>
|
||||||
|
<type name="utf8" c:type="const gchar*"/>
|
||||||
|
</parameter>
|
||||||
|
<parameter name="b" transfer-ownership="none">
|
||||||
|
<doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">a filename to compare with @a</doc>
|
||||||
|
<type name="utf8" c:type="const gchar*"/>
|
||||||
|
</parameter>
|
||||||
|
</parameters>
|
||||||
|
</function>
|
||||||
<function name="util_fraction_add" c:identifier="gst_util_fraction_add">
|
<function name="util_fraction_add" c:identifier="gst_util_fraction_add">
|
||||||
<doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Adds the fractions @a_n/@a_d and @b_n/@b_d and stores
|
<doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstutils.c">Adds the fractions @a_n/@a_d and @b_n/@b_d and stores
|
||||||
the result in @res_n and @res_d.</doc>
|
the result in @res_n and @res_d.</doc>
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
static int
|
static int
|
||||||
gst_split_util_array_sortfunc (gchar ** a, gchar ** b)
|
gst_split_util_array_sortfunc (gchar ** a, gchar ** b)
|
||||||
{
|
{
|
||||||
return strcmp (*a, *b);
|
return gst_util_filename_compare (*a, *b);
|
||||||
}
|
}
|
||||||
|
|
||||||
gchar **
|
gchar **
|
||||||
|
|
Loading…
Reference in a new issue