[ http://dev.sourcefabric.org/browse/LS-650?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=30798#action_30798 ]
Samuel Mimram commented on LS-650: ---------------------------------- Actually I could reproduce with the slightly simpler following script: s = single("annotate:liq_cue_in=600,liq_cue_out=700:/home/smimram/Music/misc/italien_generique_extrait.mp3") s = cue_cut(s) s = mksafe(s) output.pulseaudio(s) It results in 2013/01/27 12:10:43 [single_6592:4] Remaining: 7.6s, queued: 0.0s, adding: 30.0s (RID 1) 2013/01/27 12:10:43 [clock.wallclock_pulse:2] Source pulse_out(liquidsoap:) failed while streaming: Mad.End_of_stream! 2013/01/27 12:10:43 [clock.wallclock_pulse:3] Raised by primitive operation at file "stream/frame.ml", line 0, characters 0-0 2013/01/27 12:10:43 [clock.wallclock_pulse:3] Called from file "decoder/mad_decoder.ml", line 102, characters 6-21 2013/01/27 12:10:43 [clock.wallclock_pulse:3] Called from file "decoder/decoder.ml", line 401, characters 19-45 2013/01/27 12:10:43 [clock.wallclock_pulse:3] Called from file "tools/tutils.ml", line 80, characters 16-19 2013/01/27 12:10:43 [clock.wallclock_pulse:3] Re-raised at file "tools/tutils.ml", line 82, characters 39-40 2013/01/27 12:10:43 [clock.wallclock_pulse:3] Called from file "operators/cuepoint.ml", line 174, characters 37-57 2013/01/27 12:10:43 [clock.wallclock_pulse:3] Called from file "source.ml", line 500, characters 8-26 2013/01/27 12:10:43 [clock.wallclock_pulse:3] Called from file "operators/switch.ml", line 205, characters 10-18 2013/01/27 12:10:43 [clock.wallclock_pulse:3] Called from file "source.ml", line 500, characters 8-26 2013/01/27 12:10:43 [clock.wallclock_pulse:3] Called from file "outputs/output.ml", line 169, characters 8-23 2013/01/27 12:10:43 [clock.wallclock_pulse:3] Called from file "clock.ml", line 157, characters 17-25 The incriminated line is let seeked_pos = source#seek seek_pos in Clearly this should be fixed. However, we have two options here: either - we catch every exception when we do source#seek - or we have only one exception for every seek implementation (i.e. Seek_failed and not Mad.Blabla, Ogg.Blabla, etc.) which we have to catch - or we do as in Unix interface, where the seek resulting position is not guaranteed to be the one which was requested, and no exception is ever raised I would tend to prefer the third one, but it might make the logic of programs more complicated and bug harder to detect than with the two first. What do you prefer? let seeked_pos = source#seek seek_pos in > Seeking out of track badly supported > ------------------------------------ > > Key: LS-650 > URL: http://dev.sourcefabric.org/browse/LS-650 > Project: Liquidsoap > Issue Type: Bug > Components: Liquidsoap > Affects Versions: NEAR FUTURE > Reporter: Samuel Mimram > Priority: Major > > From Martin on the ML: > Liquidsoap crashes if cue in point is past the end of the track > Hi, Reading the title, it might be tempting to say, "well don't do that :)", > but I think this case should be handled gracefully. Also we found this > problem because we had a track that was corrupted and was reporting its > length as much longer than it really was, hence we discovered this weird > situation :) > Recreating this bug is simple. Just use the following attached script, telnet > into Liquidsoap and issue the following command (make sure the track is > shorter than 600 seconds): > queue.push annotate:liq_cue_in="600",liq_cue_out="700":/home/martin/tmp/x.mp3 > set("log.file.path", "liq.log") > > set("log.stdout", true) > > set("server.telnet", true) > > set("server.telnet.port", 1234) > > > > > queue = audio_to_stereo(id="queue_src", request.equeue(id="queue", > length=0.5)) > queue = cue_cut(queue) > > queue = mksafe(queue) > > > > > > output.alsa(queue) > > I haven't tested this on the Liquidsoap 1.1 beta yet because of taglib > dependency mentioned in previous email, but the Liquidsoap I am running this > script on is fairly recent: > $ liquidsoap --version > Liquidsoap 1.0.1+scm (@:20121101:112655) -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://dev.sourcefabric.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira ------------------------------------------------------------------------------ Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft MVPs and experts. ON SALE this month only -- learn more at: http://p.sf.net/sfu/learnnow-d2d _______________________________________________ Savonet-devl mailing list Savonet-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-devl