anchor.diff:  		      (mezzano.gui.compositor:damage-window window
   							    0 0
   							    width height))
  -		    (unless (pause avi)
  -		      (bt:acquire-lock (vacancy-lock (car (rcursor rec))))
  -		      (bt:release-lock (vacancy-lock cur)))
  -		    (when (eql cur (final rec))
  +		    (unless (cl-video:pause avi)
  +		      (bt:acquire-lock (cl-video:vacancy-lock (car (cl-video:rcursor rec))))
  +		      (bt:release-lock (cl-video:vacancy-lock cur)))
  +		    (when (eql cur (cl-video:final rec))
   		      (return))
  -		    (sleep (/ (scale rec) (rate rec)))
  +		    (sleep (/ (cl-video:scale rec) (cl-video:rate rec)))
   		    
   		    (handler-case
   			(dispatch-event viewer (mezzano.supervisor:fifo-pop fifo))
  
positive.code: 					   :thread (mezzano.supervisor:current-thread)
  					   :font font
  					   :frame frame))
  		    (rec (find-mjpeg-stream-record avi)))
  	       (sleep (* (start rec) (/ (scale rec) (rate rec)))) ;stream delay, if any
  	       (stream-playback-start rec)
  	       
  	       (loop for cur = (if (pause avi) cur (pop (rcursor rec)))
  		  for src = (frame cur)
  		  with quit = nil until quit do
  		    (loop for i from 0 below height do
  			 (loop for j from 0 below width
  
negative.code:           (fifo (mezzano.supervisor:make-fifo 50)))
        (bt:make-trhread
         #'(lambda (avi)
  	   (mezzano.gui.compositor:with-window (window fifo (cl-video:width avi) (cl-video:height avi))
  	     (let* ((framebuffer (mezzano.gui.compositor:window-buffer window))
  		    (frame (make-instance 'mezzano.gui.widgets:frame
  					  :framebuffer framebuffer
  					  :title (pathname-name path)
  					  :close-button-p t
  					  :damage-function (mezzano.gui.widgets:default-damage-function window)))
  		    (viewer (make-instance 'media-player
  