Walkyst / lavaplayer-fork

Apache License 2.0
173 stars 68 forks source link

Track loading issue. #101

Closed chredeur closed 1 year ago

chredeur commented 1 year ago

Description

Using lavalink which is currently on lavalplayer 1.4.0 I get this error when I load an ogg vorbis audio stream (icecast webradio):

2023-05-17 18:30:23.670  INFO 94 --- [XNIO-1 task-12] l.server.player.AudioLoaderRestHandler   : Got request to load for identifier "http://icecast.flazebot.com:8100/phonk_premium.ogg"
2023-05-17 18:30:23.671  WARN 94 --- [lava-daemon-pool-info-loader-2-thread-1] c.s.d.l.container.ogg.OggContainerProbe  : Failed to collect additional information on OGG stream.

java.lang.NullPointerException: Cannot invoke "com.sedmelluq.discord.lavaplayer.container.ogg.OggStreamSizeInfo.getDuration()" because "sizeInfo" is null
    at com.sedmelluq.discord.lavaplayer.container.ogg.vorbis.OggVorbisCodecHandler.loadMetadata(OggVorbisCodecHandler.java:62) ~[lavaplayer-1.4.0.jar!/:na]
    at com.sedmelluq.discord.lavaplayer.container.ogg.OggTrackLoader.loadMetadata(OggTrackLoader.java:36) ~[lavaplayer-1.4.0.jar!/:na]
    at com.sedmelluq.discord.lavaplayer.container.ogg.OggContainerProbe.collectStreamInformation(OggContainerProbe.java:61) ~[lavaplayer-1.4.0.jar!/:na]
    at com.sedmelluq.discord.lavaplayer.container.ogg.OggContainerProbe.probe(OggContainerProbe.java:46) ~[lavaplayer-1.4.0.jar!/:na]
    at com.sedmelluq.discord.lavaplayer.container.MediaContainerDetection.checkContainer(MediaContainerDetection.java:91) ~[lavaplayer-1.4.0.jar!/:na]
    at com.sedmelluq.discord.lavaplayer.container.MediaContainerDetection.detectContainer(MediaContainerDetection.java:76) ~[lavaplayer-1.4.0.jar!/:na]
    at com.sedmelluq.discord.lavaplayer.container.MediaContainerDetection.detectContainer(MediaContainerDetection.java:61) ~[lavaplayer-1.4.0.jar!/:na]
    at com.sedmelluq.discord.lavaplayer.source.http.HttpAudioSourceManager.detectContainerWithClient(HttpAudioSourceManager.java:142) ~[lavaplayer-1.4.0.jar!/:na]
    at com.sedmelluq.discord.lavaplayer.source.http.HttpAudioSourceManager.detectContainer(HttpAudioSourceManager.java:120) ~[lavaplayer-1.4.0.jar!/:na]
    at com.sedmelluq.discord.lavaplayer.source.http.HttpAudioSourceManager.loadItem(HttpAudioSourceManager.java:81) ~[lavaplayer-1.4.0.jar!/:na]
    at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItemOnce(DefaultAudioPlayerManager.java:449) ~[lavaplayer-1.4.0.jar!/:na]
    at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItem(DefaultAudioPlayerManager.java:431) ~[lavaplayer-1.4.0.jar!/:na]
    at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$createItemLoader$0(DefaultAudioPlayerManager.java:223) ~[lavaplayer-1.4.0.jar!/:na]
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
    at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]

2023-05-17 18:30:23.671  INFO 94 --- [lava-daemon-pool-info-loader-2-thread-1] lavalink.server.player.AudioLoader       : Loaded track phonk

The track plays correctly but at the end of the music, everything stops even though the audio stream has not stopped.

After having taken the version 3.7.4 of Lavalink which is on a lower version it turns out that the problem is solved, I think that it comes from the update of lavaplayer in 1.4.0, the logs of lavalink (same configuration) :

