Add support for reading YUV4MPEG2 files to ivfenc.
A large collection of example files may be found at
http://media.xiph.org/video/derf/
This also fixes a bug in ivfenc for uncompressed IVF input, which previously
appeared not to skip past the file header the second time it opened the file.
I don't actually have an IVF file with which to test this fix, however.
Yunqing Wang [Fri, 28 May 2010 18:34:39 +0000 (14:34 -0400)]
Remove costly memory reads/writes in vp8_reset_mb_tokens_context()
Tests on x86 showed this function costed 2.7% of total decoding time
because of all the memory reads/writes. After modification, it only
costs about 0.7% of decoding time, which gives a 2% gain.
John Koleszar [Fri, 28 May 2010 14:11:58 +0000 (10:11 -0400)]
configure: update script headers
The libvpx build system was influenced by the clever design of the
FFmpeg configure script. Say so in the script header, and provide a
little introduction.
Yaowu Xu [Thu, 27 May 2010 17:04:36 +0000 (10:04 -0700)]
Increase the size of output packet list
This is to accommodate output packets for both compressed
data and psnr stats. For each frame, there are at least
one packet for compressed data and one for psnr stats. For
a max lag of 25, 64 is large enough to cover all lagged
frames at the end of encoding.
John Koleszar [Wed, 26 May 2010 19:57:42 +0000 (15:57 -0400)]
configure: support --prefix, --libdir
Support --prefix, --libdir as a conventional way of specifying the default
installation directories. libdir is required to be a subdirectory of prefix
at this time.
John Koleszar [Tue, 25 May 2010 12:33:57 +0000 (08:33 -0400)]
examples: use I420 input for encoders
The output of simple_decoder, as well as the default format for the
ivf{enc,dec} tools, is I420. The encoder examples are changed to default
to I420 as well. This is desirable because passing the output of
simple_encoder to simple_decoder would otherwise have the chroma planes
flipped, which is unexpected.
John Koleszar [Mon, 24 May 2010 15:39:59 +0000 (11:39 -0400)]
install includes in DIST_DIR/include/vpx, move vpx_codec/ to vpx/
This renames the vpx_codec/ directory to vpx/, to allow applications
to more consistently reference these includes with the vpx/ prefix.
This allows the includes to be installed in /usr/local/include/vpx
rather than polluting the system includes directory with an
excessive number of includes.
John Koleszar [Mon, 24 May 2010 14:16:44 +0000 (10:16 -0400)]
make: make install target behave as expected
Split the 'make install' target into two: install and dist. dist
retains the old make install behavior of building a "distribution"
release, with source files, build system, etc. install does what
one one expects -- installs into a tree in the filesystem, /usr/local
by default.
John Koleszar [Mon, 24 May 2010 15:55:17 +0000 (11:55 -0400)]
configure: support --enable-pic for generic-gnu
Allows the default generic-gnu target, which is selected if no
target is specified, to be build in PIC mode. The generic-gnu target
was not being selected as a gcc target, because it doesn't end in
gcc.
Yaowu Xu [Wed, 19 May 2010 22:48:00 +0000 (15:48 -0700)]
Fixed an encoder debug/relese mismatch in x86_64-win64-vs8
Visual c++ compiler uses xmm registers for floating point
operations for 64 bit architecture, therefore its calling
convention requires the preservation of xmm6-xmm15 in any
function that have used these registers. However, the sse2
functions, that were originally written for 32 bit windows,
may have used xmm6 and xmm7 without preserving the content.
In this particular case, the compiler used xmm6 to save
the variable "two_pass_min_rate", the value of the variable
is mucked up by our sse2 optimized loop filter functions,
hence the results of release/debug mismatching.