anchor.diff:            atom-flags   (stream-read-u24 mp4-file))
       (assert (= 0 (stream-read-u32 mp4-file)) ()
               "a data atom lacks the required null field")
  +
       (setf atom-value
             (cond ((member (atom-type parent)
                            (list +itunes-album+ +itunes-album-artist+ +itunes-artist+
                                  +itunes-comment+ +itunes-composer+ +itunes-copyright+
                                  +itunes-year+ +itunes-encoder+ +itunes-groups+
                                  +itunes-genre-x+ +itunes-lyrics+ +itunes-purchased-date+
  -                               +itunes-title+ +itunes-tool+ +itunes-writer+))
  -                 (stream-read-utf-8-string-with-len mp4-file (- (atom-size me) 16)))
  +                               +itunes-title+ +itunes-tool+ +itunes-writer+)
  +                         :test #'string=)
  +                 (stream-read-utf-8-string mp4-file (- (atom-size me) 16)))
   
                   ((member (atom-type parent)
  -                         (list +itunes-track+
  -                               +itunes-track-n+
  -                               +itunes-disk+))
  +                         (list +itunes-track+ +itunes-track-n+ +itunes-disk+)
  +                         :test #'string=)
                    (stream-read-u16 mp4-file) ; throw away
                    (let* ((a (stream-read-u16 mp4-file))
                           (b (stream-read-u16 mp4-file)))
  
positive.code: root.moov.trak.mdia.minf.stbl.mp4a, and root.moov.trak.mdia.minf.stbl.mp4a.esds"
    (declare #.utils:*standard-optimize-settings*)
  
    (let ((mdhd (tree:find-tree (mp4-atoms mp4-file) (lambda (x) (= (atom-type (tree:data x)) +audioprop-mdhd+))))
          (mp4a (tree:find-tree (mp4-atoms mp4-file) (lambda (x) (= (atom-type (tree:data x)) +audioprop-mp4a+))))
          (esds (tree:find-tree (mp4-atoms mp4-file) (lambda (x) (= (atom-type (tree:data x)) +audioprop-esds+)))))
  
      (if (and mdhd mp4a esds)
          (values (tree:data (first mdhd))
  
negative.code:   (format stream "~a"
            (with-output-to-string (s)
              (with-mp4-atom-slots (me)
                (format s "atom:: type: <~a> @ ~:d of size ~:d"
                        atom-type atom-file-pos atom-size))
              (if (typep me 'atom-data)
                  (with-slots (atom-version atom-flags atom-value atom-type) me
                    (format s " having ilst fields: verison = ~d, flags = ~x, data = ~x"
                            atom-version atom-flags
                            (if (typep atom-value 'array)
                                (printable-array atom-value) atom-value)))))))
  
  (defun is-valid-m4-file (mp4-file)
    "Make sure this is an MP4 file.  Quick check: is first atom (at file-offset 4) == FSTYP?
  