[vlc-commits] [Git][videolan/vlc][master] subtitle: decode filename before inferring language
François Cartegnie (@fcartegnie)
gitlab at videolan.org
Fri Sep 25 06:02:29 UTC 2026
François Cartegnie pushed to branch master at VideoLAN / VLC
Commits:
db5d59a2 by Serhii Bykov at 2026-09-25T07:41:47+02:00
subtitle: decode filename before inferring language
- - - - -
1 changed file:
- modules/demux/subtitle.c
Changes:
=====================================
modules/demux/subtitle.c
=====================================
@@ -2519,6 +2519,7 @@ static char *get_language_from_url(const char *urlstr)
{
vlc_url_t url;
const char *filename = NULL;
+ char *decoded_filename = NULL;
char *ret = NULL;
assert(urlstr != NULL);
@@ -2532,6 +2533,10 @@ static char *get_language_from_url(const char *urlstr)
filename = strrchr(url.psz_path, '/');
if (filename != NULL) {
filename++; // skip forward slash
+ decoded_filename = vlc_uri_decode_duplicate(filename);
+ if (decoded_filename == NULL)
+ goto out;
+ filename = decoded_filename;
const char *ext = strrchr(filename, '.');
@@ -2550,6 +2555,8 @@ static char *get_language_from_url(const char *urlstr)
}
}
+out:
+ free(decoded_filename);
vlc_UrlClean(&url);
return ret;
}
@@ -2697,11 +2704,22 @@ static void test_subtitle_ParseSubRipTiming(void)
}
}
+static void test_subtitle_GetLanguageFromUrl(void)
+{
+ char *language = get_language_from_url(
+ "file:///tmp/Example_%5BSubtitle%5D.srt");
+
+ assert(language != NULL);
+ assert(!strcmp(language, "[Subtitle]"));
+ free(language);
+}
+
int main(int argc, char **argv)
{
(void)argc; (void)argv;
test_subtitle_ParseSubRipTimingValue();
test_subtitle_ParseSubRipTiming();
+ test_subtitle_GetLanguageFromUrl();
return 0;
}
View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/db5d59a27a4823d751afe2c317b7eaff716195ed
--
View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/db5d59a27a4823d751afe2c317b7eaff716195ed
You're receiving this email because of your account on code.videolan.org. Manage all notifications: https://code.videolan.org/-/profile/notifications | Help: https://code.videolan.org/help
More information about the vlc-commits
mailing list