1. 18 Dec, 2014 1 commit
  2. 04 Dec, 2014 1 commit
    • hkuang's avatar
      Clean up the logic of handling corrupted frame. · dde81959
      hkuang authored
      No more checking of corrupted reference frame as we skip
      decoding any non-intra frame in case of frame corrupted.
      
      Change-Id: I77d41bbb02fc5f61972740e2d411441eb6a17073
      dde81959
  3. 03 Dec, 2014 1 commit
    • James Zern's avatar
      vp9: sync threads after a longjmp · 6f7ab014
      James Zern authored
      Synchronize all threads immediately as a subsequent decode call may
      cause a resize invalidating some allocations.
      
      fixes one aspect of crbug.com/437655
      
      Change-Id: Ie993b62c2756478543206ddbe43ec6268d90a470
      6f7ab014
  4. 06 Nov, 2014 2 commits
    • Yunqing Wang's avatar
      Modify the frame context memory deallocation · 12284334
      Yunqing Wang authored
      This patch was to fix the vpxdec fuzzing3 test failure. When an
      error occurs, setjmp() is invoked, which calls the decoder
      removing routine. In multiple thread situation, other threads
      could try to access the frame context memory that is already
      deallocated, thus causing a segfault.
      
      An invalid unit test was added for this issue.
      
      Change-Id: Ida7442154f3d89759483f0f4fe0324041fffb952
      12284334
    • hkuang's avatar
      Totally remove prev_mi in VP9 decoder. · 4cc7c5a1
      hkuang authored
      This will save the memory and improve the decode speed due to
      removing unnecessary memset of big prev_mi array for
      all the key frames.
      
      Decoding a all key frames 1080p video shows speed improve around 2%.
      
      Change-Id: I6284a445c1291056e3c15135c3c20d502f791c10
      4cc7c5a1
  5. 01 Nov, 2014 1 commit
    • hkuang's avatar
      Bind motion vectors with frame buffer structure. · 55577431
      hkuang authored
      This will save a lot of memory for decoder due to removing of prev_mi,
      but prev_mi is still needed in encoder. So this will increase a little bit
      memory for encoder.
      
      Change-Id: I24b2f1a423ebffa55a9bd2fcee1077dac995b2ed
      55577431
  6. 22 Oct, 2014 1 commit
    • Yunqing Wang's avatar
      vp9_ethread: allocate frame contexts outside VP9_COMMON struct · 7c7e4d4e
      Yunqing Wang authored
      This patch allocated frame contexts outside VP9_COMMON. This allows
      multiple threads to share the same copy of frame contexts, and
      reduces the overhead. It also guarantees the correct update of
      these contexts during bitstream packing. This patch doesn't change
      encoding result.
      
      Change-Id: Ic181a2460b891d1d587278a6d02d8057b9dbd353
      7c7e4d4e
  7. 17 Oct, 2014 1 commit
    • hkuang's avatar
      Correct the logic of ready_for_new_data. · e3bf55de
      hkuang authored
      This should be set right after decoder really start to decode frame
      instead setting at the end.
      
      Even decoder does not have a displayable frame to show and return NULL
      to application, this should be set too.
      
      Change-Id: If0313a834bc64e3b0f05a84f4459d444d9eab0d8
      e3bf55de
  8. 16 Oct, 2014 1 commit
  9. 02 Oct, 2014 1 commit
  10. 29 Sep, 2014 1 commit
  11. 10 Sep, 2014 1 commit
  12. 03 Sep, 2014 1 commit
  13. 02 Sep, 2014 1 commit
    • Deb Mukherjee's avatar
      Adds config opt for highbitdepth + misc. vpx · 5acfafb1
      Deb Mukherjee authored
      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
      5acfafb1
  14. 29 Aug, 2014 1 commit
    • James Zern's avatar
      vp9: fix m/t loop filter invalid free · fec40f92
      James Zern authored
      store the number of allocated rows in VP9LfSync, the calculated values
      can not be relied on when dealing with corrupt material.
      
      Change-Id: I13b8bcec9738c299a71df726772ab7ac05511e5b
      fec40f92
  15. 18 Aug, 2014 1 commit
    • Minghai Shang's avatar
      [spatial svc]Add a few different encode frame tests. · e1b5d248
      Minghai Shang authored
      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
      e1b5d248
  16. 14 Aug, 2014 1 commit
  17. 08 Aug, 2014 1 commit
  18. 15 Jul, 2014 1 commit
  19. 10 Jul, 2014 1 commit
  20. 09 Jul, 2014 1 commit
  21. 08 Jul, 2014 1 commit
  22. 01 Jul, 2014 1 commit
    • 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
  23. 28 Jun, 2014 1 commit
  24. 25 Jun, 2014 1 commit
  25. 21 Jun, 2014 1 commit
    • Jim Bankoski's avatar
      Revert 3 patches from Hangyu to get Chrome to build: · 9be46e45
      Jim Bankoski authored
      Avoids failures:
      MSE_ClearKey/EncryptedMediaTest.Playback_VP9Video_WebM/0
      MSE_ClearKey_Prefixed/EncryptedMediaTest.Playback_VP9Video_WebM/0
      MSE_ExternalClearKey_Prefixed/EncryptedMediaTest.Playback_VP9Video_WebM/0
      MSE_ExternalClearKey/EncryptedMediaTest.Playback_VP9Video_WebM/0
      MSE_ExternalClearKeyDecryptOnly/EncryptedMediaTest.Playback_VP9Video_WebM/0
      MSE_ExternalClearKeyDecryptOnly_Prefixed/EncryptedMediaTest.Playback_VP9Video_WebM/0
      SRC_ExternalClearKey/EncryptedMediaTest.Playback_VP9Video_WebM/0
      SRC_ExternalClearKey_Prefixed/EncryptedMediaTest.Playback_VP9Video_WebM/0
      SRC_ClearKey_Prefixed/EncryptedMediaTest.Playback_VP9Video_WebM/0
      
      Patches are
      This reverts commit 9bc04085
      This reverts commit 6f5aba06
      This reverts commit 9bc04085
      
      I1f250441	Revert "Refactor the vp9_get_frame code for frame parallel."
      Ibfdddce5	Revert "Delay decreasing reference count in frame-parallel decoding."
      I00ce6771	Revert "Introduce FrameWorker for decoding."
      
      Need better testing in libvpx for these commits
      
      Change-Id: Ifa1f279b0cabf4b47c051ec26018f9301c1e130e
      9be46e45
  26. 20 Jun, 2014 1 commit
  27. 18 Jun, 2014 1 commit
  28. 13 Jun, 2014 1 commit
    • hkuang's avatar
      Delay decreasing reference count in frame-parallel decoding. · e4c5f7e2
      hkuang authored
      The current decoding scheme will decrease the reference count
      of the output frame when finish decoding. Then the application
      could copy the frame from the decoder buffer to application buffer.
      In frame-parallel decoding, a decoded frame will not be outputted
      until several frames later which depends on thread numbers. So
      the decoded frame's reference count should be decreased only
      after application finish copying the frame out. But due to the
      limitation of vpx_codec_get_frame, decoder could not know when
      application finish decoding. So use a index last_show_frame to
      release the last output frame's reference count.
      
      Change-Id: I403ee0d01148ac1182e5a2d87cf7dcc302b51e63
      e4c5f7e2
  29. 21 May, 2014 1 commit
  30. 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
  31. 15 May, 2014 1 commit
  32. 14 May, 2014 2 commits
  33. 12 May, 2014 1 commit
  34. 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
  35. 29 Apr, 2014 1 commit
  36. 25 Apr, 2014 1 commit
  37. 11 Apr, 2014 1 commit
  38. 10 Apr, 2014 1 commit