AVUtil
======
libavutil is a small lightweight library of generally useful functions.
It is not a library for code needed by both libavcodec and libavformat.


Overview:
=========
adler32.c               adler32 checksum
aes.c                   AES encryption and decryption
fifo.c                  resizeable first in first out buffer
intfloat_readwrite.c    portable reading and writing of floating point values
log.c                   "printf" with context and level
md5.c                   MD5 Message-Digest Algorithm
rational.c              code to perform exact calculations with rational numbers
tree.c                  generic AVL tree
crc.c                   generic CRC checksumming code
integer.c               128bit integer math
lls.c
mathematics.c           greatest common divisor, integer sqrt, integer log2, ...
mem.c                   memory allocation routines with guaranteed alignment
softfloat.c

Headers:
bswap.h                 big/little/native-endian conversion code
x86_cpu.h               a few useful macros for unifying x86-64 and x86-32 code
avutil.h
common.h
intreadwrite.h          reading and writing of unaligned big/little/native-endian integers


Goals:
======
* Modular (few interdependencies and the possibility of disabling individual parts during ./configure)
* Small (source and object)
* Efficient (low CPU and memory usage)
* Useful (avoid useless features almost no one needs)
