savonet / liquidsoap

Liquidsoap is a statically typed scripting general-purpose language with dedicated operators and backend for all thing media, streaming, file generation, automation, HTTP backend and more.
http://liquidsoap.info
GNU General Public License v2.0
1.4k stars 128 forks source link

Crossfading stops after request put on queue switched-to by fallback #1757

Closed Warblefly closed 3 years ago

Warblefly commented 3 years ago

Following-up my earlier note (#1735), crossfading in a playlist using liq_cross_duration and liq_cue_in to mark fade points and the end of start-of-track silencing works at first, but stops after a request is placed on a request queue selected by fallback.

This request queue has items pushed onto it via telnet.

And, after the first such request, all subsequent crossfades don't work. The tracks simply play right through to the end of data.

The crossfade at the end of a track (marked by liq_cross_duration) is not heeded when the fallback function is used as below. The track fully finishes, to the end of its data.

myplaylist is the playing playlist; override is the queue onto which items are pushed by the expect/telnet combination.

myplaylist = fallback(track_sensitive=true, transition_length=30.0, [request.queue(id="override"), myplaylist])

But the multiple errors that used to happen are gone.

Here's the log:

2021/07/24 16:56:15 [decoder:4] Decoding "/home/john/src/radio/mez3/09 Chicken Heads.6c68d80527e11dfedf5223a9841775c0.mka" ended: Ffmpeg_decoder.End_of_file.
2021/07/24 16:56:15 [decoder:4] Raised at Ffmpeg_decoder.mk_decoder.(fun).f in file "decoder/ffmpeg_decoder.ml", line 275, characters 12-29
2021/07/24 16:56:15 [decoder:4] Called from Decoder.mk_decoder.fill in file "decoder/decoder.ml", line 488, characters 10-31
2021/07/24 16:56:15 [decoder:4]
2021/07/24 16:56:15 [playlist_0:4] Finished with "/home/john/src/radio/mez3/09 Chicken Heads.6c68d80527e11dfedf5223a9841775c0.mka".
2021/07/24 16:56:15 [amplify_0:4] End of the current overriding.
2021/07/24 16:56:15 [decoder:4] Available decoders: FFMPEG (priority: 10)
2021/07/24 16:56:15 [decoder.ffmpeg:4] ffmpeg recognizes "/home/john/src/radio/mez3/04 - Atomic Rooster - The Rock.6774d2bf20f1643756297c6f7ea0e01a.mka" as: audio: {codec: mp3, 44100Hz, 2 channel(s)} and content-type: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 16:56:15 [decoder:4] Selected decoder FFMPEG for file "/home/john/src/radio/mez3/04 - Atomic Rooster - The Rock.6774d2bf20f1643756297c6f7ea0e01a.mka" with expected kind {audio=pcm(stereo),video=none,midi=none} and detected content {audio=pcm(stereo),video=none,midi=none}
2021/07/24 16:56:15 [playlist_0:4] Remaining: 0.0s, queued: 0.0s, adding: 271.4s (RID 3)
2021/07/24 16:56:15 [playlist_0:4] Remaining: 0.0s, queued: 271.4s, taking: 271.4s
2021/07/24 16:56:15 [playlist_0:3] Prepared "/home/john/src/radio/mez3/04 - Atomic Rooster - The Rock.6774d2bf20f1643756297c6f7ea0e01a.mka" (RID 3).
2021/07/24 16:56:15 [switch_0:3] Switch to amplify_0.
2021/07/24 16:56:15 [cue_cut_0:4] Cue points : none / none
2021/07/24 16:56:15 [cue_cut_0:3] Cueing in...
2021/07/24 16:56:15 [amplify_0:4] Overriding amplification: 0.288403.
2021/07/24 16:56:15 [crossfade_0:4] Setting crossfade duration to 10.71s
2021/07/24 16:56:16 [crossfade_0:3] Analysis: -nandB / -33.078561dB (10.56s / 10.56s)
2021/07/24 16:56:16 [crossfade_0:4] Before: ("tpa", "1/1")
2021/07/24 16:56:16 [crossfade_0:4] Before: ("album", "Right On! Vol 4")
2021/07/24 16:56:16 [crossfade_0:4] Before: ("track", "9/19")
2021/07/24 16:56:16 [crossfade_0:4] Before: ("date", "1974")
2021/07/24 16:56:16 [crossfade_0:4] Before: ("encoded_by", "iTunes 10.5.3")
2021/07/24 16:56:16 [crossfade_0:4] Before: ("kind", "{audio=pcm(stereo),video=none,midi=none}")
2021/07/24 16:56:16 [crossfade_0:4] Before: ("itunes_cddb_tracknumber", "9")
2021/07/24 16:56:16 [crossfade_0:4] Before: ("artist", "Oscar Brown Jr.")
2021/07/24 16:56:16 [crossfade_0:4] Before: ("decoder", "FFMPEG")
2021/07/24 16:56:16 [crossfade_0:4] Before: ("liq_cross_duration", "10.620")
2021/07/24 16:56:16 [crossfade_0:4] Before: ("title", "Chicken Heads")
2021/07/24 16:56:16 [crossfade_0:4] Before: ("liq_cue_in", "0.000")
2021/07/24 16:56:16 [crossfade_0:4] Before: ("filename", "/home/john/src/radio/mez3/09 Chicken Heads.6c68d80527e11dfedf5223a9841775c0.mka")
2021/07/24 16:56:16 [crossfade_0:4] Before: ("itunes_cddb_1", "14105613+313820+19+150+14150+29412+41350+71817+89087+106540+120180+132690+144372+160365+174032+188487+213347+225665+237065+253360+271977+292477")
2021/07/24 16:56:16 [crossfade_0:4] Before: ("temporary", "false")
2021/07/24 16:56:16 [crossfade_0:4] Before: ("source", "playlist_0")
2021/07/24 16:56:16 [crossfade_0:4] Before: ("tcm", "Calvin Carter/Bobby Rush")
2021/07/24 16:56:16 [crossfade_0:4] Before: ("initial_uri", "annotate:liq_cue_in=\"0.000\",liq_cross_duration=\"10.620\",duration=\"155.820\",liq_amplify=\"-7.500dB\":/home/john/src/radio/mez3/09 Chicken Heads.6c68d80527e11dfedf5223a9841775c0.mka")
2021/07/24 16:56:16 [crossfade_0:4] Before: ("itunnorm", " 000002A2 0000025C 00002B76 000027E0 0001EFB6 0001EFB6 00007431 000073B6 00017234 000202B1")
2021/07/24 16:56:16 [crossfade_0:4] Before: ("encoder", "Lavf58.49.100")
2021/07/24 16:56:16 [crossfade_0:4] Before: ("compilation", "1")
2021/07/24 16:56:16 [crossfade_0:4] Before: ("status", "playing")
2021/07/24 16:56:16 [crossfade_0:4] Before: ("itunpgap", "0")
2021/07/24 16:56:16 [crossfade_0:4] Before: ("itunsmpb", " 00000000 00000210 00000858 000000000068D018 00000000 0038FC93 00000000 00000000 00000000 00000000 00000000 00000000")
2021/07/24 16:56:16 [crossfade_0:4] Before: ("on_air", "2021/07/24 16:53:50")
2021/07/24 16:56:16 [crossfade_0:4] Before: ("rid", "2")
2021/07/24 16:56:16 [crossfade_0:4] Before: ("genre", "R&B")
2021/07/24 16:56:16 [crossfade_0:4] Before: ("duration", "155.820")
2021/07/24 16:56:16 [crossfade_0:4] Before: ("liq_amplify", "-7.500dB")
2021/07/24 16:56:16 [crossfade_0:4] After : ("album", "One Way Glass CD3")
2021/07/24 16:56:16 [crossfade_0:4] After : ("track", "04/17")
2021/07/24 16:56:16 [crossfade_0:4] After : ("date", "2017")
2021/07/24 16:56:16 [crossfade_0:4] After : ("disc", "1/1")
2021/07/24 16:56:16 [crossfade_0:4] After : ("kind", "{audio=pcm(stereo),video=none,midi=none}")
2021/07/24 16:56:16 [crossfade_0:4] After : ("artist", "Various Artists")
2021/07/24 16:56:16 [crossfade_0:4] After : ("decoder", "FFMPEG")
2021/07/24 16:56:16 [crossfade_0:4] After : ("liq_cross_duration", "10.710")
2021/07/24 16:56:16 [crossfade_0:4] After : ("title", "Atomic Rooster - The Rock")
2021/07/24 16:56:16 [crossfade_0:4] After : ("liq_cue_in", "0.000")
2021/07/24 16:56:16 [crossfade_0:4] After : ("filename", "/home/john/src/radio/mez3/04 - Atomic Rooster - The Rock.6774d2bf20f1643756297c6f7ea0e01a.mka")
2021/07/24 16:56:16 [crossfade_0:4] After : ("temporary", "false")
2021/07/24 16:56:16 [crossfade_0:4] After : ("source", "playlist_0")
2021/07/24 16:56:16 [crossfade_0:4] After : ("initial_uri", "annotate:liq_cue_in=\"0.000\",liq_cross_duration=\"10.710\",duration=\"271.410\",liq_amplify=\"-10.800dB\":/home/john/src/radio/mez3/04 - Atomic Rooster - The Rock.6774d2bf20f1643756297c6f7ea0e01a.mka")
2021/07/24 16:56:16 [crossfade_0:4] After : ("encoder", "Lavf58.49.100")
2021/07/24 16:56:16 [crossfade_0:4] After : ("status", "playing")
2021/07/24 16:56:16 [crossfade_0:4] After : ("on_air", "2021/07/24 16:56:15")
2021/07/24 16:56:16 [crossfade_0:4] After : ("rid", "3")
2021/07/24 16:56:16 [crossfade_0:4] After : ("genre", "Rock")
2021/07/24 16:56:16 [crossfade_0:4] After : ("duration", "271.410")
2021/07/24 16:56:16 [crossfade_0:4] After : ("album_artist", "Various Artists")
2021/07/24 16:56:16 [crossfade_0:4] After : ("liq_amplify", "-10.800dB")
2021/07/24 16:56:16 [crossfade_0:3] Simple transition: crossed, fade-in, fade-out.
2021/07/24 16:56:16 [source:4] Source add_0 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 16:56:16 [add_0:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 16:56:16 [source:4] Source fade.in gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 16:56:16 [fade.in:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 16:56:16 [source:4] Source fade.in gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 16:56:16 [fade.in:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 16:56:16 [source:4] Source crossfade_0_after gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 16:56:16 [crossfade_0_after:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 16:56:16 [source:4] Source buffer_1 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 16:56:16 [buffer_1:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 16:56:16 [source:4] Source fade.out gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 16:56:16 [fade.out:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 16:56:16 [source:4] Source fade.out gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 16:56:16 [fade.out:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 16:56:16 [source:4] Source on_end_0 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 16:56:16 [on_end_0:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 16:56:16 [source:4] Source crossfade_0_before gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 16:56:16 [crossfade_0_before:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 16:56:16 [source:4] Source buffer_0 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 16:56:16 [buffer_0:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 16:56:16 [crossfade_0_after:4] Fading in (type: sin, duration: 0.s).
2021/07/24 16:56:26 [buffer_1:4] Buffer emptied, buffering needed.
2021/07/24 16:56:26 [buffer_0:4] Buffer emptied, buffering needed.
2021/07/24 16:56:26 [crossfade_0_before:4] Fading out with 0.s remaining.
2021/07/24 16:56:26 [crossfade_0:4] Buffering end of track...
2021/07/24 16:56:26 [crossfade_0:4] More buffering will be needed.
2021/07/24 16:59:29 [server:3] New client: 127.0.0.1.
2021/07/24 16:59:29 [override:4] Pushing <request(id=4)> on the queue.
2021/07/24 16:59:29 [server:3] Client 127.0.0.1 disconnected.
[mp3float @ 0x7f38b88e8540] Could not update timestamps for discarded samples.
2021/07/24 17:00:36 [decoder:4] Decoding "/home/john/src/radio/mez3/04 - Atomic Rooster - The Rock.6774d2bf20f1643756297c6f7ea0e01a.mka" ended: Ffmpeg_decoder.End_of_file.
2021/07/24 17:00:36 [decoder:4] Raised at Ffmpeg_decoder.mk_decoder.(fun).f in file "decoder/ffmpeg_decoder.ml", line 275, characters 12-29
2021/07/24 17:00:36 [decoder:4] Called from Decoder.mk_decoder.fill in file "decoder/decoder.ml", line 488, characters 10-31
2021/07/24 17:00:36 [decoder:4]
2021/07/24 17:00:36 [playlist_0:4] Finished with "/home/john/src/radio/mez3/04 - Atomic Rooster - The Rock.6774d2bf20f1643756297c6f7ea0e01a.mka".
2021/07/24 17:00:36 [amplify_0:4] End of the current overriding.
2021/07/24 17:00:36 [decoder:4] Available decoders: FFMPEG (priority: 10)
2021/07/24 17:00:36 [crossfade_0:3] Analysis: -104.292466dB / -nandB (10.64s / 0.00s)
2021/07/24 17:00:36 [crossfade_0:4] Before: ("album", "One Way Glass CD3")
2021/07/24 17:00:36 [crossfade_0:4] Before: ("track", "04/17")
2021/07/24 17:00:36 [crossfade_0:4] Before: ("date", "2017")
2021/07/24 17:00:36 [crossfade_0:4] Before: ("disc", "1/1")
2021/07/24 17:00:36 [crossfade_0:4] Before: ("kind", "{audio=pcm(stereo),video=none,midi=none}")
2021/07/24 17:00:36 [crossfade_0:4] Before: ("artist", "Various Artists")
2021/07/24 17:00:36 [crossfade_0:4] Before: ("decoder", "FFMPEG")
2021/07/24 17:00:36 [crossfade_0:4] Before: ("liq_cross_duration", "10.710")
2021/07/24 17:00:36 [crossfade_0:4] Before: ("title", "Atomic Rooster - The Rock")
2021/07/24 17:00:36 [crossfade_0:4] Before: ("liq_cue_in", "0.000")
2021/07/24 17:00:36 [crossfade_0:4] Before: ("filename", "/home/john/src/radio/mez3/04 - Atomic Rooster - The Rock.6774d2bf20f1643756297c6f7ea0e01a.mka")
2021/07/24 17:00:36 [crossfade_0:4] Before: ("temporary", "false")
2021/07/24 17:00:36 [crossfade_0:4] Before: ("source", "playlist_0")
2021/07/24 17:00:36 [crossfade_0:4] Before: ("initial_uri", "annotate:liq_cue_in=\"0.000\",liq_cross_duration=\"10.710\",duration=\"271.410\",liq_amplify=\"-10.800dB\":/home/john/src/radio/mez3/04 - Atomic Rooster - The Rock.6774d2bf20f1643756297c6f7ea0e01a.mka")
2021/07/24 17:00:36 [crossfade_0:4] Before: ("encoder", "Lavf58.49.100")
2021/07/24 17:00:36 [crossfade_0:4] Before: ("status", "playing")
2021/07/24 17:00:36 [crossfade_0:4] Before: ("on_air", "2021/07/24 16:56:15")
2021/07/24 17:00:36 [crossfade_0:4] Before: ("rid", "3")
2021/07/24 17:00:36 [crossfade_0:4] Before: ("genre", "Rock")
2021/07/24 17:00:36 [crossfade_0:4] Before: ("duration", "271.410")
2021/07/24 17:00:36 [crossfade_0:4] Before: ("album_artist", "Various Artists")
2021/07/24 17:00:36 [crossfade_0:4] Before: ("liq_amplify", "-10.800dB")
2021/07/24 17:00:36 [crossfade_0:3] Simple transition: crossed, fade-in, fade-out.
2021/07/24 17:00:36 [source:4] Source add_1 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:00:36 [add_1:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:00:36 [source:4] Source fade.in gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:00:36 [fade.in:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:00:36 [source:4] Source fade.in gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:00:36 [fade.in:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:00:36 [source:4] Source crossfade_0_after gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:00:36 [crossfade_0_after:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:00:36 [source:4] Source buffer_3 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:00:36 [buffer_3:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:00:36 [source:4] Source fade.out gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:00:36 [fade.out:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:00:36 [source:4] Source fade.out gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:00:36 [fade.out:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:00:36 [source:4] Source on_end_1 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:00:36 [on_end_1:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:00:36 [source:4] Source crossfade_0_before gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:00:36 [crossfade_0_before:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:00:36 [source:4] Source buffer_2 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:00:36 [buffer_2:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:00:36 [decoder:4] Available decoders: FFMPEG (priority: 10)
2021/07/24 17:00:36 [decoder.ffmpeg:4] ffmpeg recognizes "/home/john/src/radio/mez3/04. Lonnie Liston Smith - Shadows.495478d275e15b2ae57782989627716e.mka" as: audio: {codec: mp3, 44100Hz, 2 channel(s)} and content-type: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:00:36 [decoder:4] Selected decoder FFMPEG for file "/home/john/src/radio/mez3/04. Lonnie Liston Smith - Shadows.495478d275e15b2ae57782989627716e.mka" with expected kind {audio=pcm(stereo),video=none,midi=none} and detected content {audio=pcm(stereo),video=none,midi=none}
2021/07/24 17:00:36 [decoder.ffmpeg:4] ffmpeg recognizes "/home/john/src/radio/irn.mka" as: audio: {codec: aac, 48000Hz, 2 channel(s)} and content-type: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:00:36 [decoder:4] Selected decoder FFMPEG for file "/home/john/src/radio/irn.mka" with expected kind {audio=pcm(stereo),video=none,midi=none} and detected content {audio=pcm(stereo),video=none,midi=none}
2021/07/24 17:00:36 [playlist_0:4] Remaining: 0.0s, queued: 0.0s, adding: 380.2s (RID 5)
2021/07/24 17:00:36 [override:4] Remaining: 0.0s, queued: 0.0s, adding: 30.0s (RID 4)
2021/07/24 17:00:47 [buffer_2:4] Buffer emptied, buffering needed.
2021/07/24 17:00:47 [crossfade_0_before:4] Fading out with 0.s remaining.
2021/07/24 17:00:47 [override:4] Remaining: 0.0s, queued: 30.0s, taking: 30.0s
2021/07/24 17:00:47 [override:3] Prepared "/home/john/src/radio/irn.mka" (RID 4).
2021/07/24 17:00:47 [crossfade_0:4] Buffering end of track...
2021/07/24 17:00:47 [switch_0:3] Switch to override.
2021/07/24 17:00:47 [crossfade_0:4] Setting crossfade duration to 0.40s
2021/07/24 17:00:47 [crossfade_0:4] More buffering will be needed.
2021/07/24 17:02:46 [decoder:4] Decoding "/home/john/src/radio/irn.mka" ended: Ffmpeg_decoder.End_of_file.
2021/07/24 17:02:46 [decoder:4] Raised at Ffmpeg_decoder.mk_decoder.(fun).f in file "decoder/ffmpeg_decoder.ml", line 275, characters 12-29
2021/07/24 17:02:46 [decoder:4] Called from Decoder.mk_decoder.fill in file "decoder/decoder.ml", line 488, characters 10-31
2021/07/24 17:02:46 [decoder:4]
2021/07/24 17:02:47 [override:4] Finished with "/home/john/src/radio/irn.mka".
2021/07/24 17:02:47 [playlist_0:4] Remaining: 0.0s, queued: 380.2s, taking: 380.2s
2021/07/24 17:02:47 [playlist_0:3] Prepared "/home/john/src/radio/mez3/04. Lonnie Liston Smith - Shadows.495478d275e15b2ae57782989627716e.mka" (RID 5).
2021/07/24 17:02:47 [switch_0:3] Switch to amplify_0 with forgetful transition.
2021/07/24 17:02:47 [source:4] Source sequence_1 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:02:47 [source:4] Source max_duration_1 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:02:47 [cue_cut_0:4] Cue points : none / none
2021/07/24 17:02:47 [cue_cut_0:3] Cueing in...
2021/07/24 17:02:47 [amplify_0:4] Overriding amplification: 0.309030.
2021/07/24 17:02:47 [crossfade_0:4] Setting crossfade duration to 12.79s
2021/07/24 17:02:47 [crossfade_0:3] Analysis: -24.330725dB / -33.215167dB (0.36s / 0.36s)
2021/07/24 17:02:47 [crossfade_0:4] Before: ("kind", "{audio=pcm(stereo),video=none,midi=none}")
2021/07/24 17:02:47 [crossfade_0:4] Before: ("decoder", "FFMPEG")
2021/07/24 17:02:47 [crossfade_0:4] Before: ("liq_cross_duration", "0.4")
2021/07/24 17:02:47 [crossfade_0:4] Before: ("title", "Independent Radio News")
2021/07/24 17:02:47 [crossfade_0:4] Before: ("filename", "/home/john/src/radio/irn.mka")
2021/07/24 17:02:47 [crossfade_0:4] Before: ("temporary", "false")
2021/07/24 17:02:47 [crossfade_0:4] Before: ("source", "override")
2021/07/24 17:02:47 [crossfade_0:4] Before: ("initial_uri", "annotate:liq_fade_in=\"0.0\",liq_fade_out=\"0.0\",liq_cross_duration=\"0.4\",title=\"Independent Radio News\":/home/john/src/radio/irn.mka")
2021/07/24 17:02:47 [crossfade_0:4] Before: ("liq_fade_out", "0.0")
2021/07/24 17:02:47 [crossfade_0:4] Before: ("encoder", "Lavf58.79.100")
2021/07/24 17:02:47 [crossfade_0:4] Before: ("status", "playing")
2021/07/24 17:02:47 [crossfade_0:4] Before: ("on_air", "2021/07/24 17:00:47")
2021/07/24 17:02:47 [crossfade_0:4] Before: ("liq_fade_in", "0.0")
2021/07/24 17:02:47 [crossfade_0:4] Before: ("rid", "4")
2021/07/24 17:02:47 [crossfade_0:4] After : ("album", "Cosmic Funk & Spiritual Sounds - The Flying Dutchman Masters")
2021/07/24 17:02:47 [crossfade_0:4] After : ("track", "04/15")
2021/07/24 17:02:47 [crossfade_0:4] After : ("kind", "{audio=pcm(stereo),video=none,midi=none}")
2021/07/24 17:02:47 [crossfade_0:4] After : ("artist", "Lonnie Liston Smith")
2021/07/24 17:02:47 [crossfade_0:4] After : ("decoder", "FFMPEG")
2021/07/24 17:02:47 [crossfade_0:4] After : ("liq_cross_duration", "12.790")
2021/07/24 17:02:47 [crossfade_0:4] After : ("title", "Shadows")
2021/07/24 17:02:47 [crossfade_0:4] After : ("liq_cue_in", "0.000")
2021/07/24 17:02:47 [crossfade_0:4] After : ("filename", "/home/john/src/radio/mez3/04. Lonnie Liston Smith - Shadows.495478d275e15b2ae57782989627716e.mka")
2021/07/24 17:08:54 [crossfade_0:4] Before: ("encoder", "Lavf58.49.100")
2021/07/24 17:08:54 [crossfade_0:4] Before: ("status", "playing")
2021/07/24 17:08:54 [decoder.ffmpeg:4] ffmpeg recognizes "/home/john/src/radio/mez3/07. Dusty.15174dc99ac988c27e18de5d621a1c8a.mka" as: audio: {codec: alac, 44100Hz, 2 channel(s)} and content-type: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:08:54 [decoder:4] Selected decoder FFMPEG for file "/home/john/src/radio/mez3/07. Dusty.15174dc99ac988c27e18de5d621a1c8a.mka" with expected kind {audio=pcm(stereo),video=none,midi=none} and detected content {audio=pcm(stereo),video=none,midi=none}
2021/07/24 17:08:54 [crossfade_0:4] Before: ("on_air", "2021/07/24 17:02:47")
2021/07/24 17:08:54 [crossfade_0:4] Before: ("rid", "5")
2021/07/24 17:08:54 [crossfade_0:4] Before: ("genre", " ")
2021/07/24 17:08:54 [crossfade_0:4] Before: ("duration", "380.190")
2021/07/24 17:08:54 [crossfade_0:4] Before: ("liq_amplify", "-10.200dB")
2021/07/24 17:08:54 [crossfade_0:3] Simple transition: crossed, fade-in, fade-out.
2021/07/24 17:08:54 [source:4] Source add_3 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:08:54 [add_3:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:08:54 [source:4] Source fade.in gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:08:54 [fade.in:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:08:54 [source:4] Source fade.in gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:08:54 [fade.in:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:08:54 [source:4] Source crossfade_0_after gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:08:54 [crossfade_0_after:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:08:54 [source:4] Source buffer_7 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:08:54 [buffer_7:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:08:54 [source:4] Source fade.out gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:08:54 [fade.out:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:08:54 [source:4] Source fade.out gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:08:54 [fade.out:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:08:54 [source:4] Source on_end_3 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:08:54 [on_end_3:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:08:54 [source:4] Source crossfade_0_before gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:08:54 [crossfade_0_before:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:08:54 [source:4] Source buffer_6 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:08:54 [buffer_6:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:08:54 [playlist_0:4] Remaining: 0.0s, queued: 0.0s, adding: 183.2s (RID 1)
2021/07/24 17:09:07 [buffer_6:4] Buffer emptied, buffering needed.
2021/07/24 17:09:07 [crossfade_0_before:4] Fading out with 0.s remaining.
2021/07/24 17:09:07 [playlist_0:4] Remaining: 0.0s, queued: 183.2s, taking: 183.2s
2021/07/24 17:09:07 [playlist_0:3] Prepared "/home/john/src/radio/mez3/07. Dusty.15174dc99ac988c27e18de5d621a1c8a.mka" (RID 1).
2021/07/24 17:09:07 [crossfade_0:4] Buffering end of track...
2021/07/24 17:09:07 [switch_0:3] Switch to amplify_0.
2021/07/24 17:09:07 [cue_cut_0:4] Cue points : none / none
2021/07/24 17:09:07 [cue_cut_0:3] Cueing in...
2021/07/24 17:09:07 [amplify_0:4] Overriding amplification: 0.285102.
2021/07/24 17:09:07 [crossfade_0:4] Setting crossfade duration to 7.18s
2021/07/24 17:09:08 [crossfade_0:4] More buffering will be needed.
2021/07/24 17:12:03 [decoder:4] Decoding "/home/john/src/radio/mez3/07. Dusty.15174dc99ac988c27e18de5d621a1c8a.mka" ended: Ffmpeg_decoder.End_of_file.
2021/07/24 17:12:03 [decoder:4] Raised at Ffmpeg_decoder.mk_decoder.(fun).f in file "decoder/ffmpeg_decoder.ml", line 275, characters 12-29
2021/07/24 17:12:03 [decoder:4] Called from Decoder.mk_decoder.fill in file "decoder/decoder.ml", line 488, characters 10-31
2021/07/24 17:12:03 [decoder:4]
2021/07/24 17:12:03 [playlist_0:4] Finished with "/home/john/src/radio/mez3/07. Dusty.15174dc99ac988c27e18de5d621a1c8a.mka".
2021/07/24 17:12:03 [amplify_0:4] End of the current overriding.
2021/07/24 17:12:03 [crossfade_0:3] Analysis: -154.653468dB / -nandB (7.12s / 0.00s)
2021/07/24 17:12:03 [crossfade_0:4] Before: ("album", "The Tumbler")
2021/07/24 17:12:03 [crossfade_0:4] Before: ("track", "7/12")
2021/07/24 17:12:03 [crossfade_0:4] Before: ("compatible_brands", "M4A mp42isom")
2021/07/24 17:12:03 [crossfade_0:4] Before: ("date", "1968")
2021/07/24 17:12:03 [crossfade_0:4] Before: ("kind", "{audio=pcm(stereo),video=none,midi=none}")
2021/07/24 17:12:03 [crossfade_0:4] Before: ("artist", "John Martyn")
2021/07/24 17:12:03 [crossfade_0:4] Before: ("decoder", "FFMPEG")
2021/07/24 17:12:03 [crossfade_0:4] Before: ("liq_cross_duration", "7.180")
2021/07/24 17:12:03 [crossfade_0:4] Before: ("title", "Dusty")
2021/07/24 17:12:03 [crossfade_0:4] Before: ("liq_cue_in", "0.000")
2021/07/24 17:12:03 [crossfade_0:4] Before: ("filename", "/home/john/src/radio/mez3/07. Dusty.15174dc99ac988c27e18de5d621a1c8a.mka")
2021/07/24 17:12:03 [crossfade_0:4] Before: ("temporary", "false")
2021/07/24 17:12:03 [crossfade_0:4] Before: ("source", "playlist_0")
2021/07/24 17:12:03 [crossfade_0:4] Before: ("initial_uri", "annotate:liq_cue_in=\"0.000\",liq_cross_duration=\"7.180\",duration=\"183.180\",liq_amplify=\"-10.900dB\":/home/john/src/radio/mez3/07. Dusty.15174dc99ac988c27e18de5d621a1c8a.mka")
2021/07/24 17:12:03 [crossfade_0:4] Before: ("major_brand", "M4A ")
2021/07/24 17:12:03 [crossfade_0:4] Before: ("encoder", "Lavf58.49.100")
2021/07/24 17:12:03 [crossfade_0:4] Before: ("status", "playing")
2021/07/24 17:12:03 [crossfade_0:4] Before: ("minor_version", "512")
2021/07/24 17:12:03 [crossfade_0:4] Before: ("on_air", "2021/07/24 17:09:07")
2021/07/24 17:12:03 [crossfade_0:4] Before: ("rid", "1")
2021/07/24 17:12:03 [crossfade_0:4] Before: ("genre", "Folk-Rock")
2021/07/24 17:12:03 [crossfade_0:4] Before: ("comment", "ExactAudioCopy v0.99pb5")
2021/07/24 17:12:03 [crossfade_0:4] Before: ("duration", "183.180")
2021/07/24 17:12:03 [crossfade_0:4] Before: ("album_artist", "John Martyn")
2021/07/24 17:12:03 [crossfade_0:4] Before: ("liq_amplify", "-10.900dB")
2021/07/24 17:12:03 [crossfade_0:3] Simple transition: crossed, fade-in, fade-out.
2021/07/24 17:12:03 [source:4] Source add_4 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:12:03 [add_4:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:12:03 [source:4] Source fade.in gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:12:03 [fade.in:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:12:03 [source:4] Source fade.in gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:12:03 [fade.in:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:12:03 [source:4] Source crossfade_0_after gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:12:03 [crossfade_0_after:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:12:03 [source:4] Source buffer_9 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:12:03 [buffer_9:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:12:03 [source:4] Source fade.out gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:12:03 [fade.out:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:12:03 [source:4] Source fade.out gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:12:03 [fade.out:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:12:03 [source:4] Source on_end_4 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:12:03 [on_end_4:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:12:03 [source:4] Source crossfade_0_before gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:12:03 [crossfade_0_before:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:12:03 [source:4] Source buffer_8 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:12:03 [buffer_8:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:12:03 [decoder:4] Available decoders: FFMPEG (priority: 10)
2021/07/24 17:12:03 [decoder.ffmpeg:4] ffmpeg recognizes "/home/john/src/radio/mez3/02392597_Shape Of My Heart (2011 Remaster)_Sting.338423b50f3bd072db37686e367353c4.mka" as: audio: {codec: mp3, 44100Hz, 2 channel(s)} and content-type: {audio=pcm(stereo),video=none,midi=none}.
2021/07/24 17:12:03 [decoder:4] Selected decoder FFMPEG for file "/home/john/src/radio/mez3/02392597_Shape Of My Heart (2011 Remaster)_Sting.338423b50f3bd072db37686e367353c4.mka" with expected kind {audio=pcm(stereo),video=none,midi=none} and detected content {audio=pcm(stereo),video=none,midi=none}
2021/07/24 17:12:03 [playlist_0:4] Remaining: 0.0s, queued: 0.0s, adding: 276.7s (RID 2)
2021/07/24 17:12:10 [buffer_8:4] Buffer emptied, buffering needed.
2021/07/24 17:12:10 [crossfade_0_before:4] Fading out with 0.s remaining.
2021/07/24 17:12:10 [playlist_0:4] Remaining: 0.0s, queued: 276.7s, taking: 276.7s
2021/07/24 17:12:10 [playlist_0:3] Prepared "/home/john/src/radio/mez3/02392597_Shape Of My Heart (2011 Remaster)_Sting.338423b50f3bd072db37686e367353c4.mka" (RID 2).
2021/07/24 17:12:10 [crossfade_0:4] Buffering end of track...
2021/07/24 17:12:10 [switch_0:3] Switch to amplify_0.
2021/07/24 17:12:10 [cue_cut_0:4] Cue points : none / none
2021/07/24 17:12:10 [cue_cut_0:3] Cueing in...
2021/07/24 17:12:10 [amplify_0:4] Overriding amplification: 0.301995.
2021/07/24 17:12:10 [crossfade_0:4] Setting crossfade duration to 7.18s
2021/07/24 17:12:11 [crossfade_0:4] More buffering will be needed.
Warblefly commented 3 years ago

Just checking again without inserting anything on the request queue, and it seems crossfading isn't working at all.

Version 1.4.4 overlaps perfectly, as expected.

Here's the log, from start-up: tracks 1 and 2 did not crossfade.

The log, strangely, says crossfading is happening; but it's not appearing on the output.

Thank you for looking into this, and I hope this log is helpful. First, here is the script:

settings.log.file.path.set("/tmp/test-radio.log")
settings.server.telnet.set(true)
settings.server.telnet.bind_addr.set("0.0.0.0")
settings.server.telnet.port.set(1235)
settings.server.timeout.set(-1.0)
settings.request.metadata_decoders.set(["FFMPEG"])
#settings.decoder.file_decoders.set(["META","FFMPEG"])
settings.decoder.decoders.set(["FFMPEG"])
settings.decoder.file_extensions.ffmpeg.set(["mka"])
settings.decoder.file_extensions.wav.set([""])
settings.decoder.file_extensions.taglib.set([""])
settings.decoder.file_extensions.ogg.set([""])
settings.decoder.file_extensions.mp4.set([""])
settings.decoder.file_extensions.mp3.set([""])
settings.decoder.file_extensions.mad.set([""])
settings.decoder.file_extensions.id3v2.set([""])
settings.decoder.file_extensions.gstreamer.set([""])
settings.decoder.file_extensions.flac.set([""])
settings.decoder.file_extensions.aac.set([""])
settings.frame.audio.samplerate.set(48000)

security = single("/home/john/src/radio/fault.mka")

# Here's the playlist, cut as per our Python pre-production program dictates

myplaylist = amplify(override="liq_amplify", 1.0, cue_cut(playlist(length=60.0, reload_mode="watch", mime_type="audio/x-mpegurl", "/home/john/src/radio/bc2-30DEC2020-complete.m3u8")))

# Add the news
#myplaylist = fallback(track_sensitive=true, transition_length=30.0, [request.queue(id="override"), myplaylist])

# Do the crossfades
myplaylist = crossfade(duration=30.0, smart=false, fade_out=0.0, fade_in=0.0, minimum=-1.0, default=(fun(a,b)->add(normalize=false,([b, a]))), conservative=true,  myplaylist)

# Make it infallible
radio = fallback(track_sensitive = false, [myplaylist, security])

#Broadcast it
output.icecast(description="Test stream using Liquidsoap-2 (hifi)", genre="Freeform", name="LS2 Test", host="127.0.0.1", port=8000, mount="test.aac", public=true,  url="http://warblefly.sytes.net:8000/test.aac", timeout=240.0, format="audio/aac", password="_redacted_", %external(samplerate=48000, channels=2, process="ffmpeg -f s16le -ar 48000 -ac 2 -i pipe:0 -acodec libfdk_aac -vbr 5 -vn -af dynaudnorm=gausssize=15:correctdc=1:altboundary=1:maxgain=12:targetrms=1.0,aresample=192000,alimiter=limit=-5dB:attack=0.1:release=50:asc=1:asc_level=1,aresample=48000 -f adts pipe:1"), radio)
2021/07/31 13:35:29 >>> LOG START
2021/07/31 13:35:25 [main:3] Liquidsoap 2.0.0+git@363408ac
2021/07/31 13:35:25 [main:3] Using: graphics=5.1.2 bytes=[distributed with OCaml 4.02 or above] pcre=7.4.6 sedlex=2.3 menhirLib=20210419 curl=0.9.1 dtools=0.4.4 duppy=0.9.2 cry=0.6.5 mm=0.7.1 xmlplaylist=0.1.5 lastfm=0.3.3 ogg=0.7.0 ogg.decoder=0.7.0 vorbis=0.8.0 vorbis.decoder=0.8.0 opus=0.2.0 opus.decoder=0.2.0 speex=0.4.0 speex.decoder=0.4.0 mad=0.5.0 flac=0.3.0 flac.ogg=0.3.0 flac.decoder=0.3.0 dynlink=[distributed with Ocaml] lame=0.3.4 gstreamer=0.3.1 frei0r=0.1.2 fdkaac=0.3.2 theora=0.4.0 theora.decoder=0.4.0 ffmpeg-avutil=97c1fc4 ffmpeg-avcodec=97c1fc4 ffmpeg-avdevice=97c1fc4 ffmpeg-av=97c1fc4 ffmpeg-avfilter=97c1fc4 ffmpeg-swresample=97c1fc4 ffmpeg-swscale=97c1fc4 bjack=0.1.6 alsa=0.3.0 ao=0.2.3 samplerate=0.1.5 taglib=0.3.6 ssl=0.5.9 magic=0.7.3 camomile=1.0.2 inotify=2.3 yojson=1.7.0 faad=0.5.0 soundtouch=0.1.9 portaudio=0.2.2 pulseaudio=0.1.4 ladspa=0.2.0 dssi=0.1.3 lilv=0.1.0 tsdl=v0.9.8 tsdl_ttf=0 tsdl_image=0 camlimages=4.2.6 cohttp-lwt-unix=2.5.5 prometheus-app=1.1 srt.constants=0.2.0 srt.types=0.2.0 srt.stubs=0.2.0 srt.stubs.locked=0.2.0 srt=0.2.0 lo=0.2.0 gd=1.0a5
2021/07/31 13:35:25 [main:3]
2021/07/31 13:35:25 [main:3] DISCLAIMER: This version of Liquidsoap has been
2021/07/31 13:35:25 [main:3] compiled from a snapshot of the development code.
2021/07/31 13:35:25 [main:3] As such, it should not be used in production
2021/07/31 13:35:25 [main:3] unless you know what you are doing!
2021/07/31 13:35:25 [main:3]
2021/07/31 13:35:25 [main:3] We are, however, very interested in any feedback
2021/07/31 13:35:25 [main:3] about our development code and committed to fix
2021/07/31 13:35:25 [main:3] issues as soon as possible.
2021/07/31 13:35:25 [main:3]
2021/07/31 13:35:25 [main:3] If you are interested in collaborating to
2021/07/31 13:35:25 [main:3] the development of Liquidsoap, feel free to
2021/07/31 13:35:25 [main:3] drop us a mail at <savonet-devl@lists.sf.net>
2021/07/31 13:35:25 [main:3] or to join the slack chat at <http://slack.liquidsoap.info>.
2021/07/31 13:35:25 [main:3]
2021/07/31 13:35:25 [main:3] Please send any bug report or feature request
2021/07/31 13:35:25 [main:3] at <https://github.com/savonet/liquidsoap/issues>.
2021/07/31 13:35:25 [main:3]
2021/07/31 13:35:25 [main:3] We hope you enjoy this snapshot build of Liquidsoap!
2021/07/31 13:35:25 [main:3]
2021/07/31 13:35:26 [gstreamer.loader:3] Loaded GStreamer 1.18.4 0
2021/07/31 13:35:26 [clock:3] Using builtin (low-precision) implementation for latency control
2021/07/31 13:35:28 [playlist_0:4] Reloading playlist.
2021/07/31 13:35:29 [frame:4] frame.audio.samplerate set to: 48000
2021/07/31 13:35:29 [frame:4] frame.video.framerate set to: 25
2021/07/31 13:35:29 [frame:4] frame.audio.channels set to: 2
2021/07/31 13:35:29 [frame:4] frame.video.default set to: false
2021/07/31 13:35:29 [frame:4] frame.midi.channels set to: 0
2021/07/31 13:35:29 [frame:4] frame.video.width set to: 1280
2021/07/31 13:35:29 [frame:4] frame.video.height set to: 720
2021/07/31 13:35:29 [frame:4] frame.audio.samplerate set to: 48000
2021/07/31 13:35:29 [frame:3] Using 48000Hz audio, 25Hz video, 48000Hz main.
2021/07/31 13:35:29 [frame:3] Video frame size set to: 1280x720
2021/07/31 13:35:29 [frame:3] Frame size must be a multiple of 1920 ticks = 1920 audio samples = 1 video samples.
2021/07/31 13:35:29 [frame:3] Targeting 'frame.duration': 0.04s = 1920 audio samples = 1920 ticks.
2021/07/31 13:35:29 [frame:3] Frames last 0.04s = 1920 audio samples = 1 video samples = 1920 ticks.
2021/07/31 13:35:29 [sandbox:3] Sandboxing disabled
2021/07/31 13:35:29 [video.converter:3] Using preferred video converter: ffmpeg.
2021/07/31 13:35:29 [audio.converter:3] Using samplerate converter: ffmpeg.
2021/07/31 13:35:29 [gstreamer:4] Starting gstreamer event loop
2021/07/31 13:35:29 [threads:4] Created thread "gstreamer_main_loop" (1 total).
2021/07/31 13:35:29 [clock:4] Currently 3 clocks allocated.
2021/07/31 13:35:29 [clock.main:4] Starting 1 sources...
2021/07/31 13:35:29 [source:4] Source output.icecast_0 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:35:29 [LS2_Test:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:35:29 [source:4] Source switch_1 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:35:29 [source:4] Source crossfade_0 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:35:29 [crossfade_0:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:35:29 [source:4] Source switch_0 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:35:29 [source:4] Source override gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:35:29 [override:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:35:29 [source:4] Source amplify_0 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:35:29 [amplify_0:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:35:29 [source:4] Source cue_cut_0 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:35:29 [cue_cut_0:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:35:29 [source:4] Source playlist_0 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:35:29 [playlist_0:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:35:29 [source:4] Source single_0 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:35:29 [single_0:3] "/home/john/src/radio/fault.mka" is static, resolving once for all...
2021/07/31 13:35:29 [decoder:4] Available decoders: FFMPEG (priority: 10)
2021/07/31 13:35:29 [decoder.ffmpeg:4] ffmpeg recognizes "/home/john/src/radio/fault.mka" as: audio: {codec: flac, 44100Hz, 2 channel(s)} and content-type: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:35:29 [decoder:4] Selected decoder FFMPEG for file "/home/john/src/radio/fault.mka" with expected kind {audio=pcm(stereo),video=none,midi=none} and detected content {audio=pcm(stereo),video=none,midi=none}
2021/07/31 13:35:29 [single_0:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:35:29 [single_0:3] Prepared "/home/john/src/radio/fault.mka" (RID 0).
2021/07/31 13:35:29 [LS2_Test:3] Starting process
2021/07/31 13:35:29 [LS2_Test:3] Connecting mount test.aac for source@127.0.0.1...
2021/07/31 13:35:29 [LS2_Test:3] Connection setup was successful.
2021/07/31 13:35:29 [threads:4] Created thread "clock_main" (2 total).
2021/07/31 13:35:29 [clock:4] Main phase starts.
2021/07/31 13:35:29 [threads:4] Created thread "generic queue #1" (1 total).
2021/07/31 13:35:29 [threads:4] Created thread "generic queue #2" (2 total).
2021/07/31 13:35:29 [threads:4] Created thread "non-blocking queue #1" (3 total).
2021/07/31 13:35:29 [threads:4] Created thread "non-blocking queue #2" (4 total).
2021/07/31 13:35:29 [clock.main:3] Streaming loop starts in auto-sync mode
2021/07/31 13:35:29 [clock.main:3] Delegating synchronisation to CPU clock
2021/07/31 13:35:29 [switch_1:3] Switch to single_0.
2021/07/31 13:35:29 [decoder:4] Available decoders: FFMPEG (priority: 10)
2021/07/31 13:35:29 [decoder.ffmpeg:4] ffmpeg recognizes "/home/john/src/radio/mez3/Minority-531593041.02a05bf5b0f7f6d5b053efc2912f945f.mka" as: audio: {codec: mp3, 44100Hz, 2 channel(s)} and content-type: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:35:29 [decoder:4] Selected decoder FFMPEG for file "/home/john/src/radio/mez3/Minority-531593041.02a05bf5b0f7f6d5b053efc2912f945f.mka" with expected kind {audio=pcm(stereo),video=none,midi=none} and detected content {audio=pcm(stereo),video=none,midi=none}
2021/07/31 13:35:29 [playlist_0:4] Remaining: 0.0s, queued: 0.0s, adding: 218.6s (RID 2)
2021/07/31 13:35:29 [playlist_0:4] Remaining: 0.0s, queued: 218.6s, taking: 218.6s
2021/07/31 13:35:29 [playlist_0:3] Prepared "/home/john/src/radio/mez3/Minority-531593041.02a05bf5b0f7f6d5b053efc2912f945f.mka" (RID 2).
2021/07/31 13:35:29 [switch_1:3] Switch to crossfade_0 with transition.
2021/07/31 13:35:29 [source:4] Source sequence_0 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:35:29 [source:4] Source max_duration_0 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:35:29 [crossfade_0:4] Buffering end of track...
2021/07/31 13:35:29 [switch_0:3] Switch to amplify_0.
2021/07/31 13:35:29 [cue_cut_0:4] Cue points : none / none
2021/07/31 13:35:29 [cue_cut_0:3] Cueing in...
2021/07/31 13:35:29 [amplify_0:4] Overriding amplification: 0.291743.
2021/07/31 13:35:29 [crossfade_0:4] Setting crossfade duration to 4.49s
2021/07/31 13:35:30 [crossfade_0:4] More buffering will be needed.
2021/07/31 13:35:34 [source:4] Source fail_0 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:35:34 [fail_0:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
[mp3float @ 0x7f2e1810ccc0] Could not update timestamps for discarded samples.
2021/07/31 13:39:03 [decoder:4] Decoding "/home/john/src/radio/mez3/Minority-531593041.02a05bf5b0f7f6d5b053efc2912f945f.mka" ended: Ffmpeg_decoder.End_of_file.
2021/07/31 13:39:03 [decoder:4] Raised at Ffmpeg_decoder.mk_decoder.(fun).f in file "decoder/ffmpeg_decoder.ml", line 275, characters 12-29
2021/07/31 13:39:03 [decoder:4] Called from Decoder.mk_decoder.fill in file "decoder/decoder.ml", line 488, characters 10-31
2021/07/31 13:39:03 [decoder:4]
2021/07/31 13:39:03 [playlist_0:4] Finished with "/home/john/src/radio/mez3/Minority-531593041.02a05bf5b0f7f6d5b053efc2912f945f.mka".
2021/07/31 13:39:03 [amplify_0:4] End of the current overriding.
2021/07/31 13:39:03 [decoder:4] Available decoders: FFMPEG (priority: 10)
2021/07/31 13:39:03 [crossfade_0:3] Analysis: -107.295142dB / -nandB (4.44s / 0.00s)
2021/07/31 13:39:03 [crossfade_0:4] Before: ("kind", "{audio=pcm(stereo),video=none,midi=none}")
2021/07/31 13:39:03 [crossfade_0:4] Before: ("artist", "Minority")
2021/07/31 13:39:03 [crossfade_0:4] Before: ("decoder", "FFMPEG")
2021/07/31 13:39:03 [crossfade_0:4] Before: ("missingmetadataversion", "0.2")
2021/07/31 13:39:03 [crossfade_0:4] Before: ("liq_cross_duration", "4.490")
2021/07/31 13:39:03 [crossfade_0:4] Before: ("liq_cue_in", "0.000")
2021/07/31 13:39:03 [crossfade_0:4] Before: ("filename", "/home/john/src/radio/mez3/Minority-531593041.02a05bf5b0f7f6d5b053efc2912f945f.mka")
2021/07/31 13:39:03 [crossfade_0:4] Before: ("temporary", "false")
2021/07/31 13:39:03 [crossfade_0:4] Before: ("source", "playlist_0")
2021/07/31 13:39:03 [crossfade_0:4] Before: ("initial_uri", "annotate:liq_cue_in=\"0.000\",liq_cross_duration=\"4.490\",duration=\"218.590\",liq_amplify=\"-10.700dB\":/home/john/src/radio/mez3/Minority-531593041.02a05bf5b0f7f6d5b053efc2912f945f.mka")
2021/07/31 13:39:03 [crossfade_0:4] Before: ("encoder", "Lavf58.67.100")
2021/07/31 13:39:03 [crossfade_0:4] Before: ("status", "playing")
2021/07/31 13:39:03 [crossfade_0:4] Before: ("on_air", "2021/07/31 13:35:29")
2021/07/31 13:39:03 [crossfade_0:4] Before: ("rid", "2")
2021/07/31 13:39:03 [crossfade_0:4] Before: ("duration", "218.590")
2021/07/31 13:39:03 [crossfade_0:4] Before: ("liq_amplify", "-10.700dB")
2021/07/31 13:39:03 [crossfade_0:3] Simple transition: crossed, fade-in, fade-out.
2021/07/31 13:39:03 [source:4] Source add_0 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:39:03 [add_0:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:39:03 [source:4] Source fade.in gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:39:03 [fade.in:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:39:03 [source:4] Source fade.in gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:39:03 [fade.in:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:39:03 [source:4] Source crossfade_0_after gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:39:03 [crossfade_0_after:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:39:03 [source:4] Source buffer_1 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:39:03 [buffer_1:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:39:03 [source:4] Source fade.out gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:39:03 [fade.out:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:39:03 [source:4] Source fade.out gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:39:03 [fade.out:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:39:03 [source:4] Source on_end_0 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:39:03 [on_end_0:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:39:03 [source:4] Source crossfade_0_before gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:39:03 [crossfade_0_before:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:39:03 [source:4] Source buffer_0 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:39:03 [buffer_0:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:39:03 [decoder.ffmpeg:4] ffmpeg recognizes "/home/john/src/radio/mez3/04 - Donato e Seu Trio - So danco o samba.6cc0e0c221c6b21fe8e4af467179da09.mka" as: audio: {codec: mp3, 44100Hz, 2 channel(s)} and content-type: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:39:03 [decoder:4] Selected decoder FFMPEG for file "/home/john/src/radio/mez3/04 - Donato e Seu Trio - So danco o samba.6cc0e0c221c6b21fe8e4af467179da09.mka" with expected kind {audio=pcm(stereo),video=none,midi=none} and detected content {audio=pcm(stereo),video=none,midi=none}
2021/07/31 13:39:03 [playlist_0:4] Remaining: 0.0s, queued: 0.0s, adding: 124.0s (RID 3)
2021/07/31 13:39:08 [buffer_0:4] Buffer emptied, buffering needed.
2021/07/31 13:39:08 [crossfade_0_before:4] Fading out with 0.s remaining.
2021/07/31 13:39:08 [playlist_0:4] Remaining: 0.0s, queued: 124.0s, taking: 124.0s
2021/07/31 13:39:08 [playlist_0:3] Prepared "/home/john/src/radio/mez3/04 - Donato e Seu Trio - So danco o samba.6cc0e0c221c6b21fe8e4af467179da09.mka" (RID 3).
2021/07/31 13:39:08 [crossfade_0:4] Buffering end of track...
2021/07/31 13:39:08 [switch_0:3] Switch to amplify_0.
2021/07/31 13:39:08 [cue_cut_0:4] Cue points : none / none
2021/07/31 13:39:08 [cue_cut_0:3] Cueing in...
2021/07/31 13:39:08 [amplify_0:4] Overriding amplification: 0.295121.
2021/07/31 13:39:08 [crossfade_0:4] Setting crossfade duration to 2.82s
2021/07/31 13:39:08 [crossfade_0:4] More buffering will be needed.
[mp3float @ 0x7f2e191d8b40] Could not update timestamps for discarded samples.
2021/07/31 13:41:08 [decoder:4] Decoding "/home/john/src/radio/mez3/04 - Donato e Seu Trio - So danco o samba.6cc0e0c221c6b21fe8e4af467179da09.mka" ended: Ffmpeg_decoder.End_of_file.
2021/07/31 13:41:08 [decoder:4] Raised at Ffmpeg_decoder.mk_decoder.(fun).f in file "decoder/ffmpeg_decoder.ml", line 275, characters 12-29
2021/07/31 13:41:08 [decoder:4] Called from Decoder.mk_decoder.fill in file "decoder/decoder.ml", line 488, characters 10-31
2021/07/31 13:41:08 [decoder:4]
2021/07/31 13:41:09 [playlist_0:4] Finished with "/home/john/src/radio/mez3/04 - Donato e Seu Trio - So danco o samba.6cc0e0c221c6b21fe8e4af467179da09.mka".
2021/07/31 13:41:09 [amplify_0:4] End of the current overriding.
2021/07/31 13:41:09 [crossfade_0:3] Analysis: -82.799226dB / -nandB (2.80s / 0.00s)
2021/07/31 13:41:09 [crossfade_0:4] Before: ("album", "CD1 - Bossa Nova, Sua Hisoria, Sua Gente")
2021/07/31 13:41:09 [crossfade_0:4] Before: ("track", "04")
2021/07/31 13:41:09 [crossfade_0:4] Before: ("date", "1975")
2021/07/31 13:41:09 [crossfade_0:4] Before: ("kind", "{audio=pcm(stereo),video=none,midi=none}")
2021/07/31 13:41:09 [crossfade_0:4] Before: ("artist", "Donato e Seu Trio")
2021/07/31 13:41:09 [crossfade_0:4] Before: ("decoder", "FFMPEG")
2021/07/31 13:41:09 [crossfade_0:4] Before: ("liq_cross_duration", "2.820")
2021/07/31 13:41:09 [crossfade_0:4] Before: ("title", "So dan\195\167o o samba")
2021/07/31 13:41:09 [crossfade_0:4] Before: ("liq_cue_in", "0.000")
2021/07/31 13:41:09 [crossfade_0:4] Before: ("filename", "/home/john/src/radio/mez3/04 - Donato e Seu Trio - So danco o samba.6cc0e0c221c6b21fe8e4af467179da09.mka")
2021/07/31 13:41:09 [crossfade_0:4] Before: ("temporary", "false")
2021/07/31 13:41:09 [crossfade_0:4] Before: ("source", "playlist_0")
2021/07/31 13:41:09 [crossfade_0:4] Before: ("initial_uri", "annotate:liq_cue_in=\"0.000\",liq_cross_duration=\"2.820\",duration=\"124.020\",liq_amplify=\"-10.600dB\":/home/john/src/radio/mez3/04 - Donato e Seu Trio - So danco o samba.6cc0e0c221c6b21fe8e4af467179da09.mka")
2021/07/31 13:41:09 [crossfade_0:4] Before: ("encoder", "Lavf58.49.100")
2021/07/31 13:41:09 [crossfade_0:4] Before: ("status", "playing")
2021/07/31 13:41:09 [crossfade_0:4] Before: ("tbpm", "99.95")
2021/07/31 13:41:09 [crossfade_0:4] Before: ("on_air", "2021/07/31 13:39:08")
2021/07/31 13:41:09 [crossfade_0:4] Before: ("tracktotal", "18")
2021/07/31 13:41:09 [crossfade_0:4] Before: ("rid", "3")
2021/07/31 13:41:09 [crossfade_0:4] Before: ("genre", "MPB")
2021/07/31 13:41:09 [crossfade_0:4] Before: ("comment", "EAC V1.0 beta 3, Secure Mode, Test & Copy, AccurateRip, FLAC -8")
2021/07/31 13:41:09 [crossfade_0:4] Before: ("duration", "124.020")
2021/07/31 13:41:09 [crossfade_0:4] Before: ("album_artist", "Various Artists")
2021/07/31 13:41:09 [crossfade_0:4] Before: ("liq_amplify", "-10.600dB")
2021/07/31 13:41:09 [crossfade_0:3] Simple transition: crossed, fade-in, fade-out.
2021/07/31 13:41:09 [decoder:4] Available decoders: FFMPEG (priority: 10)
2021/07/31 13:41:09 [source:4] Source add_1 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:41:09 [add_1:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:41:09 [source:4] Source fade.in gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:41:09 [fade.in:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:41:09 [source:4] Source fade.in gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:41:09 [fade.in:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:41:09 [source:4] Source crossfade_0_after gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:41:09 [crossfade_0_after:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:41:09 [source:4] Source buffer_3 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:41:09 [buffer_3:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:41:09 [source:4] Source fade.out gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:41:09 [fade.out:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:41:09 [source:4] Source fade.out gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:41:09 [fade.out:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:41:09 [source:4] Source on_end_1 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:41:09 [on_end_1:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:41:09 [source:4] Source crossfade_0_before gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:41:09 [crossfade_0_before:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:41:09 [source:4] Source buffer_2 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:41:09 [buffer_2:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:41:09 [decoder.ffmpeg:4] ffmpeg recognizes "/home/john/src/radio/mez3/04 - Azymuth - Rosalie.2005c97133c82aa5e46a7653e4553c37.mka" as: audio: {codec: flac, 44100Hz, 2 channel(s)} and content-type: {audio=pcm(stereo),video=none,midi=none}.
2021/07/31 13:41:09 [decoder:4] Selected decoder FFMPEG for file "/home/john/src/radio/mez3/04 - Azymuth - Rosalie.2005c97133c82aa5e46a7653e4553c37.mka" with expected kind {audio=pcm(stereo),video=none,midi=none} and detected content {audio=pcm(stereo),video=none,midi=none}
2021/07/31 13:41:09 [playlist_0:4] Remaining: 0.0s, queued: 0.0s, adding: 251.9s (RID 4)
2021/07/31 13:41:12 [buffer_2:4] Buffer emptied, buffering needed.
2021/07/31 13:41:12 [crossfade_0_before:4] Fading out with 0.s remaining.
2021/07/31 13:41:12 [playlist_0:4] Remaining: 0.0s, queued: 251.9s, taking: 251.9s
2021/07/31 13:41:12 [playlist_0:3] Prepared "/home/john/src/radio/mez3/04 - Azymuth - Rosalie.2005c97133c82aa5e46a7653e4553c37.mka" (RID 4).
2021/07/31 13:41:12 [crossfade_0:4] Buffering end of track...
2021/07/31 13:41:12 [switch_0:3] Switch to amplify_0.
2021/07/31 13:41:12 [cue_cut_0:4] Cue points : none / none
2021/07/31 13:41:12 [cue_cut_0:3] Cueing in...
2021/07/31 13:41:12 [amplify_0:4] Overriding amplification: 0.426580.
2021/07/31 13:41:12 [crossfade_0:4] Setting crossfade duration to 4.53s
2021/07/31 13:41:12 [crossfade_0:4] More buffering will be needed.
toots commented 3 years ago

Thanks for this report, looking at it right now.

toots commented 3 years ago

I think I've got a handle of this issue. There are a couple of dynamic things at play.

The source is the issue seems to be that the playlist does not seem to have a new track ready when then old track ends. This is probably due to a change in playlist loading dynamic that I need to investigate. We've had a goal of simplifying how playlists queue requests for a while, perhaps it is time to change it. This is why you see: Analysis: -82.799226dB / -nandB (2.80s / 0.00s) and, so, the new track is not considered in the transition.

I'm going to investigate the issue on the playlists. For documentation sake, here's a script to reproduce the issue:

s = single("/path/to/file.mp3")

s = chop(every=20., s)

s = delay(2., s)

s = crossfade(s)
Warblefly commented 3 years ago

'Chop' and 'delay' — gosh, that's useful for checking any custom transitions I may end up writing when more confident (reading the Liquidsoap 2.0 book just now).

toots commented 3 years ago

@Warblefly would you be able to test with the use-requests-for-length branch? This should fix your issue.

Warblefly commented 3 years ago

Thank you for checking this. Going to do so now.

Warblefly commented 3 years ago

Sounds great to me! Thanks. Noted that playlist parameter "length" seems now to be an integer governing something to do with how many items in advance are processed? Not sure but have dropped it for now.

Having to do something else while listening and watching log but it's working, and so is the request.queue, and crossfades are sounding fine.

Can report more fine-grained stuff later. But I'm grateful to you for looking into this, and for being able to watch, now, how version 2 is progressing.

More later. JW

toots commented 3 years ago

Great, thanks for testing. Yes, with this PR I am changing the semantics on how request-based sources are filling up their queue by simply saying "I want length requests queued in advance". That's why length is now an integer. I believe that this how it should have always been.

Warblefly commented 3 years ago

Here's a log to after the first cross-fade, followed by the script, just in case they're useful to you.

2021/08/04 13:20:25 >>> LOG START
2021/08/04 13:20:22 [main:3] Liquidsoap 2.0.0+git@880905a7
2021/08/04 13:20:22 [main:3] Using: graphics=5.1.2 bytes=[distributed with OCaml 4.02 or above] pcre=7.4.6 sedlex=2.3 menhirLib=20210419 curl=0.9.1 dtools=0.4.4 duppy=0.9.2 cry=0.6.5 mm=0.7.1 xmlplaylist=0.1.5 lastfm=0.3.3 ogg=0.7.0 ogg.decoder=0.7.0 vorbis=0.8.0 vorbis.decoder=0.8.0 opus=0.2.0 opus.decoder=0.2.0 speex=0.4.0 speex.decoder=0.4.0 mad=0.5.0 flac=0.3.0 flac.ogg=0.3.0 flac.decoder=0.3.0 dynlink=[distributed with Ocaml] lame=0.3.4 gstreamer=0.3.1 frei0r=0.1.2 fdkaac=0.3.2 theora=0.4.0 theora.decoder=0.4.0 ffmpeg-avutil=97c1fc4 ffmpeg-avcodec=97c1fc4 ffmpeg-avdevice=97c1fc4 ffmpeg-av=97c1fc4 ffmpeg-avfilter=97c1fc4 ffmpeg-swresample=97c1fc4 ffmpeg-swscale=97c1fc4 bjack=0.1.6 alsa=0.3.0 ao=0.2.3 samplerate=0.1.5 taglib=0.3.6 ssl=0.5.9 magic=0.7.3 camomile=1.0.2 inotify=2.3 yojson=1.7.0 faad=0.5.0 soundtouch=0.1.9 portaudio=0.2.2 pulseaudio=0.1.4 ladspa=0.2.0 dssi=0.1.3 lilv=0.1.0 tsdl=v0.9.8 tsdl_ttf=0 tsdl_image=0 camlimages=4.2.6 cohttp-lwt-unix=2.5.5 prometheus-app=1.1 srt.constants=0.2.0 srt.types=0.2.0 srt.stubs=0.2.0 srt.stubs.locked=0.2.0 srt=0.2.0 lo=0.2.0 gd=1.0a5
2021/08/04 13:20:22 [main:3]
2021/08/04 13:20:22 [main:3] DISCLAIMER: This version of Liquidsoap has been
2021/08/04 13:20:22 [main:3] compiled from a snapshot of the development code.
2021/08/04 13:20:22 [main:3] As such, it should not be used in production
2021/08/04 13:20:22 [main:3] unless you know what you are doing!
2021/08/04 13:20:22 [main:3]
2021/08/04 13:20:22 [main:3] We are, however, very interested in any feedback
2021/08/04 13:20:22 [main:3] about our development code and committed to fix
2021/08/04 13:20:22 [main:3] issues as soon as possible.
2021/08/04 13:20:22 [main:3]
2021/08/04 13:20:22 [main:3] If you are interested in collaborating to
2021/08/04 13:20:22 [main:3] the development of Liquidsoap, feel free to
2021/08/04 13:20:22 [main:3] drop us a mail at <savonet-devl@lists.sf.net>
2021/08/04 13:20:22 [main:3] or to join the slack chat at <http://slack.liquidsoap.info>.
2021/08/04 13:20:22 [main:3]
2021/08/04 13:20:22 [main:3] Please send any bug report or feature request
2021/08/04 13:20:22 [main:3] at <https://github.com/savonet/liquidsoap/issues>.
2021/08/04 13:20:22 [main:3]
2021/08/04 13:20:22 [main:3] We hope you enjoy this snapshot build of Liquidsoap!
2021/08/04 13:20:22 [main:3]
2021/08/04 13:20:22 [gstreamer.loader:3] Loaded GStreamer 1.18.4 0
2021/08/04 13:20:22 [clock:3] Using builtin (low-precision) implementation for latency control
2021/08/04 13:20:24 [playlist_0:4] Reloading playlist.
2021/08/04 13:20:24 [frame:4] frame.audio.samplerate set to: 48000
2021/08/04 13:20:24 [frame:4] frame.video.framerate set to: 25
2021/08/04 13:20:24 [frame:4] frame.audio.channels set to: 2
2021/08/04 13:20:24 [frame:4] frame.video.default set to: false
2021/08/04 13:20:24 [frame:4] frame.midi.channels set to: 0
2021/08/04 13:20:24 [frame:4] frame.video.width set to: 1280
2021/08/04 13:20:24 [frame:4] frame.video.height set to: 720
2021/08/04 13:20:24 [frame:4] frame.audio.samplerate set to: 48000
2021/08/04 13:20:24 [frame:3] Using 48000Hz audio, 25Hz video, 48000Hz main.
2021/08/04 13:20:24 [frame:3] Video frame size set to: 1280x720
2021/08/04 13:20:24 [frame:3] Frame size must be a multiple of 1920 ticks = 1920 audio samples = 1 video samples.
2021/08/04 13:20:24 [frame:3] Targeting 'frame.duration': 0.04s = 1920 audio samples = 1920 ticks.
2021/08/04 13:20:24 [frame:3] Frames last 0.04s = 1920 audio samples = 1 video samples = 1920 ticks.
2021/08/04 13:20:25 [sandbox:3] Sandboxing disabled
2021/08/04 13:20:25 [video.converter:3] Using preferred video converter: ffmpeg.
2021/08/04 13:20:25 [audio.converter:3] Using samplerate converter: ffmpeg.
2021/08/04 13:20:25 [gstreamer:4] Starting gstreamer event loop
2021/08/04 13:20:25 [threads:4] Created thread "gstreamer_main_loop" (1 total).
2021/08/04 13:20:25 [clock:4] Currently 3 clocks allocated.
2021/08/04 13:20:25 [clock.main:4] Starting 1 sources...
2021/08/04 13:20:25 [source:4] Source output.icecast_0 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:20:25 [LS2_Test:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:20:25 [source:4] Source switch_1 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:20:25 [source:4] Source crossfade_0 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:20:25 [crossfade_0:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:20:25 [source:4] Source switch_0 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:20:25 [source:4] Source override gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:20:25 [override:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:20:25 [source:4] Source amplify_0 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:20:25 [amplify_0:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:20:25 [source:4] Source cue_cut_0 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:20:25 [cue_cut_0:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:20:25 [source:4] Source playlist_0 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:20:25 [playlist_0:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:20:25 [source:4] Source single_0 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:20:25 [single_0:3] "/home/john/src/radio/fault.mka" is static, resolving once for all...
2021/08/04 13:20:25 [decoder:4] Available decoders: FFMPEG (priority: 10)
2021/08/04 13:20:25 [decoder.ffmpeg:4] ffmpeg recognizes "/home/john/src/radio/fault.mka" as: audio: {codec: flac, 44100Hz, 2 channel(s)} and content-type: {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:20:25 [decoder:4] Selected decoder FFMPEG for file "/home/john/src/radio/fault.mka" with expected kind {audio=pcm(stereo),video=none,midi=none} and detected content {audio=pcm(stereo),video=none,midi=none}
2021/08/04 13:20:25 [single_0:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:20:25 [single_0:3] Prepared "/home/john/src/radio/fault.mka" (RID 0).
2021/08/04 13:20:25 [LS2_Test:3] Starting process
2021/08/04 13:20:25 [LS2_Test:3] Connecting mount test.aac for source@127.0.0.1...
2021/08/04 13:20:25 [LS2_Test:3] Connection setup was successful.
2021/08/04 13:20:25 [threads:4] Created thread "clock_main" (2 total).
2021/08/04 13:20:25 [clock:4] Main phase starts.
2021/08/04 13:20:25 [threads:4] Created thread "generic queue #1" (1 total).
2021/08/04 13:20:25 [threads:4] Created thread "generic queue #2" (2 total).
2021/08/04 13:20:25 [threads:4] Created thread "non-blocking queue #1" (3 total).
2021/08/04 13:20:25 [threads:4] Created thread "non-blocking queue #2" (4 total).
2021/08/04 13:20:25 [clock.main:3] Streaming loop starts in auto-sync mode
2021/08/04 13:20:25 [clock.main:3] Delegating synchronisation to CPU clock
2021/08/04 13:20:25 [switch_1:3] Switch to single_0.
2021/08/04 13:20:25 [decoder:4] Available decoders: FFMPEG (priority: 10)
2021/08/04 13:20:25 [decoder.ffmpeg:4] ffmpeg recognizes "/home/john/src/radio/mez3/01 Main Title (Big Beautiful Ball).719b5731c31870d96a7f2ce19d312ede.mka" as: audio: {codec: mp3, 44100Hz, 2 channel(s)} and content-type: {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:20:25 [decoder:4] Selected decoder FFMPEG for file "/home/john/src/radio/mez3/01 Main Title (Big Beautiful Ball).719b5731c31870d96a7f2ce19d312ede.mka" with expected kind {audio=pcm(stereo),video=none,midi=none} and detected content {audio=pcm(stereo),video=none,midi=none}
2021/08/04 13:20:25 [playlist_0:4] Queued 1 requests
2021/08/04 13:20:25 [playlist_0:4] Remaining 0 requests
2021/08/04 13:20:25 [playlist_0:3] Prepared "/home/john/src/radio/mez3/01 Main Title (Big Beautiful Ball).719b5731c31870d96a7f2ce19d312ede.mka" (RID 2).
2021/08/04 13:20:25 [switch_1:3] Switch to crossfade_0 with transition.
2021/08/04 13:20:25 [source:4] Source sequence_0 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:20:25 [source:4] Source max_duration_0 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:20:25 [crossfade_0:4] Buffering end of track...
2021/08/04 13:20:25 [switch_0:3] Switch to amplify_0.
2021/08/04 13:20:25 [cue_cut_0:4] Cue points : none / none
2021/08/04 13:20:25 [cue_cut_0:3] Cueing in...
2021/08/04 13:20:25 [decoder:4] Available decoders: FFMPEG (priority: 10)
2021/08/04 13:20:25 [decoder.ffmpeg:4] ffmpeg recognizes "/home/john/src/radio/mez3/Brooks Prumo Orchestra - The Last Jump (A Jump To End All Jumps - Silver Shadows)-3468829752.3d4cd2c72f089c332592e87d7bd84fc4.mka" as: audio: {codec: mp3, 44100Hz, 2 channel(s)} and content-type: {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:20:25 [amplify_0:4] Overriding amplification: 0.426580.
2021/08/04 13:20:25 [crossfade_0:4] Setting crossfade duration to 6.98s
2021/08/04 13:20:25 [decoder:4] Selected decoder FFMPEG for file "/home/john/src/radio/mez3/Brooks Prumo Orchestra - The Last Jump (A Jump To End All Jumps - Silver Shadows)-3468829752.3d4cd2c72f089c332592e87d7bd84fc4.mka" with expected kind {audio=pcm(stereo),video=none,midi=none} and detected content {audio=pcm(stereo),video=none,midi=none}
2021/08/04 13:20:25 [playlist_0:4] Queued 1 requests
2021/08/04 13:20:25 [decoder:4] Available decoders: FFMPEG (priority: 10)
2021/08/04 13:20:25 [decoder.ffmpeg:4] ffmpeg recognizes "/home/john/src/radio/mez3/01 Six To One Bar.4226846609f44a4772ece6339f4d9f34.mka" as: audio: {codec: mp3, 44100Hz, 2 channel(s)} and content-type: {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:20:25 [decoder:4] Selected decoder FFMPEG for file "/home/john/src/radio/mez3/01 Six To One Bar.4226846609f44a4772ece6339f4d9f34.mka" with expected kind {audio=pcm(stereo),video=none,midi=none} and detected content {audio=pcm(stereo),video=none,midi=none}
2021/08/04 13:20:25 [playlist_0:4] Queued 2 requests
2021/08/04 13:20:26 [crossfade_0:4] More buffering will be needed.
2021/08/04 13:20:30 [source:4] Source fail_0 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:20:30 [fail_0:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:23:16 [decoder:4] Decoding "/home/john/src/radio/mez3/01 Main Title (Big Beautiful Ball).719b5731c31870d96a7f2ce19d312ede.mka" ended: Ffmpeg_decoder.End_of_file.
2021/08/04 13:23:16 [decoder:4] Raised at Ffmpeg_decoder.mk_decoder.(fun).f in file "decoder/ffmpeg_decoder.ml", line 582, characters 12-29
2021/08/04 13:23:16 [decoder:4] Called from Decoder.mk_decoder.fill in file "decoder/decoder.ml", line 488, characters 10-31
2021/08/04 13:23:16 [decoder:4]
2021/08/04 13:23:16 [playlist_0:4] Finished with "/home/john/src/radio/mez3/01 Main Title (Big Beautiful Ball).719b5731c31870d96a7f2ce19d312ede.mka".
2021/08/04 13:23:16 [amplify_0:4] End of the current overriding.
2021/08/04 13:23:16 [playlist_0:4] Remaining 1 requests
2021/08/04 13:23:16 [playlist_0:3] Prepared "/home/john/src/radio/mez3/Brooks Prumo Orchestra - The Last Jump (A Jump To End All Jumps - Silver Shadows)-3468829752.3d4cd2c72f089c332592e87d7bd84fc4.mka" (RID 3).
2021/08/04 13:23:17 [cue_cut_0:4] Cue points : none / none
2021/08/04 13:23:17 [cue_cut_0:3] Cueing in...
2021/08/04 13:23:17 [amplify_0:4] Overriding amplification: 0.305492.
2021/08/04 13:23:17 [crossfade_0:4] Setting crossfade duration to 2.46s
2021/08/04 13:23:17 [decoder:4] Available decoders: FFMPEG (priority: 10)
2021/08/04 13:23:17 [decoder.ffmpeg:4] ffmpeg recognizes "/home/john/src/radio/mez3/15 Leisure Complex.ad9d9565c1ca1b848fbd379fadeac254.mka" as: audio: {codec: mp3, 44100Hz, 2 channel(s)} and content-type: {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:23:17 [decoder:4] Selected decoder FFMPEG for file "/home/john/src/radio/mez3/15 Leisure Complex.ad9d9565c1ca1b848fbd379fadeac254.mka" with expected kind {audio=pcm(stereo),video=none,midi=none} and detected content {audio=pcm(stereo),video=none,midi=none}
2021/08/04 13:23:17 [playlist_0:4] Queued 2 requests
2021/08/04 13:23:17 [crossfade_0:3] Analysis: -nandB / -25.266075dB (6.92s / 6.92s)
2021/08/04 13:23:17 [crossfade_0:4] Before: ("album", "Not With My Wife, You Don't - Any Wednesday")
2021/08/04 13:23:17 [crossfade_0:4] Before: ("date", "1966")
2021/08/04 13:23:17 [crossfade_0:4] Before: ("track", "1/23")
2021/08/04 13:23:17 [crossfade_0:4] Before: ("kind", "{audio=pcm(stereo),video=none,midi=none}")
2021/08/04 13:23:17 [crossfade_0:4] Before: ("artist", "John Williams - George Duning")
2021/08/04 13:23:17 [crossfade_0:4] Before: ("decoder", "FFMPEG")
2021/08/04 13:23:17 [crossfade_0:4] Before: ("liq_cross_duration", "6.980")
2021/08/04 13:23:17 [crossfade_0:4] Before: ("title", "Not With My Wife, You Don't - Main Title (Big Beautiful Ball)")
2021/08/04 13:23:17 [crossfade_0:4] Before: ("liq_cue_in", "0.000")
2021/08/04 13:23:17 [crossfade_0:4] Before: ("filename", "/home/john/src/radio/mez3/01 Main Title (Big Beautiful Ball).719b5731c31870d96a7f2ce19d312ede.mka")
2021/08/04 13:23:17 [crossfade_0:4] Before: ("temporary", "false")
2021/08/04 13:23:17 [crossfade_0:4] Before: ("source", "playlist_0")
2021/08/04 13:23:17 [crossfade_0:4] Before: ("initial_uri", "annotate:liq_cue_in=\"0.000\",liq_cross_duration=\"6.980\",duration=\"178.780\",liq_amplify=\"-7.400dB\":/home/john/src/radio/mez3/01 Main Title (Big Beautiful Ball).719b5731c31870d96a7f2ce19d312ede.mka")
2021/08/04 13:23:17 [crossfade_0:4] Before: ("encoder", "Lavf58.49.100")
2021/08/04 13:23:17 [crossfade_0:4] Before: ("status", "playing")
2021/08/04 13:23:17 [crossfade_0:4] Before: ("tbpm", "156.68")
2021/08/04 13:23:17 [crossfade_0:4] Before: ("on_air", "2021/08/04 13:20:25")
2021/08/04 13:23:17 [crossfade_0:4] Before: ("rid", "2")
2021/08/04 13:23:17 [crossfade_0:4] Before: ("genre", "Soundtrack")
2021/08/04 13:23:17 [crossfade_0:4] Before: ("comment", " YEAR: 1966")
2021/08/04 13:23:17 [crossfade_0:4] Before: ("duration", "178.780")
2021/08/04 13:23:17 [crossfade_0:4] Before: ("liq_amplify", "-7.400dB")
2021/08/04 13:23:17 [crossfade_0:4] After : ("kind", "{audio=pcm(stereo),video=none,midi=none}")
2021/08/04 13:23:17 [crossfade_0:4] After : ("artist", "Brooks Prumo Orchestra - The Last Jump (a Jump To End All Jumps")
2021/08/04 13:23:17 [crossfade_0:4] After : ("decoder", "FFMPEG")
2021/08/04 13:23:17 [crossfade_0:4] After : ("missingmetadataversion", "0.2")
2021/08/04 13:23:17 [crossfade_0:4] After : ("liq_cross_duration", "2.460")
2021/08/04 13:23:17 [crossfade_0:4] After : ("title", "Silver Shadows)")
2021/08/04 13:23:17 [crossfade_0:4] After : ("liq_cue_in", "0.000")
2021/08/04 13:23:17 [crossfade_0:4] After : ("filename", "/home/john/src/radio/mez3/Brooks Prumo Orchestra - The Last Jump (A Jump To End All Jumps - Silver Shadows)-3468829752.3d4cd2c72f089c332592e87d7bd84fc4.mka")
2021/08/04 13:23:17 [crossfade_0:4] After : ("temporary", "false")
2021/08/04 13:23:17 [crossfade_0:4] After : ("source", "playlist_0")
2021/08/04 13:23:17 [crossfade_0:4] After : ("initial_uri", "annotate:liq_cue_in=\"0.000\",liq_cross_duration=\"2.460\",duration=\"194.960\",liq_amplify=\"-10.300dB\":/home/john/src/radio/mez3/Brooks Prumo Orchestra - The Last Jump (A Jump To End All Jumps - Silver Shadows)-3468829752.3d4cd2c72f089c332592e87d7bd84fc4.mka")
2021/08/04 13:23:17 [crossfade_0:4] After : ("encoder", "Lavf58.49.100")
2021/08/04 13:23:17 [crossfade_0:4] After : ("status", "playing")
2021/08/04 13:23:17 [crossfade_0:4] After : ("on_air", "2021/08/04 13:23:17")
2021/08/04 13:23:17 [crossfade_0:4] After : ("rid", "3")
2021/08/04 13:23:17 [crossfade_0:4] After : ("duration", "194.960")
2021/08/04 13:23:17 [crossfade_0:4] After : ("liq_amplify", "-10.300dB")
2021/08/04 13:23:17 [crossfade_0:3] Simple transition: crossed, fade-in, fade-out.
2021/08/04 13:23:17 [source:4] Source add_0 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:23:17 [add_0:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:23:17 [source:4] Source fade.in gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:23:17 [fade.in:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:23:17 [source:4] Source fade.in gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:23:17 [fade.in:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:23:17 [source:4] Source crossfade_0_after gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:23:17 [crossfade_0_after:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:23:17 [source:4] Source buffer_1 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:23:17 [buffer_1:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:23:17 [source:4] Source fade.out gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:23:17 [fade.out:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:23:17 [source:4] Source fade.out gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:23:17 [fade.out:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:23:17 [source:4] Source on_end_0 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:23:17 [on_end_0:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:23:17 [source:4] Source crossfade_0_before gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:23:17 [crossfade_0_before:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:23:17 [source:4] Source buffer_0 gets up with content kind: {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:23:17 [buffer_0:4] Content type is {audio=pcm(stereo),video=none,midi=none}.
2021/08/04 13:23:17 [crossfade_0_after:4] Fading in (type: sin, duration: 0.s).
2021/08/04 13:23:23 [buffer_1:4] Buffer emptied, buffering needed.
2021/08/04 13:23:23 [buffer_0:4] Buffer emptied, buffering needed.
2021/08/04 13:23:23 [crossfade_0_before:4] Fading out with 0.s remaining.
2021/08/04 13:23:23 [crossfade_0:4] Buffering end of track...
2021/08/04 13:23:24 [crossfade_0:4] More buffering will be needed.

And now, the script which I'm going to leave running (must go shopping) on http://warblefly.sytes.net:8000/test.aac

settings.log.file.path.set("/tmp/test-radio.log")
settings.server.telnet.set(true)
settings.server.telnet.bind_addr.set("0.0.0.0")
settings.server.telnet.port.set(1235)
settings.server.timeout.set(-1.0)
settings.request.metadata_decoders.set(["FFMPEG"])
#settings.decoder.file_decoders.set(["FFMPEG"])
settings.decoder.decoders.set(["FFMPEG"])
settings.decoder.file_extensions.gstreamer.set([])
#settings.decoder.mime_types.gstreamer.set(["application/gstreamer", "video/x-matroska"])
settings.decoder.file_extensions.wav.set([])
settings.decoder.file_extensions.taglib.set([])
settings.decoder.file_extensions.ogg.set([])
settings.decoder.file_extensions.mp4.set([])
settings.decoder.file_extensions.mp3.set([])
settings.decoder.file_extensions.mad.set([])
settings.decoder.file_extensions.id3v2.set([])
settings.decoder.file_extensions.ffmpeg.set(["mka"])
settings.decoder.file_extensions.flac.set([])
settings.decoder.file_extensions.aac.set([])
settings.frame.audio.samplerate.set(48000)

security = single("/home/john/src/radio/fault.mka")

# Here's the playlist, annotated as per our Python pre-production program dictates
myplaylist = playlist(reload_mode="watch", mime_type="application/x-mpegURL", "/home/john/src/radio/bc2-30DEC2020-complete.m3u8")

# Cut off any silent starts
myplaylist = cue_cut(myplaylist)

# Amplify each track according to our own EBU R.128 volume data

myplaylist = amplify(override="liq_amplify", 1.0, myplaylist)

# Add the news
myplaylist = fallback(track_sensitive=true, transition_length=30.0, [request.queue(id="override"), myplaylist])

# Do the crossfades
myplaylist = crossfade(duration=30.0, smart=false, fade_out=0.0, fade_in=0.0, minimum=-1.0, default=(fun(a,b)->add(normalize=false,([b, a]))), conservative=true,  myplaylist)

# Make it infallible
radio = fallback(track_sensitive = false, [myplaylist, security])

#Broadcast it
output.icecast(description="Test stream using Liquidsoap-2 (hifi)", genre="Freeform", name="LS2 Test", host="127.0.0.1", port=8000, mount="test.aac", public=true,  url="http://warblefly.sytes.net:8000/test.aac", timeout=240.0, format="audio/aac", password="[REDACTED]", %external(samplerate=48000, channels=2, process="ffmpeg -f s16le -ar 48000 -ac 2 -i pipe:0 -acodec libfdk_aac -vbr 5 -vn -af dynaudnorm=gausssize=15:correctdc=1:altboundary=1:maxgain=12:targetrms=1.0,aresample=192000,alimiter=limit=-5dB:attack=0.1:release=50:asc=1:asc_level=1,aresample=48000 -f adts pipe:1"), radio)
toots commented 3 years ago

Thanks! I gather that the issue is fixed with this PR @Warblefly ?

Warblefly commented 3 years ago

Thank you for checking. On the branch you've given me, and with the script above, some eight hours after starting the stream, with two request.queue additions each hour, it is still crossfading well, as far as my occasional checks, including now, can tell.

At first sight, therefore, yes, you've fixed it! JW

Warblefly commented 3 years ago

Still working flawlessly, 24 hours later.

toots commented 3 years ago

This was fixed with a263e250e49dc24df3c6f3a17bdac613ebf32945