1. 12 Aug, 2015 2 commits
    • Jingning Han's avatar
      Change vp10 interface prefix from vp9_ to vp10_ · c4e354b4
      Jingning Han authored
      This commit renames the vp10 encoder, decoder, and common interface
      file names from vp9_ prefix to vp10_ prefix.
      Change-Id: Iafb5d786e4b428d2b9bf097123bd86c4fa9ded24
    • Jingning Han's avatar
      Fork VP9 and VP10 codebase · 3ee6db6c
      Jingning Han authored
      This commit folks the VP9 and VP10 codebase and makes libvpx
      support VP8, VP9, and VP10.
      Change-Id: I81782e0b809acb3c9844bee8c8ec8f4d5e8fa356
  2. 21 Jul, 2015 2 commits
  3. 20 Jul, 2015 1 commit
  4. 17 Jul, 2015 1 commit
  5. 02 Jul, 2015 3 commits
  6. 05 Jun, 2015 1 commit
    • Frank Galligan's avatar
      Add control to skip loop filter in VP9 decoder. · bfb6d488
      Frank Galligan authored
      This control allows the application to skip the loop filter in the
      decoder. This is an advanced control that should only be used in
      extreme circumstances as it may introduce and accumulate decode
      Change-Id: I278c65c60826f84c9141ebe06c6eeed3c2335fa8
  7. 14 May, 2015 1 commit
  8. 29 Apr, 2015 1 commit
    • James Zern's avatar
      vpx_mem: remove vpx_memcpy · f274c219
      James Zern authored
      vestigial. replace instances with memcpy() which they already were being
      defined to.
      Change-Id: Icfd1b0bc5d95b70efab91b9ae777ace1e81d2d7c
  9. 02 Apr, 2015 1 commit
  10. 30 Mar, 2015 1 commit
  11. 19 Mar, 2015 1 commit
  12. 04 Mar, 2015 2 commits
    • hkuang's avatar
      Fix variable shadowing. · 31fae6ac
      hkuang authored
      Change-Id: I287c61ad4aa85654aef3c871a62131bcd0d891ac
    • Adrian Grange's avatar
      Make encoder buffer allocation dynamic · 3807dd82
      Adrian Grange authored
      Frame buffers are now allocated dynamically on-demand.
      Entries in the reference frame map, cm->ref_frame_map,
      may now be set to -1 (INVALID_IDX) to indicate that
      there is not a valid reference buffer in that "slot".
      All slots in the reference frame map are now initialized
      to the empty state (-1) and each buffer is initialized
      to have a reference count of 0.
      Change-Id: Id1afe98de98db4ae8b2dfefed7889c3b28c68582
  13. 17 Feb, 2015 1 commit
    • hkuang's avatar
      Fix the frame parallel invalid file test failure on ARM. · 2fa9e9e2
      hkuang authored
      There is a corner case that when a frame is corrupted, the following
      inter frame decode worker will miss the previous failure. To solve
      this problem, a need_resync flag needs to be added to master thread
      to keep control of that.
      Change-Id: Iea9309b2562e7b59a83dd6b720607410286c90a6
  14. 13 Feb, 2015 2 commits
  15. 09 Feb, 2015 1 commit
    • hkuang's avatar
      Set the maximum decode threads to be 8. · dd88f482
      hkuang authored
      This will fix the frame parallel decode hang on windows
      due to not enough semaphores.
      This will also make the frame parallel decode safer as
      the number of frame buffers could only support maximum
      8 threads.
      Change-Id: Id9ef50692819dcbebbd74a0aabffbfb3f39a4309
  16. 07 Feb, 2015 1 commit
  17. 04 Feb, 2015 1 commit
    • hkuang's avatar
      Fix a thread lost bug in frame parallel decode. · b104b840
      hkuang authored
      After syncing the frame worker thread, avaiable thread count should
      increase by 1 even the worker thread does not have displayable frame
      to output.
      Change-Id: I9eeb87720fed82dfe38555286833ff88e8a8e746
  18. 31 Jan, 2015 1 commit
    • hkuang's avatar
      Try again to merge branch 'frame-parallel' into master branch. · be6aeada
      hkuang authored
      In frame parallel decode, libvpx decoder decodes several frames on all
      cpus in parallel fashion. If not being flushed, it will only return frame
      when all the cpus are busy. If getting flushed, it will return all the
      frames in the decoder. Compare with current serial decode mode in which
      libvpx decoder is idle between decode calls, libvpx decoder is busy
      between decode calls.
      Current frame parallel decode will only speed up the decoding for frame
      parallel encoded videos. For non frame parallel encoded videos, frame
      parallel decode is slower than serial decode due to lack of loopfilter
      worker thread.
      There are still some known issues that need to be addressed. For example:
      decode frame parallel videos with segmentation enabled is not right sometimes.
      * frame-parallel:
        Add error handling for frame parallel decode and unit test for that.
        Fix a bug in frame parallel decode and add a unit test for that.
        Add two test vectors to test frame parallel decode.
        Add key frame seeking to webmdec and webm_video_source.
        Implement frame parallel decode for VP9.
        Increase the thread test range to cover 5, 6, 7, 8 threads.
        Fix a bug in adding frame parallel unit test.
        Add VP9 frame-parallel unit test.
        Manually pick "Make the api behavior conform to api spec." from master branch.
        Move vp9_dec_build_inter_predictors_* to decoder folder.
        Add segmentation map array for current and last frame segmentation.
        Include the right header for VP9 worker thread.
        Move vp9_thread.* to common.
        ctrl_get_reference does not need user_priv.
        Seperate the frame buffers from VP9 encoder/decoder structure.
        Revert "Revert "Revert "Revert 3 patches from Hangyu to get Chrome to build:"""
      This reverts commit a18da976.
      Change-Id: I361442ffec1586d036ea2e0ee97ce4f077585f02
  19. 23 Jan, 2015 1 commit
  20. 16 Jan, 2015 1 commit
  21. 06 Jan, 2015 1 commit
    • Yaowu Xu's avatar
      Properly validate data size · 9c061ef5
      Yaowu Xu authored
      With "show_existing_frame" frames:
      Minimum data size for profile 0 and 1 is 1 byte (8bits)
      Minimum data size for profile 2 and 3 is 2 bytes (9bits)
      Minimum data size is 8 bytes.
      This resolves the VP9 failure in fuzzing test build #56.
      Change-Id: I146d9d37688f535dd68d24aacc76d464ccffdf04
  22. 15 Dec, 2014 2 commits
  23. 12 Dec, 2014 2 commits
  24. 08 Dec, 2014 1 commit
  25. 14 Nov, 2014 1 commit
  26. 22 Oct, 2014 1 commit
    • Hangyu Kuang's avatar
      Implement frame parallel decode for VP9. · 9ce3a7d7
      Hangyu Kuang authored
      Using 4 threads, frame parallel decode is ~3x faster than single thread
      decode and around 30% faster than tile parallel decode for frame parallel
      encoded video on both Android and desktop with 4 threads. Decode speed is
      scalable to threads too which means decode could be even faster with more threads.
      Change-Id: Ia0a549aaa3e83b5a17b31d8299aa496ea4f21e3e
  27. 29 Sep, 2014 1 commit
  28. 04 Sep, 2014 1 commit
  29. 03 Sep, 2014 1 commit
  30. 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
  31. 28 Aug, 2014 1 commit
    • Dmitry Kovalev's avatar
      Removing alg_priv from vpx_codec_priv struct. · 73edeb03
      Dmitry Kovalev authored
      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
  32. 21 Aug, 2014 1 commit