     parse-remaining-headers
     initialize-decoder
     dup player-gadget [ initialize-gui ] when*
-    [ decode ] [ drop ] recover
-!    decode
+    [ decode ] try
     wait-for-sound
     cleanup
     drop ;

       sequences libc shuffle alien.c-types system openal math
       namespaces threads shuffle opengl arrays ui.gadgets.worlds
       combinators math.parser ui.gadgets ui.render opengl.gl ui
       continuations io.files hints combinators.lib sequences.lib ;

IN: ogg.player


: append-audio ( player -- player bool )
    num-audio-buffers-processed {
        { [ over player-buffers length 1 = over zero? and ] [ drop append-new-audio-buffer t ] }
        { [ over player-buffers length 2 = over zero? and ] [ yield drop f ] }
        { [ t ] [ fill-processed-audio-buffer t ] }
    } cond ;

