summaryrefslogtreecommitdiff
path: root/vp9/decoder
AgeCommit message (Collapse)Author
2014-09-02Adds config opt for highbitdepth + misc. vpxDeb Mukherjee
Adds config parameter vp9_highbitdepth, to support highbitdepth profiles. Also includes most vpx level high bit-depth functions. However encode/decode in the highbitdepth profiles will not work until the rest of the code is in place. Change-Id: I34c53b253c38873611057a6cbc89a1361b8985a6
2014-08-29Merge "vp9: sync workers at the start of decode_tiles_mt()"James Zern
2014-08-29vp9: fix m/t loop filter invalid freeJames Zern
store the number of allocated rows in VP9LfSync, the calculated values can not be relied on when dealing with corrupt material. Change-Id: I13b8bcec9738c299a71df726772ab7ac05511e5b
2014-08-28vp9: sync workers at the start of decode_tiles_mt()James Zern
prevents any problems resuming decode after decoding a corrupt frame Change-Id: Ib7eb1b5c062aebe71074fef1ece32a32822c16be
2014-08-27vp9: fix crash in inline loopfilter w/corrupt fileJames Zern
attempting to decode a frame after the previous frame failed has the potential of interrupting an earlier loop filter task Change-Id: I6f2b1ddcdf5b89c3e2ee8caf5289dada2a087d66
2014-08-27vp9: fix crash in mt loopfilter w/corrupt fileJames Zern
if the first frame was corrupt and loop filter not called, the next call would assume the necessary allocations had been done and segfault when accessing a NULL pointer Change-Id: Ib6ef505e5c594e6f0fe65ab0700172bcf06b92a6
2014-08-21Fix bug 837 (Part 2): Handle increase in frame widthAdrian Grange
The case where frame width increases but the overall memory size required to hold the mi arrays does not was not handled. Change-Id: I72e70b912a7d1766687ad682979f1c9ee124449b
2014-08-19Merge "[spatial svc]Add a few different encode frame tests."Minghai Shang
2014-08-18[spatial svc]Add a few different encode frame tests.Minghai Shang
1. Clean the code for encode frame tests 2. Add encode w/ and w/o alt reference frame test 3. Add encode SNR layers test 4. Add encode multiple layers but decode partial layers test Change-Id: Ibd2c9bc02525db584a6f931a98405f2d851b3cd6
2014-08-14Merge "vp9_copy_reference_dec: check ref frame index before use"James Zern
2014-08-14vp9_copy_reference_dec: check ref frame index before useJames Zern
use get_ref_frame() to ensure a valid frame is retrieved if one exists Change-Id: I4b116d928e643ee62a991babd4b974037b6b3830
2014-08-14Merge "Fix bug 837: realloc mode info buffers on resize"Adrian Grange
2014-08-14Fix bug 837: realloc mode info buffers on resizeAdrian Grange
The test to determine if the mode info buffers need to be resized when the frame size changes was incorrect, as per bug 837. By storing the size of the allocated data structure, a simple test determines whether to allocate more memory when the frame size changes. Change-Id: I1544698f2882cf958fc672485614f2f46e9719bd
2014-08-12Merge "fixes several -Wunused-function warnings"James Zern
2014-08-12fixes several -Wunused-function warningsJim Bankoski
Change-Id: I4dc2cb255f4fe30998b6ee61184895dee9f5da8e
2014-08-08Common encode/decode function to get reference frameAdrian Grange
Replaced encoder and decoder functions to get a pointer to a reference frame with a common function, vp9_get_ref_frame, and simplified it. Change-Id: Icb206fcce8caace3bfd1db3dbfa318dde79043ee
2014-08-08Remove coding_use_prev_mi member from VP9_COMMONAdrian Grange
This was shadowing the use of error_resilient_mode, but with the opposite sense. Change-Id: Ie4d30263a304fe4b3e94f0c7741db6888cc6afd8
2014-08-07Changes hdr for profiles > 1 for intraonly framesDeb Mukherjee
Specifies the bit-depth, color sampling and colorspace for intra only frames for profiles > 0 Also adds checks to ensure that profile 1 and 3 are exclusively used for non 420 streams. Change-Id: Icfb15fa1acccbce8f757c78fa8a2f60591360745
2014-07-28Fix reference frame size restrictions.Jim Bankoski
The issue was introduced by commit g9f37d14 with adding explicit restrictions on reference-frame scale factors. The restriction is checked against aligned-by-8 frame dimensions, not against original ones. So, for example, frame of 35×35 actually can refer to frame of 70×70, but the new check won't allow this. It will compare 35 vs 72 (not 70), so 2x downscale limit will be exceeded. Change-Id: Ic663693034440f64ac8312cbff9e1e773a921060
2014-07-25Merge "Fix allocation of context buffers on frame resize"Yaowu Xu
2014-07-24Changed validation of reference frame sizeYaowu Xu
A previous change, https://gerrit.chromium.org/gerrit/#/c/70632, introduced a size validation for reference frames to insuare the input stream is a valid VP9 stream. However, the logic requiring all reference frames have valid size turned out to be too strict. In this commit, we modify the validation to require one of the reference frame has valid dimension. In addition, the decoder reports error whenever it detects the use of reference frame with invalid scalig ratio. Change-Id: If8efc312244087556cfe00f1fcbdff811268ebad
2014-07-24Fix allocation of context buffers on frame resizeAdrian Grange
The patch: https://gerrit.chromium.org/gerrit/#/c/70814/ changed the test that determined whether the context frame buffers needed to be reallocated or not. The code checked for a change in total frame area to signal the need to reallocate context buffers. However, the above_context buffer needs to be resized i:xf only the width of the frame has increased. Change-Id: Ib89d75651af252908144cf662578d84f16cf30e6
2014-07-21Remove unfinished VP9 alpha channel.Alex Converse
Change-Id: Ic5d3a3a0dac10b49495771886a31e793bb78b5ca
2014-07-21Add -DNDEBUG when config option debug is disabledYunqing Wang
For gcc, when libvpx config option debug is disabled, added the flag -DNDEBUG to disable the assertions in libvpx for some speedup. Change-Id: Ifcb7b9e8ef5cbe5d07a24407b53b9a2923f596ee
2014-07-18Re-introduce frame size check inadvertantly deletedAdrian Grange
This patch adds back in code that checks that the frame size lies within defined bounds was inadvertantly removed by a previous patch: https://gerrit.chromium.org/gerrit/#/c/70814/ Change-Id: If526570ba559260c4b7e98098bc75f7700ae7f97
2014-07-18Merge "Separates profile 2 into 2 profiles 2 and 3"Deb Mukherjee
2014-07-17Separates profile 2 into 2 profiles 2 and 3Deb Mukherjee
Separates HBD profile int two profiles (2 and 3) consistent with the highbitdepth branch. This patch is ported from the original highbitdepth branch patch: https://gerrit.chromium.org/gerrit/#/c/70460/ Two of the invalid file tests needed to be updated. Change-Id: I6a4acd2f7a60b1fb4cbcc8e0dad4eab4248431e3
2014-07-17Modified frame buffer handlingAdrian Grange
This patch is the first step toward simplifying the frame buffer handling. The final goal is to have a common frame buffer handling framework for both encoder and decoder that incorporates the existing ability to use externally allocated memory. Change-Id: I2c378a4f54a39908915f46c4260e17a080db7ff1
2014-07-17allow config options to limit max size of decodeJim Bankoski
This is a practical concern to allow us to fail in a decoder instance if the size of a file is bigger than we can reasonably handle. Change-Id: I0446b5502b1f8a48408107648ff2a8d187dca393
2014-07-15Merge "Fix show_existing_frame not decreasing frame buffer ref counter."Adrian Grange
2014-07-15Fix show_existing_frame not decreasing frame buffer ref counter.Alexander Voronov
The issue was introduced by commit g7c43fb6. If current frame is repeated from existing-ref pool, frame buffer ref counter is not decreased, so buffer isn't released. Decoder fails being unable to allocate new frame buffer at some point. Added a test vector to verify that the condition will not recur later. Test vector was generated by the code in this patch: https://gerrit.chromium.org/gerrit/#/c/70862/ Change-Id: I8af96eb5b9670176e01a281d2e18bd458712cf78
2014-07-14Merge "Some extra bit probability cleanups"Deb Mukherjee
2014-07-11Add unit test to test tile decoding error handling.hkuang
Also fix bugs related with corrupted frame handling. Return VPX_CODEC_CORRUPT_FRAME when getting corrupted block. Change-Id: I7207ccc7c68c4df2b40b561315d16e49ccf7ff41
2014-07-11Some extra bit probability cleanupsDeb Mukherjee
Refactoring to remove some duplication of probability tables between tokenization and detokenization. Change-Id: I2fc6a6497f9c0410021a9b41f828bc58a864e466
2014-07-10call vp[89]_clear_system_state after longjmpJames Zern
restore the environment post encode/decode failure Change-Id: I3c72e2260a616432eaf1f9545d4fb4d8e45cc7b0
2014-07-09Merge "vp9_decoder_remove: destroy common after thread shutdown"James Zern
2014-07-09vp9_decoder_remove: destroy common after thread shutdownJames Zern
in a failure case the threads may still be running and share a reference to VP9_COMMON Change-Id: I867034b4b55f133663b8cbf6ca06e72acf952849
2014-07-09Merge "Move vp9_thread.* to common."hkuang
2014-07-08Fix decoder handling of intra-only framesAdrian Grange
This patch fixes bug 633: https://code.google.com/p/webm/issues/detail?id=633 The first decoded frame does not have to be a keyframe, it could be an inter-frame that is coded intra-only. This patch fixes the handling of intra-only frames. A test vector has also been added that encodes 3 intra-only frames at the start of the clip. The test vector was generated using the code in the following patch: https://gerrit.chromium.org/gerrit/#/c/70680/ Change-Id: Ib40b1dbf91aae2bc047e23c626eaef09d1860147
2014-07-07Move vp9_thread.* to common.hkuang
Prepare for frame parallel decoding, the reference count buffers need to be protected by mutex. Move vp9_thread.* to common folder so that those buffers could use cross-platform mutex from vp9_thread.*. Change-Id: I541277cf15eefed6641555944f67f4a0bcdc8154
2014-07-01Merge changes I875ac5a7,I2b13369d,I9ceb47a9James Zern
* changes: update vp9_thread.[hc] vp9_thread_test: remove unnecessary c_str()'s vp9_thread_test: factorize decode loop
2014-07-01validate uv block size when reading partitionJim Bankoski
Change-Id: I74fc5f1a7bab3128cdd49441b83ec3a25aee65ca
2014-07-01update vp9_thread.[hc]James Zern
pull the latest from WebP, which adds a worker interface abstraction allowing an application to override init/reset/sync/launch/execute/end this has the side effect of removing a harmless, but annoying, TSan warning. Original source: http://git.chromium.org/webm/libwebp.git 100644 blob 08ad4e1fecba302bf1247645e84a7d2779956bc3 src/utils/thread.c 100644 blob 7bd451b124ae3b81596abfbcc823e3cb129d3a38 src/utils/thread.h Local modifications: - s/WebP/VP9/g - camelcase functions -> lower with _'s - associate '*' with the variable, not the type Change-Id: I875ac5a74ed873cbcb19a3a100b5e0ca6fcd9aed
2014-06-30Revert "Fix a bug in VP9Worker which leads to unit test hang."hkuang
The caller should reset the state instead of letting worker to reset. This reverts commit 34b2ce15f95ee0944ebe6d569e7a9179a7e4cc5b. Change-Id: Idb546ea6386cffc44e98dee772900d21ab79710f
2014-06-30Fix a bug in VP9Worker which leads to unit test hang.hkuang
This fixes the hang in VP9/InvalidFileTest.ReturnCode/3 due to worker->had_error has not been reset after getting error. Change-Id: Ia3608225094758a2bd88f6ae4dd9dfd93bbaad27
2014-06-30initialize bit buffer structure to avoid warning errorJim Bankoski
Change-Id: I38bb2801ad3f059d5e2eb6513eec92397c67abcd
2014-06-29silence unused parm warning for worker thread in loop filterJim Bankoski
Change-Id: Id51468f99f8970b8795ce2d254344f4b8d7817d0
2014-06-27Revert "Revert "Revert 3 patches from Hangyu to get Chrome to build:""James Zern
This reverts commit b336356198b8ada50fbb59f04f11cefceaf5ff95. This causes a hang in: VP9/InvalidFileTest.ReturnCode/3 the change to test/user_priv_test.cc remains with a minor update Change-Id: I4a8a272ca37ea329b0f413f0b1cd827a238bd9fd
2014-06-27Merge "Better validation of invalid files"Jim Bankoski
2014-06-27Better validation of invalid filesJim Bankoski
This patch checks that a decoder never tries to reference frame that's outside the range of 2x to 1/16th the size of this frame. Any attempt to do so causes a failure. Change-Id: I5c98fa7bb95ac4f29146f29dd92b62fe96164e4c