summaryrefslogtreecommitdiff
path: root/vpx/internal
AgeCommit message (Collapse)Author
2016-07-21vpx/: apply clang-formatclang-format
Change-Id: I95922a64568bf289863c1564212b6be5beec36df
2016-06-24Port metric computation changes from nextgenv2Yaowu Xu
Change-Id: I4aceffcdf7af59ffeb51984f0345c3a4c7e76a9f
2015-03-18fix static analysis warnings related to CHECK_MEM_ERRORJames Zern
mark vpx_internal_error as noreturn under the analyzer Change-Id: If214a0e740aab9b82cc04f4492eb77a7a07ef7ab
2014-09-04Removing sz member from vpx_codec_priv. Dmitry Kovalev
Change-Id: I811526a9ee9f237604f72abe7fc677e39e0f457f
2014-08-28Removing alg_priv from vpx_codec_priv struct.Dmitry Kovalev
In order to understand memory layout consider the declaration of the following structs. The first one is a part of our API: struct vpx_codec_ctx { // ... struct vpx_codec_priv *priv; }; The second one is defined in vpx_codec_internal.h: struct vpx_codec_priv { // ... }; The following struct is defined 4 times for encoder/decoder VP8/VP9: struct vpx_codec_alg_priv { struct vpx_codec_priv base; // ... }; Private data allocation for the given ctx: struct vpx_codec_ctx *ctx = <get> struct vpx_codec_alg_priv *alg_priv = <allocate> ctx->priv = (struct vpx_codec_priv *)alg_priv; The cast works because vpx_codec_alg_priv has a vpx_codec_priv instance as a first member 'base'. Change-Id: I10d1afc8c9a7dfda50baade8c7b0296678bdb0d0
2014-08-22Replacing 'struct vpx_fixed_buf' with 'vpx_fixed_buf_t’.Dmitry Kovalev
Change-Id: Ibbbc5b39429d4b753f0a966b9d84d1d7bf823650
2014-08-21Merge "Replacing NOT_IMPLMENTED with NULL."Dmitry Kovalev
2014-08-20Replacing NOT_IMPLMENTED with NULL.Dmitry Kovalev
We don’t need to introduce new macro for the null value. Change-Id: I59dbae25feeebb4e8359095801aecc8bb17d7764
2014-08-20Removing iface pointer from vpx_codec_priv.Dmitry Kovalev
The iface pointer is already in vpx_codec_ctx struct. Change-Id: I9fffe27c613a7c94476f185a1e5a53ff6d99f1c6
2014-08-19Removing unused tbd struct member.Dmitry Kovalev
Change-Id: I07f7aea60ef7b9904f67e12eb5b2bfeb7348a454
2014-08-13vpx_codec_internal.h : clean out unused function warningJim Bankoski
Change-Id: I53659e3ff8ba1b70d89d152e0580ac7a412b89b2
2014-08-13vpx_internal_error -> fix -Wunused-function issuesJim Bankoski
Moved to global function to avoid unused function warnings... Change-Id: I4e9002dcb20748f6d8d84cbbe6ef2de0bd9a8018
2014-08-05Removing legacy XMA features from libvpx.Dmitry Kovalev
Change-Id: I60ffee7cf78e748792fa6d109322ec32f92e40a9
2014-07-31Changes interface to avoid uninitialized warnings in vp9_cx_iface.c.Jim Bankoski
Change-Id: I1092239e21c1cde188ee2dcb765f4c6fc8c5cdec
2014-05-27Removing ctrl_id parameter from vpx_codec_control_fn_t.Dmitry Kovalev
Change-Id: I2b61c8c17ded1074dea92b4f6ad9be84d128b52a
2014-05-16Cleaning up vp9_cx_iface.c.Dmitry Kovalev
Marking unused parameters with (void), adding consts, fixing formatting. Change-Id: I8ac1e6606c0f2673f78bc41830e672a680ffed02
2014-02-26Adding vpx_sse_to_psnr() function.Dmitry Kovalev
Removing all copies of identical vp8_mse2psnr/vp9_mse2psnr functions. Using vpx_sse_to_psnr() instead in all places. Change-Id: I15beef9834d43d8fc8a8a7a2d1fc5de3d658fed8
2014-02-13Add VP9 decoder support for external frame buffersFrank Galligan
Added support for external frame buffers to libvpx's VP9 decoder. If the external frame buffer functions are set then libvpx will call the get function whenever it needs a new frame buffer to decode a frame into. And it will call the release function whenever there are no more references to that buffer. Change-Id: Id2934d005f606af6e052fb6db0d5b7c02f567522
2014-01-24Merge "Revert external frame buffer code."Frank Galligan
2014-01-24Revert external frame buffer code.Frank Galligan
A future CL will add external frame buffers differently. Squash commit of four revert commits: Revert "Increase required number of external frame buffers" This reverts commit 9e41d569d7c84dd9ca8f0047c15377a883945685. Revert "Add external constants." This reverts commit bbf53047b03106e3c2e24b28cb836cc838db5ee8. Revert "Add frame buffer lru cache." This reverts commit fbada948fa345e67acf9aa41a8f9a78f5dfe8648. Conflicts: vpxdec.c Change-Id: I76fe42419923a6ea6c75d9997cbbf941d73d3005 Revert "Add support to pass in external frame buffers." This reverts commit 10f891696bc4c972c13cc9fde2c53470501a03e2. Conflicts: test/external_frame_buffer_test.cc vp9/common/vp9_alloccommon.c vp9/common/vp9_reconinter.c vp9/decoder/vp9_decodeframe.c vp9/encoder/vp9_onyx_if.c vp9/vp9_dx_iface.c vpx/vpx_decoder.h vpx/vpx_external_frame_buffer.h vpx_scale/generic/yv12config.c vpxdec.c Change-Id: I7434cf590f1c852b38569980e4247fad0d939c2e
2014-01-23vpx: add extern "C" to headersJames Zern
Change-Id: Ide9a68466ed30453872465a6c2f9c414690df876
2013-12-17Increase required number of external frame buffersFrank Galligan
Make applications pass in VPX_MAXIMUM_WORK_BUFFERS as well as VP9_MAXIMUM_REF_BUFFERS. Change-Id: I9c07ce83fa19c90ed43227b801b2013690e81edd
2013-12-17Add external constants.Frank Galligan
Change-Id: I8d329513c87bd8622306aba27c83bf04ef170fa4
2013-12-16vpx: normalize include guardsJames Zern
Change-Id: Iee670353cffa1f9e97976ac507ad9519e5dda7f7
2013-12-15Add support to pass in external frame buffers.Frank Galligan
VP9 decoder can now use frame buffers passed in by the application. Change-Id: I599527ec85c577f3f5552831d79a693884fafb73
2013-07-11vp[89]_dx_iface: factorize vp8_mmap_*()James Zern
s/vp8/vpx/ -> vpx_codec_internal.h / vpx_codec.c Change-Id: If4192b40206276a761b01d44e334fe15bcb81128
2013-07-11small update to peek_si/get_si documentationJames Zern
correct a doxygen and function reference Change-Id: I525371d64969aa60c464d0f6a133bc29895d7991
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-06vpx: merge with masterJohn Koleszar
Change-Id: I44b3ad780cef6f448fa17ff8e28fea87ef9cd518
2012-07-17Restyle codeJohn Koleszar
Approximate the Google style guide[1] so that that there's a written document to follow and tools to check compliance[2]. [1]: http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml [2]: http://google-styleguide.googlecode.com/svn/trunk/cpplint/cpplint.py Change-Id: Idf40e3d8dddcc72150f6af127b13e5dab838685f
2012-06-29Build unit test driver from the default targetJohn Koleszar
We need an easy way to build the unit test driver without running the tests. This enables passing options like --gtest_filter to the executable, which can't be done very cleanly when running under `make test`. Fixed a number of compiler errors/warnings when building the tests in various configurations by Jenkins. Change-Id: I9198122600bcf02520688e5f052ab379f963b77b
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-07-19Revert "Disable __longjmp_chk protection"John Koleszar
This reverts commit b73a3693e581583e9ec676f4396d0c3d173e2462. This version of the check doesn't work with generic-gnu, and figuring out the correct symbol version at configure time is probably more work than this is worth. May revisit in the future. Change-Id: I6c75e88bd3bd82a4b21e09a25780fe53aacb7d70
2011-07-13Disable __longjmp_chk protectionJohn Koleszar
glibc implements some checking on longjmp() calls by replacing it with an internal function __longjmp_chk(), when FORTIFY_SOURCE is defined. This can be problematic when compiling the library under one version of glibc and running it under another. Work around this issue for the one symbol affected for now, before taking out the undef hammer. Fixes http://code.google.com/p/webm/issues/detail?id=166 Change-Id: Ifc5e25cdec17915e394711f2185b3e9214572d10
2011-03-14Improve grammar in a comment.Ralph Giles
Change-Id: I18bfda6d420626f2718e096e338c1d0bf0ba029d
2011-02-16documentation: minor cosmeticsJames Zern
- correct spelling - remove explicit file name w/\file (unnecessary when contained in the same file and prone to desync) Change-Id: I68a3960ac5ab84d0f2e5c9b2e29799f26dfccf23
2011-02-02Avoid using an anonymous union.Gaute Strokkenes
Change-Id: I5744269a35e2d696ecf40c1665efd572bfc9b6cb
2010-09-23Add getter functions for the interface data symbolsJohn Koleszar
Having these symbols be available as functions rather than data is occasionally more convenient. Implemented this way rather than a get-codec-by-id style to avoid creating a link-time dependency between the encoder and the decoder. Fixes issue #169 Change-Id: I319f281277033a5e7e3ee3b092b9a87cce2f463d
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-07-07Fix misspelled "paramter" in vpx_codec_internal.h" to "parameter".Michael Kohler
Signed-off-by: Michael Kohler <michaelkohler@live.com>
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-14Remove useless 500 frame limitFabio Pedretti
Change-Id: Ib82de60cf32cf08844c3e2d88d7c587396f3892c
2010-06-04LICENSE: update with latest textJohn Koleszar
Change-Id: Ieebea089095d9073b3a94932791099f614ce120c
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