Skip to content

[LUA API] vlc.strings.url_parse error when local file uri contains bracket pair

When a local file contains a bracket pair (eventualy with a text inside), the generated URI is not correctly read in the vlc.strings.url_parse()

For this code:

local uri, tbl
uri = vlc.input.item():uri()
tbl = vlc.strings.url_parse(uri)

The file Icarus Detrese Beam_track2_[eng]_DELAY 0ms.flac will not return the 'path' in the table output tbl = {["protocol"]="file", ["host"]="", ["port"]=0}

While the file Icarus_Detrese_Beam_track2_DELAY_0ms.flac will be return correctly tbl = {["protocol"]="file", ["host"]="", ["port"]=0, ["path"]="/C:/Icarus%20Detrese%20Beam_track2_DELAY%200ms.flac"}

(more bizarre, sometimes it works, but the vast majority, no)

I don't know if it's uri() that doesn't apply correctly the escape bracket characters in the 'path' section and give a "invalide" value, or it's url_parse() that incorecly read the URI in a way that breaks down its analysis.

Windows 10, VLC 3.0.16

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information