Within the libraries themselves, we use other wrapper functions to
make sure the functions are used safely, but this wrapper layer isn't
available outside of the library in the console apps. The usage of these
functions is safe here, so silence the warnings.
This gets rid of all warnings when building with MSVC in 32 bit mode,
making it much easier to spot new warnings.
These headers are standard headers that are available in MSVC as well.
There's nothing ifdeffed in the implementation of this file that would
explain why these headers only are required in these configurations.
Within I420 (as the decoder outputs), the first chroma plane is
U and the second is V, and similarly, in NV12, the chroma components
are written in the order U, V.
This doesn't have any practical effect, it only makes the
variable naming while it previously was misleading.
Both encoder and decoder versions were functionally equivalent,
but I picked the decoder version (but added the static inline
keywords to it) since the encoder one was quite messy with a lot
of commented out code.
This makes sure that e.g. "make clean" actually removes
the built exe files, and avoids relinking the exe files each
time make is run when cross compiling from linux to windows.
(Make on windows seems to have an exception that knows to skip
rebuilding the 'h264enc' target if 'h264enc' doesn't exist but
'h264enc.exe' does, but this exception doesn't work on normal
unix make.)
This is required to make the order in the C++ virtual table
consistent in MSVC - previously the overloaded methods were
ordered differently in the vtable compared to the interface
declaration.
Instead just link directly to it. This matches how the library is
linked/loaded in encConsole/h264enc as well.
Only the 2008 version project file is updated for now, since
the 2010 and 2012 ones are out of sync right now.
Commit f38111d76ba127b4045e6a9899cbb753457c7384 updated these files
manually (based on older versions of them) to something not generated
by the current mktargets.py/sh, losing the compact pattern rules.
This makes sure that all the dependency libs are built before trying
to link them together, fixing parallel make (which occasionally
failed due to trying to link the encoder or decoder command line
binaries before the libs had been built) and also fixes building an
individual component by e.g. "make h264enc".
Problems fixed:
1. No longer segfaults if an option is specified without an accompanying argument.
2. Wrongly incrementing i by 3 instead of by 2 while parsing command line options.