anchor.diff:            (fifo (mezzano.supervisor:make-fifo 50)))
         (bt:make-trhread
          #'(lambda (avi)
  -	   (mezzano.gui.compositor:with-window (window fifo (width avi) (height 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 (namestring path)
  +					  :title (pathname-name path)
   					  :close-button-p t
   					  :damage-function (mezzano.gui.widgets:default-damage-function window)))
   		    (viewer (make-instance 'media-player
  
positive.code:     (values (+ left (max 32 (mezzano.gui:surface-width image)) right)
              (+ top (max 32 (mezzano.gui:surface-height image)) bottom))))
  
  (defmethod play-audio-stream ((avi avi-mjpeg-stream))
    (let ((audio-rec (find-pcm-stream-record avi))
  	astream)
      (when audio-rec
        (bt:make-thread
         #'(lambda ()
  	   (portaudio:initialize)
  	   (stream-playback-start audio-rec)
  	   (setf astream
  		 (portaudio:open-default-stream 0 (number-of-channels audio-rec) :float (coerce (sample-rate audio-rec) 'double-float)
  						(/ (/ (rate audio-rec) (scale audio-rec)) (number-of-channels audio-rec))))
  	   (sleep (* (start audio-rec) (/ (scale audio-rec) (rate audio-rec))))
  	   (unwind-protect
  		(loop for cur = (if (pause avi) cur (pop (rcursor audio-rec)))
  		   for src = (frame cur)
  		   until (finish avi) do
  		   ;; pause synching protocol w/video stream
  		     (bt:acquire-lock (pause-lock avi))
  		   ;; send the audio frame
  		     (mezzano.driver.intel-hda::play-sound src (first mezzano.driver.intel-hda::*cards*))
  		     (loop while (pause avi) do (sleep 0.2))
  		     (bt:release-lock (pause-lock avi))
  		   ;; advance the cursor lock
  		     (bt:acquire-lock (vacancy-lock (car (rcursor audio-rec))))
  		     (bt:release-lock (vacancy-lock cur))
  		     (when (eql cur (final audio-rec))
  		       (return))
  		     (sleep (/ (scale audio-rec) (rate audio-rec))))
  	     (stream-playback-stop audio-rec)))))))
  
  (defmethod play-video-stream ((avi avi-mjpeg-stream))
    (with-simple-restart (abort "Close media player")
      (let ((font (mezzano.gui.font:open-font
                   mezzano.gui.font:*default-monospace-font*
  
negative.code: 		      (mezzano.gui.compositor:damage-window window
  							    0 0
  							    width height))
  		    (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 (/ (cl-video:scale rec) (cl-video:rate rec)))
  		    
  		    (handler-case
  			(dispatch-event viewer (mezzano.supervisor:fifo-pop fifo))
  