Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
Rhyzak opened this issue Aug 9, 2024 · 7 comments
Open
Labels

Comments

@Rhyzak
Copy link

Rhyzak commented Aug 9, 2024

Bug Description

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

Version

2.4.1

OS

Windows 11

@Rhyzak Rhyzak added the bug label Aug 9, 2024
@Swiftb0y
Copy link
Member

Swiftb0y commented Aug 9, 2024

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
Copy link
Author

Rhyzak commented Aug 9, 2024

Here's the mixxx.log

@Swiftb0y
Copy link
Member

Swiftb0y commented Aug 9, 2024

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.

// From opus/opusfile.h
// On Windows, this string must be UTF-8 (to allow access to
// files whose names cannot be represented in the current
// MBCS code page).
// All other systems use the native character encoding.
#ifdef _WIN32
QByteArray qBAFilename = getLocalFileName().toUtf8();
#else
QByteArray qBAFilename = QFile::encodeName(getLocalFileName());
#endif
int errorCode = 0;
OggOpusFileOwner pOggOpusFile(
op_open_file(qBAFilename.constData(), &errorCode));

@daschuer can you look into this?

@Swiftb0y Swiftb0y changed the title Can't play or analyze tracks with emojis in their path or filename Can't play or analyze Opus tracks with emojis in their path or filename Aug 9, 2024
@Swiftb0y
Copy link
Member

Swiftb0y commented Aug 9, 2024

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

@Rhyzak
Copy link
Author

Rhyzak commented Aug 9, 2024

@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
Copy link
Member

Swiftb0y commented Aug 9, 2024

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
Copy link
Author

Rhyzak commented Aug 9, 2024

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants