1. 14 May, 2015 1 commit
  2. 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
      f274c219
  3. 02 Apr, 2015 1 commit
  4. 30 Mar, 2015 1 commit
  5. 19 Mar, 2015 1 commit
  6. 04 Mar, 2015 2 commits
    • hkuang's avatar
      Fix variable shadowing. · 31fae6ac
      hkuang authored
      Change-Id: I287c61ad4aa85654aef3c871a62131bcd0d891ac
      31fae6ac
    • 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
      3807dd82
  7. 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
      2fa9e9e2
  8. 13 Feb, 2015 2 commits
  9. 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
      dd88f482
  10. 07 Feb, 2015 1 commit
  11. 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
      b104b840
  12. 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:"""
       Conflicts:
             test/codec_factory.h
             test/decode_test_driver.cc
             test/decode_test_driver.h
             test/invalid_file_test.cc
             test/test-data.sha1
             test/test.mk
             test/test_vectors.cc
             vp8/vp8_dx_iface.c
             vp9/common/vp9_alloccommon.c
             vp9/common/vp9_entropymode.c
             vp9/common/vp9_loopfilter_thread.c
             vp9/common/vp9_loopfilter_thread.h
             vp9/common/vp9_mvref_common.c
             vp9/common/vp9_onyxc_int.h
             vp9/common/vp9_reconinter.c
             vp9/decoder/vp9_decodeframe.c
             vp9/decoder/vp9_decodeframe.h
             vp9/decoder/vp9_decodemv.c
             vp9/decoder/vp9_decoder.c
             vp9/decoder/vp9_decoder.h
             vp9/encoder/vp9_encoder.c
             vp9/encoder/vp9_pickmode.c
             vp9/encoder/vp9_rdopt.c
             vp9/vp9_cx_iface.c
             vp9/vp9_dx_iface.c
      
      This reverts commit a18da976.
      
      Change-Id: I361442ffec1586d036ea2e0ee97ce4f077585f02
      be6aeada
  13. 23 Jan, 2015 1 commit
  14. 16 Jan, 2015 1 commit
  15. 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)
      
      Otherwise:
      Minimum data size is 8 bytes.
      
      This resolves the VP9 failure in fuzzing test build #56.
      
      Change-Id: I146d9d37688f535dd68d24aacc76d464ccffdf04
      9c061ef5
  16. 15 Dec, 2014 2 commits
  17. 12 Dec, 2014 2 commits
  18. 08 Dec, 2014 1 commit
  19. 14 Nov, 2014 1 commit
  20. 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
      9ce3a7d7
  21. 29 Sep, 2014 1 commit
  22. 04 Sep, 2014 1 commit
  23. 03 Sep, 2014 1 commit
  24. 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
  25. 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
      73edeb03
  26. 21 Aug, 2014 1 commit
  27. 20 Aug, 2014 1 commit
  28. 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
  29. 13 Aug, 2014 1 commit
  30. 08 Aug, 2014 1 commit
  31. 07 Aug, 2014 2 commits
  32. 06 Aug, 2014 1 commit
    • Hangyu Kuang's avatar
      Make the api behavior conform to api spec. · 70500747
      Hangyu Kuang authored
      When no more data is available, vpx_codec_decode should
      be called with NULL as data and 0 as data_sz.
      
      vpx_codec_get_frame iterates over a list of the frames
      available for display. The iterator storage should be initialized
      to NULL to start the iteration. Iteration is complete when this
      function returns NULL.
      
      Also change the unit test to conform to the api spec.
      
      Change-Id: I4b258b309f5df3d37d10c82f01492c0394181c2a
      70500747
  33. 05 Aug, 2014 1 commit
  34. 31 Jul, 2014 1 commit
  35. 21 Jul, 2014 1 commit