1. 24 Jul, 2014 - 2 commits
    • Yaowu Xu's avatar
      Changed validation of reference frame size · 9261e1aa
      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
      9261e1aa
    • Adrian Grange's avatar
      Fix allocation of context buffers on frame resize · 423e8a97
      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
      423e8a97
  2. 21 Jul, 2014 - 2 commits
  3. 18 Jul, 2014 - 2 commits
  4. 17 Jul, 2014 - 2 commits
    • Adrian Grange's avatar
      Modified frame buffer handling · f68aaa38
      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
      f68aaa38
    • Jim Bankoski's avatar
      allow config options to limit max size of decode · 943e4327
      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
      943e4327
  5. 11 Jul, 2014 - 1 commit
  6. 08 Jul, 2014 - 1 commit
  7. 07 Jul, 2014 - 1 commit
    • hkuang's avatar
      Move vp9_thread.* to common. · 337e8015
      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
      337e8015
  8. 01 Jul, 2014 - 2 commits
    • Jim Bankoski's avatar
      validate uv block size when reading partition · abf0df08
      Jim Bankoski authored
      Change-Id: I74fc5f1a7bab3128cdd49441b83ec3a25aee65ca
      abf0df08
    • James Zern's avatar
      update vp9_thread.[hc] · e656f44c
      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
      e656f44c
  9. 30 Jun, 2014 - 1 commit
  10. 27 Jun, 2014 - 1 commit
    • Jim Bankoski's avatar
      Better validation of invalid files · 9f37d149
      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
      9f37d149
  11. 25 Jun, 2014 - 1 commit
    • James Zern's avatar
      vp9: check tile column count · b2b07755
      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
      b2b07755
  12. 20 Jun, 2014 - 1 commit
  13. 02 Jun, 2014 - 1 commit
  14. 21 May, 2014 - 3 commits
  15. 20 May, 2014 - 1 commit
    • hkuang's avatar
      Refactor decode_tiles and loopfilter code. · 20c1edf6
      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
      20c1edf6
  16. 16 May, 2014 - 1 commit
  17. 15 May, 2014 - 2 commits
    • Yaowu Xu's avatar
      cleanup -wextra warnings: · 04c40d3d
      Yaowu Xu authored
        vp9_decoder.c
        vp9_dthread.c
      
      Change-Id: Iaafe941545db98e9e3559096a955894646084ac2
      04c40d3d
    • hkuang's avatar
      Refactor calling loopfilter code. · bf8c58be
      hkuang authored
      This change is mainly for a follow CL that will refactor the
      decode_tiles.
      
      Change-Id: I52de6f8dbada75a64d9a94ebb5975136ed0960b4
      bf8c58be
  18. 14 May, 2014 - 1 commit
  19. 12 May, 2014 - 2 commits
  20. 09 May, 2014 - 1 commit
    • Adrian Grange's avatar
      Fix check of debug counts for corrupt frame · 99892e85
      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
      99892e85
  21. 08 May, 2014 - 1 commit
    • Dmitry Kovalev's avatar
      Removing VP9DecoderConfig. · 0dacecaf
      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
      0dacecaf
  22. 30 Apr, 2014 - 1 commit
  23. 23 Apr, 2014 - 2 commits
  24. 09 Apr, 2014 - 2 commits
  25. 08 Apr, 2014 - 3 commits
    • Deb Mukherjee's avatar
      High-level hooks for Profile 2 (10/12 bit) · d35df2d8
      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
      d35df2d8
    • Frank Galligan's avatar
      Fix decoder resolution change with tiles · 6ae58931
      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
      6ae58931
    • Dmitry Kovalev's avatar
      Renaming VP9D_COMP & VP9Decompressor to VP9Decoder. · 56c2f41c
      Dmitry Kovalev authored
      Change-Id: Ieb9b455b8aaef9884391021b7f640ef24c554687
      56c2f41c
  26. 07 Apr, 2014 - 1 commit
  27. 03 Apr, 2014 - 1 commit