- 24 Jul, 2014 - 2 commits
-
-
Yaowu Xu authored
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
-
Adrian Grange authored
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
-
- 21 Jul, 2014 - 2 commits
-
-
Alex Converse authored
Change-Id: Ic5d3a3a0dac10b49495771886a31e793bb78b5ca
-
Yunqing Wang authored
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
-
- 18 Jul, 2014 - 2 commits
-
-
Adrian Grange authored
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
-
Deb Mukherjee authored
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
-
- 17 Jul, 2014 - 2 commits
-
-
Adrian Grange authored
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
-
Jim Bankoski authored
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
-
- 11 Jul, 2014 - 1 commit
-
-
hkuang authored
Also fix bugs related with corrupted frame handling. Return VPX_CODEC_CORRUPT_FRAME when getting corrupted block. Change-Id: I7207ccc7c68c4df2b40b561315d16e49ccf7ff41
-
- 08 Jul, 2014 - 1 commit
-
-
Adrian Grange authored
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
-
- 07 Jul, 2014 - 1 commit
-
-
hkuang authored
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
-
- 01 Jul, 2014 - 2 commits
-
-
Jim Bankoski authored
Change-Id: I74fc5f1a7bab3128cdd49441b83ec3a25aee65ca
-
James Zern authored
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
-
- 30 Jun, 2014 - 1 commit
-
-
Jim Bankoski authored
Change-Id: I38bb2801ad3f059d5e2eb6513eec92397c67abcd
-
- 27 Jun, 2014 - 1 commit
-
-
Jim Bankoski authored
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
-
- 25 Jun, 2014 - 1 commit
-
-
James Zern authored
the max is 6. there are assumptions throughout the decode regarding this; fixes a crash with a fuzzed bitstream $ zzuf -s 5861 -r 0.01:0.05 -b 6- \ < vp90-2-00-quantizer-00.webm.ivf \ | dd of=invalid-vp90-2-00-quantizer-00.webm.ivf.s5861_r01-05_b6-.ivf \ bs=1 count=81883 Change-Id: I6af41bb34252e88bc156a4c27c80d505d45f5642
-
- 20 Jun, 2014 - 1 commit
-
-
Jim Bankoski authored
See: https://code.google.com/p/chromium/issues/detail?id=362697 The code properly catches an invalid stream but seg faults instead of returning an error due to a buffer not having been initialized. This code fixes that. Change-Id: I695595e742cb08807e1dfb2f00bc097b3eae3a9b
-
- 02 Jun, 2014 - 1 commit
-
-
Dmitry Kovalev authored
Change-Id: I3f74418f07c2dfdd7725a5b4a8ef5c5f4aca6289
-
- 21 May, 2014 - 3 commits
-
-
Dmitry Kovalev authored
Change-Id: I79576920efb7f3f6f197d386727409759d8bda8d
-
Dmitry Kovalev authored
The final goal is eventually to get rid of both itxm_add and fwd_txm4x4. This patch does it in the decoder. Change-Id: Ibb3db57efbcbb1ac387c6742538a9fcf2c6f24a5
-
hkuang authored
https://gerrit.chromium.org/gerrit/#/c/70162/ Change-Id: I797be6a4b21460de6d791125fc20d2be3a35364f
-
- 20 May, 2014 - 1 commit
-
-
hkuang authored
The current decode_tiles decodes the frame one tile by one tile and then loopfilter the whole frame or use another worker thread to do loopfiltering. |------|------|------|------| |Tile1-|Tile2-|Tile3-|Tile4-| |------|------|------|------| For example, if a tile video has one row and four cols, decode_tiles will decode the Tile1, then Tile2, then Tile3, then Tile4. And during decode each tile, decode_tile will decode row by row in each tile. For frame parallel decoding, decode_tiles will decode video in row order across the tiles. So the order will be: "Decode 1st row of Tile1" -> "Decode 1st row of Tile2" -> "Decode 1st row of Tile3" -> "Decode 1st row of Tile4" -> "Decode 2nd row of Tile1" -> "Decode 2nd row of Tile2" -> "Decode 2nd row of Tile3" -> "Decode 2nd row of Tile4"-> "loopfilter 1st row" Change-Id: I2211f9adc6d142fbf411d491031203cb8a6dbf6b
-
- 16 May, 2014 - 1 commit
-
-
Dmitry Kovalev authored
Change-Id: I9ef40f3d95ab8f94f69e92ea25678a40956bc1ce
-
- 15 May, 2014 - 2 commits
- 14 May, 2014 - 1 commit
-
-
Yaowu Xu authored
Change-Id: I0315cea6a5e58182bc2556e9825ec2ef0b1480c3
-
- 12 May, 2014 - 2 commits
-
-
Dmitry Kovalev authored
Inline loopfilter has been already handled in vp9_decode_frame(). Collecting all similar code in one place now. Change-Id: I358a0280fc7c2b27cca520bc1e8c16c4eb6491dd
-
Dmitry Kovalev authored
Change-Id: I910c437b80af90c50831e1fbff75842d4276a027
-
- 09 May, 2014 - 1 commit
-
-
Adrian Grange authored
Fixes the idecoder in the case where: cm->error_resilient_mode == 0, and cm->frame_parallel_decoding_mode == 0, but new_fb->corrupted == 1. The assert in debug_check_frame_counts fails to take into account the case of a corrupt frame. Change-Id: Idf318a68458cc88d65d6f3f408a10d8ffe87e43f
-
- 08 May, 2014 - 1 commit
-
-
Dmitry Kovalev authored
We only used two members from that struct: max_threads and inv_tile_order. Moving them directly to VP9Decoder struct. Change-Id: If696a4e5b5b41868a55f3cc971e1d7c1dd9d5f69
-
- 30 Apr, 2014 - 1 commit
-
-
Jim Bankoski authored
Don't update the stats if we have a corrupted frame. Change-Id: I65a13adc50e0389b4201d3b671f0225195dfaff4 TODO: Test case that shows this problem.
-
- 23 Apr, 2014 - 2 commits
-
-
Joey Parrish authored
Change-Id: I88f86c8ff9af34e0b6531028b691921b54c2fc48
-
Dmitry Kovalev authored
Actually, it would be great to have two separate enums INTRA_MODES and INTER_MODES in future. Change-Id: I6c4147cf0002853da9c1e03fe9514eab876f01c8
-
- 09 Apr, 2014 - 2 commits
-
-
Dmitry Kovalev authored
This reverts commit 22a3e307 Change-Id: I460d905edf5fb2006da58c18fbe02c04d0c631bb
-
Frank Galligan authored
Change-Id: I7a5230852cb24ce22bfe85ea2608cdb4619b5200
-
- 08 Apr, 2014 - 3 commits
-
-
Deb Mukherjee authored
Adds some high-level hooks for profile 2 before further progress on the implementation. According to the definitiion in this patch: 1. Profile 2 only supports 10 or 12 bit color but not 8 2. Profile 2 supports all color sampling modes: 444, 422 and 420, and alpha plane. 3. Profile 3 is currently undefined. Please consider the definition carefully and suggest modifications to the definition as needed. Change-Id: I5b284fc679e54ac5aee171af72fa7994cfd28995
-
Frank Galligan authored
There was a bug with the decoder that if you started the decoder with more threads than the first frame had tile columns. Afterwards tried to decode a frame with more tile columns than the first frame, the decoder would hang. E.g. run vpxdec --threads=4. The first frame had two tile columns, then the next key frame had 4 tile columns, the decoder would hang. If you started with 4 tiles and switched to 2 tiles the decoder would be fine. The issue is that the worker the thread loop is using is stale. I added a test vector "vp90-2-14-resize-848x480-1280x720.webm" that exhibited the bug. Change-Id: I7bdd47241a52ac0fe1c693a609bc779257e94229
-
Dmitry Kovalev authored
Change-Id: Ieb9b455b8aaef9884391021b7f640ef24c554687
-
- 07 Apr, 2014 - 1 commit
-
-
Dmitry Kovalev authored
Change-Id: Iad4002d7aecaae0e25d88e286bacde7e6cd7264f
-
- 03 Apr, 2014 - 1 commit
-
-
Dmitry Kovalev authored
Now interp_kernel is obtained when it is really required (based on mbmi->interp_filter value). Change-Id: I4c7a93c179d1045eba16e7526c293d02c9b8b47e
-