Parcourir la source

added support for list of missing frames/atoms

Mark VandenBrink il y a 12 ans
Parent
commit
49188f9fe3
2 fichiers modifiés avec 6 ajouts et 1 suppressions
  1. 3 1
      id3-frame.lisp
  2. 3 0
      mp4-atom.lisp

+ 3 - 1
id3-frame.lisp

@@ -887,6 +887,8 @@ NB: 2.3 and 2.4 extended flags are different..."
   (string-upcase (concatenate 'string "frame-" id)))
 (utils:memoize 'mk-frame-class-name)
 
+(defparameter *skipped-id3-frames* nil)
+
 (defun find-frame-class (id)
   "Search by concatenating 'frame-' with ID and look for that symbol in this package"
   (declare #.utils:*standard-optimize-settings*)
@@ -908,7 +910,7 @@ NB: 2.3 and 2.4 extended flags are different..."
                          ;; then just read it raw
                          (when (possibly-valid-frame-id? id)
                            (find-class (find-symbol "FRAME-RAW" :ID3-FRAME))))))
-
+    (pushnew id *skipped-id3-frames*)
     found-class))
 
 (utils:memoize 'find-frame-class)

+ 3 - 0
mp4-atom.lisp

@@ -412,6 +412,8 @@ reading the container atoms"
       (warn-user "Bad atom type name: c = ~a, str = <~a>" c str)))
   t)
 
+(defparameter *skipped-atoms* nil)
+
 (defun find-atom-class (id)
   "Search by concatenating 'atom-' with ID and look for that symbol in this package"
   (declare #.utils:*standard-optimize-settings*)
@@ -425,6 +427,7 @@ reading the container atoms"
       (return-from find-atom-class (find-class found-class-symbol)))
 
     ;; didn't find a class, so return ATOM-SKIP class
+    (pushnew id *skipped-atoms*)
     'atom-skip))
 
 (utils:memoize 'find-atom-class)