2023-05-17 20:16:21.626  INFO 230156 --- [XNIO-1 task-1] l.server.player.AudioLoaderRestHandler   : Got request to load for identifier "http://icecast.flazebot.com:8100/phonk_premium.ogg"
2023-05-17 20:16:21.902  INFO 230156 --- [lava-daemon-pool-info-loader-2-thread-1] lavalink.server.player.AudioLoader       : Loaded track phonk
2023-05-17 20:16:21.905  INFO 230156 --- [XNIO-1 task-2] lavalink.server.io.RequestLoggingFilter  : GET /v3/loadtracks?identifier=http://icecast.flazebot.com:8100/phonk_premium.ogg, client=192.168.0.2
Walkyst commented 1 year ago

That link "http://icecast.flazebot.com:8100/phonk_premium.ogg" is not opening for me

chredeur commented 1 year ago

That link "http://icecast.flazebot.com:8100/phonk_premium.ogg" is not opening for me

Yes, this link belongs to my private network, but I think any other ogg audio stream should do.

Walkyst commented 1 year ago

This is endless stream?

chredeur commented 1 year ago

It's normally a endless stream, well there's an icecast on the front end and a liquidsoap on the back end.

Walkyst commented 1 year ago

Not sure where I can find ogg streams only finds mp3 ones if you can find one it will help with fixing this

chredeur commented 1 year ago

Not sure where I can find ogg streams only finds mp3 ones if you can find one it will help with fixing this

I'll try to set up an Azuracast container for you to access and I'll send you the radio link when it's ready.

chredeur commented 1 year ago

@Walkyst So I created a temporary radio that works in much the same way as my production system. It can be found at this link https://azura.flazebot.com/lofi.ogg. When you're done using it, let me know that I'm deleting it. Some details:

Walkyst commented 1 year ago

It still not opening

chredeur commented 1 year ago

It still not opening

You are really unlucky you tried it when I have a network problem on my infrastructure I will send you a message when it is fixed.

chredeur commented 1 year ago

@Walkyst Problem solved (for the moment)

chredeur commented 1 year ago

@Walkyst Do you still need the ogg stream?

Walkyst commented 1 year ago

@chredeur0 Yep, will look more at this issue today

chredeur commented 1 year ago

Hey @Walkyst have you found a solution for this problem?

Walkyst commented 1 year ago

@chredeur Try latest commit in ogg-stream-fix branch

chredeur commented 1 year ago

@chredeur Try latest commit in ogg-stream-fix branch

After testing the patch on lavalink everything seems to work the only warning I got was:

