-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Mixxx not sending track metadata to shoutcast on Ubuntu #9599
Comments
Commented by: tezzy |
Commented by: daschuer Thank you for you support. There the root issue is IMHO often covered or mixxed by a configuration issues. It would be great if we can isolate the root issue and detect and warn about configuration issues. Unfortunately libshout is not very convenient here. I think we should fork it to fix this, this allows us to also add AAC support, a pending libshout Pull request. I am on Ubuntu Xenial with my development machine, and I also have access to a Bionic device. The first we could check if the official Ubuntu Mixxx build is effected. Next you may check the PPA versions of the Mixxx project. Is any if these versions working? |
Commented by: daschuer I cannot see any suspicious entries in your logs. |
Commented by: tezzy Thanks for your replies. I am very happy to help you fix this. I will connect my working Mixxx 2.0.0 (on Windows) and log those for you. I will build stock Xenial 16.04.5 and Bionic 18.04.2 test machines, install the official Ubuntu version of Mixxx and test and log Mixxx and Shoutcast. A simple way to test if metadata is available, is to connect a web browser to the same host and port Mixxx uses. Look on the status tab for 'Playing Now: '. On a Shoutcast2 server, there is a html5 player. Shoutcast2 is not resource hungry. When needed, it can run standalone under screen. It needs 2 ports opened in the firewall. |
Commented by: tezzy My first test:
I did apt install mixxx from the Ubuntu repository.
This works perfectly. Two items from the Shoutcast log: 2019-02-24 10:42:40 INFO [ADMINCGI sid=1] Title updated [ABBA - Take a Chance on Me] The only settings on Mixxx I changed were to add the Shoutcast server and headphones. |
Commented by: daschuer Great. So please backup the ~/.mixxx folder and treat this as golden reference sample. Is this still working? |
Commented by: daschuer It is Mixxx 2.2.0 the first Qt5 build. |
Commented by: tezzy Test #2
Mixxx installed from the PPA.
Shoutcast server logs: 2019-02-24 14:12:19 INFO [SRC 192.168.1.42:50497 sid=1] SHOUTcast 1 source connection starting. Everything works fine on 16.04 |
Commented by: daschuer So it is not a Qt5 issue, right? |
Commented by: tezzy I do not know of any version installed with apt failing on Xenal 16.04. Everything behaved itself on my tests. I have kept hard disk images. I am now going to test 18.04 LTS bionic. |
Commented by: tezzy Test #3
No track metadata is being sent to Shoutcast. I also tried setting the Prefences > Live Broadcasting > Enable custom metadata TRUE with text in the Artist and Title boxes > Apply > OK There are no errors on the shoutcast logs. There are no errors on the Mixxx logs. |
Commented by: tezzy
My notes 2 tracks were played no metadata sent 2019-02-24 16:16:05 DEBUG [SRC 192.168.1.42:51103 sid=1] Remote socket closed while waiting for data. |
Commented by: daschuer Libshout has changed from 2.3.1 to 2.4.1 in bionic. I have just skimmed to the shoutcast commit https://github.com/xiph/Icecast-libshout/commits/master |
Commented by: daschuer If you have a git clone directory like described here: https://www.mixxx.org/wiki/doku.php/compiling_on_linux You can bull the changes like this: git pull https://github.com/daschuer/mixxx.git libshout_intern If you like to become a contributor, (which would be great, because Mixxx could become a much better broadcasting tool. :-) ) You may also find this useful: |
Commented by: tezzy Thanks Daniel.
No metadata is being sent to Shoutcast. My tasks: Perform a wireshark trace on working Mixxx and search HTTP POST and GET packets for the password. I know the track metadata follows password. Work out the syntax. I will look for a Mixxx flow chart. I will have a go at reading the source code. My thoughts are: Repeat on working and broken machines: Which module sends the metadata to libshout? How it does it? Exactly what it is sending? Is libshout actually getting the metadata? How it does it? Exactly what is it looking for? Find the mismatch! |
Commented by: tezzy A quick Wireshark capture from Mixxx 2.0.0 on Windows laptop:
|
Commented by: daschuer Can charset= |
Commented by: daschuer I can prepare the branch, that it log the requested info. |
Commented by: daschuer Does idjc send metadata, it is an Ubuntu package also based on libshout. |
Commented by: tezzy A quick wireshark capture from 16.04
|
Commented by: tezzy Packet from 16.04 with UTF-8 turned off.
|
Commented by: tezzy Last 2 16.04 captures were done with
|
Commented by: tezzy Here are the results of my idjc test on 16.04:
Wireshark capture:
Shoutcast log: [ADMINCGI sid=1] Title updated [ABBA - Voulez-Vous] |
Commented by: daschuer Is idjc working? I have prepared a Mixxx version without charset= field. https://github.com/daschuer/mixxx.git libshout_intern |
Commented by: tezzy Yes, idjc is working. Ubuntu 16.04.6 LTS idjc 0.8.15 Successfully sent:
and shoutcast logged: [ADMINCGI sid=1] Title updated [ABBA - Voulez-Vous] |
Commented by: daschuer
Does it make a difference if you enable utf8 in broadcasting profile setting? |
Commented by: tezzy I just looked at the Mixxx log in post #31 and saw:
|
Commented by: tezzy I found the error messages in: ~/mixxx/src/engine/sidechain/shoutconnection.cpp |
Commented by: daschuer Cool, we are getting close. I can look into it tonight. If you have time before, I suggest to place addition qDebug() or printf() calls to the code or use gdb to set bteakpoints. Do you have gdb experiences? I use eclipse and gdb for debugging An other issue: Can you point me to a document that explains that? |
Commented by: tezzy Daniel wrote: I don't know how to place additional qDebug() or printf() calls to the code or use gdb to set breakpoints. Daniel wrote: Can you post an example MP3 file so I can look into it? Daniel wrote: Can you point me to a document that explains that? I saw this page which looks interesting: http://ask.xmodulo.com/convert-mp3-id3-tag-encodings-linux.html I read this paragraph: Fix Broken Characters in MP3 Song Titles and Artist Names I looked at https://en.wikipedia.org/wiki/ID3 The point of setting the charset is because ID3v2.4 The wikipedia article continues: [quote] |
Commented by: daschuer I have just pushed another version with more debug output. |
Commented by: tezzy I tried building and got an error: lin64_build/lib/libshout/libshout_mixxx.a(tls.o): In function Can you take a look for me? Log attached. |
Commented by: tezzy I wrote this for a fellow DJ and thought I'd share it. A quick change the metadata data in a browser howto: When connected to the shoutcast server open a web browser (I used Chrome) and put the following in the address bar. Example: http://server.example.com:0000/admin.cgi?mode=updinfo&pass=PASSWORDsong=ARTIST%20%2d%20SONGTITLE replace server.example.com with server |
Commented by: tezzy Should read: http://server.example.com:0000/admin.cgi?mode=updinfo&pass=PASSWORD&song=ARTIST%20%2d%20SONGTITLE I missed an & out before song. |
Commented by: daschuer try to sudo apt-get install libogg0 libvorbis0a libtheora0 libspeex1 libssl1.1 |
Commented by: daschuer
But Wireshark shows this & in all cases. |
Commented by: tezzy It was a typing error in post #39. |
Commented by: tezzy Daniel wrote:
|
Commented by: daschuer does: sudo apt-get install libssl1.0.0 help? |
Commented by: tezzy It is already installed.
|
Commented by: daschuer I have updated the branch. Maybe it builds now. |
Commented by: tezzy Sorry, I got some more build errors. g++ -o lin64_build/mixxx -Wl,-rpath,/usr/lib/x86_64-linux-gnu -L/usr/lib/x86_64-linux-gnu -pthread -Wl,-rpath=/usr/lib/x86_64-linux-gnu lin64_build/res/qrc_mixxx.o lin64_build/src/main.o -Llin64_build/lib/soundtouch -Llib/soundtouch -Llin64_build/lib/libshout lin64_build/libmixxx.a -lX11 -lportaudio -lasound -lm -lporttime -lportmidi -lQt5X11Extras -lQt5Concurrent -lQt5Network -lQt5OpenGL -lQt5Script -lQt5ScriptTools -lQt5Sql -lQt5Svg -lQt5Test -lQt5Widgets -lQt5Gui -lQt5Xml -lQt5DBus -lQt5Core -lsndfile -lFLAC -lvorbisfile -lvorbis -logg -lvorbisenc -lGL -lGLU -ltag -lprotobuf-lite -lchromaprint -lrubberband -lmp3lame -lmad -lid3tag -lpthread -lrt -lusb-1.0 -lusb-1.0 -lopusfile -lopus -lsqlite3 -llilv-0 -lupower-glib -lgobject-2.0 -lglib-2.0 -lsoundtouch -lshout_mixxx -logg -lvorbis -ltheora -lspeex -l:libssl.so.1.0.0 -l:libcrypto.so.1.0.0 While it was building I did some web searches for: I found these pages: https://github.com/openwrt/packages/blob/master/libs/libshout/patches/150-openssl-1.1.patch The API has changed between 1.0.0 and 1.1.0 of libssl https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=228942
Was change of compiler or build options after Ubuntu 16.04? |
Commented by: tezzy Please check this out - the last entry: https://gitlab.xiph.org/xiph/icecast-libshout/issues/2299 [quote] I've just successfully built libshout-2.4.1 against openssl-1.1 using this patch from Debian: Can you please: I believe Mixxx will successfully compile. I can then pull and compile. |
Commented by: tezzy Patched file on the Debian site: |
Commented by: daschuer Done, good finding. :-) |
Commented by: tezzy I compiled on a fresh Ubuntu 18.04 install without an error.
I started mixxx, set the library folder and broadcasting settings and exited. 01run.log
The connection was succesful. I had another look at thehttps://bugs.launchpad.net/mixxx/+bug/1817395/+attachment/5241090/+files/mixxx.log source code ~/mixxx/src/engine/sidechain/shoutconnection.cpp
I suspect a bad variable between lines 790 and 846. Can you please check the variables between lines 790 and 846 in shoutconnection.cpp? |
Commented by: tezzy A test on of Mixxx 2.3.0-alpha-pre git master r6743 Ubuntu 16.04 works fine.
git clone https://github.com/mixxxdj/mixxx.git Mixxx did not create a log file in ~/.mixxx/mixxx.log so I used tee. I tried with and without UTF-8 enabled. Both worked correctly.
Shoutcast log: 2019-03-12 02:55:30 INFO [MAIN] SHOUTcast DNAS/posix(linux x64) v2.6.0.750 (Dec 7 2018) I will compare the files in 16.04 and 18.04 next. |
Commented by: daschuer The shout_get_tls(m_pShout) is just some more debug info. I am now connected via a different internet connection and I can luckily reproduce the issue. And if I explicit disable tls it works. By default it is set to Auto, but the Auto mode somehow fails. Can you confirm the issue? |
Commented by: tezzy Fresh Ubuntu 18.04 install.
Shoutcast log: Metadata is now being sent! Thank you very much for your help. Please take a look at this: It gets interesting from RJ Skerry-Ryan (rryan) comments from post #42. |
Commented by: tezzy Success! I manually applied your patch to src/engine/sidechain/shoutconnection.cpp in a clean pull of Mixxx 2.2. on Ubuntu 18.04 I played a track: Shoutcast log: |
Commented by: tezzy I manually applied your patch to src/engine/sidechain/shoutconnection.cpp in a clean pull of Mixxx 2.2. on UbuntuSTUDIO 18.10. People use Studio because of the low latency kernel. That worked perfectly, sending the correct metadata to Shoutcast2: 2019-03-18 09:21:11 INFO [ADMINCGI sid=1] Title updated [ABBA - Waterloo] |
Issue closed with status Fix Released. |
Reported by: tezzy
Date: 2019-02-23T06:36:14Z
Status: Fix Released
Importance: High
Launchpad Issue: lp1817395
Tags: metadata, shoutcast, tags
Attachments: [Log file](https://bugs.launchpad.net/bugs/1817395/+attachment/5241090/+files/Log file), [.mixxx folder Ubuntu 18.04 stock install](https://bugs.launchpad.net/bugs/1817395/+attachment/5241333/+files/.mixxx folder Ubuntu 18.04 stock install), [Build and console logs](https://bugs.launchpad.net/bugs/1817395/+attachment/5242510/+files/Build and console logs), [Scons build log with errors.](https://bugs.launchpad.net/bugs/1817395/+attachment/5242727/+files/Scons build log with errors.), [Patched tls.c for libshout-tls-compile-with-OpenSSL-1.1.0](https://bugs.launchpad.net/bugs/1817395/+attachment/5244373/+files/Patched tls.c for libshout-tls-compile-with-OpenSSL-1.1.0), [Compile and log files.](https://bugs.launchpad.net/bugs/1817395/+attachment/5244905/+files/Compile and log files.)
Operating system Ubuntu Linux 18.04.2
CPU architecture Intel i7-7700
Your video and sound hardware Asus 1060
Steps to reproduce the problem: Install fresh Ubuntu 18.04.2, compile 2.3 from git, configure shoutcast, connect, add track to deck and hit play.
Information logs: Log attached
I compiled 2.3.0-alpha-pre on a fresh Ubuntu install after reports from another DJ who us on 2.0.0 and 2.2.0 with the same problem:
Mixxx 2.3.0-alpha-pre is not sending track metadata to Shoutcast 2 servers.
The music plays fine.
An older of Mixxx on Windows send the metadata fine.
I can make a a port on my private shoutcast 2 server available to testers if needed.
The text was updated successfully, but these errors were encountered: