anchor.diff:                    (list a b)))
   
                  (t (ecase (- atom-size 16)
  +                    (4 (stream-read-u32 mp4-file))
                       (2 (stream-read-u16 mp4-file))
                       (1 (stream-read-u8 mp4-file))))))))))
   
   ;;;; Audio Property Atoms
  -(defclass atom-trak (mp4-container-atom) ())
  -(defclass atom-minf (mp4-container-atom) ())
  -(defclass atom-moov (mp4-container-atom) ())
  -(defclass atom-udta (mp4-container-atom) ())
  -(defclass atom-mdia (mp4-container-atom) ())
  -(defclass atom-stbl (mp4-container-atom) ())
  -
  -(defclass atom-hdlr (mp4-atom)
  +(defclass |atom-trak| (mp4-container-atom) ())
  +(defclass |atom-minf| (mp4-container-atom) ())
  +(defclass |atom-moov| (mp4-container-atom) ())
  +(defclass |atom-udta| (mp4-container-atom) ())
  +(defclass |atom-mdia| (mp4-container-atom) ())
  +(defclass |atom-stbl| (mp4-container-atom) ())
  +
  +(defclass |atom-hdlr| (mp4-atom)
     ((version :accessor version) ; 1 byte
      (flags   :accessor flags)   ; 3 bytes
      (qtype   :accessor qtype)   ; 4 bytes
  
positive.code:       ;; but for now, we have what we want, so just seek to end of atom
        (stream-seek mp4-file end-of-atom :start))))
  
  (defclass atom-stsd (mp4-atom)
    ((flags       :accessor flags)
     (version     :accessor version)
     (num-entries :accessor num-entries)))
  
  (defmethod initialize-instance :after ((me atom-stsd) &key mp4-file &allow-other-keys)
    (declare #.utils:*standard-optimize-settings*)
  
    (with-slots (flags version num-entries) me
  
negative.code:    (lang     :accessor lang)
     (quality  :accessor quality)))
  
  (defmethod initialize-instance :after ((me |atom-mdhd|) &key mp4-file &allow-other-keys)
    (declare #.utils:*standard-optimize-settings*)
  
    (with-slots (version flags c-time m-time scale duration lang quality) me
  