summaryrefslogtreecommitdiff
path: root/configure
AgeCommit message (Collapse)Author
2012-02-29Packing bitstream on-the-fly with delayed context updatesAttila Nagy
Produce the token partitions on-the-fly, while processing each MB. Context is updated at the beginning of each frame based on the previoud frame's counters. Optimally encoder outputs partitions in separate buffers. For frame based output, partitions are concatenated internally. Limitations: - enabled just in combination with realtime-only mode - number of encoding threads has to be equal or less than the number of token partitions. For this reason, by default the encoder will do 8 token partitions. - vpxenc supports partition output (-P) just in combination with IVF output format (--ivf) Performance: - Realtime encoder can be up to 13% faster (ARM) depending on the number of threads and bitrate settings. Constant gain over the 5-16 speed range. - Token buffer reduced from one frame to 8 MBs Quality: - quality is affected by the delayed context updates. This again dependents on input material, speed and bitrate settings. For VC style input the loss seen is up to 0.2dB. If error-resilient=2 mode is used than the effect of this change is negligible. Example: ./configure --enable-realtime-only --enable-onthefly-bitpacking ./vpxenc --rt --end-usage=1 --fps=30000/1000 -w 640 -h 480 --target-bitrate=1000 --token-parts=3 --static-thresh=2000 --ivf -P -t 4 -o strm.ivf tanya_640x480.yuv Change-Id: I127295cb85b835fc287e1c0201a67e378d025d76
2012-02-08Add OS/2 supportsKO Myung-Hun
Change-Id: I792d5236451905eb20a8ebe444ef5b2274e4f7a4
2012-01-20Disconnect ARM tgt_isa from dsp extensionsFritz Koenig
A processor with ARMv7 instructions does not necessarily have NEON dsp extensions. This CL has the added side effect of allowing the ability to enable/disable the dsp extensions cleanly. Change-Id: Ie1e879b8fe131885bc3d4138a0acc9ffe73a36df
2012-01-18Add makefile for building libvpx for Android.Fritz Koenig
Android.mk file for using the Android NDK build system to compile. Adds option for SDK path to use the compiler that comes with android for testing compiler compliance. Change-Id: I5fd17cb76e3ed631758d3f392e62ae1a050d0d10
2012-01-10Remove iwmmx target.Fritz Koenig
No optimized code present for target. Change-Id: If99bb37491b15c1093e8851430c060cb2466898c
2012-01-06Remove symbian target and associated files.Fritz Koenig
These targets are no longer maintained. Change-Id: I923103006c439849fc015c1ac45ee7a5443ebc6d
2011-12-14Use xcode 4.2Johann
Allow targeting darwin11 / 10.7 Update arm paths for iPhoneOS 5.0 Change-Id: I057156349311ec66a163c4c1cea60dc5aeaaa492
2011-12-05Multiple-resolution encoderYunqing Wang
The example encoder down-samples the input video frames a number of times with a down-sampling factor, and then encodes and outputs bitstreams with different resolutions. Support arbitrary down-sampling factor, and down-sampling factor can be different for each encoding level. For example, the encoder can be tested as follows. 1. Configure with multi-resolution encoding enabled: ../libvpx/configure --target=x86-linux-gcc --disable-codecs --enable-vp8 --enable-runtime_cpu_detect --enable-debug --disable-install-docs --enable-error-concealment --enable-multi-res-encoding 2. Run make 3. Encode: If input video is 1280x720, run: ./vp8_multi_resolution_encoder 1280 720 input.yuv 1.ivf 2.ivf 3.ivf 1 (output: 1.ivf(1280x720); 2.ivf(640x360); 3.ivf(320x180). The last parameter is set to 1/0 to show/not show PSNR.) 4. Decode: ./simple_decoder 1.ivf 1.yuv ./simple_decoder 2.ivf 2.yuv ./simple_decoder 3.ivf 3.yuv 5. View video: mplayer 1.yuv -demuxer rawvideo -rawvideo w=1280:h=720 -loop 0 -fps 30 mplayer 2.yuv -demuxer rawvideo -rawvideo w=640:h=360 -loop 0 -fps 30 mplayer 3.yuv -demuxer rawvideo -rawvideo w=320:h=180 -loop 0 -fps 30 The encoding parameters can be modified in vp8_multi_resolution_encoder.c, for example, target bitrate, frame rate... Modified API. John helped a lot with that. Thanks! Change-Id: I03be9a51167eddf94399f92d269599fb3f3d54f5
2011-11-11Add x86_64-win64-gcc to supported targetsRafaël Carré
libvpx builds and runs correctly when built with x86_64-w64-mingw32-gcc Version tested: 4.6.1 Change-Id: I9aa953d615551ca4834c9a5f8b68778d032a6cf5
2011-11-04Add unit test support via google testJames Berry
Change-Id: I0ab00a22fbea1f38c96ef92ef7eaeda782c0c8d3
2011-10-20Add license text to configure generated files.Tom Finegan
Applies to generated files with c, h, and mk extensions. Change-Id: Id82c46673c7aad43e95a9de5058ddcfc6fd72f14
2011-10-14add 32bit darwin10 (10.6) targetJohann
Change-Id: Id1c189350d54919be37f864dae91dee37584945a
2011-07-25configure: add --enable-static optionJames Zern
Fixes issue #62. Change-Id: I0567cf7897c0942666c19b3231c8c3b8e9c3e7cc
2011-05-19Merge "changed configure option name to reduce confusion"John Koleszar
2011-05-19Adding error-concealment to the decoder.Stefan Holmer
The error-concealer is plugged in after any motion vectors have been decoded. It tries to estimate any missing motion vectors from the motion vectors of the previous frame. Intra blocks with missing residual are replaced with inter blocks with estimated motion vectors. This feature was developed in a separate sandbox (sandbox/holmer/error-concealment). Change-Id: I5c8917b031078d79dbafd90f6006680e84a23412
2011-05-05Merge "Runtime detection of available processor cores."Yunqing Wang
2011-04-29changed configure option name to reduce confusionYaowu Xu
Renamed configure option "enable-psnr" to "enable-internal-stats" to better reflect the purpose of the option and eliminate the confusion reported in http://code.google.com/p/webm/issues/detail?id=35 Change-Id: If72df6fdb9f1e33dab1329240ba4d8911d2f1f7a
2011-03-31Runtime detection of available processor cores.Attila Nagy
Detect the number of available cores and limit the thread allocation accordingly. On decoder side limit the number of threads to the max number of token partition. Core detetction works on Windows and Posix platforms, which define _SC_NPROCESSORS_ONLN or _SC_NPROC_ONLN. Change-Id: I76cbe37c18d3b8035e508b7a1795577674efc078
2011-03-30Generate a vpx.pc file for pkg-config.Ralph Giles
Rules are added to libs.mk to generate a vpx.pc, which is installed as pkgconfig/vpx.pc under the target library directory. This also requires the install path prefix be exported directly in config.mk. Some systems use a tool called pkg-config to query information about intalled libraries or other resources, based on database files provided by the packages themselves at install time. Providing such a file for libvpx simplifies integration with other build systems, and provides an easy avenue for developers to test against their own builds of the library. Change-Id: I4e32a8fbb53fc331aa95eb207c63dd70a76d18ed
2011-03-30Export the version string as a makefile variable.Ralph Giles
The configure script exports the major/minor/patch version numbers, but didn't make the full version string available to Makefile recipes and rules, the way it is available to C code from vpx_version.h. Change-Id: Ic6a9d4c574a6ea66a50c928f4eedeb91d7668eb5
2011-03-29Merge "configure: enable unused variable warnings"John Koleszar
2011-02-22purge wince configurationJohann
this has been broken since the initial release Change-Id: If0d4deb2de9f7d0c4c05641e2bbf9cc1bf11e171
2011-02-11remove assembly detokenizerJohann
hasn't been kept up to date. remove it to avoid confusion. Change-Id: I52ffde19b59fec5c7a381299ca2e85cb38330be7
2011-02-04configure: enable unused variable warningsJohn Koleszar
Only suppress unused function warnings, rather than supprressing all unused-* warnings. Unused functions can still be seen with --enable-extra-warnings. Change-Id: Ibca20d859dbffedd76bd082ffe0fa685c3ac198e
2011-01-28Adds "armvX-none-rvct" targetsTero Rintaluoma
Adds following targets to configure script to support RVCT compilation without operating system support (for Profiler or bare metal images). - armv5te-none-rvct - armv6-none-rvct - armv7-none-rvct To strip OS specific parts from the code "os_support"-config was added to script and CONFIG_OS_SUPPORT flag is used in the code to exclude OS specific parts such as OS specific includes and function calls for timers and threads etc. This was done to enable RVCT compilation for profiling purposes or running the image on bare metal target with Lauterbach. Removed separate AREA directives for READONLY data in armv6 and neon assembly files to fix the RVCT compilation. Otherwise "ldr <reg>, =label" syntax would have been needed to prevent linker errors. This syntax is not supported by older gnu assemblers. Change-Id: I14f4c68529e8c27397502fbc3010a54e505ddb43
2011-01-20Update configure scriptsAttila Nagy
Add --extra-cflags as config parameter for user defined extra CFLAGS. Add -g to asflags when debug enabled for arm targets. Change-Id: Ibdde7cfdda6736c1c1db45e6466bd08504a51f15
2010-11-16Add x86_64-darwin10-gcc target.tomfinegan
Adds native build configuration for Snow Leopard. Useful when users configure without arguments on OSX 10.6. Change-Id: I0bd63912a25bbfb9d4c8d58a781d0f390792429c
2010-11-10configure : Incorrect syntax in configureFritz Koenig
Check to see if postproc was enabled when enabling the postproc visualizer was wrong. Fix for bug introduced in Change Ia74f357d Change-Id: I4bee9ad2caee3cfe3bac6972047f6af7c54cad4e
2010-11-10postproc : Re-work posproc calling to allow more flags.Fritz Koenig
Debugging in postproc needs more flags to allow for specific block types to be turned on or off in the visualizations. Must be enabled with --enable-postproc-visualizer during configuration time. Change-Id: Ia74f357ddc3ad4fb8082afd3a64f62384e4fcb2d
2010-10-27Full search SAD function optimization in SSE4.1Yunqing Wang
Use mpsadbw, and calculate 8 sad at once. Function list: vp8_sad16x16x8_sse4 vp8_sad16x8x8_sse4 vp8_sad8x16x8_sse4 vp8_sad8x8x8_sse4 vp8_sad4x4x8_sse4 (test clip: tulip) For best quality mode, this gave encoder a 5% performance boost. For good quality mode with speed=1, this gave encoder a 3% performance boost. Change-Id: I083b5a39d39144f88dcbccbef95da6498e490134
2010-10-25Add sparc-solaris-gcc as a build target.Aaron Watry
Solaris 10 requires -lposix4 to build successfully on gcc. I only have a Sparc machine to test with on Solaris 10, but this change leaves OpenSolaris x86 in a usable state w/ gnu-generic. I am of the belief that this change should fix Solaris 10 on Sparc, but will leave other Solaris architectures as is. If someone has an x86 Solaris 10 machine to test on, they may add x86-solaris-gcc to libvpx/configure and give it a go. Change-Id: I17a282028bb4d3e9fd8764159f95665160f7b62a
2010-10-05nasm: add configure supportJan Kratochvil
yasm has to be preferred as currently nasm produces marginally less efficient code (longer opcodes). Filed for nasm as: https://sourceforge.net/tracker/?func=detail&atid=106208&aid=3037462&group_id=6208 OTOH package should be built always the same, no matter which additional packages are / are not present on the system. As the package should be built with nasm (as yasm may not be available) we should not use yasm even if it is possibly available. nasm >= approx. 2.09 is required for the nasm compilation as the former versions had a section alignment bug. Provide nasm compatibility. No binary change by this patch with yasm on {x86_64,i686}-fedora13-linux-gnu. Few longer opcodes with nasm on {x86_64,i686}-fedora13-linux-gnu have been checked as safe. Change-Id: Icb0fe39c64bbcc3bcd7972e392fd03f3273340df
2010-09-24configure: add --enable-smallJohn Koleszar
Build with -O2 rather than -O3, to dissuade the compiler from inlining so much. See issue #1. Change-Id: Iacb8ddb59125d3f01c5fea846b45a1c004c9aee0
2010-09-21Fix typoJohann
Also, move with other ppc32 options Change-Id: I0b97413c767909c5682afc9bdd954f3d43401f6c
2010-09-13configure: support for ppc32-linux-gccJohn Koleszar
Fixes issue 89. Thanks to josejx for the patch. Change-Id: I7e664fed703b49f2fb3af4c5e6ce1173742000c2
2010-09-13cosmetics: expand tabs in configureJohn Koleszar
Change-Id: I88ddb0afb56ef2be8184b56fe125ad938ead7a84
2010-08-12framework for assembly version of the detokenizerJohann
adds a compile time option: --enable-arm-asm-detok which pulls in vp8/decoder/arm/detokenize.asm currently about break even speed wise, but changes are pending to the fill code (branch and load 3 bytes versus conditionally always load one) and the error handling. Currently it doesn't handle zero runs or overrunning the buffer. this is really just so i don't have to rebase my changes all the time to run benchmarks - now just need to replace one file! Change-Id: I56d0e2354dc0ca3811bffd0e88fe1f952fa6c797
2010-07-27configure: pass original arguments through to make distJohn Koleszar
When running configure automatically through the make dist target, reuse the arguments passed to the original configure command. Change-Id: I40e5b8384d6485a565b91e6d2356d5bc9c4c5928
2010-07-22Remove CONFIG_NEW_TOKENS files.Fritz Koenig
These files were out of date and no longer maintained. Token decoding has implemented the no-crash code which is incompatible with this arm assembly code. Change-Id: Ibf729886c56fca48181af60b44bda896c30023fc
2010-07-22Add vs9 targets.Tom Finegan
Add targets x86-win32-vs9 and x86_64-win64-vs9 for support of Visual Studio 2008-- this removes the need to convert the vs8 projects before using them within the IDE. Change-Id: Idb83e2ae701e07d98db1be71638280a493d770a2
2010-06-24Remove INLINE/FORCEINLINEJohn Koleszar
These are mostly vestigial, it's up to the compiler to decide what should be inlined, and this collided with certain Windows platform SDKs. Change-Id: I80dd35de25eda7773156e355b5aef8f7e44e179b
2010-06-24configure: remove postproc-genericJohn Koleszar
This option is vestigial and is unreferenced. Change-Id: I8bd27cb674c263e9a86fb43244003a9b9df3ca9c
2010-06-18Add x86_64-linux-icc target to build VP8 with iccYunqing Wang
Add a target for icc. Change-Id: Ia1db82373d9c7268848bbb65c9483d408b9d933f
2010-06-14Remove useless 500 frame limitFabio Pedretti
Change-Id: Ib82de60cf32cf08844c3e2d88d7c587396f3892c
2010-06-05shared library support (.so)John Koleszar
This patch adds support for building shared libraries when configured with the --enable-shared switch. Building DLLs would require more invasive changes to the sample utilities than I want to make in this patch, since on Windows you can't use the address of an imported symbol in a static initializer. The best way to work around this is proably to build the codec interface mapping table with an init() function, but dll support is of questionable value anyway, since most windows users will probably use a media framework lib like webmdshow, which links this library in staticly. Change-Id: Iafb48900549b0c6b67f4a05d3b790b2643d026f4
2010-05-28configure: update script headersJohn Koleszar
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. Change-Id: I4d134c77f9032d1dde72b852b444e98676b85326
2010-05-27configure: support --prefix, --libdirJohn Koleszar
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. Change-Id: If45d9e3129efcde83c05b7766accc9017988e715
2010-05-24install includes in DIST_DIR/include/vpx, move vpx_codec/ to vpx/John Koleszar
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. Change-Id: I7b0652a20543d93f38f421c60b0bbccde4d61b4f
2010-05-24make: make install target behave as expectedJohn Koleszar
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. Change-Id: I0805681ac10f853ef94cdc3aa70981c6bea81b45
2010-05-18Initial WebM releaseJohn Koleszar