prepare 9_beta1 release
parseutils: fix const removal warning

The const qualifier is still removed although it happens inside
the strtol() function so no warning is generated.

Fixes:
libavutil/parseutils.c:110:11: warning: assignment discards qualifiers from pointer target type

Signed-off-by: Mans Rullgard <mans@mansr.com>
parseutils-test: various cleanups

- make tables static const
- remove useless use of compound literal
- break long lines
- fix a comma/semicolon typo

Signed-off-by: Mans Rullgard <mans@mansr.com>
svq3: replace unsafe pointer casting with intreadwrite macros

Signed-off-by: Mans Rullgard <mans@mansr.com>
svq3: fix pointer type warning

Fixes:
libavcodec/svq3.c:661:9: warning: passing argument 2 of 'svq3_decode_block' from incompatible pointer type
libavcodec/svq3.c:208:19: note: expected 'DCTELEM *' but argument is of type 'DCTELEM (*)[32]'

Signed-off-by: Mans Rullgard <mans@mansr.com>
avutil: Add functions for allocating opaque contexts for algorithms

The current API where the plain size is exposed is not of much
use - in most cases it is allocated dynamically anyway.

If allocated e.g. on the stack via an uint8_t array, there's no
guarantee that the struct's members are aligned properly (unless
the array is overallocated and the opaque pointer within it
manually aligned to some unspecified alignment).

Signed-off-by: Martin Storsjö <martin@martin.st>
Use the new aes/md5/sha/tree allocation functions

Signed-off-by: Martin Storsjö <martin@martin.st>
md5: Allocate a normal private context for the opaque md5 context pointer

This avoids having to overestimate the md5 context size, which
isn't known beforehand, allowing us to use the new allocate functions
instead.

Signed-off-by: Martin Storsjö <martin@martin.st>
pixdesc: add functions for accessing pixel format descriptors.

Make av_pix_fmt_descriptors table static on next major bump.

Making the table public is dangerous, since the caller has no way to
know how large it actually is. It also prevents adding new fields to
AVPixFmtDescriptor without a major bump.
tools: do not use av_pix_fmt_descriptors directly.
sws: do not use av_pix_fmt_descriptors directly.
mpegvideo: fix indentation
lavc: do not use av_pix_fmt_descriptors directly.
lavfi: do not use av_pix_fmt_descriptors directly.
lavu, lavd: do not use av_pix_fmt_descriptors directly.
avutil: Duplicate ff_log2_tab instead of sharing it across libs

The table is so small that the space gain is not worth the
performance overhead of cross-library access.
Revert "configure: x86: improve ebp availability check"

This makes cabac-test work on 32-bit mingw, to ease testing/comparison
between MSVC and mingw.

This reverts commit 692dd8ed2617f390ff53b1152a21170e886be726.
Move av_reverse table to libavcodec; it is only used there.
Shared library support for MSVC build.

This patch adds support for .dll shared library generation using MSVC's
native build tools.

This requires the makedef perl script by Derek, which probably will
go into the c99-to-c89 repo.

To properly load non-function symbols from DLL files, the declarations
need to have the attribute __declspec(dllimport) when building the
calling code. (On mingw, the linker can fix this up automatically,
which is why it has not been an issue so far. For code built with
MSVC linking to DLLs built by mingw, one has had to manually add
this into the headers, if using the data symbols.)

The __declspec(dllimport) attribute is added via a macro. Since
it has to be present when building code that refer to these symbols,
but not be present while building the library that exports the symbols,
the makefile is modified to add a define like COMPILING_avcodec while
building each library. This is used in the definition of the
AV<lib>_SYMBOL macro - on non-MSVC compilers, it is empty. On MSVC, it
is __declspec(dllimport) for declarations in other libraries than the
object file currently compiled.

This also implies that code that is built to link to a certain
library as a DLL can't link to the same library as a static library.
Therefore, we only allow building either static or shared but not
both at the same time. (Internally, during the build, however, a static
library is created for collecting the built objects, for linking the
test tools to non-exported functions in the library.)

Also, linking to DLLs is slightly different from linking to shared
libraries on other platforms. DLLs use a thing called import
libraries, which is basically a stub library allowing the linker
know which symbols exist in the DLL and what name the DLL will
have at runtime.

In mingw/gcc, the import library is usually named libfoo.dll.a,
which goes next to a static library named libfoo.a. This allows gcc
to pick the dynamic one, if available, from the normal -lfoo switches,
just as it does for libfoo.a vs libfoo.so on unix. On MSVC however,
you need to literally specify the name of the import library (or static
library).