summaryrefslogtreecommitdiff
path: root/examples
AgeCommit message (Collapse)Author
2014-02-10Merge "Cleaning up {simple, twopass}_encoder examples."Dmitry Kovalev
2014-02-07Cleaning up {simple, twopass}_encoder examples.Dmitry Kovalev
Change-Id: Ide9c408f4cee7408741ef8c0ffac01645a5a67ca
2014-02-07Converting vpx_temporal_scalable_patterns to use VpxVideoWriter.Dmitry Kovalev
Change-Id: I69e868295b9798ba1599a411926de0891680032f
2014-02-06Merge "Adding video reader/writer APIs."Dmitry Kovalev
2014-02-06Layer based rate control for CBR mode.Marco Paniconi
This patch adds a buffer-based rate control for temporal layers, under CBR mode. Added vpx_temporal_scalable_patters.c encoder for testing temporal layers, for both vp9 and vp8 (replaces the old vp8_scalable_patterns). Updated datarate unittest with tests for temporal layer rate-targeting. Change-Id: I8900a854288b9354d9c697cfeb0243a9fd6790b1
2014-02-05Adding video reader/writer APIs.Dmitry Kovalev
Right now only IVF format is supported which is enough for example code. Other formats like y4m, webm, raw yuv will be supported later. Change-Id: I34c6f20731c1851947587ca5c589d7856b675164
2014-02-05vp8_set_maps.c: silence some type warningsJames Zern
Change-Id: I371863fc68f4984a223a684f9e89b25e9991e1e7
2014-01-31remove duplicate const from vpx_codec_iface_t useJames Zern
the public typedef already includes a const, quiets 'same type qualifier used more than once' warnings Change-Id: Ib118b3b116fba59d4c6ead84d85b26e5d3ed363d
2014-01-29Merge "Adapting decode_with_drops example to use new file reading API."Dmitry Kovalev
2014-01-29Adapting decode_with_drops example to use new file reading API.Dmitry Kovalev
Change-Id: Idd1acfcf8bb16a2ddb9c6c1c841a7741e90589d9
2014-01-29Adapting postproc example to use new file reading API.Dmitry Kovalev
Change-Id: Ib3747c81db8cc89b5d7012db557411a3b49712aa
2014-01-27Adapting simple_decoder to use new file reading API.Dmitry Kovalev
Change-Id: I374a0c4bb4a66c0d3dc874c6e57fdee9d1ab72df
2014-01-24Implementing simple API to read video files.Dmitry Kovalev
New API is supposed to be used from example code. Current implementation only supports IVF containers (will be extended to Y4M). Change-Id: Ib7da87237690b1a28297bdf03bc41c6836a84b7e
2014-01-17Moving vp8_multi_resolution_encoder to examples folder.Dmitry Kovalev
Change-Id: If0e1cd13aecd1620d26c28bf95e4f84469f78456
2014-01-15Adding VP9 support to decode_to_md5 example.Dmitry Kovalev
This is still work in progress, there are many another planned updates for all example files. Change-Id: I2ba5dc6cd19a4bea9fbc6f1ee84cc2bd85925966
2014-01-10Cleaning up md5 example.Dmitry Kovalev
Change-Id: Ifee528b1663b10dbe45e0bfef79010370c914e3a
2014-01-07Removing examples code generation and making them static.Dmitry Kovalev
All documentation will be provided as comments in the source files. Change-Id: Ie609852747733c181191f864204c787a6b23ef3a
2013-10-18Added necessary includesYaowu Xu
To avoid the dependency on the order of header files included. Change-Id: Ic142638d75fe95e6aba41b11664bfa15f076f793
2012-12-26Build fixes to merge vp9-preview into masterJohn Koleszar
Various fixups to resolve issues when building vp9-preview under the more stringent checks placed on the experimental branch. Change-Id: I21749de83552e1e75c799003f849e6a0f1a35b07
2012-11-07Rough merge of master into experimentalJohn Koleszar
Creates a merge between the master and experimental branches. Fixes a number of conflicts in the build system to allow *either* VP8 or VP9 to be built. Specifically either: $ configure --disable-vp9 $ configure --disable-vp8 --disable-unit-tests VP9 still exports its symbols and files as VP8, so that will be resolved in the next commit. Unit tests are broken in VP9, but this isn't a new issue. They are fixed upstream on origin/experimental as of this writing, but rebasing this merge proved difficult, so will tackle that in a second merge commit. Change-Id: I2b7d852c18efd58d1ebc621b8041fe0260442c21
2012-11-01Rename vp8/ codec directory to vp9/.Ronald S. Bultje
Change-Id: Ic084c475844b24092a433ab88138cf58af3abbe4
2012-08-14Fix warnings.Christian Duvivier
Change-Id: I4b911e4173da30c164bde7ea50bc80a70fbbb745
2012-07-13examples: fix memory leakJohn Koleszar
Free used resources before exiting. Change-Id: If6cde6541615fbf17bf56ed335b76e676eabba93
2012-06-04Explicitly discard fwrite/fread return valuesJohann
Using if(); triggers an empty body warning with clang Change-Id: I0fa2ee676400a974b40f8eaafca9ae668107eebb
2012-03-15WebM Experimental Codec Branch SnapshotYaowu Xu
This is a code snapshot of experimental work currently ongoing for a next-generation codec. The codebase has been cut down considerably from the libvpx baseline. For example, we are currently only supporting VBR 2-pass rate control and have removed most of the code relating to coding speed, threading, error resilience, partitions and various other features. This is in part to make the codebase easier to work on and experiment with, but also because we want to have an open discussion about how the bitstream will be structured and partitioned and not have that conversation constrained by past work. Our basic working pattern has been to initially encapsulate experiments using configure options linked to #IF CONFIG_XXX statements in the code. Once experiments have matured and we are reasonably happy that they give benefit and can be merged without breaking other experiments, we remove the conditional compile statements and merge them in. Current changes include: * Temporal coding experiment for segments (though still only 4 max, it will likely be increased). * Segment feature experiment - to allow various bits of information to be coded at the segment level. Features tested so far include mode and reference frame information, limiting end of block offset and transform size, alongside Q and loop filter parameters, but this set is very fluid. * Support for 8x8 transform - 8x8 dct with 2nd order 2x2 haar is used in MBs using 16x16 prediction modes within inter frames. * Compound prediction (combination of signals from existing predictors to create a new predictor). * 8 tap interpolation filters and 1/8th pel motion vectors. * Loop filter modifications. * Various entropy modifications and changes to how entropy contexts and updates are handled. * Extended quantizer range matched to transform precision improvements. There are also ongoing further experiments that we hope to merge in the near future: For example, coding of motion and other aspects of the prediction signal to better support larger image formats, use of larger block sizes (e.g. 32x32 and up) and lossless non-transform based coding options (especially for key frames). It is our hope that we will be able to make regular updates and we will warmly welcome community contributions. Please be warned that, at this stage, the codebase is currently slower than VP8 stable branch as most new code has not been optimized, and even the 'C' has been deliberately written to be simple and obvious, not fast. The following graphs have the initial test results, numbers in the tables measure the compression improvement in terms of percentage. The build has the following optional experiments configured: --enable-experimental --enable-enhanced_interp --enable-uvintra --enable-high_precision_mv --enable-sixteenth_subpel_uv CIF Size clips: http://getwebm.org/tmp/cif/ HD size clips: http://getwebm.org/tmp/hd/ (stable_20120309 represents encoding results of WebM master branch build as of commit#7a15907) They were encoded using the following encode parameters: --good --cpu-used=0 -t 0 --lag-in-frames=25 --min-q=0 --max-q=63 --end-usage=0 --auto-alt-ref=1 -p 2 --pass=2 --kf-max-dist=9999 --kf-min-dist=0 --drop-frame=0 --static-thresh=0 --bias-pct=50 --minsection-pct=0 --maxsection-pct=800 --sharpness=0 --arnr-maxframes=7 --arnr-strength=3(for HD,6 for CIF) --arnr-type=3 Change-Id: I5c62ed09cfff5815a2bb34e7820d6a810c23183c
2012-01-05Multiframe quality enhancement postprocessingDeb Mukherjee
Adds a multiframe postprocessing module to enhance the quality of certain frames that are coded at lower quality than preceding frames. The module can be invoked from the commandline by use of the --mfqe option, and will be most beneficial for enhancing the quality of frames decoded using scalable patterns. Uses the vp8_variance_var16x16 and vp8_variance_sad16x16 function pointers to compute SAD and Variance of blocks. Change-Id: Id73d2a6e3572d07f9f8e36bbce00a4fc5ffd8961
2011-10-11Added rate-targeted temporal scalabilityAdrian Grange
Added the ability to create rate-targeted, temporally scalable, VP8 compatible bitstreams. The application vp8_scalable_patterns.c demonstrates how to use this capability. Users can create output bitstreams containing upto 5 temporally separable streams encoded as a single VP8 bitstream. (previously abandoned as: I92d1483e887adb274d07ce9e567e4d0314881b0a) Change-Id: I156250a3fe930be57c069d508c41b6a7a4ea8d6a
2011-09-14Fix odd-sized image support in decoder examplesJohn Koleszar
Odd sized images need their chroma plane sizes rounded up. Change-Id: I3cd6fa60551f05697b67ece5b6928bef2a41bad8
2011-06-27Adding support for error concealment in multi-threaded decodingStefan Holmer
Also includes a couple of error concealment bug fixes: - the segment_id wasn't properly initialized when missing - when interpolating and no neighbors are found, set to zero - clear the qcoef buffer when concealing an MB Change-Id: Id79c876b41d78b559a2241e9cd0fd2cae6198f49
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-09clean up unused variable warningsJohann
Change-Id: I9467d7a50eac32d8e8f3a2f26db818e47c93c94b
2011-02-28examples: use function to get iface pointersJohn Koleszar
MSVC can't pass the address of global variables in a DLL correctly across DLL boundaries. This patch allows linking the examples to a libvpx dll build. Fixes issue #268. Change-Id: I1c52d076cfc68efb3efdfba019f12d53c5019f58
2010-11-17vp8_set_maps: remove hard-coded width/heightJohn Koleszar
The example for disabling the active map used a hard-coded 320x240 resolution, rather than using what was passed on the command line. Fixes #218 Change-Id: I3aed713e8aa7fcbf18dfbffd57f142b5cd9ee492
2010-10-27Eliminate more warnings.Timothy B. Terriberry
This eliminates a large set of warnings exposed by the Mozilla build system (Use of C++ comments in ISO C90 source, commas at the end of enum lists, a couple incomplete initializers, and signed/unsigned comparisons). It also eliminates many (but not all) of the warnings expose by newer GCC versions and _FORTIFY_SOURCE (e.g., calling fread and fwrite without checking the return values). There are a few spurious warnings left on my system: ../vp8/encoder/encodemb.c:274:9: warning: 'sz' may be used uninitialized in this function gcc seems to be unable to figure out that the value shortcut doesn't change between the two if blocks that test it here. ../vp8/encoder/onyx_if.c:5314:5: warning: comparison of unsigned expression >= 0 is always true ../vp8/encoder/onyx_if.c:5319:5: warning: comparison of unsigned expression >= 0 is always true This is true, so far as it goes, but it's comparing against an enum, and the C standard does not mandate that enums be unsigned, so the checks can't be removed. Change-Id: Iaf689ae3e3d0ddc5ade00faa474debe73b8d3395
2010-09-09Use WebM in copyright notice for consistencyJohn Koleszar
Changes 'The VP8 project' to 'The WebM project', for consistency with other webmproject.org repositories. Fixes issue #97. Change-Id: I37c13ed5fbdb9d334ceef71c6350e9febed9bbba
2010-06-18cosmetics: trim trailing whitespaceJohn Koleszar
When the license headers were updated, they accidentally contained trailing whitespace, so unfortunately we have to touch all the files again. Change-Id: I236c05fade06589e417179c0444cb39b09e4200d
2010-06-14Use public domain implementation for MD5 algorithmAndres Mejia
The RSA Data Security, Inc. implementation license bears a requirement similar to the old problematic BSD license with advertising clause. Change-Id: I877b71ff0548934b1c4fd87245696f53dedbdf26
2010-06-04LICENSE: update with latest textJohn Koleszar
Change-Id: Ieebea089095d9073b3a94932791099f614ce120c
2010-05-25examples: use I420 input for encodersJohn Koleszar
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. Change-Id: I9d4f10ace594a54a7fc4f9a1f9187365c01fd638
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-21Put img_fmt in the vpx namespaceJames Zern
Avoid an potential name clashes and match other external types. s/IMG_FMT/VPX_$&/g s/img_fmt/vpx_$&/g Change-Id: Ia7ad5bbb6424416b37e71e5f5eb1eca31c3c707f
2010-05-21configure: remove HAVE_CONFIG_HJohn Koleszar
This doesn't play well with autotools, and the preprocessor magic is confusing and unhelpful in the vp8-only context. Change-Id: I2fcb57e6eb7876ecb58509da608dc21f26077ff1
2010-05-18Initial WebM releaseJohn Koleszar