From 7e9d6720ca114a487e485478798689077b8f1e98 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tim-Philipp=20M=C3=BCller?= Date: Wed, 8 Aug 2018 19:18:22 +0100 Subject: [PATCH] gst-play: use Fisher-Yates shuffle for shuffling the playlist --- tools/gst-play.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/gst-play.c b/tools/gst-play.c index 70c9c6b..964943a 100644 --- a/tools/gst-play.c +++ b/tools/gst-play.c @@ -817,9 +817,9 @@ shuffle_uris (gchar ** uris, guint num) if (num < 2) return; - for (i = 0; i < num; i++) { - /* gets equally distributed random number in 0..num-1 [0;num[ */ - j = g_random_int_range (0, num); + for (i = num - 1; i >= 1; i--) { + /* +1 because number returned will be in range [a;b[ so excl. stop */ + j = g_random_int_range (0, i + 1); tmp = uris[j]; uris[j] = uris[i]; uris[i] = tmp; -- 2.7.4