Mercurial > audlegacy
diff Plugins/Input/aac/libmp4v2/INTERNALS @ 201:f2dc045d2327 trunk
[svn] libmp4v2 goes back to the future
author | chainsaw |
---|---|
date | Thu, 17 Nov 2005 14:01:18 -0800 |
parents | 0a2ad94e8607 |
children |
line wrap: on
line diff
--- a/Plugins/Input/aac/libmp4v2/INTERNALS Thu Nov 17 12:21:04 2005 -0800 +++ b/Plugins/Input/aac/libmp4v2/INTERNALS Thu Nov 17 14:01:18 2005 -0800 @@ -50,12 +50,17 @@ any combination of properties, other atoms, or descriptors. The mp4atom files contain the base class for all the atoms, and provide -generic functions that cover most cases. However, each atom has it's own -subclass contained in file atom_<name>.cpp, where <name> is the four -letter name of the atom defined in the MP4 specification. Typically this -atom file just specifies the properties of the atom or the possible child -atoms in the case of a container atom. In more specialized cases the atom -specific file provides routines to initialize, read, or write the atom. +generic functions that cover most cases. Most atoms are covered in +atom_standard.cpp. Atoms that have a special read, generation or +write needs are contained in their subclass contained in file atom_<name>.cpp, + where <name> is the four letter name of the atom defined in the MP4 +specification. + +Atoms that only specifies the properties of the atom or the possible child +atoms in the case of a container atom are located in atom_standard.cpp. + +In more specialized cases the atom specific file provides routines to +initialize, read, or write the atom. Properties are the atomic pieces of information. The basic types of properties are integers, floats, strings, and byte arrays. For integers @@ -103,6 +108,15 @@ Note that internally when performance matters the code looks up a property by name once, and then stores the returned pointer to the property class. +To add an atom, first you should see if an existing atom exists that +can be used. If not, you need to decide if special read/write or +generate properties need to be established; for example a property in the atom +changes other properties (adds, or subtracts). If there are no +special cases, add the atom properties to atom_standard.cpp. If there +are special properties, add a new file, add a new class to atoms.h, and +add the class to MP4Atom::CreateAtom in mp4atom.cpp. + + Generic Tracks ==============