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:           lang     (stream-read-u16 mp4-file)
            quality  (stream-read-u16 mp4-file))))
  
  (defclass atom-esds (mp4-atom)
    ((version      :accessor version)       ; 1 byte
     (flags        :accessor flags)         ; 3 bytes
     (esid         :accessor esid)          ; 2 bytes
  
negative.code:    (rmask   :accessor rmask)   ; 4 bytes
     (mhdlr   :accessor mhdlr))) ; null-terminated string (but we're reading it as octets)
  
  (defmethod initialize-instance :after ((me |atom-hdlr|) &key mp4-file &allow-other-keys)
    (declare #.utils:*standard-optimize-settings*)
  
    (with-slots (version flags qtype mtype resv rflag rmask mhdlr atom-size) me
  