Qt5 affects abilty to find window in AltaCast

Bug #1775095 reported by Peter Burg
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mixxx
In Progress
Low
Unassigned

Bug Description

After the change to Qt5 I can't grab metadata from the mainwindow of Mixxx no more using AltaCast for streaming.
Windows 7-64

Tags: broadcast qt5
Revision history for this message
Peter Burg (wunjo) wrote :
Changed in mixxx:
status: New → In Progress
importance: Undecided → High
tags: added: qt5 shoutcast
Changed in mixxx:
milestone: none → 2.2.0
assignee: nobody → David Hernández Morales (davidhm)
Revision history for this message
Daniel Schürmann (daschuer) wrote :

We are currently implementing more metadata output. I consider trading the window title as an ugly havk. Which other interfaces can be used by AltaCast? To which one do you like to switch for Mixxx 2.2?

Revision history for this message
David Hernández Morales (davidhm) wrote :

Does Altacast let you use a file to grab the metadata? Or can it use the MPRIS interface?

Revision history for this message
Be (be.ing) wrote :

Why do you use a separate program to broadcast instead of broadcasting from Mixxx?

Revision history for this message
Peter Burg (wunjo) wrote :

@ Daniel; grabbing is ugly, but it did the job
@ David; a plain text file can be used, MPRIS is unknown to me
@ Be; I'm using Stereotool for compessing/expanding/enhancing etc. Routed by VBCable. DSP support would also be useful.

Thanks for your support!

Revision history for this message
Peter Burg (wunjo) wrote :

@ David; found a Python script for MPRIS in Clementine, ok for Linux, Windows don't use dbus

https://github.com/clementine-player/Clementine/wiki/Controlling-Clementine-from-the-commandline-with-DBus-and-MPRIS

Revision history for this message
Daniel Schürmann (daschuer) wrote :

Could you file a separate bug for you effect request. Maybe we have already a LV2 solution in upcoming Mixxx 2.2 or we could integrate your needs natively...

Revision history for this message
David Hernández Morales (davidhm) wrote :

@Peter, what format does the file have to be?

Revision history for this message
Peter Burg (wunjo) wrote :

@ David
I formerly used Sam Broadcaster, however they took another road.
They use a .txt file, see attachment

Revision history for this message
Peter Burg (wunjo) wrote :

@ Daniel
I will :-)

Revision history for this message
Daniel Schürmann (daschuer) wrote :

Can you provide a file with non ASCII characters like umlauts or Cyrillic cjaracters as well?

Revision history for this message
David Hernández Morales (davidhm) wrote :

For writing to the file, I use QTextStream's operator << QString, which encodes the string with the locale codec. So if the author or the title are in Unicode I don't see a reason for it to not print non ASCII characters: http://doc.qt.io/qt-5/qtextstream.html#operator-lt-lt-12

Revision history for this message
Daniel Schürmann (daschuer) wrote :

If the local8bit codec is latin1, you cannot print Cyrillic titles. I am not sure what is the default 8 bit codec in windows there is also cp848 or such things.
I know we had similar issues with m3u playlists. They are defined as latin1.
Because that does not work for any track, we have a successor that is m3u8 Wich is utf8.
Unfortunately the reader app cannot or hard distinguish utf8 from Latin one. If it fails, you get the famous ü.
If this is an issue, we need a preference option for the character encoding.

Revision history for this message
Peter Burg (wunjo) wrote :

SAM can print umlauts but can't print Cyrillic.
In Cyrillic I get a string of questionmarks
see attatchment

btw Sam uses an inputfile too, containing: $song.artist$ - $song.title$

Revision history for this message
David Hernández Morales (davidhm) wrote :

@Daniel, we an allow for the user to set the codec, no problem. However, if broadcast apps can read UTF-8, I think we should prefer that, because it allows for every language.

Revision history for this message
Daniel Schürmann (daschuer) wrote :

Yes, right. I am only afraid that the majority of windows apps expect latin1.
And I am also afraid that the evetage user does not know the difference between latin1 and utf8. The issue is that it can be only identified at runtime, when suddenly an umlauts track is played. This might be too late. How about add a test mode, sending a fake umlauts track and ask the user if it is decided right.

Revision history for this message
David Hernández Morales (davidhm) wrote :

Maybe, but before all of that, shouldn't we need to know which encoding the broadcast app uses? It doesn't matter if the title is not displayed correctly if we don't know how to do it.

Revision history for this message
Daniel Schürmann (daschuer) wrote :

Yes, right. It is not utf8, because of the question marks in Peters file.

Peter: can you attach an other SAM example with an umlauts title and €.

Critical are these as well: €‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ.

Revision history for this message
Peter Burg (wunjo) wrote :

@ Daniel
The question marks are added by SAM when importing in its library
I made a tag with the string provided by you, the library (mySQL) can't print them, but the payers do and also the output-file do.
Two attachments

