This commit implements smhd (Sound Media Information Header Atom) parsing for QuickTime movies.
It defines the sound media’s control information, such as balance.
This commit implements gmin (Base Media Info Atom) parsing for QuickTime movies.
It defines control information for the media, including graphics mode and balance.
This commit implements vmhd (Video Media Information Header) atom parsing for QuickTime movies.
It contains information about the video track's graphics mode and opcolor.
This commit implements pInf (Panorama Information) atom parsing for QuickTime movies.
It contains information about panoramic nodes (ID, timestamp) and the default node's zoom level.
This commit implements ctyp (Controller Type) atom parsing for QuickTime movies.
It identifies whether the movie is a panoramic movie or an object movie.
In parseStream, atom.size is initailized to uint32 max. If the loop in
readDefault then never executes because the stream has hit EOF, that size is
passed as-is to seek. This can cause a crash eg in SeekableSubReadStream
because of an int overflow.
Change readDefault to return an error in a few places if we have hit eof before
a valid atom has been read. It's ok not to do the seek in this case.
zlib is used when available and falls back on gzio.
This allows performance improvements as our CRC32 and gzio
implementations are slower than base zlib.
As zlib is available when libpng is present, this is sensible to
benefit from it.