mixxxdj / mixxx

Mixxx is Free DJ software that gives you everything you need to perform live mixes.
http://mixxx.org
Other
4.5k stars 1.28k forks source link

Can't play or analyze Opus tracks with emojis in their path or filename #13550

Open Rhyzak opened 2 months ago

Rhyzak commented 2 months ago

Bug Description

As the title says, here is a screenshot example. image

Version

2.4.1

OS

Windows 11

Swiftb0y commented 2 months ago

Hey there, thank you for filling your issue. In order to get to the bottom of this. We would like to inspect your log file. Please use our guide to find it and then upload it here and we'll see if we can spot anything in the log. Thank you.

Rhyzak commented 2 months ago

Here's the mixxx.log

Swiftb0y commented 2 months ago

Thanks. The opus library throws an OP_EFAULT which is documented as

The failure code will be OP_EFAULT if the file could not be opened, or one of the other failure codes from op_open_callbacks() otherwise.

soo... Its either an issue in the path encoding or in the opusfile library...

Unfortunately there is also some windows specific code and not much documentation on op_open_file in general. https://github.com/mixxxdj/mixxx/blob/14ce13d30e9d4fc8c897248a1d7a9c2c4431e760/src/sources/soundsourceopus.cpp#L98-L111

@daschuer can you look into this?

Swiftb0y commented 2 months ago

@Rhyzak can you confirm in the meantime that this issue only applies to opus files?

Rhyzak commented 2 months ago

@Rhyzak can you confirm in the meantime that this issue only applies to opus files?

It's only an issue if there are emoji symbols in the path of the file, or the filename itself. I can play and analyze the files perfectly fine by just removing the emoji symbols from any parent folders, and also the filenames themselves. But the moment I add an emoji anywhere along the path or in the filename, it becomes unplayabale.

To workaround it, I just used a made a copy of the files that had emojis in their paths in Foobar2000, and encased the file naming pattern with $ansi(), which removes any characters that are not present in the system codepage to make it compatible with non-unicode-capable software.

Swiftb0y commented 2 months ago

Thanks for the info, but that doesn't answer the question: Can you play files in a different format (wav/flac/mp3) that have emoji in the path?

Rhyzak commented 2 months ago

Thanks for the info, but that doesn't answer the question: Can you play files in a different format (wav/flac/mp3) that have emoji in the path?

wav, flac, mp3, m4a, aiff and ogg all work from what I've tried so far with the emojis in their path and filename, it's just the opus codec that does not work with the emojis.

Short example clip: iOw.webm