Closed toots closed 11 years ago
Logs:
2013/03/23 14:38:14 >>> LOG START
2013/03/23 14:38:14 [protocols.external:3] Found "/usr/bin/wget".
2013/03/23 14:38:14 [main:3] Liquidsoap 1.1.0+scm (git://github.com/savonet/liquidsoap.git@0836328521658f193caeddbbabad4495a3acd701:20130317:173625)
2013/03/23 14:38:14 [main:3] Using: graphics=[distributed with Ocaml] pcre=6.2.5 dtools=0.3.0 duppy=0.4.2 duppy.syntax=0.4.2 cry=0.2.2 mm=0.2.1 xmlplaylist=0.1.3 ogg=0.4.4 vorbis=0.6.1 mad=0.4.4 flac=0.1.1 flac.ogg=0.1.1 dynlink=[distributed with Ocaml] lame=0.3.1 alsa=0.2.1 ao=0.2.0 taglib=0.3.0 camomile=0.8.4 faad=0.3.2 portaudio=0.2.0 pulseaudio=0.1.2 ladspa=0.1.4 camlimages=4.0.0
2013/03/23 14:38:14 [main:2]
2013/03/23 14:38:14 [main:2] DISCLAIMER: This version of Liquidsoap has been
2013/03/23 14:38:14 [main:2] compiled from a snapshot of the development code.
2013/03/23 14:38:14 [main:2] As such, it should not be used in production
2013/03/23 14:38:14 [main:2] unless you know what you are doing!
2013/03/23 14:38:14 [main:2]
2013/03/23 14:38:14 [main:2] We are, however, very interested in any feedback
2013/03/23 14:38:14 [main:2] about our development code and committed to fix
2013/03/23 14:38:14 [main:2] issues as soon as possible.
2013/03/23 14:38:14 [main:2]
2013/03/23 14:38:14 [main:2] If you are interested in collaborating to
2013/03/23 14:38:14 [main:2] the development of Liquidsoap, feel free to
2013/03/23 14:38:14 [main:2] drop us a mail at <savonet-devl@lists.sf.net>
2013/03/23 14:38:14 [main:2] or to join the #savonet IRC channel on Freenode.
2013/03/23 14:38:14 [main:2]
2013/03/23 14:38:14 [main:2] Please send any bug report or feature request
2013/03/23 14:38:14 [main:2] at <https://github.com/savonet/liquidsoap/issues>.
2013/03/23 14:38:14 [main:2]
2013/03/23 14:38:14 [main:2] We hope you enjoy this snapshot build of Liquidsoap!
2013/03/23 14:38:14 [main:2]
2013/03/23 14:38:14 [dynamic.loader:3] Could not find dynamic module for aacplus encoder.
2013/03/23 14:38:14 [frame:3] Using 44100Hz audio, 25Hz video, 44100Hz master.
2013/03/23 14:38:14 [frame:3] Frame size must be a multiple of 1764 ticks = 1764 audio samples = 1 video samples.
2013/03/23 14:38:14 [frame:3] Targetting 'frame.duration': 0.04s = 1764 audio samples = 1764 ticks.
2013/03/23 14:38:14 [frame:3] Frames last 0.04s = 1764 audio samples = 1 video samples = 1764 ticks.
2013/03/23 14:38:14 [threads:3] Created thread "generic queue #1".
2013/03/23 14:38:14 [threads:3] Created thread "generic queue #2".
2013/03/23 14:38:14 [test(dot)pls:3] Loading playlist...
2013/03/23 14:38:14 [test(dot)pls:3] No mime type specified, trying autodetection.
2013/03/23 14:38:14 [test(dot)pls:3] Playlist treated as format audio/mpegurl
2013/03/23 14:38:14 [decoder:3] Method "OGG" accepted "/home/kevin/radio/content/test/a.ogg".
2013/03/23 14:38:14 [decoder:3] Method "OGG" accepted "/home/kevin/radio/content/test/b.ogg".
2013/03/23 14:38:14 [decoder:3] Method "OGG" accepted "/home/kevin/radio/content/test/c.ogg".
2013/03/23 14:38:14 [decoder:3] Method "OGG" accepted "/home/kevin/radio/content/test/d.ogg".
2013/03/23 14:38:15 [test(dot)pls:3] Successfully loaded a playlist of 4 tracks.
2013/03/23 14:38:15 [vorbis-dev:3] Connecting mount vorbis-dev for source@localhost...
2013/03/23 14:38:15 [vorbis-dev:3] Connection setup was successful.
2013/03/23 14:38:15 [mp3-dev:3] Connecting mount mp3-dev for source@localhost...
2013/03/23 14:38:15 [mp3-dev:3] Connection setup was successful.
2013/03/23 14:38:15 [threads:3] Created thread "wallclock_main" (1 total).
2013/03/23 14:38:15 [clock.wallclock_main:3] Streaming loop starts, synchronized with wallclock.
2013/03/23 14:38:15 [mksafe:3] Switch to safe_blank.
2013/03/23 14:38:30 [decoder:3] Method "OGG" accepted "/home/kevin/radio/content/test/a.ogg".
2013/03/23 14:38:30 [test(dot)pls:3] Prepared "/home/kevin/radio/content/test/a.ogg" (RID 5).
2013/03/23 14:38:30 [mksafe:3] Switch to switch_5237 with transition.
2013/03/23 14:38:30 [switch_5237:3] Switch to sequence_5235.
2013/03/23 14:38:30 [test(dot)pls:3] Finished with "/home/kevin/radio/content/test/a.ogg".
2013/03/23 14:38:31 [decoder:3] Method "OGG" accepted "/home/kevin/radio/content/test/b.ogg".
2013/03/23 14:38:31 [test(dot)pls:3] Prepared "/home/kevin/radio/content/test/b.ogg" (RID 6).
2013/03/23 14:38:31 [test(dot)pls:3] Finished with "/home/kevin/radio/content/test/b.ogg".
2013/03/23 14:38:31 [mksafe:3] Switch to safe_blank with forgetful transition.
2013/03/23 14:39:00 [mksafe:3] Switch to switch_5237 with transition.
2013/03/23 14:39:00 [switch_5237:3] Switch to sequence_5235.
2013/03/23 14:39:00 [decoder:3] Method "OGG" accepted "/home/kevin/radio/content/test/c.ogg".
2013/03/23 14:39:00 [test(dot)pls:3] Prepared "/home/kevin/radio/content/test/c.ogg" (RID 7).
2013/03/23 14:39:01 [test(dot)pls:3] Finished with "/home/kevin/radio/content/test/c.ogg".
2013/03/23 14:39:01 [decoder:3] Method "OGG" accepted "/home/kevin/radio/content/test/d.ogg".
2013/03/23 14:39:01 [test(dot)pls:3] Prepared "/home/kevin/radio/content/test/d.ogg" (RID 8).
2013/03/23 14:39:01 [test(dot)pls:3] Finished with "/home/kevin/radio/content/test/d.ogg".
2013/03/23 14:39:01 [mksafe:3] Switch to safe_blank with forgetful transition.
2013/03/23 14:39:12 [main:3] Shutdown started!
2013/03/23 14:39:12 [main:3] Waiting for threads to terminate...
2013/03/23 14:39:12 [vorbis-dev:3] Closing connection...
2013/03/23 14:39:12 [mp3-dev:3] Closing connection...
2013/03/23 14:39:12 [clock.wallclock_main:3] Streaming loop stopped.
2013/03/23 14:39:12 [threads:3] Thread "wallclock_main" terminated (0 remaining).
2013/03/23 14:39:12 [main:3] Cleaning downloaded files...
2013/03/23 14:39:12 [main:3] Freeing memory...
2013/03/23 14:39:12 >>> LOG END
Hi Romain, I emailed a level 4 log file. I will figure out how to attach it here.
HERE IS THE LEVEL 4 LOG FILE OUTPUT:
2013/03/24 13:35:04 >>> LOG START
2013/03/24 13:35:04 [protocols.external:3] Found "/usr/bin/wget".
2013/03/24 13:35:04 [main:3] Liquidsoap 1.1.0+scm (git://github.com/savonet/liquidsoap.git@0836328521658f193caeddbbabad4495a3acd701:20130317:173625)
2013/03/24 13:35:04 [main:3] Using: graphics=[distributed with Ocaml] pcre=6.2.5 dtools=0.3.0 duppy=0.4.2 duppy.syntax=0.4.2 cry=0.2.2 mm=0.2.1 xmlplaylist=0.1.3 ogg=0.4.4 vorbis=0.6.1 mad=0.4.4 flac=0.1.1 flac.ogg=0.1.1 dynlink=[distributed with Ocaml] lame=0.3.1 alsa=0.2.1 ao=0.2.0 taglib=0.3.0 camomile=0.8.4 faad=0.3.2 portaudio=0.2.0 pulseaudio=0.1.2 ladspa=0.1.4 camlimages=4.0.0
2013/03/24 13:35:04 [main:2]
2013/03/24 13:35:04 [main:2] DISCLAIMER: This version of Liquidsoap has been
2013/03/24 13:35:04 [main:2] compiled from a snapshot of the development code.
2013/03/24 13:35:04 [main:2] As such, it should not be used in production
2013/03/24 13:35:04 [main:2] unless you know what you are doing!
2013/03/24 13:35:04 [main:2]
2013/03/24 13:35:04 [main:2] We are, however, very interested in any feedback
2013/03/24 13:35:04 [main:2] about our development code and committed to fix
2013/03/24 13:35:04 [main:2] issues as soon as possible.
2013/03/24 13:35:04 [main:2]
2013/03/24 13:35:04 [main:2] If you are interested in collaborating to
2013/03/24 13:35:04 [main:2] the development of Liquidsoap, feel free to
2013/03/24 13:35:04 [main:2] drop us a mail at <savonet-devl@lists.sf.net>
2013/03/24 13:35:04 [main:2] or to join the #savonet IRC channel on Freenode.
2013/03/24 13:35:04 [main:2]
2013/03/24 13:35:04 [main:2] Please send any bug report or feature request
2013/03/24 13:35:04 [main:2] at <https://github.com/savonet/liquidsoap/issues>.
2013/03/24 13:35:04 [main:2]
2013/03/24 13:35:04 [main:2] We hope you enjoy this snapshot build of Liquidsoap!
2013/03/24 13:35:04 [main:2]
2013/03/24 13:35:04 [dynamic.loader:3] Could not find dynamic module for aacplus encoder.
2013/03/24 13:35:04 [frame:3] Using 44100Hz audio, 25Hz video, 44100Hz master.
2013/03/24 13:35:04 [frame:3] Frame size must be a multiple of 1764 ticks = 1764 audio samples = 1 video samples.
2013/03/24 13:35:04 [frame:3] Targetting 'frame.duration': 0.04s = 1764 audio samples = 1764 ticks.
2013/03/24 13:35:04 [frame:3] Frames last 0.04s = 1764 audio samples = 1 video samples = 1764 ticks.
2013/03/24 13:35:04 [video.converter:4] Couldn't find preferred video converter: gavl.
2013/03/24 13:35:04 [audio.converter:4] Couldn't find preferred samplerate converter: libsamplerate.
2013/03/24 13:35:04 [audio.converter:4] Using native samplerate converter
2013/03/24 13:35:04 [threads:3] Created thread "generic queue #1".
2013/03/24 13:35:04 [threads:3] Created thread "generic queue #2".
2013/03/24 13:35:04 [clock:4] Currently 1 clocks allocated.
2013/03/24 13:35:04 [clock.wallclock_main:4] Starting 2 sources...
2013/03/24 13:35:04 [source:4] Source output.icecast_5242 gets up.
2013/03/24 13:35:04 [source:4] Source mksafe gets up.
2013/03/24 13:35:04 [source:4] Source fallback_5238 gets up.
2013/03/24 13:35:04 [source:4] Source switch_5237 gets up.
2013/03/24 13:35:04 [source:4] Source sequence_5235 gets up.
2013/03/24 13:35:04 [source:4] Source playlist.safe_5234 gets up.
2013/03/24 13:35:04 [test(dot)pls:3] Loading playlist...
2013/03/24 13:35:04 [test(dot)pls:3] No mime type specified, trying autodetection.
2013/03/24 13:35:04 [playlist parser:4] Trying application/rss+xml parser
2013/03/24 13:35:04 [playlist parser:4] Trying application/xspf+xml parser
2013/03/24 13:35:04 [playlist parser:4] Trying application/smil+xml parser
2013/03/24 13:35:04 [playlist parser:4] Trying application/smil parser
2013/03/24 13:35:04 [playlist parser:4] Trying application/xml parser
2013/03/24 13:35:04 [playlist parser:4] Trying text/xml parser
2013/03/24 13:35:04 [playlist parser:4] Trying audio/x-ms-asx parser
2013/03/24 13:35:04 [playlist parser:4] Trying video/x-ms-asf parser
2013/03/24 13:35:04 [playlist parser:4] Trying application/x-cue parser
2013/03/24 13:35:04 [playlist parser:4] Trying audio/x-scpls parser
2013/03/24 13:35:04 [playlist parser:4] Trying audio/mpegurl parser
2013/03/24 13:35:04 [test(dot)pls:3] Playlist treated as format audio/mpegurl
2013/03/24 13:35:04 [decoder:4] Trying method "META" for "/home/kevin/radio/content/test/a.ogg"...
2013/03/24 13:35:04 [decoder:4] Trying method "WAV" for "/home/kevin/radio/content/test/a.ogg"...
2013/03/24 13:35:04 [decoder.wav:4] Invalid file extension for "/home/kevin/radio/content/test/a.ogg"!
2013/03/24 13:35:04 [decoder:4] Trying method "MIDI" for "/home/kevin/radio/content/test/a.ogg"...
2013/03/24 13:35:04 [decoder:4] Trying method "IMAGE" for "/home/kevin/radio/content/test/a.ogg"...
2013/03/24 13:35:04 [decoder:4] Trying method "FLAC" for "/home/kevin/radio/content/test/a.ogg"...
2013/03/24 13:35:04 [decoder.flac:4] Invalid file extension for "/home/kevin/radio/content/test/a.ogg"!
2013/03/24 13:35:04 [decoder:4] Trying method "AAC" for "/home/kevin/radio/content/test/a.ogg"...
2013/03/24 13:35:04 [decoder.aac:4] Invalid file extension for "/home/kevin/radio/content/test/a.ogg"!
2013/03/24 13:35:04 [decoder:4] Trying method "MP4" for "/home/kevin/radio/content/test/a.ogg"...
2013/03/24 13:35:04 [decoder.mp4:4] Invalid file extension for "/home/kevin/radio/content/test/a.ogg"!
2013/03/24 13:35:04 [decoder:4] Trying method "OGG" for "/home/kevin/radio/content/test/a.ogg"...
2013/03/24 13:35:04 [decoder.ogg:4] File "/home/kevin/radio/content/test/a.ogg" recognized as audio=2 video=0.
2013/03/24 13:35:04 [decoder:3] Method "OGG" accepted "/home/kevin/radio/content/test/a.ogg".
2013/03/24 13:35:04 [metadata.flac:4] Invalid file extension for "/home/kevin/radio/content/test/a.ogg"!
2013/03/24 13:35:04 [metadata.mp4:4] Invalid file extension for "/home/kevin/radio/content/test/a.ogg"!
2013/03/24 13:35:04 [decoder.taglib:4] Invalid file extension for "/home/kevin/radio/content/test/a.ogg"!
2013/03/24 13:35:04 [decoder:4] Trying method "META" for "/home/kevin/radio/content/test/b.ogg"...
2013/03/24 13:35:04 [decoder:4] Trying method "WAV" for "/home/kevin/radio/content/test/b.ogg"...
2013/03/24 13:35:04 [decoder.wav:4] Invalid file extension for "/home/kevin/radio/content/test/b.ogg"!
2013/03/24 13:35:04 [decoder:4] Trying method "MIDI" for "/home/kevin/radio/content/test/b.ogg"...
2013/03/24 13:35:04 [decoder:4] Trying method "IMAGE" for "/home/kevin/radio/content/test/b.ogg"...
2013/03/24 13:35:04 [decoder:4] Trying method "FLAC" for "/home/kevin/radio/content/test/b.ogg"...
2013/03/24 13:35:04 [decoder.flac:4] Invalid file extension for "/home/kevin/radio/content/test/b.ogg"!
2013/03/24 13:35:04 [decoder:4] Trying method "AAC" for "/home/kevin/radio/content/test/b.ogg"...
2013/03/24 13:35:04 [decoder.aac:4] Invalid file extension for "/home/kevin/radio/content/test/b.ogg"!
2013/03/24 13:35:04 [decoder:4] Trying method "MP4" for "/home/kevin/radio/content/test/b.ogg"...
2013/03/24 13:35:04 [decoder.mp4:4] Invalid file extension for "/home/kevin/radio/content/test/b.ogg"!
2013/03/24 13:35:04 [decoder:4] Trying method "OGG" for "/home/kevin/radio/content/test/b.ogg"...
2013/03/24 13:35:04 [decoder.ogg:4] File "/home/kevin/radio/content/test/b.ogg" recognized as audio=2 video=0.
2013/03/24 13:35:04 [decoder:3] Method "OGG" accepted "/home/kevin/radio/content/test/b.ogg".
2013/03/24 13:35:04 [metadata.flac:4] Invalid file extension for "/home/kevin/radio/content/test/b.ogg"!
2013/03/24 13:35:04 [metadata.mp4:4] Invalid file extension for "/home/kevin/radio/content/test/b.ogg"!
2013/03/24 13:35:04 [decoder.taglib:4] Invalid file extension for "/home/kevin/radio/content/test/b.ogg"!
2013/03/24 13:35:04 [decoder:4] Trying method "META" for "/home/kevin/radio/content/test/c.ogg"...
2013/03/24 13:35:04 [decoder:4] Trying method "WAV" for "/home/kevin/radio/content/test/c.ogg"...
2013/03/24 13:35:04 [decoder.wav:4] Invalid file extension for "/home/kevin/radio/content/test/c.ogg"!
2013/03/24 13:35:04 [decoder:4] Trying method "MIDI" for "/home/kevin/radio/content/test/c.ogg"...
2013/03/24 13:35:04 [decoder:4] Trying method "IMAGE" for "/home/kevin/radio/content/test/c.ogg"...
2013/03/24 13:35:04 [decoder:4] Trying method "FLAC" for "/home/kevin/radio/content/test/c.ogg"...
2013/03/24 13:35:04 [decoder.flac:4] Invalid file extension for "/home/kevin/radio/content/test/c.ogg"!
2013/03/24 13:35:04 [decoder:4] Trying method "AAC" for "/home/kevin/radio/content/test/c.ogg"...
2013/03/24 13:35:04 [decoder.aac:4] Invalid file extension for "/home/kevin/radio/content/test/c.ogg"!
2013/03/24 13:35:04 [decoder:4] Trying method "MP4" for "/home/kevin/radio/content/test/c.ogg"...
2013/03/24 13:35:04 [decoder.mp4:4] Invalid file extension for "/home/kevin/radio/content/test/c.ogg"!
2013/03/24 13:35:04 [decoder:4] Trying method "OGG" for "/home/kevin/radio/content/test/c.ogg"...
2013/03/24 13:35:04 [decoder.ogg:4] File "/home/kevin/radio/content/test/c.ogg" recognized as audio=2 video=0.
2013/03/24 13:35:04 [decoder:3] Method "OGG" accepted "/home/kevin/radio/content/test/c.ogg".
2013/03/24 13:35:04 [metadata.flac:4] Invalid file extension for "/home/kevin/radio/content/test/c.ogg"!
2013/03/24 13:35:04 [metadata.mp4:4] Invalid file extension for "/home/kevin/radio/content/test/c.ogg"!
2013/03/24 13:35:04 [decoder.taglib:4] Invalid file extension for "/home/kevin/radio/content/test/c.ogg"!
2013/03/24 13:35:04 [decoder:4] Trying method "META" for "/home/kevin/radio/content/test/d.ogg"...
2013/03/24 13:35:04 [decoder:4] Trying method "WAV" for "/home/kevin/radio/content/test/d.ogg"...
2013/03/24 13:35:04 [decoder.wav:4] Invalid file extension for "/home/kevin/radio/content/test/d.ogg"!
2013/03/24 13:35:04 [decoder:4] Trying method "MIDI" for "/home/kevin/radio/content/test/d.ogg"...
2013/03/24 13:35:04 [decoder:4] Trying method "IMAGE" for "/home/kevin/radio/content/test/d.ogg"...
2013/03/24 13:35:04 [decoder:4] Trying method "FLAC" for "/home/kevin/radio/content/test/d.ogg"...
2013/03/24 13:35:04 [decoder.flac:4] Invalid file extension for "/home/kevin/radio/content/test/d.ogg"!
2013/03/24 13:35:04 [decoder:4] Trying method "AAC" for "/home/kevin/radio/content/test/d.ogg"...
2013/03/24 13:35:04 [decoder.aac:4] Invalid file extension for "/home/kevin/radio/content/test/d.ogg"!
2013/03/24 13:35:04 [decoder:4] Trying method "MP4" for "/home/kevin/radio/content/test/d.ogg"...
2013/03/24 13:35:04 [decoder.mp4:4] Invalid file extension for "/home/kevin/radio/content/test/d.ogg"!
2013/03/24 13:35:04 [decoder:4] Trying method "OGG" for "/home/kevin/radio/content/test/d.ogg"...
2013/03/24 13:35:04 [decoder.ogg:4] File "/home/kevin/radio/content/test/d.ogg" recognized as audio=2 video=0.
2013/03/24 13:35:04 [decoder:3] Method "OGG" accepted "/home/kevin/radio/content/test/d.ogg".
2013/03/24 13:35:04 [metadata.flac:4] Invalid file extension for "/home/kevin/radio/content/test/d.ogg"!
2013/03/24 13:35:04 [metadata.mp4:4] Invalid file extension for "/home/kevin/radio/content/test/d.ogg"!
2013/03/24 13:35:04 [decoder.taglib:4] Invalid file extension for "/home/kevin/radio/content/test/d.ogg"!
2013/03/24 13:35:04 [test(dot)pls:3] Successfully loaded a playlist of 4 tracks.
2013/03/24 13:35:04 [test(dot)pls:4] Content kind is {audio=2;video=0;midi=0}.
2013/03/24 13:35:04 [test(dot)pls:4] Activations changed: static=[sequence_5235:switch_5237:fallback_5238:mksafe:vorbis-dev:vorbis-dev], dynamic=[].
2013/03/24 13:35:04 [sequence_5235:4] Activations changed: static=[], dynamic=[switch_5237:fallback_5238:mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:35:04 [sequence_5235:4] Activations changed: static=[], dynamic=[switch_5237:fallback_5238:mksafe:vorbis-dev:vorbis-dev, switch_5237:fallback_5238:mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:35:04 [switch_5237:4] Activations changed: static=[], dynamic=[fallback_5238:mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:35:04 [fallback_5238:4] Activations changed: static=[], dynamic=[mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:35:04 [source:4] Source safe_blank gets up.
2013/03/24 13:35:04 [safe_blank:4] Content kind is {audio=2;video=0;midi=0}.
2013/03/24 13:35:04 [safe_blank:4] Activations changed: static=[], dynamic=[mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:35:04 [mksafe:4] Activations changed: static=[vorbis-dev:vorbis-dev], dynamic=[].
2013/03/24 13:35:04 [vorbis-dev:4] Activations changed: static=[vorbis-dev], dynamic=[].
2013/03/24 13:35:04 [vorbis-dev:4] Enabling caching mode: active source.
2013/03/24 13:35:04 [source:4] Source output.icecast_5243 gets up.
2013/03/24 13:35:04 [mksafe:4] Activations changed: static=[mp3-dev:mp3-dev, vorbis-dev:vorbis-dev], dynamic=[].
2013/03/24 13:35:04 [mksafe:4] Enabling caching mode: two static activations.
2013/03/24 13:35:04 [mp3-dev:4] Activations changed: static=[mp3-dev], dynamic=[].
2013/03/24 13:35:04 [mp3-dev:4] Enabling caching mode: active source.
2013/03/24 13:35:04 [vorbis-dev:3] Connecting mount vorbis-dev for source@localhost...
2013/03/24 13:35:05 [vorbis-dev:3] Connection setup was successful.
2013/03/24 13:35:05 [mp3-dev:3] Connecting mount mp3-dev for source@localhost...
2013/03/24 13:35:05 [mp3-dev:3] Connection setup was successful.
2013/03/24 13:35:05 [threads:3] Created thread "wallclock_main" (1 total).
2013/03/24 13:35:05 [clock.wallclock_main:3] Streaming loop starts, synchronized with wallclock.
2013/03/24 13:35:05 [clock:4] Main phase starts.
2013/03/24 13:35:05 [mksafe:3] Switch to safe_blank.
2013/03/24 13:35:05 [safe_blank:4] Activations changed: static=[mksafe:vorbis-dev:vorbis-dev], dynamic=[mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:35:05 [ogg.muxer:4] vorbis-dev: Starting all streams
2013/03/24 13:35:30 [decoder:4] Trying method "META" for "/home/kevin/radio/content/test/a.ogg"...
2013/03/24 13:35:30 [decoder:4] Trying method "WAV" for "/home/kevin/radio/content/test/a.ogg"...
2013/03/24 13:35:30 [decoder.wav:4] Invalid file extension for "/home/kevin/radio/content/test/a.ogg"!
2013/03/24 13:35:30 [decoder:4] Trying method "MIDI" for "/home/kevin/radio/content/test/a.ogg"...
2013/03/24 13:35:30 [decoder:4] Trying method "IMAGE" for "/home/kevin/radio/content/test/a.ogg"...
2013/03/24 13:35:30 [decoder:4] Trying method "FLAC" for "/home/kevin/radio/content/test/a.ogg"...
2013/03/24 13:35:30 [decoder.flac:4] Invalid file extension for "/home/kevin/radio/content/test/a.ogg"!
2013/03/24 13:35:30 [decoder:4] Trying method "AAC" for "/home/kevin/radio/content/test/a.ogg"...
2013/03/24 13:35:30 [decoder.aac:4] Invalid file extension for "/home/kevin/radio/content/test/a.ogg"!
2013/03/24 13:35:30 [decoder:4] Trying method "MP4" for "/home/kevin/radio/content/test/a.ogg"...
2013/03/24 13:35:30 [decoder.mp4:4] Invalid file extension for "/home/kevin/radio/content/test/a.ogg"!
2013/03/24 13:35:30 [decoder:4] Trying method "OGG" for "/home/kevin/radio/content/test/a.ogg"...
2013/03/24 13:35:30 [decoder.ogg:4] File "/home/kevin/radio/content/test/a.ogg" recognized as audio=2 video=0.
2013/03/24 13:35:30 [decoder:3] Method "OGG" accepted "/home/kevin/radio/content/test/a.ogg".
2013/03/24 13:35:30 [metadata.flac:4] Invalid file extension for "/home/kevin/radio/content/test/a.ogg"!
2013/03/24 13:35:30 [metadata.mp4:4] Invalid file extension for "/home/kevin/radio/content/test/a.ogg"!
2013/03/24 13:35:30 [decoder.taglib:4] Invalid file extension for "/home/kevin/radio/content/test/a.ogg"!
2013/03/24 13:35:30 [test(dot)pls:3] Prepared "/home/kevin/radio/content/test/a.ogg" (RID 5).
2013/03/24 13:35:30 [mksafe:3] Switch to fallback_5238 with transition.
2013/03/24 13:35:30 [safe_blank:4] Activations changed: static=[], dynamic=[mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:35:30 [fallback_5238:4] Activations changed: static=[mksafe:vorbis-dev:vorbis-dev], dynamic=[mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:35:30 [fallback_5238:3] Switch to switch_5237.
2013/03/24 13:35:30 [switch_5237:4] Activations changed: static=[fallback_5238:mksafe:vorbis-dev:vorbis-dev], dynamic=[fallback_5238:mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:35:30 [switch_5237:3] Switch to sequence_5235.
2013/03/24 13:35:30 [sequence_5235:4] Activations changed: static=[switch_5237:fallback_5238:mksafe:vorbis-dev:vorbis-dev], dynamic=[switch_5237:fallback_5238:mksafe:vorbis-dev:vorbis-dev, switch_5237:fallback_5238:mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:35:30 [ogg.muxer:4] vorbis-dev: Setting end of track 192ff98.
2013/03/24 13:35:30 [ogg.muxer:4] vorbis-dev: Every ogg logical tracks have ended: setting end of stream.
2013/03/24 13:35:30 [ogg.muxer:4] vorbis-dev: Starting new sequentialized ogg stream.
2013/03/24 13:35:30 [ogg.muxer:4] vorbis-dev: Starting all streams
2013/03/24 13:35:30 [decoder:4] Decoding "/home/kevin/radio/content/test/a.ogg" ended: Ogg.End_of_stream.
2013/03/24 13:35:30 [test(dot)pls:3] Finished with "/home/kevin/radio/content/test/a.ogg".
2013/03/24 13:35:30 [decoder:4] Trying method "META" for "/home/kevin/radio/content/test/b.ogg"...
2013/03/24 13:35:30 [decoder:4] Trying method "WAV" for "/home/kevin/radio/content/test/b.ogg"...
2013/03/24 13:35:30 [decoder.wav:4] Invalid file extension for "/home/kevin/radio/content/test/b.ogg"!
2013/03/24 13:35:30 [decoder:4] Trying method "MIDI" for "/home/kevin/radio/content/test/b.ogg"...
2013/03/24 13:35:30 [decoder:4] Trying method "IMAGE" for "/home/kevin/radio/content/test/b.ogg"...
2013/03/24 13:35:30 [decoder:4] Trying method "FLAC" for "/home/kevin/radio/content/test/b.ogg"...
2013/03/24 13:35:30 [decoder.flac:4] Invalid file extension for "/home/kevin/radio/content/test/b.ogg"!
2013/03/24 13:35:30 [decoder:4] Trying method "AAC" for "/home/kevin/radio/content/test/b.ogg"...
2013/03/24 13:35:30 [decoder.aac:4] Invalid file extension for "/home/kevin/radio/content/test/b.ogg"!
2013/03/24 13:35:30 [decoder:4] Trying method "MP4" for "/home/kevin/radio/content/test/b.ogg"...
2013/03/24 13:35:30 [decoder.mp4:4] Invalid file extension for "/home/kevin/radio/content/test/b.ogg"!
2013/03/24 13:35:30 [decoder:4] Trying method "OGG" for "/home/kevin/radio/content/test/b.ogg"...
2013/03/24 13:35:30 [decoder.ogg:4] File "/home/kevin/radio/content/test/b.ogg" recognized as audio=2 video=0.
2013/03/24 13:35:30 [decoder:3] Method "OGG" accepted "/home/kevin/radio/content/test/b.ogg".
2013/03/24 13:35:30 [metadata.flac:4] Invalid file extension for "/home/kevin/radio/content/test/b.ogg"!
2013/03/24 13:35:30 [metadata.mp4:4] Invalid file extension for "/home/kevin/radio/content/test/b.ogg"!
2013/03/24 13:35:31 [decoder.taglib:4] Invalid file extension for "/home/kevin/radio/content/test/b.ogg"!
2013/03/24 13:35:31 [test(dot)pls:3] Prepared "/home/kevin/radio/content/test/b.ogg" (RID 6).
2013/03/24 13:35:31 [ogg.muxer:4] vorbis-dev: Setting end of track 26c330b7.
2013/03/24 13:35:31 [ogg.muxer:4] vorbis-dev: Every ogg logical tracks have ended: setting end of stream.
2013/03/24 13:35:31 [ogg.muxer:4] vorbis-dev: Starting new sequentialized ogg stream.
2013/03/24 13:35:31 [ogg.muxer:4] vorbis-dev: Starting all streams
2013/03/24 13:35:31 [decoder:4] Decoding "/home/kevin/radio/content/test/b.ogg" ended: Ogg.End_of_stream.
2013/03/24 13:35:31 [test(dot)pls:3] Finished with "/home/kevin/radio/content/test/b.ogg".
2013/03/24 13:35:31 [sequence_5235:4] Activations changed: static=[], dynamic=[switch_5237:fallback_5238:mksafe:vorbis-dev:vorbis-dev, switch_5237:fallback_5238:mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:35:31 [switch_5237:4] Activations changed: static=[], dynamic=[fallback_5238:mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:35:31 [mksafe:3] Switch to safe_blank with forgetful transition.
2013/03/24 13:35:31 [fallback_5238:4] Activations changed: static=[], dynamic=[mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:35:31 [safe_blank:4] Activations changed: static=[mksafe:vorbis-dev:vorbis-dev], dynamic=[mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:36:00 [mksafe:3] Switch to fallback_5238 with transition.
2013/03/24 13:36:00 [safe_blank:4] Activations changed: static=[], dynamic=[mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:36:00 [fallback_5238:4] Activations changed: static=[mksafe:vorbis-dev:vorbis-dev], dynamic=[mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:36:00 [fallback_5238:3] Switch to switch_5237.
2013/03/24 13:36:00 [switch_5237:4] Activations changed: static=[fallback_5238:mksafe:vorbis-dev:vorbis-dev], dynamic=[fallback_5238:mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:36:00 [switch_5237:3] Switch to sequence_5235.
2013/03/24 13:36:00 [sequence_5235:4] Activations changed: static=[switch_5237:fallback_5238:mksafe:vorbis-dev:vorbis-dev], dynamic=[switch_5237:fallback_5238:mksafe:vorbis-dev:vorbis-dev, switch_5237:fallback_5238:mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:36:00 [decoder:4] Trying method "META" for "/home/kevin/radio/content/test/c.ogg"...
2013/03/24 13:36:00 [decoder:4] Trying method "WAV" for "/home/kevin/radio/content/test/c.ogg"...
2013/03/24 13:36:00 [decoder.wav:4] Invalid file extension for "/home/kevin/radio/content/test/c.ogg"!
2013/03/24 13:36:00 [decoder:4] Trying method "MIDI" for "/home/kevin/radio/content/test/c.ogg"...
2013/03/24 13:36:00 [decoder:4] Trying method "IMAGE" for "/home/kevin/radio/content/test/c.ogg"...
2013/03/24 13:36:00 [decoder:4] Trying method "FLAC" for "/home/kevin/radio/content/test/c.ogg"...
2013/03/24 13:36:00 [decoder.flac:4] Invalid file extension for "/home/kevin/radio/content/test/c.ogg"!
2013/03/24 13:36:00 [decoder:4] Trying method "AAC" for "/home/kevin/radio/content/test/c.ogg"...
2013/03/24 13:36:00 [decoder.aac:4] Invalid file extension for "/home/kevin/radio/content/test/c.ogg"!
2013/03/24 13:36:00 [decoder:4] Trying method "MP4" for "/home/kevin/radio/content/test/c.ogg"...
2013/03/24 13:36:00 [decoder.mp4:4] Invalid file extension for "/home/kevin/radio/content/test/c.ogg"!
2013/03/24 13:36:00 [decoder:4] Trying method "OGG" for "/home/kevin/radio/content/test/c.ogg"...
2013/03/24 13:36:00 [decoder.ogg:4] File "/home/kevin/radio/content/test/c.ogg" recognized as audio=2 video=0.
2013/03/24 13:36:00 [decoder:3] Method "OGG" accepted "/home/kevin/radio/content/test/c.ogg".
2013/03/24 13:36:00 [metadata.flac:4] Invalid file extension for "/home/kevin/radio/content/test/c.ogg"!
2013/03/24 13:36:00 [metadata.mp4:4] Invalid file extension for "/home/kevin/radio/content/test/c.ogg"!
2013/03/24 13:36:00 [decoder.taglib:4] Invalid file extension for "/home/kevin/radio/content/test/c.ogg"!
2013/03/24 13:36:00 [test(dot)pls:3] Prepared "/home/kevin/radio/content/test/c.ogg" (RID 7).
2013/03/24 13:36:00 [ogg.muxer:4] vorbis-dev: Setting end of track 24b3e71b.
2013/03/24 13:36:00 [ogg.muxer:4] vorbis-dev: Every ogg logical tracks have ended: setting end of stream.
2013/03/24 13:36:00 [ogg.muxer:4] vorbis-dev: Starting new sequentialized ogg stream.
2013/03/24 13:36:00 [ogg.muxer:4] vorbis-dev: Starting all streams
2013/03/24 13:36:00 [decoder:4] Decoding "/home/kevin/radio/content/test/c.ogg" ended: Ogg.End_of_stream.
2013/03/24 13:36:01 [test(dot)pls:3] Finished with "/home/kevin/radio/content/test/c.ogg".
2013/03/24 13:36:01 [decoder:4] Trying method "META" for "/home/kevin/radio/content/test/d.ogg"...
2013/03/24 13:36:01 [decoder:4] Trying method "WAV" for "/home/kevin/radio/content/test/d.ogg"...
2013/03/24 13:36:01 [decoder.wav:4] Invalid file extension for "/home/kevin/radio/content/test/d.ogg"!
2013/03/24 13:36:01 [decoder:4] Trying method "MIDI" for "/home/kevin/radio/content/test/d.ogg"...
2013/03/24 13:36:01 [decoder:4] Trying method "IMAGE" for "/home/kevin/radio/content/test/d.ogg"...
2013/03/24 13:36:01 [decoder:4] Trying method "FLAC" for "/home/kevin/radio/content/test/d.ogg"...
2013/03/24 13:36:01 [decoder.flac:4] Invalid file extension for "/home/kevin/radio/content/test/d.ogg"!
2013/03/24 13:36:01 [decoder:4] Trying method "AAC" for "/home/kevin/radio/content/test/d.ogg"...
2013/03/24 13:36:01 [decoder.aac:4] Invalid file extension for "/home/kevin/radio/content/test/d.ogg"!
2013/03/24 13:36:01 [decoder:4] Trying method "MP4" for "/home/kevin/radio/content/test/d.ogg"...
2013/03/24 13:36:01 [decoder.mp4:4] Invalid file extension for "/home/kevin/radio/content/test/d.ogg"!
2013/03/24 13:36:01 [decoder:4] Trying method "OGG" for "/home/kevin/radio/content/test/d.ogg"...
2013/03/24 13:36:01 [decoder.ogg:4] File "/home/kevin/radio/content/test/d.ogg" recognized as audio=2 video=0.
2013/03/24 13:36:01 [decoder:3] Method "OGG" accepted "/home/kevin/radio/content/test/d.ogg".
2013/03/24 13:36:01 [metadata.flac:4] Invalid file extension for "/home/kevin/radio/content/test/d.ogg"!
2013/03/24 13:36:01 [metadata.mp4:4] Invalid file extension for "/home/kevin/radio/content/test/d.ogg"!
2013/03/24 13:36:01 [decoder.taglib:4] Invalid file extension for "/home/kevin/radio/content/test/d.ogg"!
2013/03/24 13:36:01 [test(dot)pls:3] Prepared "/home/kevin/radio/content/test/d.ogg" (RID 8).
2013/03/24 13:36:01 [ogg.muxer:4] vorbis-dev: Setting end of track 1cb36fba.
2013/03/24 13:36:01 [ogg.muxer:4] vorbis-dev: Every ogg logical tracks have ended: setting end of stream.
2013/03/24 13:36:01 [ogg.muxer:4] vorbis-dev: Starting new sequentialized ogg stream.
2013/03/24 13:36:01 [ogg.muxer:4] vorbis-dev: Starting all streams
2013/03/24 13:36:01 [decoder:4] Decoding "/home/kevin/radio/content/test/d.ogg" ended: Ogg.End_of_stream.
2013/03/24 13:36:01 [test(dot)pls:3] Finished with "/home/kevin/radio/content/test/d.ogg".
2013/03/24 13:36:01 [sequence_5235:4] Activations changed: static=[], dynamic=[switch_5237:fallback_5238:mksafe:vorbis-dev:vorbis-dev, switch_5237:fallback_5238:mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:36:01 [switch_5237:4] Activations changed: static=[], dynamic=[fallback_5238:mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:36:01 [mksafe:3] Switch to safe_blank with forgetful transition.
2013/03/24 13:36:01 [fallback_5238:4] Activations changed: static=[], dynamic=[mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:36:01 [safe_blank:4] Activations changed: static=[mksafe:vorbis-dev:vorbis-dev], dynamic=[mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:36:30 [mksafe:3] Switch to fallback_5238 with transition.
2013/03/24 13:36:30 [safe_blank:4] Activations changed: static=[], dynamic=[mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:36:30 [fallback_5238:4] Activations changed: static=[mksafe:vorbis-dev:vorbis-dev], dynamic=[mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:36:30 [fallback_5238:3] Switch to switch_5237.
2013/03/24 13:36:30 [switch_5237:4] Activations changed: static=[fallback_5238:mksafe:vorbis-dev:vorbis-dev], dynamic=[fallback_5238:mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:36:30 [switch_5237:3] Switch to sequence_5235.
2013/03/24 13:36:30 [sequence_5235:4] Activations changed: static=[switch_5237:fallback_5238:mksafe:vorbis-dev:vorbis-dev], dynamic=[switch_5237:fallback_5238:mksafe:vorbis-dev:vorbis-dev, switch_5237:fallback_5238:mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:36:30 [decoder:4] Trying method "META" for "/home/kevin/radio/content/test/a.ogg"...
2013/03/24 13:36:30 [decoder:4] Trying method "WAV" for "/home/kevin/radio/content/test/a.ogg"...
2013/03/24 13:36:30 [decoder.wav:4] Invalid file extension for "/home/kevin/radio/content/test/a.ogg"!
2013/03/24 13:36:30 [decoder:4] Trying method "MIDI" for "/home/kevin/radio/content/test/a.ogg"...
2013/03/24 13:36:30 [decoder:4] Trying method "IMAGE" for "/home/kevin/radio/content/test/a.ogg"...
2013/03/24 13:36:30 [decoder:4] Trying method "FLAC" for "/home/kevin/radio/content/test/a.ogg"...
2013/03/24 13:36:30 [decoder.flac:4] Invalid file extension for "/home/kevin/radio/content/test/a.ogg"!
2013/03/24 13:36:30 [decoder:4] Trying method "AAC" for "/home/kevin/radio/content/test/a.ogg"...
2013/03/24 13:36:30 [decoder.aac:4] Invalid file extension for "/home/kevin/radio/content/test/a.ogg"!
2013/03/24 13:36:30 [decoder:4] Trying method "MP4" for "/home/kevin/radio/content/test/a.ogg"...
2013/03/24 13:36:30 [decoder.mp4:4] Invalid file extension for "/home/kevin/radio/content/test/a.ogg"!
2013/03/24 13:36:30 [decoder:4] Trying method "OGG" for "/home/kevin/radio/content/test/a.ogg"...
2013/03/24 13:36:30 [decoder.ogg:4] File "/home/kevin/radio/content/test/a.ogg" recognized as audio=2 video=0.
2013/03/24 13:36:30 [decoder:3] Method "OGG" accepted "/home/kevin/radio/content/test/a.ogg".
2013/03/24 13:36:30 [metadata.flac:4] Invalid file extension for "/home/kevin/radio/content/test/a.ogg"!
2013/03/24 13:36:30 [metadata.mp4:4] Invalid file extension for "/home/kevin/radio/content/test/a.ogg"!
2013/03/24 13:36:30 [decoder.taglib:4] Invalid file extension for "/home/kevin/radio/content/test/a.ogg"!
2013/03/24 13:36:30 [test(dot)pls:3] Prepared "/home/kevin/radio/content/test/a.ogg" (RID 9).
2013/03/24 13:36:30 [ogg.muxer:4] vorbis-dev: Setting end of track 3052ca9d.
2013/03/24 13:36:30 [ogg.muxer:4] vorbis-dev: Every ogg logical tracks have ended: setting end of stream.
2013/03/24 13:36:30 [ogg.muxer:4] vorbis-dev: Starting new sequentialized ogg stream.
2013/03/24 13:36:30 [ogg.muxer:4] vorbis-dev: Starting all streams
2013/03/24 13:36:30 [decoder:4] Decoding "/home/kevin/radio/content/test/a.ogg" ended: Ogg.End_of_stream.
2013/03/24 13:36:30 [test(dot)pls:3] Finished with "/home/kevin/radio/content/test/a.ogg".
2013/03/24 13:36:30 [decoder:4] Trying method "META" for "/home/kevin/radio/content/test/b.ogg"...
2013/03/24 13:36:30 [decoder:4] Trying method "WAV" for "/home/kevin/radio/content/test/b.ogg"...
2013/03/24 13:36:30 [decoder.wav:4] Invalid file extension for "/home/kevin/radio/content/test/b.ogg"!
2013/03/24 13:36:30 [decoder:4] Trying method "MIDI" for "/home/kevin/radio/content/test/b.ogg"...
2013/03/24 13:36:30 [decoder:4] Trying method "IMAGE" for "/home/kevin/radio/content/test/b.ogg"...
2013/03/24 13:36:30 [decoder:4] Trying method "FLAC" for "/home/kevin/radio/content/test/b.ogg"...
2013/03/24 13:36:30 [decoder.flac:4] Invalid file extension for "/home/kevin/radio/content/test/b.ogg"!
2013/03/24 13:36:30 [decoder:4] Trying method "AAC" for "/home/kevin/radio/content/test/b.ogg"...
2013/03/24 13:36:30 [decoder.aac:4] Invalid file extension for "/home/kevin/radio/content/test/b.ogg"!
2013/03/24 13:36:30 [decoder:4] Trying method "MP4" for "/home/kevin/radio/content/test/b.ogg"...
2013/03/24 13:36:30 [decoder.mp4:4] Invalid file extension for "/home/kevin/radio/content/test/b.ogg"!
2013/03/24 13:36:30 [decoder:4] Trying method "OGG" for "/home/kevin/radio/content/test/b.ogg"...
2013/03/24 13:36:31 [decoder.ogg:4] File "/home/kevin/radio/content/test/b.ogg" recognized as audio=2 video=0.
2013/03/24 13:36:31 [decoder:3] Method "OGG" accepted "/home/kevin/radio/content/test/b.ogg".
2013/03/24 13:36:31 [metadata.flac:4] Invalid file extension for "/home/kevin/radio/content/test/b.ogg"!
2013/03/24 13:36:31 [metadata.mp4:4] Invalid file extension for "/home/kevin/radio/content/test/b.ogg"!
2013/03/24 13:36:31 [decoder.taglib:4] Invalid file extension for "/home/kevin/radio/content/test/b.ogg"!
2013/03/24 13:36:31 [test(dot)pls:3] Prepared "/home/kevin/radio/content/test/b.ogg" (RID 10).
2013/03/24 13:36:31 [ogg.muxer:4] vorbis-dev: Setting end of track 1e520558.
2013/03/24 13:36:31 [ogg.muxer:4] vorbis-dev: Every ogg logical tracks have ended: setting end of stream.
2013/03/24 13:36:31 [ogg.muxer:4] vorbis-dev: Starting new sequentialized ogg stream.
2013/03/24 13:36:31 [ogg.muxer:4] vorbis-dev: Starting all streams
2013/03/24 13:36:31 [decoder:4] Decoding "/home/kevin/radio/content/test/b.ogg" ended: Ogg.End_of_stream.
2013/03/24 13:36:31 [test(dot)pls:3] Finished with "/home/kevin/radio/content/test/b.ogg".
2013/03/24 13:36:31 [sequence_5235:4] Activations changed: static=[], dynamic=[switch_5237:fallback_5238:mksafe:vorbis-dev:vorbis-dev, switch_5237:fallback_5238:mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:36:31 [switch_5237:4] Activations changed: static=[], dynamic=[fallback_5238:mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:36:31 [mksafe:3] Switch to safe_blank with forgetful transition.
2013/03/24 13:36:31 [fallback_5238:4] Activations changed: static=[], dynamic=[mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:36:31 [safe_blank:4] Activations changed: static=[mksafe:vorbis-dev:vorbis-dev], dynamic=[mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:37:00 [mksafe:3] Switch to fallback_5238 with transition.
2013/03/24 13:37:00 [safe_blank:4] Activations changed: static=[], dynamic=[mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:37:00 [fallback_5238:4] Activations changed: static=[mksafe:vorbis-dev:vorbis-dev], dynamic=[mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:37:00 [fallback_5238:3] Switch to switch_5237.
2013/03/24 13:37:00 [switch_5237:4] Activations changed: static=[fallback_5238:mksafe:vorbis-dev:vorbis-dev], dynamic=[fallback_5238:mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:37:00 [switch_5237:3] Switch to sequence_5235.
2013/03/24 13:37:00 [sequence_5235:4] Activations changed: static=[switch_5237:fallback_5238:mksafe:vorbis-dev:vorbis-dev], dynamic=[switch_5237:fallback_5238:mksafe:vorbis-dev:vorbis-dev, switch_5237:fallback_5238:mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:37:00 [decoder:4] Trying method "META" for "/home/kevin/radio/content/test/c.ogg"...
2013/03/24 13:37:00 [decoder:4] Trying method "WAV" for "/home/kevin/radio/content/test/c.ogg"...
2013/03/24 13:37:00 [decoder.wav:4] Invalid file extension for "/home/kevin/radio/content/test/c.ogg"!
2013/03/24 13:37:00 [decoder:4] Trying method "MIDI" for "/home/kevin/radio/content/test/c.ogg"...
2013/03/24 13:37:00 [decoder:4] Trying method "IMAGE" for "/home/kevin/radio/content/test/c.ogg"...
2013/03/24 13:37:00 [decoder:4] Trying method "FLAC" for "/home/kevin/radio/content/test/c.ogg"...
2013/03/24 13:37:00 [decoder.flac:4] Invalid file extension for "/home/kevin/radio/content/test/c.ogg"!
2013/03/24 13:37:00 [decoder:4] Trying method "AAC" for "/home/kevin/radio/content/test/c.ogg"...
2013/03/24 13:37:00 [decoder.aac:4] Invalid file extension for "/home/kevin/radio/content/test/c.ogg"!
2013/03/24 13:37:00 [decoder:4] Trying method "MP4" for "/home/kevin/radio/content/test/c.ogg"...
2013/03/24 13:37:00 [decoder.mp4:4] Invalid file extension for "/home/kevin/radio/content/test/c.ogg"!
2013/03/24 13:37:00 [decoder:4] Trying method "OGG" for "/home/kevin/radio/content/test/c.ogg"...
2013/03/24 13:37:00 [decoder.ogg:4] File "/home/kevin/radio/content/test/c.ogg" recognized as audio=2 video=0.
2013/03/24 13:37:00 [decoder:3] Method "OGG" accepted "/home/kevin/radio/content/test/c.ogg".
2013/03/24 13:37:00 [metadata.flac:4] Invalid file extension for "/home/kevin/radio/content/test/c.ogg"!
2013/03/24 13:37:00 [metadata.mp4:4] Invalid file extension for "/home/kevin/radio/content/test/c.ogg"!
2013/03/24 13:37:00 [decoder.taglib:4] Invalid file extension for "/home/kevin/radio/content/test/c.ogg"!
2013/03/24 13:37:00 [test(dot)pls:3] Prepared "/home/kevin/radio/content/test/c.ogg" (RID 11).
2013/03/24 13:37:00 [ogg.muxer:4] vorbis-dev: Setting end of track 38ec3b3.
2013/03/24 13:37:00 [ogg.muxer:4] vorbis-dev: Every ogg logical tracks have ended: setting end of stream.
2013/03/24 13:37:00 [ogg.muxer:4] vorbis-dev: Starting new sequentialized ogg stream.
2013/03/24 13:37:00 [ogg.muxer:4] vorbis-dev: Starting all streams
2013/03/24 13:37:00 [decoder:4] Decoding "/home/kevin/radio/content/test/c.ogg" ended: Ogg.End_of_stream.
2013/03/24 13:37:01 [test(dot)pls:3] Finished with "/home/kevin/radio/content/test/c.ogg".
2013/03/24 13:37:01 [decoder:4] Trying method "META" for "/home/kevin/radio/content/test/d.ogg"...
2013/03/24 13:37:01 [decoder:4] Trying method "WAV" for "/home/kevin/radio/content/test/d.ogg"...
2013/03/24 13:37:01 [decoder.wav:4] Invalid file extension for "/home/kevin/radio/content/test/d.ogg"!
2013/03/24 13:37:01 [decoder:4] Trying method "MIDI" for "/home/kevin/radio/content/test/d.ogg"...
2013/03/24 13:37:01 [decoder:4] Trying method "IMAGE" for "/home/kevin/radio/content/test/d.ogg"...
2013/03/24 13:37:01 [decoder:4] Trying method "FLAC" for "/home/kevin/radio/content/test/d.ogg"...
2013/03/24 13:37:01 [decoder.flac:4] Invalid file extension for "/home/kevin/radio/content/test/d.ogg"!
2013/03/24 13:37:01 [decoder:4] Trying method "AAC" for "/home/kevin/radio/content/test/d.ogg"...
2013/03/24 13:37:01 [decoder.aac:4] Invalid file extension for "/home/kevin/radio/content/test/d.ogg"!
2013/03/24 13:37:01 [decoder:4] Trying method "MP4" for "/home/kevin/radio/content/test/d.ogg"...
2013/03/24 13:37:01 [decoder.mp4:4] Invalid file extension for "/home/kevin/radio/content/test/d.ogg"!
2013/03/24 13:37:01 [decoder:4] Trying method "OGG" for "/home/kevin/radio/content/test/d.ogg"...
2013/03/24 13:37:01 [decoder.ogg:4] File "/home/kevin/radio/content/test/d.ogg" recognized as audio=2 video=0.
2013/03/24 13:37:01 [decoder:3] Method "OGG" accepted "/home/kevin/radio/content/test/d.ogg".
2013/03/24 13:37:01 [metadata.flac:4] Invalid file extension for "/home/kevin/radio/content/test/d.ogg"!
2013/03/24 13:37:01 [metadata.mp4:4] Invalid file extension for "/home/kevin/radio/content/test/d.ogg"!
2013/03/24 13:37:01 [decoder.taglib:4] Invalid file extension for "/home/kevin/radio/content/test/d.ogg"!
2013/03/24 13:37:01 [test(dot)pls:3] Prepared "/home/kevin/radio/content/test/d.ogg" (RID 12).
2013/03/24 13:37:01 [ogg.muxer:4] vorbis-dev: Setting end of track 356c410b.
2013/03/24 13:37:01 [ogg.muxer:4] vorbis-dev: Every ogg logical tracks have ended: setting end of stream.
2013/03/24 13:37:01 [ogg.muxer:4] vorbis-dev: Starting new sequentialized ogg stream.
2013/03/24 13:37:01 [ogg.muxer:4] vorbis-dev: Starting all streams
2013/03/24 13:37:01 [decoder:4] Decoding "/home/kevin/radio/content/test/d.ogg" ended: Ogg.End_of_stream.
2013/03/24 13:37:01 [test(dot)pls:3] Finished with "/home/kevin/radio/content/test/d.ogg".
2013/03/24 13:37:01 [sequence_5235:4] Activations changed: static=[], dynamic=[switch_5237:fallback_5238:mksafe:vorbis-dev:vorbis-dev, switch_5237:fallback_5238:mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:37:01 [switch_5237:4] Activations changed: static=[], dynamic=[fallback_5238:mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:37:01 [mksafe:3] Switch to safe_blank with forgetful transition.
2013/03/24 13:37:01 [fallback_5238:4] Activations changed: static=[], dynamic=[mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:37:01 [safe_blank:4] Activations changed: static=[mksafe:vorbis-dev:vorbis-dev], dynamic=[mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:37:13 [main:3] Shutdown started!
2013/03/24 13:37:13 [main:3] Waiting for threads to terminate...
2013/03/24 13:37:13 [mp3-dev:4] Activations changed: static=[], dynamic=[].
2013/03/24 13:37:13 [source:4] Source mp3-dev gets down.
2013/03/24 13:37:13 [mp3-dev:3] Closing connection...
2013/03/24 13:37:13 [mksafe:4] Activations changed: static=[vorbis-dev:vorbis-dev], dynamic=[].
2013/03/24 13:37:13 [mksafe:4] Disabling caching mode.
2013/03/24 13:37:13 [vorbis-dev:4] Activations changed: static=[], dynamic=[].
2013/03/24 13:37:13 [source:4] Source vorbis-dev gets down.
2013/03/24 13:37:13 [ogg.muxer:4] vorbis-dev: Setting end of track 2197dba3.
2013/03/24 13:37:13 [ogg.muxer:4] vorbis-dev: Every ogg logical tracks have ended: setting end of stream.
2013/03/24 13:37:13 [vorbis-dev:3] Closing connection...
2013/03/24 13:37:13 [mksafe:4] Activations changed: static=[], dynamic=[].
2013/03/24 13:37:13 [source:4] Source mksafe gets down.
2013/03/24 13:37:13 [fallback_5238:4] Activations changed: static=[], dynamic=[].
2013/03/24 13:37:13 [source:4] Source fallback_5238 gets down.
2013/03/24 13:37:13 [switch_5237:4] Activations changed: static=[], dynamic=[].
2013/03/24 13:37:13 [source:4] Source switch_5237 gets down.
2013/03/24 13:37:13 [sequence_5235:4] Activations changed: static=[], dynamic=[switch_5237:fallback_5238:mksafe:vorbis-dev:vorbis-dev].
2013/03/24 13:37:13 [sequence_5235:4] Activations changed: static=[], dynamic=[].
2013/03/24 13:37:13 [source:4] Source sequence_5235 gets down.
2013/03/24 13:37:13 [test(dot)pls:4] Activations changed: static=[], dynamic=[].
2013/03/24 13:37:13 [source:4] Source test(dot)pls gets down.
2013/03/24 13:37:13 [safe_blank:4] Activations changed: static=[mksafe:vorbis-dev:vorbis-dev], dynamic=[].
2013/03/24 13:37:13 [safe_blank:4] Activations changed: static=[], dynamic=[].
2013/03/24 13:37:13 [source:4] Source safe_blank gets down.
2013/03/24 13:37:13 [clock.wallclock_main:3] Streaming loop stopped.
2013/03/24 13:37:13 [threads:3] Thread "wallclock_main" terminated (0 remaining).
2013/03/24 13:37:13 [main:3] Cleaning downloaded files...
2013/03/24 13:37:13 [main:3] Freeing memory...
2013/03/24 13:37:13 >>> LOG END
[Re-posting from the ML]
What could be happening here is that the third file is not resolved fast enough, so there is a tiny gap before it, and merge_track() won't do anything about it.
The sequence() operator that is behind merge_tracks is not logging much, so it won't help in confirming the diagnostic. But in any, you need to do something to avoid the risk of a gap, given that your files are so short.
One solution is to use playlist.safe() because it resolves requests in advance (iirc) and see if it helps. Another solution could be to use a queue in which you manually put your files -- this way, you don't even have to merge tracks.
Thanks. I have tried both playlist.safe and using longer files, so that is not a solution.
I pared this down to a simple example just to demonstrate the problem.
I'd rather stick with my current approach as 1) the methodology works for me; and 2) it will resolve a likely bug rather than just sidestep the problem,
Kevin
Sent from my iPhone
On 2013-03-24, at 14:31, David Baelde notifications@github.com wrote:
[Re-posting from the ML]
What could be happening here is that the third file is not resolved fast enough, so there is a tiny gap before it, and merge_track() won't do anything about it.
The sequence() operator that is behind merge_tracks is not logging much, so it won't help in confirming the diagnostic. But in any, you need to do something to avoid the risk of a gap, given that your files are so short.
One solution is to use playlist.safe() because it resolves requests in advance (iirc) and see if it helps. Another solution could be to use a queue in which you manually put your files -- this way, you don't even have to merge tracks.
— Reply to this email directly or view it on GitHub.
Looks like this bug involves sequence since it looks like that merge is defined using sequence:
# Merge all tracks from a source.
# @category Source / Track Processing
def merge_tracks(s)
sequence(merge=true,[s])
end
The following is a test script meant to use sequence to announce every 15 seconds a count down (3,2,1) and the number of seconds past the minute.
After the first run (i.e .the first minute) in which it runs as expected, only the last file in the sequence (i.e. the number of seconds past the minute) is played.
I would expect that sequence always plays what is in the sequence.
The script is being run under Ubuntu precise, liquidsoap-full 1.1.1 compiled from cvs
#!/usr/local/bin/liquidsoap
#
set("log.syslog",false)
set("log.file.path","/tmp/countdown-radio.log")
set("log.level",5)
set("log.stdout",true)
set("server.socket",false)
set("server.telnet",false)
set("init.daemon",false)
set("scheduler.log",true)
set("scheduler.event_queues",5)
set("scheduler.generic_queues",5)
set("scheduler.fast_queues",5)
set("scheduler.generic_queues",5)
set("scheduler.non_blocking_queues",5)
MYSTATION="Countdown test"
print(MYSTATION)
_0sec = single("say:0 seconds!")
_15sec = single("say:15 seconds!")
_30sec = single("say:30 seconds!")
_45sec = single("say:45 seconds!")
_1 = single("say:1!")
_2 = single("say:2!")
_3 = single("say:3!")
ac = audio_to_stereo(mksafe(playlist(id="ac",mode="random", reload=7200, "/MUSIC/AC")))
# def countdown()
# sequence(merge=true,[
# _3,
# _2,
# _1
# ])
# end
def _0secs_countdown()
sequence(merge=true,[
_3,
_2,
_1,
_0sec
])
end
def _15secs_countdown()
sequence(merge=true,[
_3,
_2,
_1,
_15sec
])
end
def _30secs_countdown()
sequence(merge=true,[
_3,
_2,
_1,
_30sec
])
end
def _45secs_countdown()
sequence(merge=true,[
_3,
_2,
_1,
_45sec
])
end
timed_promotions =
switch([
({ 0s} , _0secs_countdown() ),
({ 15s} , _15secs_countdown() ),
({ 30s} , _30secs_countdown() ),
({ 45s} , _45secs_countdown() )
])
radio = ac
radio = add([radio,timed_promotions])
output.icecast( %aacplus(channels=2,bitrate=48), host = "127.0.0.1", port = 8000, password = "XXXXX", mount = "countdown.aac", name="#{quote(MYSTATION)}",
genre="Various", url="http://10.1.1.101", description="Countdown Testing Radio", radio)
Ok, so I have been able to reproduce with this simple test script (inspired from the bug report):
count = playlist("count.pls")
m = playlist("~/Music")
s = switch(track_sensitive=false,
[
({0s},count),
({10s},count),
({20s},count),
({30s},count),
({40s},count),
({50s},count),
({true},m)
])
s = mksafe(s)
output.pulseaudio(s)
where playlist count.pls
contains
say:0
say:1
say:2
The count
source should be thought as jingle, and we want to play the whole playlist once every 10sec.
There are two problems here.
If we use track_sensitive=true
, we don't hear the playlist every 10 sec but only at end of tracks (if they end on the right second) and with track_sensitive=false
the source count
is only played for one sec. So, we want to hear count when the associated predicate becomes true, but we want to go back to m when there is a track boundary. How can we achieve this? One way could be to generate a track boundary for m
when the predicate becomes true using a new operator and use track_sensitive=true
... What do you think of this?
The source count
still advances when it is not played, so the first time we hear "zero" but at next occurences we hear something different. Is there a way to freeze a source when it is not played?
Ok, the above example is not exactly what the BR meant. It's more like
count = playlist("count.pls")
count = merge_tracks(count)
m = playlist("~/Music")
jingle = switch([({0s},count),({10s},count),({20s},count),({30s},count),({40s},count),({50s},count)])
s = add([m,jingle])
s = mksafe(s)
output.pulseaudio(s)
I have an idea about how to solve this. I'll keep you posted.
Here is my proposed (non-working) solution:
def playlist.merge(uri) =
pl = playlist.reloadable(uri)
reload = fst(pl)
s = snd(pl)
s = merge_tracks(s)
on_track(fun(m)->reload(),s)
end
count = playlist.merge("count.pls")
count = on_track(fun (_)->log("**** NEW TRACK"), count)
m = playlist("~/Music")
jingle = switch([({0s},count),({10s},count),({20s},count),({30s},count),({40s},count),({50s},count)])
s = add([m,jingle])
s = mksafe(s)
output.pulseaudio(s)
Unfortunately, merge_tracks
does not do its job: the on_track
is triggered for each item of the playlist (and moreover only two are played). I'll leave it to @dbaelde from now on I guess...
Last comment, in sequence
, it seems that the merge
parameter is used in get_frame
only if List.length sources > 1
. So I really don't see how merge_tracks
is supposed to be working!.... My guess is that sequence
only merges between souces.....
Finally, I got a solution:
def playlist.merge(uri) =
pl = playlist.reloadable(uri)
reload = fst(pl)
s = snd(pl)
s = merge_tracks(s)
on_end(delay=0.,fun(_,_)->reload(),s)
end
count = playlist.merge("count.pls")
m = playlist("~/Music")
jingle = switch([({0s},count),({10s},count),({20s},count),({30s},count),({40s},count),({50s},count)])
s = add([m,jingle])
s = mksafe(s)
output.pulseaudio(s)
Oh yeah.
I'll add playlist.merge to the standard library.
Ah I forgot to mention that you need this patch : https://github.com/savonet/liquidsoap/pull/51
Hi Samuel:
Fantastic! I will try to figure out how to incorporate the patch, as I am a newbie to Github.
Would it be simpler for me just to delete my current liquidsoap-full directory and re-fork the package from scratch? Then do a build and reinstall?
Sorry for the newbie questions, I have 40+ years computing experience but have not used git etc before.
Kevin
On 2013-03-29, at 12:32 PM, Samuel Mimram notifications@github.com wrote:
Ah I forgot to mention that you need this patch : #51
— Reply to this email directly or view it on GitHub.
Hi,
Good to know that there are old-timers around here :)
Don't delete lqiuidsoap-full! You can simply go into its liquidsoap
subdir and type git checkout sequence
(and if you want to go back to trunk git checkout master
).
++
Sam.
Hmmm:
kevin@citadel:~/liquidsoap-full/liquidsoap$ ls aclocal.m4 config.log doc Makefile scripts autom4te.cache config.status examples Makefile.defs src bootstrap configure gui Makefile.defs.in CHANGES configure.ac INSTALL Makefile.rules config.h configure-with-options install-sh README config.h.in COPYING m4 RELEASING kevin@citadel:~/liquidsoap-full/liquidsoap$ git checkout sequence error: pathspec 'sequence' did not match any file(s) known to git. kevin@citadel:~/liquidsoap-full/liquidsoap$
On 2013-03-29, at 1:07 PM, Samuel Mimram notifications@github.com wrote:
git checkout sequence
Did you do a git pull
before to fetch the changes?
Nope! Like I said, total newbie!
It seems to have fetched a number of updates:
kevin@citadel:~/liquidsoap-full/liquidsoap$ git pull remote: Counting objects: 313, done. remote: Compressing objects: 100% (126/126), done. remote: Total 204 (delta 168), reused 111 (delta 78) Receiving objects: 100% (204/204), 26.62 KiB, done. Resolving deltas: 100% (168/168), completed with 59 local objects. From git://github.com/savonet/liquidsoap 0836328..763ebbb master -> origin/master
Now can I just "make" and "make install" or do I have to bootstrap and configure again?
Sorry for the dumb questions!
On 2013-03-29, at 1:18 PM, Samuel Mimram notifications@github.com wrote:
Did you do a git pull before to fetch the changes?
— Reply to this email directly or view it on GitHub.
make
and make install
should be enough here since I did not change anything related to configure or Makefiles! (although it won't harm)
Hi Samuel:
Okay, and I am looking at the github docs to reduce future questions!
Thanks very much!
Kevin
On 2013-03-29, at 1:25 PM, Samuel Mimram notifications@github.com wrote:
make and make install should be enough here since I did not change anything related to configure or Makefiles! (although it won't harm)
— Reply to this email directly or view it on GitHub.
New version installed, let's see what happens!
I'll let you know.
On 2013-03-29, at 1:25 PM, Samuel Mimram notifications@github.com wrote:
make and make install should be enough here since I did not change anything related to configure or Makefiles! (although it won't harm)
— Reply to this email directly or view it on GitHub.
Great! :)
On Fri, Mar 29, 2013 at 9:36 PM, mcquiggi notifications@github.com wrote:
New version installed, let's see what happens!
I'll let you know.
On 2013-03-29, at 1:25 PM, Samuel Mimram notifications@github.com wrote:
make and make install should be enough here since I did not change anything related to configure or Makefiles! (although it won't harm)
— Reply to this email directly or view it on GitHub.
— Reply to this email directly or view it on GitHubhttps://github.com/savonet/liquidsoap/issues/46#issuecomment-15659427 .
It works! My playlists now play properly through merge_tracks() and switch().
Thanks to everyone for the assistance!!
Kevin
Sent from my iPhone
On 2013-03-29, at 13:36, Samuel Mimram notifications@github.com wrote:
Great! :)
On Fri, Mar 29, 2013 at 9:36 PM, mcquiggi notifications@github.com wrote:
New version installed, let's see what happens!
I'll let you know.
On 2013-03-29, at 1:25 PM, Samuel Mimram notifications@github.com wrote:
make and make install should be enough here since I did not change anything related to configure or Makefiles! (although it won't harm)
— Reply to this email directly or view it on GitHub.
— Reply to this email directly or view it on GitHubhttps://github.com/savonet/liquidsoap/issues/46#issuecomment-15659427 .
— Reply to this email directly or view it on GitHub.
Hi Samuel and All:
Thanks for working on issue #46.
Unfortunately there is still a problem!
The merge_tracks() now works fine, and the switch() construct can be used to activate a merged playlist at a specified time.
However, the source based on the merged_tracks() playlist now plays -forever-, not just once. The first activation causes the playlist to loop forever. The proper functionality, I believe, is for the merged playlist to be played ONCE, and then have the output revert to the other sources in the model as appropriate.
Here's my sample code:
zzz = merge_tracks(playlist.safe(reload_mode="watch", mode="normal", "~/radio/playlists/test.pls")) s=switch([ ({0s}, zzz), ({30s}, zzz) ])
radio = fallback(track_sensitive=false, [ s, security ] )
Once the "zzz" source is activated at 0 seconds, the "zzz" source plays forever. What should happen is that the merged tracks of "zzz" play once, then there is fallback to "security" until 30 seconds, then the "zzz" source is played once, then back to "security" until 0 seconds, et cetera.
Sorry that I jumped the gun in stating that the issue was resolved. Anything I can do to assist let me know. I wish I knew ocaml and the other base languages of LS!
Kevin
On 2013-03-29, at 3:19 PM, Kevin McQuiggin mcquiggi@me.com wrote:
It works! My playlists now play properly through merge_tracks() and switch().
Thanks to everyone for the assistance!!
Kevin
Sent from my iPhone
On 2013-03-29, at 13:36, Samuel Mimram notifications@github.com wrote:
Great! :)
On Fri, Mar 29, 2013 at 9:36 PM, mcquiggi notifications@github.com wrote:
New version installed, let's see what happens!
I'll let you know.
On 2013-03-29, at 1:25 PM, Samuel Mimram notifications@github.com wrote:
make and make install should be enough here since I did not change anything related to configure or Makefiles! (although it won't harm)
— Reply to this email directly or view it on GitHub.
— Reply to this email directly or view it on GitHubhttps://github.com/savonet/liquidsoap/issues/46#issuecomment-15659427 .
— Reply to this email directly or view it on GitHub.
Yes this is expected: merge_tracks
merges the tracks as long as there are some. In order to play the whole playlist once as one track you should use the playlist.merge
function that I gave earlier. Does the following work for you?
def playlist.merge(uri) =
pl = playlist.reloadable(uri)
reload = fst(pl)
s = snd(pl)
s = merge_tracks(s)
on_end(delay=0.,fun(_,_)->reload(),s)
end
zzz = playlist.merge("~/radio/playlists/test.pls")
s=switch([ ({0s}, zzz),
({30s}, zzz)
])
# Simple scheduling:
radio = fallback(track_sensitive=false, [
s,
security
]
)
See my answer on https://github.com/savonet/liquidsoap/issues/46
++
On Sat, Mar 30, 2013 at 5:31 PM, Kevin McQuiggin mcquiggi@sfu.ca wrote:
Hi Samuel and All:
Thanks for working on issue #46.
Unfortunately there is still a problem!
The merge_tracks() now works fine, and the switch() construct can be used to activate a merged playlist at a specified time.
However, the source based on the merged_tracks() playlist now plays -forever-, not just once. The first activation causes the playlist to loop forever. The proper functionality, I believe, is for the merged playlist to be played ONCE, and then have the output revert to the other sources in the model as appropriate.
Here's my sample code:
zzz = merge_tracks(playlist.safe(reload_mode="watch", mode="normal", "~/radio/playlists/test.pls")) s=switch([ ({0s}, zzz), ({30s}, zzz) ])
Simple scheduling:
radio = fallback(track_sensitive=false, [ s, security ] )
Once the "zzz" source is activated at 0 seconds, the "zzz" source plays forever. What should happen is that the merged tracks of "zzz" play once, then there is fallback to "security" until 30 seconds, then the "zzz" source is played once, then back to "security" until 0 seconds, et cetera.
Sorry that I jumped the gun in stating that the issue was resolved. Anything I can do to assist let me know. I wish I knew ocaml and the other base languages of LS!
Kevin
On 2013-03-29, at 3:19 PM, Kevin McQuiggin mcquiggi@me.com wrote:
It works! My playlists now play properly through merge_tracks() and switch().
Thanks to everyone for the assistance!!
Kevin
Sent from my iPhone
On 2013-03-29, at 13:36, Samuel Mimram notifications@github.com wrote:
Great! :)
On Fri, Mar 29, 2013 at 9:36 PM, mcquiggi notifications@github.com wrote:
New version installed, let's see what happens!
I'll let you know.
On 2013-03-29, at 1:25 PM, Samuel Mimram notifications@github.com wrote:
make and make install should be enough here since I did not change anything related to configure or Makefiles! (although it won't harm)
— Reply to this email directly or view it on GitHub.
— Reply to this email directly or view it on GitHub< https://github.com/savonet/liquidsoap/issues/46#issuecomment-15659427> .
— Reply to this email directly or view it on GitHubhttps://github.com/savonet/liquidsoap/issues/46#issuecomment-15659470 .
Own the Future-Intel(R) Level Up Game Demo Contest 2013 Rise to greatness in Intel's independent game demo contest. Compete for recognition, cash, and the chance to get your game on Steam. $5K grand prize plus 10 genre and skill prizes. Submit your demo by 6/6/13. http://altfarm.mediaplex.com/ad/ck/12124-176961-30367-2
Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Sam, you seem to imply that there is a difference between merge_tracks and playlist.merge wrt. merging tracks, but I don't understand your point. " merge_tracks merges the tracks as long as there are some" but isn't it the same with playlist.merge?
On Sun, Mar 31, 2013 at 12:00 PM, mcquiggi notifications@github.com wrote:
See my answer on https://github.com/savonet/liquidsoap/issues/46
++
On Sat, Mar 30, 2013 at 5:31 PM, Kevin McQuiggin mcquiggi@sfu.ca wrote:
Hi Samuel and All:
Thanks for working on issue #46.
Unfortunately there is still a problem!
The merge_tracks() now works fine, and the switch() construct can be used to activate a merged playlist at a specified time.
However, the source based on the merged_tracks() playlist now plays -forever-, not just once. The first activation causes the playlist to loop forever. The proper functionality, I believe, is for the merged playlist to be played ONCE, and then have the output revert to the other sources in the model as appropriate.
Here's my sample code:
zzz = merge_tracks(playlist.safe(reload_mode="watch", mode="normal", "~/radio/playlists/test.pls")) s=switch([ ({0s}, zzz), ({30s}, zzz) ])
Simple scheduling:
radio = fallback(track_sensitive=false, [ s, security ] )
Once the "zzz" source is activated at 0 seconds, the "zzz" source plays forever. What should happen is that the merged tracks of "zzz" play once, then there is fallback to "security" until 30 seconds, then the "zzz" source is played once, then back to "security" until 0 seconds, et cetera.
Sorry that I jumped the gun in stating that the issue was resolved. Anything I can do to assist let me know. I wish I knew ocaml and the other base languages of LS!
Kevin
On 2013-03-29, at 3:19 PM, Kevin McQuiggin mcquiggi@me.com wrote:
It works! My playlists now play properly through merge_tracks() and switch().
Thanks to everyone for the assistance!!
Kevin
Sent from my iPhone
On 2013-03-29, at 13:36, Samuel Mimram notifications@github.com wrote:
Great! :)
On Fri, Mar 29, 2013 at 9:36 PM, mcquiggi notifications@github.com wrote:
New version installed, let's see what happens!
I'll let you know.
On 2013-03-29, at 1:25 PM, Samuel Mimram notifications@github.com wrote:
make and make install should be enough here since I did not change anything related to configure or Makefiles! (although it won't harm)
— Reply to this email directly or view it on GitHub.
— Reply to this email directly or view it on GitHub< https://github.com/savonet/liquidsoap/issues/46#issuecomment-15659427> .
— Reply to this email directly or view it on GitHub< https://github.com/savonet/liquidsoap/issues/46#issuecomment-15659470> .
Own the Future-Intel(R) Level Up Game Demo Contest 2013 Rise to greatness in Intel's independent game demo contest. Compete for recognition, cash, and the chance to get your game on Steam. $5K grand prize plus 10 genre and skill prizes. Submit your demo by 6/6/13. http://altfarm.mediaplex.com/ad/ck/12124-176961-30367-2
Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
— Reply to this email directly or view it on GitHubhttps://github.com/savonet/liquidsoap/issues/46#issuecomment-15689338 .
David
Hi Samuel:
Thanks for the clarification, it works well!
Have a nice weekend,
Kevin
On 2013-03-31, at 2:57 AM, Samuel Mimram notifications@github.com wrote:
Yes this is expected: merge_tracks merges the tracks as long as there are some. In order to play the whole playlist once as one track you should use the playlist.merge function that I gave earlier. Does the following work for you?
def playlist.merge(uri) = pl = playlist.reloadable(uri) reload = fst(pl) s = snd(pl) s = merge_tracks(s) onend(delay=0.,fun(,_)->reload(),s) end
zzz = playlist.merge("~/radio/playlists/test.pls") s=switch([ ({0s}, zzz), ({30s}, zzz) ])
Simple scheduling:
radio = fallback(track_sensitive=false, [ s, security ] ) — Reply to this email directly or view it on GitHub.
@dbaelde The difference is that merge_tracks
will loop over the whole playlist forever as one big track, whereas playlist.merge
will play the whole playlist as one track and play it again as one other track, etc.
Reported by Kevin McQuiggin on the ML:
BACKGROUND:
I want to use a switch() construct to play an -entire- playlist in normal (i.e. top to bottom) order at a specified time. I am using merge_tracks() to join the target playlist into a single track.
PLATFORM:
Liquidsoap 1.1.0 running on an Intel machine; Ubuntu 12.10 with all updates applied.
PLAYLIST:
I have the following playlist, named "test.pls", which consists of 4 short .ogg files. Each .ogg file is a 2-second long item that just contains the spoken audio "Item A", "Item B", "Item C", and "Item D". The merged audio file will be only about 8 seconds in length. Here is the playlist file:
PROGRAM CODE:
I have written a short test program to play the merged "test.pls" source twice per minute. Here is my short test program:
EXPECTED BEHAVIOUR:
I expected that the program would play the entire "test.pls" (items a, b, c, and d.ogg) twice every minute, at 0 seconds and 30 seconds of every minute. I should hear "Item A, Item B, Item C, Item D" for about 8 seconds, starting at 0 seconds; and then again at 30 seconds past each minute.
OBSERVED BEHAVIOUR:
The program plays only 2 items, "a.ogg" and "b.ogg" at 0 seconds of the minute; then it plays the other two items, "c.ogg" and "d.ogg" at 30 seconds past the minute. This behaviour continues each minute.