anchor.diff:  		(buffer (make-array `(,height ,width) :element-type 'xlib:pixel))
   		(image (xlib:create-image  :data buffer :depth 24
   					   :height height :width width))
  -		(rec (find-mjpeg-stream-record avi)))
  -	   (sleep (* (start rec) (/ (scale rec) (rate rec)))) ;stream delay, if any
  +		(rec (find-video-stream-record container)))
   	   (unwind-protect
   		(progn
  -		  (setf (xlib:wm-name window) (pathname-name (filename avi)))
  +		  (setf (xlib:wm-name window) (pathname-name (filename container)))
   		  (xlib:map-window window)
   		  (stream-playback-start rec)
   		  (loop with quit = nil until quit
  -		     for cur = (if (pause avi) cur (pop (rcursor rec)))
  +		     for cur = (if (pause container) cur (pop (rcursor rec)))
   		     for src = (frame cur) do
   		       (loop for i from 0 below height do
   			    (loop for j from 0 below width
  
positive.code: 					    display
  					    (xlib:keycode->keysym display code 0))
  				       (#\q
  					(setf (finish avi) t)
  					(setf quit t))
  				       ((#\Space #\p)
  					(setf (pause avi) (not (pause avi)))
  					(bt:acquire-lock (pause-lock avi))
  					(bt:release-lock (pause-lock avi))))
  				     t))))
  	     (stream-playback-stop rec)
  	     (xlib:free-pixmap pixmap)
  
negative.code: 
  (defun play (pathname)
    (decode-file pathname :player-callback
  	       #'(lambda (video)
  		   ;;has to use our specific decode for audio
  		   (let ((a (find-pcm-stream-record video)))
  		     (when a (change-class a 'portaudio-pcm-stream-record)))
  		   (prime-all-streams video)
  		   (play-audio-stream video) (play-video-stream video))))
  