2023-06-24 13:07:24.907  INFO 359226 --- [  XNIO-1 task-1] l.server.player.AudioLoaderRestHandler   : Got request to load for identifier "pub.ogg"
2023-06-24 13:07:24.907  INFO 359226 --- [ader-2-thread-1] lavalink.server.player.AudioLoader       : Loaded track Unknown title
2023-06-24 13:07:24.909  INFO 359226 --- [  XNIO-1 task-1] lavalink.server.io.RequestLoggingFilter  : GET /v3/loadtracks?identifier=pub.ogg, client=192.168.0.2
2023-06-24 13:07:25.121  WARN 359226 --- [      Finalizer] c.s.l.c.natives.NativeResourceHolder     : Should have been closed before finalization (com.sedmelluq.discord.lavaplayer.natives.vorbis.VorbisDecoder).
2023-06-24 13:07:25.122  WARN 359226 --- [      Finalizer] c.s.l.c.natives.NativeResourceHolder     : Should have been closed before finalization (com.sedmelluq.discord.lavaplayer.natives.opus.OpusEncoder).
2023-06-24 13:07:25.122  WARN 359226 --- [      Finalizer] c.s.l.c.natives.NativeResourceHolder     : Should have been closed before finalization (com.sedmelluq.discord.lavaplayer.natives.samplerate.SampleRateConverter).
2023-06-24 13:07:25.122  WARN 359226 --- [      Finalizer] c.s.l.c.natives.NativeResourceHolder     : Should have been closed before finalization (com.sedmelluq.discord.lavaplayer.natives.samplerate.SampleRateConverter).
2023-06-24 13:07:25.122  WARN 359226 --- [      Finalizer] c.s.l.c.natives.NativeResourceHolder     : Should have been closed before finalization (com.sedmelluq.discord.lavaplayer.natives.vorbis.VorbisDecoder).
2023-06-24 13:07:25.122  WARN 359226 --- [      Finalizer] c.s.l.c.natives.NativeResourceHolder     : Should have been closed before finalization (com.sedmelluq.discord.lavaplayer.natives.samplerate.SampleRateConverter).
2023-06-24 13:07:25.122  WARN 359226 --- [      Finalizer] c.s.l.c.natives.NativeResourceHolder     : Should have been closed before finalization (com.sedmelluq.discord.lavaplayer.natives.samplerate.SampleRateConverter).
2023-06-24 13:07:25.122  WARN 359226 --- [      Finalizer] c.s.l.c.natives.NativeResourceHolder     : Should have been closed before finalization (com.sedmelluq.discord.lavaplayer.natives.opus.OpusEncoder).
2023-06-24 13:07:25.122  WARN 359226 --- [      Finalizer] c.s.l.c.natives.NativeResourceHolder     : Should have been closed before finalization (com.sedmelluq.discord.lavaplayer.natives.samplerate.SampleRateConverter).
2023-06-24 13:07:25.122  WARN 359226 --- [      Finalizer] c.s.l.c.natives.NativeResourceHolder     : Should have been closed before finalization (com.sedmelluq.discord.lavaplayer.natives.samplerate.SampleRateConverter).
2023-06-24 13:07:25.122  WARN 359226 --- [      Finalizer] c.s.l.c.natives.NativeResourceHolder     : Should have been closed before finalization (com.sedmelluq.discord.lavaplayer.natives.opus.OpusEncoder).
2023-06-24 13:07:25.122  WARN 359226 --- [      Finalizer] c.s.l.c.natives.NativeResourceHolder     : Should have been closed before finalization (com.sedmelluq.discord.lavaplayer.natives.samplerate.SampleRateConverter).
2023-06-24 13:07:25.122  WARN 359226 --- [      Finalizer] c.s.l.c.natives.NativeResourceHolder     : Should have been closed before finalization (com.sedmelluq.discord.lavaplayer.natives.samplerate.SampleRateConverter).
2023-06-24 13:07:25.122  WARN 359226 --- [      Finalizer] c.s.l.c.natives.NativeResourceHolder     : Should have been closed before finalization (com.sedmelluq.discord.lavaplayer.natives.vorbis.VorbisDecoder).
2023-06-24 13:07:25.122  WARN 359226 --- [      Finalizer] c.s.l.c.natives.NativeResourceHolder     : Should have been closed before finalization (com.sedmelluq.discord.lavaplayer.natives.opus.OpusEncoder).
2023-06-24 13:07:25.122  WARN 359226 --- [      Finalizer] c.s.l.c.natives.NativeResourceHolder     : Should have been closed before finalization (com.sedmelluq.discord.lavaplayer.natives.opus.OpusEncoder).
2023-06-24 13:07:25.122  WARN 359226 --- [      Finalizer] c.s.l.c.natives.NativeResourceHolder     : Should have been closed before finalization (com.sedmelluq.discord.lavaplayer.natives.samplerate.SampleRateConverter).
2023-06-24 13:07:25.122  WARN 359226 --- [      Finalizer] c.s.l.c.natives.NativeResourceHolder     : Should have been closed before finalization (com.sedmelluq.discord.lavaplayer.natives.samplerate.SampleRateConverter).

Lavalink version: https://godrive.zip/lavalink/Lavalink.jar

Walkyst commented 1 year ago

Not sure what you doing, on my local testing everything is fine

chredeur commented 1 year ago

Not sure what you doing, on my local testing everything is fine

Maybe it's my fault, so just ignore it x)