Revision history for this message
Peter Burg (wunjo) wrote :

screenshot SAM

Revision history for this message
Peter Burg (wunjo) wrote :

btw forgot most important one :-)
see attatchment

Revision history for this message
Peter Burg (wunjo) wrote :

We can summarize that AltaCast users are probably Western users.
For Windows I was happy to find a free gui-based streamer with metadata capabilities, they are rare.
Utf8 will cover most of its users.

Revision history for this message
David Hernández Morales (davidhm) wrote :

I would like to test my code with a streaming service that allows files to input metadata. However, AltaCast is for Windows and I don't want to subscribe to SAM Broadcaster. Is there anything for Linux that's free / open source?

Revision history for this message
Peter Burg (wunjo) wrote :

Hi David, I'm back from vacation.

Rivendell is an open source Linux radio automation app. However, I have no experience with it.
As a free streaming service in Windows I use StreamerP2P; streamerp2p.com - You can download the broadcast version there. Feed it with AltaCast using your testbuild for Windows.
I hope this can help you out?

Revision history for this message
Peter Burg (wunjo) wrote :

https://github.com/mixxxdj/mixxx/pull/1675
Seen your progress, however it's most abracadabra to me. Thanks!

Revision history for this message
David Hernández Morales (davidhm) wrote :

Is there anything for Linux? The file listener is implemented and the only thing left is to test it.

Revision history for this message
Peter Burg (wunjo) wrote :

I'll try to find something in vbox, takes some time however

Revision history for this message
Peter Burg (wunjo) wrote :

DarkIce must do the same as AltaCast in Windows however no metadata support.
https://github.com/rafael2k/darkice
IceCast does have such function, though it is an audio server
https://icecast.org/docs/icecast-trunk/admin_interface/
Ices is an input module for IceCast, it can handle metadata
https://icecast.org/ices/docs/ices-2.0.1/inputs.html

Maybe you can send me a link to a windows testbuild to test it?

Revision history for this message
Peter Burg (wunjo) wrote :

Butt will also do the job
http://danielnoethen.de/manual.html
see 6 streaming section

some more see http://www.icecast.org/apps/

Be (be.ing)
Changed in mixxx:
importance: High → Low
RJ Skerry-Ryan (rryan)
tags: added: broadcast
removed: shoutcast
Revision history for this message
Peter Burg (wunjo) wrote :
Changed in mixxx:
milestone: 2.2.0 → 2.3.0
Be (be.ing)
Changed in mixxx:
milestone: 2.3.0 → none
Revision history for this message
Daniel Schürmann (daschuer) wrote :

The original issue can be fixed by setting a different Window Class than the default.

The default is defined here:
https://github.com/qt/qtbase/blob/c7b3c5a082d9099e7995006f033c3017bfa7f19c/src/plugins/platforms/windows/qwindowscontext.cpp#L533

I have no idea if we can change this afterwards.

Changed in mixxx:
assignee: David Hernández Morales (davidhm) → nobody
Revision history for this message
Peter Burg (wunjo) wrote :

<quote>The original issue can be fixed by setting a different Window Class than the default.</quote>

Indeed there are to many instances called Qt5QWindiwIcon, only one is the usable one.

some googling:

https://doc.qt.io/qt-5/qwindow.html#details

https://doc.qt.io/qt-5/qstring.html

Hope someone can find a fix :-)

Revision history for this message
Peter Burg (wunjo) wrote :
Revision history for this message
Peter Burg (wunjo) wrote :
Revision history for this message
Daniel Schürmann (daschuer) wrote :

Here is a pretty straight forward guide to build Mixxx on Linux.
https://www.mixxx.org/wiki/doku.php/compiling_on_linux

If you are still struggling, I will help you out on https://mixxx.zulipchat.com/

In general this is a good start to read:
,https://mixxx.org/wiki/doku.php/bugfix_workflow

Revision history for this message
Peter Burg (wunjo) wrote :

Issue solved probably during recent changes in QT name assignment for windows.
There are now only two same assignments. Preferences and the main window.

Changed in mixxx:
status: In Progress → Fix Committed
Revision history for this message
Peter Burg (wunjo) wrote :

I was a bit to eager. It wasn't fixed in the Deere skin, there were 5 same named windows...

Changed in mixxx:
status: Fix Committed → In Progress
Revision history for this message
Peter Burg (wunjo) wrote :

I'm using the Tango skin on mixxx-2.4.0-alpha-pre-master-git7412-release-x64, win 10 pro

It's about the Window Class Qt5QWindowIcon. If there is one instace of it, it is found by Altacast
Also checked Shade skin, is ok, Latenight ok too.

Revision history for this message
Swiftb0y (swiftb0y) wrote :

Mixxx now uses GitHub for bug tracking. This bug has been migrated to:
https://github.com/mixxxdj/mixxx/issues/9327

lock status: Metadata changes locked and limited to project staff
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.